header.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 24px;background:var(--card);border-bottom:1px solid var(--line)}
header.top .brand{font-weight:800;font-size:17px;flex:1;display:flex;align-items:center;gap:8px}
header.top .brand i{display:inline-block;width:28px;height:28px;border-radius:8px;background:var(--p);color:#fff;font-style:normal;display:inline-grid;place-items:center;font-size:15px}
header.top select{width:auto;padding:6px 10px}
#shell{display:block}#shell .body{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 53px)}
nav{height:calc(100vh - 53px);top:53px}
.pager{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:12px 0}.pager input{width:64px;text-align:center;padding:6px}.pager select{width:auto;padding:6px 8px}
.pager .sp{flex:1}th.sort{cursor:pointer;user-select:none}th.sort:hover{color:var(--p)}
.apps{display:flex;gap:6px;margin:6px 0}.apps .tag{cursor:default}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.seg button{border:0;background:var(--card);color:var(--tx);padding:6px 14px}.seg button.on{background:var(--p);color:#fff}
.ptable td input{padding:6px 8px}.ptable td:first-child{white-space:nowrap;font-weight:600}
@media(max-width:760px){#shell .body{grid-template-columns:1fr}nav{height:auto;top:auto;position:static}header.top{padding:10px 16px}}

/* Responsive shell: navigation never pushes phone content below a full menu. */
.login-logo{display:block;border-radius:12px;margin-bottom:12px}
header.top{min-height:64px}
header.top .brand{min-width:0;font-size:17px;line-height:1.3}
header.top .brand img{flex:none;border-radius:9px}
header.top select{max-width:180px;min-height:44px}
#menu-toggle{display:none;align-items:center;justify-content:center;gap:6px;min-height:44px}
.account-tools{position:relative;flex:none}
.account-tools summary{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;list-style:none}
.account-tools summary::-webkit-details-marker{display:none}
.account-tools[open] summary{background:var(--p-l);border-color:var(--p)}
.account-panel{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 32px);padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 28px #0002;display:grid;gap:10px;z-index:8}
#who{overflow-wrap:anywhere}
#shell .body>*,.card,.bar>*{min-width:0}
main{overflow-wrap:anywhere}
.card{overflow-wrap:anywhere}
nav{top:64px;height:calc(100dvh - 64px)}
.btn, .seg button{min-height:44px}
:where(button,a,summary):focus-visible{outline:2px solid var(--p);outline-offset:3px}
@media(max-width:760px){
 header.top{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:10px 16px;gap:8px;position:sticky}
 header.top .brand{grid-column:1;font-size:16px}
 #menu-toggle{display:inline-flex;grid-column:2;grid-row:1}
 header.top select{grid-column:1;grid-row:2;width:100%;max-width:180px;font-size:16px}
 .account-tools{grid-column:2;grid-row:2}
 .account-panel .btn{width:100%;font-size:14px}
 .btn.sm,.seg button{min-height:44px;font-size:14px}
 input,select,textarea{font-size:16px;min-height:44px}
 input[type=checkbox]{min-height:auto}
 #nav{display:none;padding:8px 16px 16px;position:static;height:auto;border-bottom:1px solid var(--line)}
 .nav-open #nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;max-height:65dvh;overflow:auto}
 #nav .grp{grid-column:1/-1;margin:10px 10px 0}
 #nav a{display:flex;align-items:center;min-height:44px;margin:0;padding:8px 10px;line-height:1.35}
 main{padding:20px 16px 48px}
 .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
 .card:has(table){overflow-x:auto}
 th,td{overflow-wrap:anywhere}
 .ptable,.ptable tbody{display:block;width:100%}
 .ptable thead{display:none}
 .ptable tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:16px;border-bottom:1px solid var(--line)}
 .ptable td{display:block;border:0;padding:0;min-width:0}
 .ptable td:first-child,.ptable td:last-child{grid-column:1/-1;white-space:normal}
 .ptable td[data-label]::before{content:attr(data-label);display:block;font-size:13px;color:var(--mu);margin-bottom:4px}
 .ptable td input{width:100%;padding:10px}
 .drawer{padding:16px;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .toast{max-width:calc(100vw - 32px);width:max-content;white-space:normal;text-align:center;border-radius:12px}
 .apps{flex-wrap:wrap}
}

/* Clearly bounded navigation items, with consistent outline icons. */
#nav a{display:flex;align-items:center;gap:10px;border:1px solid transparent}
#nav a svg{width:20px;height:20px;flex:0 0 20px}
#nav a>span:first-of-type{flex:1;min-width:0}
#nav .nav-chevron{font-size:22px;opacity:.65}
@media(max-width:760px){
 .nav-open #nav{gap:8px;background:#f3f7fa}
 #nav .grp{margin:12px 0 0;padding:8px 0 4px;border-top:1px solid #cfdae3;color:#42596b;font-size:12px;font-weight:700;letter-spacing:.04em}
 #nav a{border-color:#cbd8e2;border-radius:10px;background:white;min-height:58px;font-size:14px;font-weight:600;gap:8px}
 #nav a.on{background:#0079b3;border-color:#0079b3;color:white}
 #nav a:hover:not(.on){background:#e6f2fa;border-color:#84b6d5}
}
