/* EOSI palette (from EOR company.py): brand #E78209 / #BB6907, page #f7f9fa.
   Dark mode = EOR's Graphite tokens with the brand lifted toward white.
   "Device setting" follows prefers-color-scheme; Light / Dark are forced
   through <html data-theme>. */
:root{
  --brand:#E78209; --brand-dark:#BB6907; --on-brand:#ffffff;
  --bg:#f7f9fa; --surface:#ffffff; --surface2:#f8fafc; --ink:#0f172a; --ink2:#334155; --muted:#64748b; --line:#e2e8f0; --input:#ffffff;
  --brand-soft:color-mix(in srgb,var(--brand) 9%,white);
  --red:#b91c1c; --red-soft:#fef2f2; --amber:#92400e; --amber-soft:#fffbeb;
  --green:#047857; --green-soft:#ecfdf5; --chip:#f1f5f9;
  color-scheme:light;
}
@media screen and (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --brand:color-mix(in srgb,#E78209 78%,white); --brand-dark:color-mix(in srgb,#BB6907 80%,white); --on-brand:#1c1c1e;
    --bg:#121212; --surface:#1c1c1e; --surface2:#222224; --ink:#f2f2f3; --ink2:#dcdcde; --muted:#a8a8ad; --line:#333336; --input:#161618;
    --brand-soft:color-mix(in srgb,var(--brand) 12%,#1c1c1e);
    --red:#f87171; --red-soft:#3a1d1d; --amber:#fbbf24; --amber-soft:#33280f;
    --green:#34d399; --green-soft:#0f2e24; --chip:#2a2a2d; color-scheme:dark;
  }
}
@media screen{
  :root[data-theme="dark"]{
    --brand:color-mix(in srgb,#E78209 78%,white); --brand-dark:color-mix(in srgb,#BB6907 80%,white); --on-brand:#1c1c1e;
    --bg:#121212; --surface:#1c1c1e; --surface2:#222224; --ink:#f2f2f3; --ink2:#dcdcde; --muted:#a8a8ad; --line:#333336; --input:#161618;
    --brand-soft:color-mix(in srgb,var(--brand) 12%,#1c1c1e);
    --red:#f87171; --red-soft:#3a1d1d; --amber:#fbbf24; --amber-soft:#33280f;
    --green:#34d399; --green-soft:#0f2e24; --chip:#2a2a2d; color-scheme:dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 "Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.identity-bar{height:4px;background:linear-gradient(90deg,var(--brand),var(--brand-dark))}
header.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
header.top .in{padding:0 24px;height:72px;display:flex;align-items:center;gap:14px}
.mark{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;margin-right:auto}
.mark img{width:36px;height:36px;object-fit:contain}
.mark span{display:flex;flex-direction:column;line-height:1.2}
.mark b{font-size:18px;font-weight:800}
.mark small{font-size:11.5px;color:var(--muted)}
.icon-btn{border:0;background:none;color:var(--muted);border-radius:8px;cursor:pointer;display:grid;place-items:center;padding:6px}
.icon-btn:hover{background:var(--surface2);color:var(--ink)}
.icon-btn.small{width:28px;height:28px;padding:0}
.hamburger{display:none;margin-left:-6px}
/* Shell: sidebar + content, like EOR (264px sidebar, collapses to 76px). */
.shell{display:flex;min-height:calc(100vh - 76px)}
#sidebar{width:264px;flex:none;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;
  position:sticky;top:72px;align-self:flex-start;height:calc(100vh - 72px)}
.drawer-head{display:none}
.nav-head{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 4px}
.nav-title{margin:0;font-size:13.5px;font-weight:600;color:var(--ink2)}
.sidenav{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px}
.sidenav a{display:flex;align-items:center;gap:12px;padding:9px 14px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--muted);text-decoration:none}
.sidenav a:hover{background:var(--surface2);color:var(--ink2)}
.sidenav a.on{background:var(--brand-soft);color:var(--brand)}
.nav-ico{width:20px;display:grid;place-items:center;flex:none}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-group{margin:0;padding:16px 14px 4px;font-size:12px;color:var(--muted)}
body.nav-collapsed #sidebar{width:76px}
body.nav-collapsed .nav-label,body.nav-collapsed .nav-group,body.nav-collapsed .nav-title{display:none}
body.nav-collapsed .sidenav a{justify-content:center;padding-left:0;padding-right:0}
body.nav-collapsed .nav-head{justify-content:center;padding-left:0;padding-right:0}
body.nav-collapsed #nav-collapse svg{transform:rotate(180deg)}
.content{flex:1;min-width:0;max-width:1600px;padding:32px}
#nav-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:40}
@media (max-width:1023px){
  .hamburger{display:grid}
  #sidebar{position:fixed;inset:0 auto 0 0;top:0;height:100%;z-index:50;max-width:85vw;transform:translateX(-100%);transition:transform .2s ease-out}
  #sidebar.open{transform:none}
  .drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);font-size:18px}
  .nav-head{display:none}
  body.nav-collapsed #sidebar{width:264px}
  body.nav-collapsed .nav-label,body.nav-collapsed .nav-group{display:revert}
  body.nav-collapsed .sidenav a{justify-content:flex-start;padding:9px 14px}
  .content{padding:20px 16px 40px}
  header.top .in{padding:0 16px;height:64px}
  .mark small{display:none}
}
@media (prefers-reduced-motion:reduce){#sidebar{transition:none}}
.usermenu{position:relative}
.avatar{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--brand-soft);color:var(--brand);cursor:pointer;font:inherit;font-weight:700}
.menu{position:absolute;right:0;top:42px;width:250px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:20;overflow:hidden}
.menu .who{padding:10px 16px;border-bottom:1px solid var(--line)}
.menu .who b{display:block;font-size:13px}.menu .who span{font-size:11px;color:var(--muted)}
.menu button.item{display:block;width:100%;text-align:left;padding:10px 16px;font:inherit;font-size:13px;color:var(--ink2);background:none;border:0;cursor:pointer}
.menu button.item:hover{background:var(--surface2)}
.appearance{padding:8px 16px 10px;border-bottom:1px solid var(--line)}
.appearance p{margin:0 0 6px;font-size:11px;color:var(--muted)}
.appearance .opts{display:flex;gap:4px}
.appearance-opt{flex:1;padding:6px 4px;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:11.5px;color:var(--ink2);background:transparent;cursor:pointer;line-height:1.2}
.appearance-opt[aria-checked="true"]{border-color:var(--brand);color:var(--brand);font-weight:700;background:color-mix(in srgb,var(--brand) 10%,transparent)}
.wrap{max-width:1040px;margin:0 auto;padding:20px 16px 60px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px}
h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:22px 0 10px}
.sub{color:var(--muted);margin:0 0 16px;font-size:14px}
.head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--muted);font-weight:600}
.scroll{overflow-x:auto}
.empty{color:var(--muted)}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--chip)}
.pill.pending{background:var(--amber-soft);color:var(--amber)}
.pill.active{background:var(--green-soft);color:var(--green)}
.pill.off{background:var(--red-soft);color:var(--red)}
.btn{display:inline-block;border:1px solid var(--brand);background:var(--brand);color:var(--on-brand);padding:9px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.btn.ghost{background:transparent;color:var(--brand)}
.btn.small{padding:5px 10px;font-size:13px}
.btn.block{display:flex;width:100%;justify-content:center}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.google{background:var(--surface);color:var(--ink);border-color:var(--line);display:flex;align-items:center;justify-content:center;gap:10px;width:100%}
.inline{display:inline}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 200px}
label{display:block;font-size:13px;font-weight:600;margin:12px 0 4px}
.req{color:var(--red)}
input,select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--ink);font:inherit}
input:focus,select:focus{border-color:var(--brand);outline:none}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.checks{display:flex;gap:10px;flex-wrap:wrap}.checks label{display:flex;gap:6px;align-items:center;font-weight:400;margin:4px 0}
.checks input{width:auto;accent-color:var(--brand)}
fieldset{border:1px solid var(--line);border-radius:8px;padding:6px 14px 14px;margin:18px 0 0}
legend{font-weight:600;padding:0 6px;font-size:14px}
.hint{color:var(--muted);font-size:12.5px;margin-top:4px}
.flash{border-radius:8px;padding:10px 12px;margin:0 0 14px;font-size:14px}
.flash.error{background:var(--red-soft);color:var(--red)}
.flash.success{background:var(--green-soft);color:var(--green)}
.flash.info{background:var(--brand-soft)}
.narrow{max-width:420px;margin:24px auto 0}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:16px 0}
.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
.who-box{border:1px solid var(--line);background:var(--surface2);border-radius:8px;padding:10px 12px;font-size:14px;margin-bottom:16px}
.who-box span{color:var(--muted)}
.links{margin-top:12px}.links a{color:var(--brand);font-size:13px;text-decoration:none}
.center{text-align:center}
.brandhead{text-align:center;margin-bottom:16px}
.brandhead img{width:44px;height:44px;object-fit:contain}
.brandhead p{margin:4px 0 0;font-size:13px;font-weight:600;color:var(--brand)}
