/* Shared responsive shell. Keeps the existing pages and their form actions. */
html{scroll-behavior:smooth}
body{line-height:1.5}
button,input,select,textarea{font:inherit}
input,select,textarea{min-width:0;max-width:100%;font-size:16px}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--blue)}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,.table-scroll:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.sidebar{width:264px;padding:20px 14px;overflow-y:auto;overscroll-behavior:contain;z-index:40}
.sidebar-heading{display:flex;align-items:flex-start;gap:6px;margin-bottom:24px}
.brand{gap:12px;padding:8px;min-width:0;margin:0;flex:1}
.brand-copy{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.brand-copy strong{font-size:18px;line-height:1.3}
.brand-copy small{font-size:12px;margin-top:5px;color:var(--muted)}
.brand-mark{width:52px;height:52px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:#0d1729;border:1px solid var(--line);padding:5px;color:var(--cyan);font-weight:800;line-height:1;vertical-align:middle}
.brand-mark [hidden]{display:none!important}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark-small{width:42px;height:42px;border-radius:11px}
.brand-mark-login{display:flex;width:124px;height:100px;margin:0 auto 15px;padding:10px;border-radius:20px;font-size:30px}
.nav a{min-height:48px;border:1px solid transparent;margin:5px 0;padding:11px 12px;line-height:1.4}
.nav a.active{border-color:#24548b;background:#122c4c;color:#fff}
.nav a:hover{border-color:#1f3b65}
.nav .ico{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:21px;line-height:1.2;width:27px;flex:0 0 27px}
.main{margin-left:264px;min-width:0}
.main:focus{outline:none}
.topbar{height:auto;min-height:88px;padding:18px 28px;gap:20px;position:sticky;top:0}
.topbar-start{display:flex;align-items:center;gap:12px;min-width:0}
.page-heading{min-width:0}
.topbar-brand{font-size:12px;letter-spacing:.04em;color:var(--muted);display:block;overflow-wrap:anywhere;margin-bottom:3px}
.topbar h2{font-size:clamp(18px,2vw,23px);line-height:1.25;overflow-wrap:anywhere}
.admin-label{font-size:13px;color:var(--muted);text-align:right;overflow-wrap:anywhere;max-width:30%}
.container{width:100%;padding:28px;max-width:1500px;margin:0 auto;min-width:0}
.grid{min-width:0}.grid>*{min-width:0}
.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid2,.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-row>*{min-width:0}
.card{min-width:0;padding:22px}
.card h3{overflow-wrap:anywhere;line-height:1.35}
.help,.notice,.muted,.device-sub,code,pre{overflow-wrap:anywhere}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;line-height:1.35;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.actions{align-items:center}
.actions form{max-width:100%}
.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:10px}
.table-scroll .table{min-width:720px}
.table td{max-width:300px;overflow-wrap:anywhere}
.table td .actions{min-width:150px}
.table th{white-space:nowrap}
.device-card>*{min-width:0}
.device-code,.code-pill{overflow-wrap:anywhere}
.device-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px}
.login-card{padding:30px;max-width:460px}
.login-brand-name{text-align:center;margin:0 0 22px;font-size:20px;font-weight:800;overflow-wrap:anywhere}
.login-title{text-align:center;font-size:25px;line-height:1.3}
.login-title+.muted{text-align:center;font-size:14px}
body.guest .main{margin-left:0;padding:24px 16px}
body.guest .container{max-width:460px}
.icon-button{display:inline-flex;align-items:center;justify-content:center;background:#101c30;color:var(--txt);border:1px solid var(--line);width:44px;height:44px;border-radius:12px;cursor:pointer;flex:0 0 44px;font-size:24px}
.menu-toggle,.menu-close,.mobile-brand,.sidebar-overlay{display:none}
.skip-link{position:fixed;left:12px;top:12px;transform:translateY(-180%);z-index:100;background:var(--blue);padding:10px;border-radius:8px}
.skip-link:focus{transform:none}
@media(max-width:1200px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-label span{display:none}}
@media(max-width:1000px){
 .main{margin-left:0}
 .sidebar{position:relative;width:100%;height:auto}
 .js-panel .sidebar{position:fixed;top:0;left:0;bottom:0;width:304px;max-width:86vw;height:100%;height:100dvh;transform:translateX(-100%);visibility:hidden;transition:transform .2s ease,visibility .2s;box-shadow:14px 0 50px #0006;padding:18px 12px}
 .js-panel body.menu-open .sidebar{transform:translateX(0);visibility:visible}
 .js-panel body.menu-open{overflow:hidden}
 .js-panel .menu-toggle,.js-panel .menu-close{display:inline-flex}
 .menu-close{width:36px;height:36px;flex-basis:36px;font-size:18px;margin-top:8px}
 .mobile-brand{display:inline-flex}
 .sidebar-overlay:not([hidden]){display:block;position:fixed;inset:0;background:#0009;backdrop-filter:blur(2px);border:0;z-index:30;padding:0;width:100%;height:100%}
 .topbar{padding:13px 18px;min-height:76px;gap:12px}
 .container{padding:22px 18px}
 .brand-copy strong{font-size:16px}
}
@media(max-width:700px){
 .grid2,.grid3,.form-row{grid-template-columns:minmax(0,1fr)}
 .device-card{display:block}.device-row-actions{justify-content:flex-start;margin-top:14px}
 .device-filters{grid-template-columns:minmax(0,1fr)}
 .admin-label{display:none}.topbar-start{width:100%}.topbar{padding:12px}
 .container{padding:18px 12px}.card{padding:18px;border-radius:16px}
 .login-card{padding:24px 20px}.login-title{font-size:23px}
 .topbar-brand{font-size:11px}
}
@media(max-width:400px){.grid4{grid-template-columns:minmax(0,1fr)}.topbar-start{gap:9px}.brand-mark-small{width:36px;height:36px}.topbar h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-panel .sidebar{transition:none}}
