:root{--red: #EC1218;--orange: #FC9C0C;--burgundy: #97000F;--peach: #FFF0DB;--blue: #0266C2;--black: #000000;--dark: #2E2E2E;--grey: #A8A8A8;--wash: #F7F7F7;--white: #FFFFFF;--font: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg: #FFFFFF;--surface: #FFFFFF;--surface-2: #F7F7F7;--surface-3: #FBFAF9;--text: #2E2E2E;--heading: #000000;--muted: rgba(46, 46, 46, .75);--line: #E6E6E6;--input-bg: #FFFFFF;--input-border: #D4D4D4;--peach-soft: #FBF7F2;--ok: #0a7d33;--highlight: #FFF0DB;--highlight-text: #97000F}:root[data-theme=dark]{--bg: #121212;--surface: #1E1E1E;--surface-2: #262626;--surface-3: #242424;--text: #E4E4E4;--heading: #FAFAFA;--muted: rgba(230, 230, 230, .62);--line: #343434;--input-bg: #1C1C1C;--input-border: #454545;--peach-soft: #241c12;--ok: #3ecf6a;--highlight: #3a2d18;--highlight-text: #FFD9A0;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px;line-height:1.55;transition:background .15s ease,color .15s ease}a{color:var(--red)}a:hover{color:var(--burgundy)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}h1,h2,h3{color:var(--heading);margin:0}h1{font-size:36px;font-weight:500;letter-spacing:-.01em;line-height:1.1}h2{font-size:18px;font-weight:700}h3{font-size:15px;font-weight:700}.muted{color:var(--muted)}.small{font-size:12.5px}.topbar{background:var(--black);color:var(--white);position:sticky;top:0;z-index:100}.topbar-inner{max-width:1560px;margin:0 auto;padding:12px 28px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px}.brand{display:flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;font-weight:600;font-size:17px}.brand:hover{color:var(--white)}.brand svg{width:28px;height:28px}.nav{display:flex;gap:22px;flex-wrap:wrap}.nav a{color:var(--white);text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent}.nav a.active{font-weight:700;border-color:var(--red)}.spacer{flex:1}.topbar-search{display:flex;align-items:center;gap:8px;flex:1 1 220px;max-width:560px;height:38px;padding:0 16px;background:#2e2e2e;border:1px solid #3a3a3a;border-radius:999px}.topbar-search svg{color:var(--grey);flex:none}.topbar-search input{flex:1;min-width:0;background:transparent;border:none;color:var(--white);outline:none;font-size:13.5px}.topbar-search input::placeholder{color:var(--grey)}.topbar-search:focus-within{border-color:var(--grey)}.who{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.3}.theme-toggle{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:transparent;color:var(--white);cursor:pointer;flex:none;transition:background .12s ease}.theme-toggle:hover{background:#ffffff1f}.who-id{display:flex;flex-direction:column;min-width:0;max-width:260px}.who-name{color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who-roles{color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:34px;height:34px;border-radius:50%;background:var(--orange);color:var(--black);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.who .linkbtn{color:var(--grey)}.usermenu{position:relative}.usermenu-trigger{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 6px;border-radius:999px;cursor:pointer;color:inherit}.usermenu-trigger:hover{background:#ffffff14}.usermenu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:110;min-width:220px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #00000038;padding:6px;display:flex;flex-direction:column}.usermenu-head{padding:10px 12px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.usermenu-panel [role=menuitem]{text-align:left;background:none;border:none;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--heading)}.usermenu-panel [role=menuitem]:hover{background:var(--surface-2)}.impersonate-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;text-align:center;padding:8px 20px;background:var(--orange);color:var(--black);font-size:13px;box-shadow:0 2px 6px #0000002e}.impersonate-bar .btn.sm.secondary{border-color:var(--black)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.page{max-width:1560px;width:100%;margin:0 auto;padding:36px 28px 64px;flex:1 0 auto}.flood{height:6px;background:linear-gradient(90deg,var(--orange),var(--red) 60%,var(--burgundy))}.hero-media{margin:28px 0 0;max-width:460px;border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:0 16px 50px #00000073;border:1px solid rgba(255,255,255,.12)}.hero-media img,.hero-media video{display:block;width:100%;height:auto}.welcome{max-width:920px;display:flex;flex-direction:column;gap:24px;text-align:center}.welcome-hero{display:flex;flex-direction:column;gap:12px;align-items:center}.welcome-hero h1{font-size:40px}.welcome-hero p{max-width:68ch;margin:0;font-size:15px}.welcome-media{margin:0 auto;max-width:640px;width:100%;border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:0 18px 50px #00000024;border:1px solid var(--line)}.welcome-media img,.welcome-media video{display:block;width:100%;height:auto}.welcome-points{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left}@media (max-width: 680px){.welcome-points{grid-template-columns:1fr}.welcome-hero h1{font-size:30px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border-radius:999px;border:none;background:var(--black);color:var(--white);font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-decoration:none}.btn:hover{background:var(--burgundy);color:var(--white)}.btn:disabled{background:var(--grey);cursor:not-allowed}.btn.secondary{background:var(--surface);color:var(--heading);border:1px solid var(--line)}.btn.secondary:hover{background:var(--surface-2)}.btn.red{background:var(--red)}.btn.success{background:#0a7d33}.btn.success:hover{background:#086628}.btn.sm{min-height:32px;padding:0 12px;font-size:11.5px}.linkbtn{background:none;border:none;padding:0;color:var(--red);cursor:pointer;text-decoration:underline;font-size:inherit}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--heading)}.input,select.input,textarea.input{height:40px;border:1px solid var(--input-border);border-radius:8px;padding:0 12px;background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--text);box-shadow:0 0 0 3px #0000000d}textarea.input{height:auto;padding:10px 12px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.chip.solid{background:var(--black);color:var(--white);border-color:var(--heading)}.chip.peach{background:var(--highlight);color:var(--highlight-text);border-color:var(--highlight)}.chip.red{border-color:var(--red);color:var(--red)}.chip.blue{border-color:var(--blue);color:var(--blue)}.chip.orange{border-color:var(--orange);color:#8a5300}.card{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:22px;box-shadow:0 1px 2px #1018280a}.notice{padding:12px 14px;border-radius:8px;background:var(--highlight);color:var(--highlight-text);font-size:13px}.notice.error{background:#fde7e8;color:var(--burgundy)}.notice.ok{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.stack{display:flex;flex-direction:column;gap:16px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.viewtoggle{display:inline-flex;border:1px solid var(--input-border);border-radius:9px;overflow:hidden;background:var(--surface)}.viewtoggle button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:var(--surface);color:var(--grey);cursor:pointer}.viewtoggle button+button{border-left:1px solid var(--input-border)}.viewtoggle button:hover{color:var(--text);background:var(--surface-2)}.viewtoggle button.on{background:var(--black);color:var(--white)}.appicon{display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff;box-shadow:inset 0 1px #ffffff40,0 2px 6px #1018282e}.applist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 1px 2px #1018280a}.applist-row{display:flex;align-items:center;gap:16px;padding:12px 16px;border-top:1px solid var(--line)}.applist-row:first-child{border-top:none}.applist-row:hover{background:var(--surface-3)}.applist-row.locked{background:var(--surface-2)}.applist-main{flex:1 1 auto;min-width:0}.applist-meta{flex:0 0 auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 720px){.applist-row{flex-wrap:wrap}.applist-meta{width:100%;justify-content:flex-start}}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px #1018280a}.tablewrap.scroll{overflow-y:auto;max-height:60vh}.tablewrap.scroll thead th{position:sticky;top:0;z-index:1}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle;line-height:1.35}tbody tr:last-child td{border-bottom:none}td .small{line-height:1.3}td.num,th.num{text-align:right}tbody tr:hover td{background:var(--surface-3)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}tr.selected td{background:var(--highlight)}.restricted{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:#2e2e2ebf;border:1px dashed var(--grey);border-radius:6px;padding:1px 8px}.login{min-height:100vh;display:flex;flex-wrap:wrap}.login-hero{flex:1 1 480px;background:var(--black);color:var(--white);padding:56px 64px 0;display:flex;flex-direction:column;justify-content:space-between}.login-hero h1{color:var(--white);font-size:52px;line-height:1.04;max-width:14ch}.login-hero p{color:var(--wash);font-size:17px;max-width:44ch}.login-flood{margin:0 -64px;height:10px}.login-form{flex:1 1 420px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;padding:48px 24px}.login-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:36px;display:flex;flex-direction:column;gap:18px}.userpick{display:flex;flex-direction:column;gap:6px}.userpick button{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;text-align:left}.userpick button:hover{border-color:var(--text)}.library{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}.shelves{flex:999 1 640px;min-width:0;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}.bay{border:4px solid transparent;border-bottom-width:0;border-radius:12px 12px 0 0;padding:14px 16px 0;background:linear-gradient(180deg,#FFF8EE,var(--peach)) padding-box,linear-gradient(180deg,#1e1e1e,#000) border-box;min-width:0;box-shadow:0 10px 30px -14px #00000073,inset 0 0 0 1px #ffffff0a;transition:box-shadow .22s ease,transform .22s ease}.bay:hover{box-shadow:0 18px 40px -16px #00000080;transform:translateY(-2px)}.bay.locked{background:linear-gradient(180deg,#fff,var(--wash)) padding-box,linear-gradient(180deg,#2a2a2a,#0a0a0a) border-box}.bay-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px}.plate{background:linear-gradient(180deg,#2a2a2a,#000);color:var(--white);font-size:12.5px;font-weight:700;letter-spacing:.09em;padding:6px 14px;border-radius:6px;text-decoration:none;box-shadow:inset 0 1px #ffffff1f,0 2px 6px #0000004d}.plate:hover{color:var(--white);background:linear-gradient(180deg,var(--burgundy),#6f000b)}.books{position:relative;display:flex;align-items:flex-end;gap:5px;height:214px;padding:0 8px;overflow-x:auto;box-shadow:inset 0 -16px 20px -18px #00000080}.book{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 0;border:none;border-radius:4px 4px 1px 1px;cursor:pointer;transition:transform .16s ease-out,box-shadow .16s ease-out;box-shadow:1.5px 0 3px #00000047,inset 0 2px 4px #ffffff1f}.book:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,#ffffff38,#fff0 28%,#00000024)}.book:hover{transform:translateY(-6px);box-shadow:0 10px 20px -6px #0006}.book .spine{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:82%;z-index:1}.book .band{display:block;height:3px;width:70%;background:currentColor;opacity:.5;z-index:1}.book:hover{transform:translateY(-6px)}.book.selected{transform:translateY(-16px);box-shadow:0 16px 28px -8px #00000073;outline:2px solid var(--burgundy);outline-offset:2px}.book.dim{opacity:.45;filter:grayscale(1)}.book.dragging{opacity:.35;transform:scale(.96)}.book[draggable=true]{cursor:grab}.book[draggable=true]:active{cursor:grabbing}.drag-handle{cursor:grab;color:var(--grey);font-size:15px;line-height:1;padding:2px 4px;border-radius:4px;-webkit-user-select:none;user-select:none}.drag-handle:hover{color:var(--heading);background:#0000000f}.drag-handle:active{cursor:grabbing}.plank{height:12px;background:linear-gradient(180deg,#3a3a3a,#1a1a1a 45%,#000);margin:0 -16px;box-shadow:inset 0 1px #ffffff24,0 6px 10px -5px #00000080;border-radius:0 0 4px 4px}.glass{position:absolute;top:0;right:0;bottom:0;left:0;background:#f7f7f773;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid rgba(168,168,168,.6);border-radius:6px;display:flex;align-items:center;justify-content:center}.addbook{flex:none;align-self:flex-end;height:120px;width:44px;border:2px dashed var(--grey);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--text);text-decoration:none;font-size:22px}.libcard{flex:1 1 280px;max-width:340px;border:1px solid var(--line);border-radius:16px;overflow:hidden;position:sticky;top:16px}.libcard .cover{padding:22px;min-height:120px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px}.libcard .body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:12px}.apphead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;padding-bottom:18px;border-bottom:2px solid var(--heading);margin-bottom:24px}.tile{width:46px;height:46px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:2px solid var(--heading);border-bottom:1px solid var(--line);margin-bottom:24px}.kpi{padding:14px 14px 16px 0}.kpi .v{font-size:28px;font-weight:500;color:var(--heading)}.split{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.split>.main{flex:999 1 560px;min-width:0}.split>.side{flex:1 1 260px;max-width:340px}.nba{border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;grid-template-columns:4px 1fr;gap:4px 14px}.nba .bar{grid-row:1 / span 5;border-radius:2px}.nba-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stat-tile{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:3px;min-width:0;overflow:hidden}.stat-tile .v{font-size:23px;font-weight:700;color:var(--heading);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-tile .k{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.stat-tile.accent{border-left:4px solid var(--sev, var(--line))}.nba-card{border:1px solid var(--line);border-left:5px solid var(--sev, var(--line));border-radius:16px;background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s ease,transform .15s ease}.nba-card:hover{box-shadow:0 10px 28px #00000017;transform:translateY(-1px)}.nba-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.nba-head-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sev-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:999px}.sev-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.nba-acct{font-size:15.5px;font-weight:700;color:var(--heading);padding:0}.nba-acct:hover{text-decoration:underline}.nba-impact-wrap{text-align:right;white-space:nowrap}.nba-impact{font-size:18px;font-weight:700;color:var(--heading)}.nba-impact-label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.nba-body{display:flex;flex-direction:column;gap:6px}.nba-line{margin:0;font-size:13.5px;color:var(--text);line-height:1.45}.nba-k{display:inline-block;min-width:86px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);vertical-align:top}.nba-reco{border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.45}.nba-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;padding-top:10px;border-top:1px dashed var(--line)}.nba-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nba-actions .spacer{margin-left:auto}.nba-useful{display:inline-flex;gap:4px;align-items:center;padding-left:8px;border-left:1px solid var(--line)}.admin{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}.admin-nav{flex:1 1 200px;max-width:230px;display:flex;flex-direction:column;gap:2px}.admin-nav a{padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--heading);display:flex;justify-content:space-between}.admin-nav a.active{background:var(--highlight);color:var(--highlight-text);font-weight:700}.admin-nav a.off{color:var(--grey);pointer-events:none}.nav-group{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.nav-group-heading{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);padding:0 12px;margin-bottom:4px}.admin-main{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:20px}.sec-head{position:relative;display:flex;flex-direction:column;gap:2px}.sec-head-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.sec-head-title{display:flex;align-items:center;gap:8px}.sec-head-title h2{margin:0}.sec-head-action{display:flex;gap:8px;align-items:center;flex-shrink:0}.sec-head-desc{margin:0}@media (max-width: 900px){.sec-head-row{flex-wrap:wrap}.sec-head-action{flex-shrink:1;flex-wrap:wrap;min-width:0;max-width:100%}.sec-head-action .input{min-width:0!important;flex:1 1 180px}}.guide-btn{width:20px;height:20px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--grey);font-size:12px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.guide-btn:hover,.guide-btn[aria-expanded=true]{border-color:var(--burgundy);color:var(--burgundy)}.guide-pop{position:absolute;top:30px;left:0;z-index:20;width:min(380px,90vw);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0000001f;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.guide-close{position:absolute;top:8px;right:10px;border:none;background:none;font-size:18px;line-height:1;color:var(--grey);cursor:pointer}.guide-sec{display:flex;gap:8px;font-size:13px}.guide-k{flex:0 0 42px;font-weight:700;color:var(--burgundy);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}.guide-steps{margin:2px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.sso-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.sso-card{border:1.5px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.sso-card.selected{border-color:var(--burgundy);background:var(--highlight)}.sso-card.soft{opacity:.7}.switch{position:relative;width:42px;height:24px;border-radius:999px;border:none;background:#cfcfcf;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s ease}.switch.on{background:var(--burgundy)}.switch:disabled{opacity:.5;cursor:not-allowed}.switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #00000040;transition:transform .15s ease}.switch.on .switch-knob{transform:translate(18px)}.conn-switch{width:30px;height:17px;box-shadow:inset 0 0 0 1px #0000000a;transition:background .15s ease,box-shadow .15s ease}.conn-switch:hover:not(:disabled){box-shadow:inset 0 0 0 1px #00000014,0 1px 3px #0000001f}.conn-switch .switch-knob{top:2px;left:2px;width:13px;height:13px;box-shadow:0 1px 2px #0003}.conn-switch.on .switch-knob{transform:translate(13px)}.policy-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.policy-row:first-of-type{border-top:none}.role-card{cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.role-card:hover{border-color:var(--burgundy);box-shadow:0 6px 20px #00000014;transform:translateY(-1px)}.tabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tab{background:none;border:none;padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;font-size:13px;font-weight:600;color:var(--grey);display:inline-flex;align-items:center;gap:6px;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--heading)}.tab.active{color:var(--burgundy);border-bottom-color:var(--burgundy)}.tab-count{font-size:11px;background:var(--surface-2);border-radius:999px;padding:1px 7px;color:var(--text)}.tab.active .tab-count{background:var(--highlight);color:var(--highlight-text)}.multiselect{position:relative}.ms-control{width:100%;min-height:40px;display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--input-border);border-radius:8px;padding:8px 12px;background:var(--surface);cursor:pointer;text-align:left;font:inherit}.ms-control:hover{border-color:var(--text)}.ms-control>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-caret{color:var(--grey);flex:none}.ms-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #0000001f;padding:6px;display:flex;flex-direction:column;gap:2px}.ms-option{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:13px}.ms-option:hover{background:var(--surface-2)}.matrix{min-width:1100px}.matrix th.group-head{text-align:center;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--burgundy);font-weight:700;letter-spacing:.02em}th.group-head{text-align:center;background:var(--surface-2);color:var(--burgundy);font-weight:700;border-bottom:1px solid var(--line)}.matrix select{height:32px;border:1px solid var(--input-border);border-radius:6px;padding:0 6px;background:var(--surface);font-size:12.5px}.lvl-none{color:var(--muted)}.lvl-view{color:var(--blue)}.lvl-use{color:var(--heading);font-weight:600}.lvl-admin{color:var(--red);font-weight:700}.drawer{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--surface)}.checks{display:flex;flex-wrap:wrap;gap:8px 16px}.checks label{display:flex;gap:6px;align-items:center;font-size:13px}.checks input{accent-color:var(--red);width:16px;height:16px}.conn-logo{width:40px;height:40px;flex:none;border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;letter-spacing:.02em;box-shadow:inset 0 1px #ffffff40,0 1px 3px #0003}.conn-card{position:relative;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.conn-card:hover{box-shadow:0 6px 20px #1018281a;transform:translateY(-1px)}.card-actions{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.card-actions .icon-row{display:flex;gap:6px;opacity:.7;transition:opacity .15s ease}.conn-card:hover .card-actions .icon-row,.conn-card:focus-within .card-actions .icon-row{opacity:1}.conn-card:hover .card-actions,.conn-card:focus-within .card-actions{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--grey);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease}.icon-btn:hover{background:var(--surface-2);color:var(--text);box-shadow:0 1px 3px #1018281f}.icon-btn.danger:hover{color:var(--red);border-color:var(--red);background:#fff0f0}.flowsteps{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.flowstep{display:inline-flex;align-items:center;gap:6px}.flowstep-arrow{color:var(--grey)}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:700}.stat{padding:14px 0;border-top:1px solid var(--line)}.stat .v{font-size:26px;font-weight:500;color:var(--heading)}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:var(--surface-2);padding:1px 6px;border-radius:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;z-index:200;overflow-y:auto}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:660px;box-shadow:0 24px 64px #00000059}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.modal-close{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--grey);padding:0 4px}.modal-close:hover{color:var(--heading)}.modal-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:16px}.pagination{align-items:center;gap:8px;flex-wrap:wrap;padding:10px 2px 2px}.ptable{border-collapse:separate;border-spacing:0}.ptable thead{position:sticky;top:0;z-index:2}.ptable thead th{background:var(--surface-2)}.ptable th{position:relative}.ptable tbody tr:nth-child(2n){background:#00000006}.ptable tbody tr:hover{background:#0266c20f}.col-resize{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none}.col-resize:hover{background:#0266c2;opacity:.45}.pg-btn{min-width:32px;height:32px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--heading);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}.pg-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--grey)}.pg-btn.active{background:var(--heading);color:var(--bg);border-color:var(--heading)}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.modal--resizable{resize:both;overflow:hidden;display:flex;flex-direction:column;min-width:min(360px,100%);min-height:260px;max-width:98vw;max-height:96vh}.modal--resizable .modal-body{flex:1 1 auto;overflow:auto;min-height:0}.modal--full{width:100%;max-width:100%;height:calc(100vh - 96px);display:flex;flex-direction:column}.modal--full .modal-body{flex:1 1 auto;overflow:auto;min-height:0}@media (max-width: 640px){.page{padding:24px 16px 48px}.shelves{grid-template-columns:minmax(0,1fr)}.login-hero{padding:32px 24px 0}.login-flood{margin:0 -24px}.login-hero h1{font-size:36px}}@media (max-width: 480px){h1{font-size:28px}.topbar-inner{padding:10px 16px;gap:8px 16px}.nav{gap:16px;width:100%;order:3}.who{font-size:12px}.page{padding:20px 14px 44px}.grid{grid-template-columns:minmax(0,1fr)}.libcard{width:100%}.admin{gap:16px}.admin-nav{flex-basis:100%;max-width:none;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px}.admin-nav a{white-space:nowrap}.admin-main{flex-basis:100%}.login-form{padding:24px 16px 40px}.login-card{width:100%}}:root[data-theme=dark] .bay{background:linear-gradient(180deg,var(--peach-soft),var(--highlight)) padding-box,linear-gradient(180deg,#2a2a2a,#000) border-box}:root[data-theme=dark] .bay.locked{background:linear-gradient(180deg,var(--surface),var(--surface-2)) padding-box,linear-gradient(180deg,#2a2a2a,#0a0a0a) border-box}:root[data-theme=dark] .chip.orange{color:var(--highlight-text)}:root[data-theme=dark] .btn:not(.secondary):not(.ghost),:root[data-theme=dark] .viewtoggle button.on,:root[data-theme=dark] .chip.solid{box-shadow:inset 0 0 0 1px var(--input-border)}@media (max-width: 640px){.modal-overlay{padding:24px 8px}.modal--full{height:calc(100vh - 48px)}.modal--resizable{resize:none}}@media (max-width: 480px){.who-id{display:none}}:root[data-theme=dark] th.group-head{color:var(--highlight-text)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) th.group-head{color:var(--highlight-text)}}@media (max-width: 900px){.notif-pop{position:fixed!important;left:16px!important;right:16px!important;top:16px!important;width:auto!important;max-height:calc(100vh - 32px)!important;z-index:200!important}}
