:root{--page:#f3ede2;--sidebar:#fffdf8;--card:#fffdf8;--topbar:#f6f1e8;--line:#e6ddcd;--hairline:#f0e9dc;--ink:#221d16;--ink-soft:#5f574a;--muted:#8b8172;--faint:#a79d8c;--accent:#f7661d;--accent-soft:#fdeee4;--data-green:#2f9e5f;--data-amber:#c98a12;--data-blue:#2a6fdb;--data-red:#c0392b;--st-pub-bg:#e7f3ea;--st-pub-fg:#2f9e5f;--st-pend-bg:#fdf3e0;--st-pend-fg:#c98a12;--st-back-bg:#fbe9e6;--st-back-fg:#c0553f;--st-deny-bg:#fbe9e6;--st-deny-fg:#c0392b;--espresso:#2a2118;--shadow:0 8px 22px -14px rgba(70,56,34,.35);--font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238b8172' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--page);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .4em;line-height:1.2}h1{font-size:20px;font-weight:900;letter-spacing:-.01em}h2{font-size:15px;font-weight:800}p{margin:0 0 1em}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d5cbb8;border-radius:6px;border:3px solid transparent;background-clip:content-box}.shell{display:flex;min-height:100vh}.sidebar{width:236px;flex:none;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px}.sidebar .logo{height:30px;width:auto;display:block;margin:0 6px 22px}.nav{flex-direction:column;gap:3px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:11px;padding:11px 12px;border-radius:11px;font-size:13.5px;font-weight:700;color:var(--ink-soft);transition:background .15s,color .15s}.nav a:hover{text-decoration:none;background:#f6f0e6}.nav a.router-link-exact-active{background:var(--accent-soft);color:var(--accent)}.nav a svg{width:19px;height:19px;flex:none}.nav a .badge{margin-left:auto;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--line);color:var(--muted)}.nav a.router-link-exact-active .badge{background:var(--accent);color:#fff}.sidebar .userbox{margin-top:auto;gap:11px;padding:12px 8px;border-top:1px solid var(--line)}.avatar,.sidebar .userbox{display:flex;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;flex:none;background:var(--espresso);color:#fff;justify-content:center;font-weight:800;font-size:14px}.userbox .u-name,.userbox .u-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.userbox .u-name{font-size:13px;font-weight:700;color:var(--ink)}.userbox .u-sub{font-size:11px;color:var(--muted)}.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--page)}.topbar{height:70px;flex:none;border-bottom:1px solid var(--line);background:var(--topbar);display:flex;align-items:center;gap:16px;padding:0 26px}.topbar .title{font-size:20px;font-weight:900;letter-spacing:-.01em;color:var(--ink)}.topbar .sub{font-size:12px;color:var(--muted);margin-top:1px}.org-switcher{width:auto;max-width:230px;padding:9px 34px 9px 13px;font-size:13px;font-weight:600}select.select-sm{width:auto;padding:6px 30px 6px 10px;font-size:12.5px;background-position:right 9px center}.content{flex:1;overflow-y:auto;padding:26px}.content-narrow{max-width:860px}.iconbtn{flex:none;background:transparent;border:0;box-shadow:none;padding:7px;border-radius:9px;color:var(--muted);cursor:pointer}.iconbtn:hover{background:#f0e9dc;color:var(--ink);filter:none}.iconbtn svg{width:18px;height:18px;display:block}.hamburger{display:none;flex:none;background:transparent;border:0;box-shadow:none;padding:7px;margin-left:-4px;border-radius:9px;color:var(--ink);cursor:pointer}.hamburger:hover{background:#efe7d9;filter:none}.hamburger svg{width:22px;height:22px;display:block}.scrim{display:none}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table.roster{min-width:460px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}.card+.card{margin-top:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:stretch}.card-grid>.card{margin-top:0;height:100%}a.card{transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease}a.card h2{color:var(--ink);transition:color .15s ease}a.card:hover{text-decoration:none;border-color:#f0cdb0;background-color:#fffaf4;box-shadow:var(--shadow);transform:translateY(-2px)}a.card:hover h2{color:var(--accent)}.section-eyebrow{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}input,select,textarea{width:100%;font:inherit;color:var(--ink);padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fffefb;transition:border-color .15s ease,box-shadow .15s ease}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--faint)}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--line-strong,#d8cdb8)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f7661d26}.color-field{display:flex;align-items:center;gap:8px}.color-field input[type=text]{flex:1;min-width:0;font-family:var(--mono)}.color-swatch{width:42px;height:42px;flex:none;padding:0;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:transparent;box-shadow:none}.color-swatch::-webkit-color-swatch-wrapper{padding:4px}.color-swatch::-webkit-color-swatch{border:none;border-radius:7px}.color-swatch::-moz-color-swatch{border:none;border-radius:7px}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background-image:var(--chevron);background-repeat:no-repeat;background-position:right 11px center}select::-ms-expand{display:none}.btn,button{font-family:var(--font);font-weight:800;font-size:13px;cursor:pointer;padding:10px 16px;border-radius:11px;border:1px solid transparent;background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.03em;box-shadow:0 8px 18px -10px #f7661db3}.btn:hover,button:hover{filter:brightness(.96);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.ghost,button.ghost{background:transparent;color:var(--ink-soft);border-color:var(--line);box-shadow:none;letter-spacing:.02em}button.ghost:hover{background:#f6f0e6;filter:none}button.danger{background:transparent;color:var(--data-red);border-color:#e6c6c1;box-shadow:none}button.danger:hover{background:var(--st-deny-bg);filter:none}button.sm{padding:6px 12px;font-size:11.5px}.pill{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.03em;padding:5px 10px;border-radius:999px;text-transform:uppercase}.pill.ok{background:var(--st-pub-bg);color:var(--st-pub-fg)}.pill.warn{background:var(--st-pend-bg);color:var(--st-pend-fg)}.pill.back{background:var(--st-back-bg);color:var(--st-back-fg)}.pill.role{background:#efe9dd;color:var(--muted)}.filters{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.filters .fp{padding:8px 15px;border-radius:999px;font-size:13px;font-weight:700;background:var(--card);border:1px solid var(--line);color:var(--muted)}.filters .fp.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:800}table.roster{width:100%;border-collapse:collapse}table.roster thead th{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}table.roster tbody td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle;font-size:13.5px}table.roster tbody tr:last-child td{border-bottom:0}.toggle{width:42px;height:25px;border-radius:20px;background:#d8cfbe;position:relative;flex:none;border:0;padding:0;cursor:pointer;box-shadow:none;transition:background .15s}.toggle.on{background:var(--accent)}.toggle .knob{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px #0003}.toggle.on .knob{left:20px}.alert{border-radius:11px;padding:11px 14px;margin-bottom:16px;font-size:13px}.alert.error{background:var(--st-deny-bg);color:var(--data-red)}.alert.ok{background:var(--st-pub-bg);color:var(--st-pub-fg)}.info-band{background:#eef4ee;border:1px solid #cfe3d1;border-radius:14px;padding:15px 18px;display:flex;gap:12px;align-items:flex-start;margin-bottom:20px;font-size:13px;color:#2b3a2c;line-height:1.5}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1000px 560px at 25% -10%,#efe9dd,#e4e0d6)}.auth-card{width:100%;max-width:380px;background:var(--sidebar);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:28px 26px}.auth-card .brandmark{height:34px;margin-bottom:22px;display:block}.center-note{text-align:center}@media(max-width:860px){.hamburger{display:inline-flex}.sidebar{position:fixed;top:0;left:0;z-index:60;height:100vh;width:264px;max-width:82vw;transform:translate(-100%);transition:transform .22s ease;box-shadow:0 20px 60px -20px #28201480}.shell.nav-open .sidebar{transform:translate(0)}.scrim{display:block;position:fixed;inset:0;z-index:50;background:#1c160c66;opacity:0;pointer-events:none;transition:opacity .22s ease}.shell.nav-open .scrim{opacity:1;pointer-events:auto}.topbar{height:60px;padding:0 14px;gap:10px}.topbar .title{font-size:17px}.org-switcher{max-width:150px;font-size:12.5px}.card,.content{padding:16px}.card-grid{grid-template-columns:1fr}}@media(max-width:520px){.topbar .sub{display:none}.org-switcher{max-width:120px}h1{font-size:18px}}
