/* Shared workspace layout. Keep rota/dialog mechanics in app.css. */
:root{--ink:#182b41;--muted:#627389;--bg:#f4f7fb;--sidebar-bg:#fff;--brand:#087ac2;--brand-dark:#07639d;--brand-soft:#e8f4fc;--accent-bg:#e8f4fc;--accent-fg:#075e96;--line:#dce5ef;--radius:12px;--shadow-sm:0 2px 6px rgba(25,49,80,.025)}
html.dark{--ink:#e8eef7;--muted:#a1b0c3;--bg:#101823;--sidebar-bg:#15202e;--card:#182535;--secondary:#213247;--line:#314257;--brand:#339ddd;--brand-dark:#2181b9;--brand-soft:#20394e;--accent-bg:#20394e;--accent-fg:#b9e4ff}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
h1{font-size:clamp(1.45rem,2.2vw,1.9rem);letter-spacing:-.035em;font-weight:700}h2{letter-spacing:-.02em}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:12px;z-index:300;background:var(--card);padding:12px 20px;transform:translateY(-180%);border:2px solid var(--brand);border-radius:8px}.skip-link:focus{transform:none}
.sidebar{width:248px;height:100dvh}.sidebar-header{padding:20px 18px 14px}.sidebar-header .brand-logo{max-width:136px}.sidebar-header .subtitle{letter-spacing:.02em;font-size:11px}
.nav-search{padding:14px 14px 2px}.nav-search input{margin:0;min-height:40px;font-size:13px;background:var(--secondary);border-color:transparent}.sidebar-nav{padding:2px 12px 16px;overscroll-behavior:contain;scrollbar-width:thin}.nav-group-label{font-size:10px;letter-spacing:.1em;padding-top:19px}.nav-link{font-size:13px;min-height:39px;padding:8px 10px;gap:10px}.nav-link.active{font-weight:650;box-shadow:inset 3px 0 var(--brand)}.nav-link .ic{width:17px;height:17px}.nav-link[hidden],.nav-group-label[hidden]{display:none!important}
.nav-empty{padding:12px;color:var(--muted);font-size:13px}.user-info .name,.user-info .role{display:block}.sidebar-footer{padding:10px 12px}
.topbar{min-height:70px;background:var(--card);padding:12px 28px}.topbar-left{min-width:0}.workspace-context{display:flex;flex-direction:column;min-width:0;line-height:1.35}.workspace-context strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32vw}.workspace-context span{font-size:11px;color:var(--muted)}.icon-btn{width:42px;height:42px;flex-shrink:0;border:1px solid var(--line);background:var(--card)}
.content{max-width:1600px;margin-inline:auto;padding:30px 32px 48px}.content:focus{outline:none}.page-head{margin-bottom:24px;align-items:center}.page-head .sub{font-size:14px}.card{padding:22px;box-shadow:var(--shadow-sm)}.card-head{flex-wrap:wrap;align-items:center}.grid>*{min-width:0}.stat{padding:20px 22px;border-top:3px solid var(--brand-soft)}.stat .n{font-size:2rem;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.stat .l{font-size:12px}.stat-title{line-height:1.35}.list-row{border-bottom:1px solid var(--line);border-radius:0;padding:14px 0}.list-row:last-child{border-bottom:0}.list-row .body .t{font-weight:600}.date-badge{border-radius:10px}.empty-state{min-height:170px}
.dashboard-heading{padding-bottom:22px;border-bottom:1px solid var(--line)}.dashboard-actions{display:flex;gap:10px;flex-wrap:wrap}.dashboard-actions .btn{min-height:42px}
.btn{min-height:40px;border-radius:8px;line-height:1.25;font-weight:600}.btn-sm{min-height:34px}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-block{min-height:46px}.auth-split{box-shadow:0 12px 40px rgba(21,48,80,.07);border-radius:20px;min-height:540px}.auth-brand-inner h1{font-weight:700;letter-spacing:-.04em}.auth-brand{background:linear-gradient(150deg,var(--brand-soft),var(--secondary))}.auth-form-panel input{min-height:46px}.auth-links{gap:16px;flex-wrap:wrap}
.rota-toolbar{background:var(--card);padding:14px;border:1px solid var(--line);border-radius:12px;gap:10px}.rota-modes{background:var(--secondary);border:0;padding:3px;gap:2px}.rota-modes a{padding:9px 12px;border:0;border-radius:6px;font-size:13px}.rota-modes a.active{background:var(--brand);color:#fff}.rota-view .rota-scroll{box-shadow:var(--shadow-sm)}.rota-view{--rota-day-w:148px}.rota-nav{display:flex;gap:4px}.rota-toolbar .btn{min-height:36px}.rota-toolbar select{max-width:100%}.rota-toolbar .spacer{min-width:0}
.impersonation-banner{background:#fff3d6;color:#714900;border-bottom:1px solid #ebd49d;font-size:12px;padding:10px 28px;font-weight:500}.impersonation-banner .btn{min-height:32px;white-space:nowrap}.topbar-right .user-chip{font-size:12px}.admin-sidebar .brand{padding:20px}.admin-sidebar .brand-logo{max-width:136px;margin-bottom:0}
@media(min-width:901px) and (max-width:1150px){.content{padding:24px}.grid-2{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sidebar{width:min(300px,86vw)}.topbar{min-height:64px;padding:10px 18px}.content{padding:22px 18px 40px}.sidebar-open{overflow:hidden}.workspace-context strong{max-width:45vw}.sidebar-nav{padding-bottom:24px}.nav-link{min-height:44px;font-size:14px}.nav-search input{min-height:44px}.impersonation-banner{padding:10px 18px}.org-switch{max-width:36vw}.org-switch select{max-width:100%}}
@media(max-width:600px){.content{padding:20px 14px 32px}.topbar{padding:10px 14px}.card{padding:18px;margin-bottom:16px}.page-head{gap:14px;margin-bottom:18px}.grid{gap:12px}.grid-4:has(>.stat){grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:14px 12px}.stat .n{font-size:1.65rem}.stat .l{font-size:11px}.stat .stat-title{font-size:12px}.stat .stat-head .ic{display:none}.dashboard-actions{width:100%;gap:8px}.dashboard-actions .btn{flex:1;font-size:13px}.card-head{gap:8px}.card-head h2{font-size:16px}.link-btn{font-size:12px}.list-row{gap:10px}.list-row .body .t{font-size:14px}.list-row .badge{font-size:10px}.rota-toolbar{padding:10px;gap:10px}.rota-modes{width:100%;display:flex}.rota-modes a{flex:1;text-align:center;padding:10px 5px;font-size:12px}.rota-nav{width:auto}.rota-nav .btn{min-height:40px}.rota-toolbar .spacer{display:none}.rota-view{--rota-day-w:128px}.auth-wrap{padding:20px 14px}.auth-brand{padding:24px 24px 16px}.auth-brand-logo{max-width:150px;margin-bottom:14px}.auth-brand-inner h1{font-size:1.6rem}.auth-form-panel{padding:24px}.auth-footer{margin-top:22px}.empty-state{min-height:130px}.impersonation-banner{padding:10px 14px;gap:8px}.topbar-right .user-chip{display:none}.org-switch{max-width:100%}.topbar-left{flex-wrap:wrap}input,select,textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.drawer-close[hidden]{display:none!important}
