/* Futur3 Admin is an app, not a customer-facing website (Cameron, 2026-10-28): it follows design.md's app rules (sections 1 to 14 and 17) with
   the inbox pattern of section 7, and where the rules leave something open it does what the Futur3 Feedback viewer does: the app's greys, one
   Futur3 blue for on / chosen / primary, Inter at the app's sizes, 6 px controls and rows, 4 px chips, 8 px cards, red only on a destructive
   hover, sentence case. */
:root{--win:#161616;--top:#232323;--area:#282828;--pBg:#2b2b2b;--fld:#3a3a3a;--fldHov:#444;--line:#373737;--text:#e6e6e6;--text2:#b8b8b8;--muted:#8a8a8a;
  --accent:#1a73e8;--accentHi:#3b87ec;--outSel:#23426b;--link:#9cc3ff;--danger:#9c3a30;--pH:24px;color-scheme:dark;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:6px;border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background-color:#5a5a5a;}
::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent;}
@supports not selector(::-webkit-scrollbar){ *{scrollbar-color:#4a4a4a transparent;scrollbar-width:thin;} }
*{box-sizing:border-box;} [hidden]{display:none !important;}
html,body{margin:0;height:100%;background:var(--win);color:var(--text);font:12px/1.35 Inter,"Segoe UI",Roboto,system-ui,sans-serif;font-synthesis:none;hyphens:manual;-webkit-text-size-adjust:100%;}
button,input,select{font:inherit;color:inherit;}
.gbtn{color-scheme:light;} /* (Google's button is a light page in a frame: matching schemes keep it from getting a white backdrop) */
#page{display:flex;flex-direction:column;height:100%;}
.btn{min-height:var(--pH);padding:0 12px;border:0;border-radius:6px;background:var(--fld);color:#e2e2e2;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.btn:hover{background:var(--fldHov);color:#fff;} .btn:active{background:var(--accent);} .btn:disabled{opacity:.4;cursor:default;}
.btn.danger:hover,.btn.danger.armed{background:var(--danger);color:#fff;} /* red only at the moment of risk */
.fld{min-height:var(--pH);background:var(--fld);border:1px solid transparent;border-radius:6px;padding:0 8px;font-size:11px;color:#e8e8e8;width:100%;}
.fld:hover{background:var(--fldHov);} .fld:focus{outline:0;background:var(--fld);border-color:var(--accent);}
.fld.sel{width:auto;max-width:200px;min-height:22px;background:#3d3d3d;}
.muted{color:var(--muted);}
/* the top bar */
header{height:30px;flex:none;display:flex;align-items:center;gap:6px;padding:0 6px 0 10px;background:var(--top);}
header h1{font-size:12px;font-weight:600;margin:0;display:flex;align-items:center;gap:6px;color:var(--text);}
.mark{height:18px;width:auto;display:block;}
header .grow{flex:1;} header .who{font-size:11px;overflow-wrap:anywhere;}
header .btn{min-height:22px;background:#3d3d3d;} header .btn:hover{background:#4a4a4a;}
.tag{font-size:10.5px;font-weight:600;padding:0 6px;border-radius:4px;background:var(--fld);color:var(--text2);line-height:16px;}
main{flex:1;display:flex;min-height:0;position:relative;}
.gate{max-width:360px;margin:48px auto;background:var(--pBg);border-radius:8px;padding:16px;text-align:center;align-self:flex-start;}
.gate h2{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text);}
.read{font-size:13px;line-height:1.55;color:var(--text2);margin:0 0 12px;}
.gbtn{display:flex;justify-content:center;min-height:40px;margin:0 0 8px;}
.note,.status{color:var(--text2);font-size:11px;min-height:14px;margin:0;}
.status.err,.note.err{color:var(--text);font-weight:600;} .status.err::before,.note.err::before{content:"Error: ";}
.split{flex:1;display:flex;min-width:0;min-height:0;}
/* the left pane: an inbox (design.md 7, Inbox lists) */
#side{width:330px;flex:none;display:flex;flex-direction:column;background:var(--area);border-right:1px solid #111;min-height:0;}
#filters{padding:14px 12px 10px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line);}
.ibx-hd{display:flex;align-items:flex-start;gap:8px;} .ibx-t{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
.ibx-t h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;color:#fff;}
.ibx-act{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--link);font-size:11px;cursor:pointer;padding:3px 0;min-height:24px;}
.ibx-act:hover{text-decoration:underline;}
.ibx-sub{font-size:11px;color:var(--muted);margin-top:-6px;}
.ibx-tabs{display:flex;gap:2px;padding:3px;border-radius:8px;background:#1f1f1f;}
.ibx-tabs button{flex:1;min-height:26px;border:0;border-radius:6px;background:none;color:var(--text2);font-size:11.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;}
.ibx-tabs button:hover{color:#fff;} .ibx-tabs button.on{background:var(--fld);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.4);}
.ibx-n{font-size:10.5px;font-weight:600;padding:0 6px;border-radius:9px;background:var(--fld);color:var(--text2);font-variant-numeric:tabular-nums;line-height:16px;}
.ibx-n.hot{background:rgba(26,115,232,.18);color:var(--link);} .ibx-tabs button.on .ibx-n{background:#4a4a4a;color:#fff;} .ibx-tabs button.on .ibx-n.hot{background:rgba(26,115,232,.18);color:var(--link);} /* the tint stays on the chosen segment while someone is waiting */
#list{flex:1;overflow:auto;min-height:0;padding:4px 6px 12px;}
.rows{list-style:none;margin:0;padding:0;}
.rows .sep{height:1px;background:var(--line);opacity:.6;margin:0 8px;}
.row-i{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:0;background:none;padding:10px 8px;border-radius:6px;cursor:pointer;color:inherit;position:relative;}
.row-i:hover{background:#303030;} .row-i.on{background:var(--outSel);}
.ibx-av{position:relative;flex:none;width:34px;height:34px;}
.av{width:34px;height:34px;border-radius:50%;background:#4a4a4a;color:#fff;font-size:11.5px;font-weight:600;display:grid;place-items:center;}
.ibx-ty{position:absolute;right:-4px;bottom:-4px;width:19px;height:19px;border-radius:50%;background:var(--fld);box-shadow:0 0 0 2px var(--area);display:grid;place-items:center;color:var(--link);font-size:10px;font-weight:600;}
.row-i.on .ibx-ty{box-shadow:0 0 0 2px var(--outSel);}
.ibx-b{flex:1;min-width:0;}
.ibx-l1{display:flex;align-items:baseline;gap:8px;} .ibx-l1 b{font-size:12.5px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.ibx-l1 time{margin-left:auto;flex:none;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;}
.ibx-l2{margin-top:2px;font-size:12px;line-height:1.4;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ibx-l3{margin-top:5px;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:10.5px;color:var(--muted);align-items:center;font-variant-numeric:tabular-nums;}
.ibx-dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--accent);} /* Futur3 blue: waiting for you */
.empty{padding:24px 12px;color:var(--muted);text-align:center;}
/* the centre pane: the chosen person (or the activity log) */
#detail{flex:1;overflow:auto;min-width:0;position:relative;}
.wrap{max-width:1180px;margin:0 auto;padding:14px 20px 60px;}
.dh{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;}
.dh h2{margin:0;font-size:16px;font-weight:600;flex:1;min-width:200px;line-height:1.3;overflow-wrap:anywhere;color:var(--text);}
.dh .acts{display:flex;gap:4px;flex-wrap:wrap;}
.back{display:none;}
.meta{display:flex;gap:4px 14px;flex-wrap:wrap;color:var(--text2);font-size:11px;margin:6px 0 12px;font-variant-numeric:tabular-nums;}
.card{background:var(--pBg);border-radius:8px;padding:9.5px 13px;margin-bottom:10px;}
.card h3{margin:0 0 6px;font-size:11.5px;font-weight:600;color:#ececec;display:flex;align-items:center;gap:8px;}
.card h3 .muted{font-weight:400;font-size:11px;}
.logrow{border-left:2px solid var(--line);padding:2px 0 8px 10px;margin-left:4px;}
.logrow b{font-weight:600;color:var(--text);} .logrow .muted{font-size:10.5px;font-variant-numeric:tabular-nums;display:block;}
.hint{color:var(--muted);margin:0 0 10px;}
/* waiting (design.md 12): a see-through cover over the part being changed, a present-tense line and a spinner, until it's done */
.wait{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(16,16,16,.62);color:#e6e6e6;font-size:12px;border-radius:inherit;animation:waitIn .15s ease-out;padding:13px;text-align:center;}
.wait i{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);animation:spin .8s linear infinite;}
@keyframes waitIn{from{opacity:0}to{opacity:1}} @keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.wait{animation:none;} .wait i{animation-duration:2.4s;}}
/* a phone: the list first, a tap opens the person, a back control returns (nothing scrolls sideways) */
@media (max-width:820px){
  #side{width:100%;border-right:0;} #detail{display:none;}
  .split.open #side{display:none;} .split.open #detail{display:block;}
  .back{display:inline-flex;} .wrap{padding:10px 12px 48px;} header .who{display:none;} .fld.sel{max-width:120px;}
}

/* the apps across the top (one tab each), the sections under them (Dashboard, Users, Traffic) */
.apptabs{display:flex;gap:2px;padding:4px 6px 0;background:#1c1c1c;flex:none;}
.apptab{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 12px;border:0;border-radius:4px 4px 0 0;background:none;color:var(--text2);font-size:11.5px;font-weight:500;cursor:pointer;}
.apptab:hover{color:#fff;} .apptab.on{background:var(--area);color:#fff;}
.apptab img{display:block;height:15px;width:auto;}
.sectionbar{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 10px;background:var(--area);border-bottom:1px solid #111;}
.sectionbar .ibx-tabs{display:inline-flex;} .sectionbar .ibx-tabs button{padding:0 14px;} .sectionbar .grow{flex:1;}
.sectionbar .status{margin:0;}
.view{flex:1;min-width:0;min-height:0;}
#v-dash,#v-traffic{overflow:auto;}
.sec{margin-bottom:10px;}
.sec h3 .tag{font-weight:600;} .tag.off{background:none;color:var(--muted);border:1px solid var(--line);line-height:14px;}
.scores{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:6px 0 8px;}
.score{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;background:var(--area);border:0;border-radius:6px;padding:8px 10px;color:inherit;text-decoration:none;font:inherit;}
button.score,a.score{cursor:pointer;} button.score:hover,a.score:hover{background:#303030;}
.score-l{font-size:11px;color:var(--text2);} .score-v{font-size:16px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;} .score-v.none{color:var(--muted);} .score-h{font-size:10.5px;color:var(--muted);}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.tile{background:var(--area);border-radius:6px;padding:8px 10px;}
.chart svg{display:block;width:100%;height:84px;margin-top:6px;} .chart .line{fill:none;stroke:var(--text2);stroke-width:1.5;vector-effect:non-scaling-stroke;} .chart .area{fill:rgba(255,255,255,.06);stroke:none;}
.axis{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;}
.nodata{color:var(--muted);font-size:11px;margin:4px 0 0;}
@media (max-width:820px){.tiles{grid-template-columns:1fr;}}
