/* ============================================================================
   Mirror Monitor - "Principal" idiom, shared with mirror.northlineoffice.com:
   ink navy ground, Newsreader + IBM Plex, ultramarine/periwinkle accents, coral
   for the marks, mint for good. Dark-first. This is the PAID, invite-only sibling
   of Mirror: it re-runs the Mirror scan on a cadence the client picks and tracks
   the grade drift over time.
   ========================================================================== */
:root{
  --ink:#101826; --panel:#161E31; --panel-2:#1B2440; --well:#0C1220;
  --hair:rgba(140,157,255,.16); --hair-2:rgba(140,157,255,.30);
  --cream:#FAF8F4; --dim:rgba(250,248,244,.66); --faint:rgba(250,248,244,.56);
  --ultra:#2E4BE6; --peri:#8C9DFF; --coral:#FF5C7A;
  --good:#5ee5b0; --warn:#ffcf6b;
  --r:18px; --r-sm:10px;
  --serif:'Newsreader',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--ink);color:var(--cream);font-family:var(--sans);line-height:1.5;
  -webkit-font-smoothing:antialiased;padding:0 0 80px}
.wrap{max-width:1000px;margin:0 auto;padding:0 26px}
a{color:var(--peri)}

/* header */
header.site{max-width:1000px;margin:0 auto;padding:26px 26px 0;display:flex;align-items:baseline;justify-content:space-between}
.wordmark{font-family:var(--serif);font-size:21px;font-weight:500;text-decoration:none;color:var(--cream)}
.wordmark i{font-style:italic;color:var(--peri)}
header.site nav a{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-decoration:none;color:var(--dim);margin-left:18px}

/* the tool, at the very top */
.tool{max-width:1000px;margin:30px auto 0;padding:0 26px}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--peri);margin:0 0 12px;
  display:flex;align-items:center;gap:10px}
.kicker .mm{color:var(--faint)}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5vw,50px);line-height:1.04;margin:0 0 6px}
.couplet{font-family:var(--serif);font-style:italic;font-weight:300;font-size:19px;color:var(--dim);margin:10px 0 0}
.couplet .r{color:var(--peri)}
.lede{color:var(--dim);font-size:15px;max-width:600px;margin:14px 0 0;line-height:1.5}

/* panels */
.card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);
  padding:22px 24px;box-shadow:0 20px 50px -26px rgba(0,0,0,.6);margin:24px 0 0}
.card h2{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 4px}
.card .sub{color:var(--dim);font-size:13.5px;margin:0 0 16px}

/* the locked / paywall state */
.lock{max-width:1000px;margin:30px auto 0;padding:0 26px}
.lock .panel{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);
  padding:30px 32px;box-shadow:0 20px 50px -26px rgba(0,0,0,.6)}
.lock .badge{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--warn);border:1px solid rgba(255,207,107,.34);border-radius:999px;padding:4px 12px;display:inline-block}
.lock h1{margin:16px 0 8px}
.lock p{color:var(--dim);font-size:15px;max-width:620px;line-height:1.55}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 0}
@media(max-width:640px){.plans{grid-template-columns:1fr}}
.plan{background:var(--well);border:1px solid var(--hair);border-radius:var(--r-sm);padding:20px 22px;display:flex;flex-direction:column}
.plan .pname{font-family:var(--serif);font-size:20px;margin:0 0 2px}
.plan .pprice{font-family:var(--serif);font-size:34px;color:var(--peri);line-height:1;margin:8px 0 2px}
.plan .pprice small{font-size:14px;color:var(--faint)}
.plan ul{list-style:none;padding:0;margin:14px 0 18px;flex:1}
.plan li{font-size:13.5px;color:var(--dim);padding:5px 0 5px 20px;position:relative}
.plan li::before{content:"\2713";position:absolute;left:0;color:var(--good)}

/* buttons */
.cta{background:var(--ultra);color:#fff;font-family:var(--sans);font-weight:600;font-size:15px;border:0;border-radius:11px;
  padding:13px 22px;cursor:pointer;box-shadow:0 10px 26px -12px rgba(46,75,230,.8);text-decoration:none;display:inline-block;text-align:center}
.cta:hover{background:#3a58f0}
.cta[disabled]{opacity:.55;cursor:default}
.cta.ghost{background:transparent;border:1px solid var(--hair-2);color:var(--cream);box-shadow:none}
.cta.ghost:hover{border-color:var(--peri);background:rgba(140,157,255,.08)}

/* text fields (login, setup) */
.field{margin:0 0 14px}
.field label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 7px}
.field input{width:100%;background:var(--well);border:1px solid var(--hair);border-radius:var(--r-sm);color:var(--cream);font-family:var(--sans);font-size:15px;padding:12px 14px}
.field input::placeholder{color:var(--faint)}
.field input:focus{outline:none;border-color:var(--peri);box-shadow:0 0 0 3px rgba(140,157,255,.18)}

/* target + cadence */
.target{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline}
.target .biz{font-family:var(--serif);font-size:26px}
.target .site{font-family:var(--mono);font-size:13px;color:var(--peri)}
.cadence{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 0}
.pill{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
  background:var(--well);border:1px solid var(--hair);border-radius:999px;padding:9px 18px;cursor:pointer;user-select:none}
.pill:hover{border-color:var(--hair-2)}
.pill.on{color:#fff;background:var(--ultra);border-color:transparent;box-shadow:0 8px 20px -10px rgba(46,75,230,.7)}
.next{font-family:var(--mono);font-size:12px;color:var(--faint);margin:14px 0 0}
.next b{color:var(--peri)}
.rowbtns{display:flex;gap:12px;margin:18px 0 0;flex-wrap:wrap}

/* history + drift */
.spark{display:flex;align-items:flex-end;gap:6px;height:96px;margin:8px 0 4px}
.spark .bar{flex:1;min-width:10px;border-radius:4px 4px 0 0;background:var(--peri);position:relative;opacity:.9}
.spark .bar.f{background:var(--coral)} .spark .bar.a{background:var(--good)}
.spark .bar .cap{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:11px;color:var(--dim)}
.hist{width:100%;border-collapse:collapse;margin:8px 0 0;font-size:13.5px}
.hist th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:left;padding:8px 10px;border-bottom:1px solid var(--hair)}
.hist td{padding:10px;border-bottom:1px solid var(--hair);color:var(--dim)}
.hist td .g{font-family:var(--serif);font-size:18px;color:var(--cream)}
.hist td .d.up{color:var(--good)} .hist td .d.down{color:var(--coral)} .hist td .d.flat{color:var(--faint)}
.empty{color:var(--faint);font-size:14px;padding:18px 0}

/* status line */
.status{margin:22px auto 0;max-width:1000px;padding:0 26px}
.status .box{border-radius:var(--r-sm);padding:14px 16px;font-size:14px}
.status .box.info{background:var(--panel-2);border:1px solid var(--hair);color:var(--dim)}
.status .box.wait{background:rgba(255,207,107,.10);border:1px solid rgba(255,207,107,.3);color:var(--warn)}
.status .box.err{background:rgba(255,92,122,.10);border:1px solid rgba(255,92,122,.3);color:#ffb3c1}
.status .box.ok{background:rgba(94,229,176,.10);border:1px solid rgba(94,229,176,.3);color:var(--good)}

/* confirm page */
.confirm{max-width:720px;margin:60px auto 0;padding:0 26px;text-align:center}
.confirm .mark{font-family:var(--serif);font-size:60px;color:var(--good);line-height:1}
.confirm h1{margin:14px 0 8px}
.confirm p{color:var(--dim);font-size:15px;line-height:1.6}
.confirm .keybox{background:var(--well);border:1px solid var(--hair-2);border-radius:var(--r-sm);
  padding:16px 18px;margin:22px 0;font-family:var(--mono);font-size:13px;color:var(--peri);word-break:break-all}

.foot{max-width:1000px;margin:40px auto 0;padding:18px 26px 0;border-top:1px solid var(--hair);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.foot .mk{color:var(--peri)}
