/* ============================================================
   REACH CLIPPER — design system (glass.css)
   Recolored to the Reach brand: white base, blue accents, Inter.
   (was dark visionOS glass; same structure/selectors, light tokens.)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{
  --bg:#ffffff;
  --bg-soft:#f6f8fc;
  --glass:rgba(255,255,255,.68);  /* frosted translucent cards — orbs bleed THROUGH */
  --glass2:rgba(255,255,255,.5);  /* subtle fills: hover, avatar, ghost buttons */
  --glass-rim:rgba(255,255,255,.6);/* light rim that catches the light (vs a drawn box) */
  --stroke:#e7ebf2;               /* borders (--line) */
  --stroke-soft:#eef1f6;          /* lighter borders */
  --flat:#f6f8fc;                 /* big flat containers / chart areas */
  --ink:#0b1220;
  --text:#0b1220;                 /* primary text = ink */
  --ink-soft:#3d4759;
  --muted:#6b7587;                /* --ink-dim */
  --faint:#9aa3b4;                /* --ink-faint */
  --line:#e7ebf2;
  --blue:#2f6bff; --blue-2:#5b8cff; --blue-hover:#1f5af0;
  --blue-soft:#eaf0ff; --blue-border:#cfdcff;
  --green:#15b86b; --violet:#8b5cf6;
  --approve:#15b86b;              /* approve = green */
  --reject:#e24b4a;               /* reject = red */
  --pearl:#3d4759;                /* neutral emphasis (was near-white) */
  --live:#f0384b;                 /* live pulse */
  --r-card:20px; --r-pill:999px; --r-btn:15px;
  --pad:16px;
  --blur:saturate(140%) blur(20px);
  --blur-heavy:saturate(140%) blur(28px);
  --shadow:0 4px 12px rgba(11,18,32,.06), 0 12px 32px rgba(11,18,32,.10), 0 2px 10px rgba(47,107,255,.05), inset 0 1px 0 rgba(255,255,255,.6);
  --mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,monospace;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:linear-gradient(180deg,#eaf0fb 0%,#dfe7f5 100%) fixed;min-height:100dvh;
  color:var(--text);font-family:var(--sans);padding-top:env(safe-area-inset-top)}
/* big, strong blue/violet/cyan orbs behind content (z-index:-1) — the COLOR the frosted glass
   sits over. They pool behind the card lanes, not just corners. The opaque dark editor/.stage
   covers them, so no orbs/glass on the editor. */
body::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 52% at 22% 16%, rgba(47,107,255,.32), transparent 72%),
    radial-gradient(56% 50% at 84% 26%, rgba(139,92,246,.30), transparent 72%),
    radial-gradient(54% 48% at 50% 90%, rgba(34,178,255,.27), transparent 72%),
    radial-gradient(48% 44% at 70% 60%, rgba(47,107,255,.21), transparent 74%);
  filter:blur(100px)}
button{font-family:var(--sans);border:0;background:none;color:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
input,select{font-family:var(--sans);background:#fff;border:1px solid var(--line);
  color:var(--ink);border-radius:12px;padding:11px 13px;font-size:15px;outline:none;width:100%}
input:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
input::placeholder{color:var(--faint)}
::-webkit-scrollbar{width:0;height:0}

/* ---------- surfaces ---------- */
.glass{background:var(--glass);border:1px solid var(--glass-rim);border-radius:var(--r-card);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow)}
.glass-pill{background:var(--glass);border:1px solid var(--glass-rim);border-radius:var(--r-pill);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow)}
.flat{background:rgba(255,255,255,.45);border:1px solid var(--glass-rim);border-radius:var(--r-card);
  -webkit-backdrop-filter:saturate(130%) blur(14px);backdrop-filter:saturate(130%) blur(14px)}
@supports not (backdrop-filter:blur(1px)){
  .glass,.glass-pill,.flat,.sheet,.popover{background:rgba(255,255,255,.95)}}
@media (prefers-reduced-transparency:reduce){
  .glass,.glass-pill,.sheet,.popover{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* ---------- app frame ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:14px var(--pad) 10px;max-width:1180px;margin:0 auto}
.topbar h1{font-size:26px;font-weight:800;letter-spacing:-.02em}
.topbar .sub{font-family:var(--mono);font-size:12px;color:var(--faint);margin-left:10px}
.topbar-right{display:flex;gap:10px;align-items:center}
.nav{display:flex;gap:4px;padding:4px;margin:0 auto 14px;max-width:fit-content}
.nav a{padding:9px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:700;color:var(--muted)}
.nav a.active{background:var(--blue-soft);color:var(--blue)}
main{max-width:1180px;margin:0 auto;padding:0 var(--pad) 90px}

/* live + chips */
.chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:700}
.dot{width:8px;height:8px;border-radius:50%;background:var(--live);
  animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--glass2);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;color:var(--blue);cursor:pointer}

/* ---------- cards & tiles ---------- */
.card{padding:16px}
.kicker{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px}
.tile{padding:16px 18px}
.tile .v{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:-.02em}
.tile .v.good{color:var(--approve)} .tile .v.warn{color:var(--ink-soft)} .tile .v.bad{color:var(--reject)}
.tile .l{font-size:12.5px;color:var(--muted);margin-top:4px}
.tile a{color:var(--blue);font-weight:700}

/* grids */
.grid{display:grid;gap:12px}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:760px){.cols-3,.cols-2{grid-template-columns:1fr}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:var(--r-btn);font-size:15px;font-weight:800;color:var(--ink);
  background:var(--glass2);border:1px solid var(--line);transition:transform .08s,background .12s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--blue);color:#fff;border:0}
.btn-primary:hover{background:var(--blue-hover)}
.btn-approve{background:var(--approve);color:#fff;border:0}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:11px}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ---------- sheets & popovers ---------- */
.veil{position:fixed;inset:0;background:rgba(11,18,32,.35);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .2s;z-index:40}
.veil.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:50%;transform:translate(-50%,108%);bottom:10px;z-index:41;
  width:calc(100% - 20px);max-width:560px;
  background:rgba(255,255,255,.82);border:1px solid var(--glass-rim);border-radius:26px;
  -webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy);
  padding:10px var(--pad) calc(18px + env(safe-area-inset-bottom));
  box-shadow:0 30px 80px -24px rgba(11,18,32,.22), inset 0 1px 0 rgba(255,255,255,.7);
  transition:transform .28s cubic-bezier(.32,.72,.27,1);max-height:84dvh;overflow-y:auto}
.sheet.open{transform:translate(-50%,0)}
.sheet .grab{width:38px;height:5px;border-radius:3px;background:var(--line);margin:2px auto 14px}
.sheet h3{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}
.sheet .sub{font-size:13px;color:var(--muted);margin-bottom:14px}
.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:45;min-width:230px;
  background:rgba(255,255,255,.85);border:1px solid var(--glass-rim);border-radius:18px;
  -webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy);
  box-shadow:0 24px 60px -20px rgba(11,18,32,.18), inset 0 1px 0 rgba(255,255,255,.7);padding:6px;display:none}
.popover.open{display:block}
.popover a,.popover button{display:flex;width:100%;align-items:center;gap:11px;
  padding:12px 13px;border-radius:12px;font-size:14.5px;font-weight:600;text-align:left}
.popover a:active,.popover button:active{background:var(--glass2)}
.popover .sep{height:1px;background:var(--stroke-soft);margin:5px 8px}

/* ---------- list rows ---------- */
.rows{overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:13px 16px;width:100%;text-align:left;
  border-bottom:1px solid var(--stroke-soft);font-size:15px}
.row:last-child{border-bottom:0}
.row:active{background:var(--glass2)}
.row .thumb{width:46px;height:60px;border-radius:10px;object-fit:cover;background:var(--bg-soft);flex:none}
.row .ttl{flex:1;min-width:0}
.row .ttl b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .ttl span{font-size:12px;color:var(--muted);font-family:var(--mono)}
.status{font-size:10.5px;font-weight:800;letter-spacing:.06em;padding:4px 10px;
  border-radius:var(--r-pill);text-transform:uppercase;flex:none}
.status.pending{background:var(--bg-soft);color:var(--muted)}
.status.approved{background:rgba(21,184,107,.12);color:var(--approve)}
.status.rejected{background:rgba(226,75,74,.12);color:var(--reject)}

/* ---------- toast (dark pill on light app) ---------- */
#toast{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;
  transform:translate(-50%,-180%);z-index:60;transition:transform .25s;
  background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--r-pill);
  padding:11px 22px;font-size:14px;font-weight:700;
  box-shadow:0 14px 40px -16px rgba(11,18,32,.4)}
#toast.show{transform:translate(-50%,0)}

/* ---------- score badge ---------- */
.score{font-family:var(--mono);font-weight:800;font-size:13px}
.score.hi{color:var(--approve)} .score.mid{color:var(--ink-soft)} .score.lo{color:var(--reject)}

/* ---------- empty state ---------- */
.empty{margin:12vh auto 0;max-width:300px;text-align:center}
.empty .glyph{font-size:50px;margin-bottom:12px}
.empty h2{font-size:20px;font-weight:800;margin-bottom:7px}
.empty p{font-size:14px;color:var(--muted);line-height:1.5}

/* ===================== Profile/Settings (slice 1) ===================== */
.rc-danger{color:var(--reject)!important}
.rc-modal-bg{position:fixed;inset:0;z-index:1000;background:rgba(11,18,32,.45);
  backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}
.rc-modal{width:100%;max-width:420px;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r-card);box-shadow:var(--shadow);padding:22px 22px 18px;font-family:var(--sans);color:var(--ink)}
.rc-modal h3{margin:0 0 4px;font-size:19px;letter-spacing:-.02em}
.rc-modal .rc-sub{margin:0 0 16px;color:var(--muted);font-size:14px}
.rc-field{margin-bottom:14px}
.rc-field>label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-bottom:6px}
.rc-field input[type=text],.rc-field input[type=email]{width:100%;padding:11px 13px;border-radius:var(--r-btn);
  border:1px solid var(--line);background:var(--bg-soft);color:var(--ink);font-size:14.5px;font-family:inherit;outline:none}
.rc-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);background:var(--bg)}
.rc-field input:disabled{opacity:.6}
.rc-hint{font-size:12px;color:var(--faint);margin-top:5px}
.rc-msg{font-size:13px;color:var(--green);min-height:16px;margin-top:8px;text-align:right}
.rc-row{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.rc-btn{padding:10px 18px;border-radius:var(--r-btn);border:0;background:var(--blue);color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.rc-btn:hover{background:var(--blue-hover)}
.rc-btn-ghost{padding:10px 16px;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--bg);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer}
.rc-btn-ghost:hover{background:var(--bg-soft)}
.rc-btn-danger{padding:10px 18px;border-radius:var(--r-btn);border:0;background:var(--reject);color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.rc-btn-danger:hover{filter:brightness(.94)}
.rc-avrow{display:flex;align-items:center;gap:14px}
.rc-avbig{width:56px;height:56px;font-size:22px;flex:0 0 auto}
.rc-switch{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink-soft);cursor:pointer}
.rc-switch input{width:18px;height:18px;accent-color:var(--blue);cursor:pointer}

/* ===================== Dark mode (Dashboard Mode = dark) ===================== */
[data-theme="dark"]{
  --bg:#0b1220; --bg-soft:#111a2c; --flat:#111a2c;
  --glass:rgba(22,32,52,.66); --glass2:rgba(30,42,66,.5); --glass-rim:rgba(120,140,180,.22);
  --stroke:#22304a; --stroke-soft:#1a2740; --line:#22304a;
  --ink:#eaf0fb; --text:#eaf0fb; --ink-soft:#b7c2d6; --muted:#8b97ad; --faint:#6b7589; --pearl:#cdd6e6;
  --blue-soft:#16223d; --blue-border:#2b3f66;
  --shadow:0 4px 12px rgba(0,0,0,.35), 0 12px 32px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
}
