/*
  PARALLAX CLIENT PORTAL — design system
  Source: website palette (index.html :root) — exact tokens, no invention.
  Enterprise UI rules: no emoji icons; inline Feather-style stroke SVGs;
  sticky sidebar; docket-style mono metadata; generous whitespace.
*/
:root{
  --bg:#F7F5F0; --ink:#101828; --muted:#45566B; --faint:#7A8798;
  --accent:#3D5A80; --accent-ink:#2E4767; --hairline:#DCD8CE; --card:#FFFFFF;
  --serif:Georgia,'Iowan Old Style','Palatino Linotype',Palatino,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:'SFMono-Regular',ui-monospace,Menlo,Consolas,'Liberation Mono',monospace;
  --ok:#2F7A4D; --warn:#8B5E17; --danger:#8B2E2E;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);
     font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-ink)}
.mono{font-family:var(--mono)}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ── layout ─────────────────────────────────────────────── */
.shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:40;background:rgba(247,245,240,.94);
        backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}
.topbar-inner{max-width:1200px;margin:0 auto;padding:0 32px;height:64px;
              display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;flex-direction:column;line-height:1}
.brand-top{font-family:var(--mono);font-weight:700;font-size:1rem;
           letter-spacing:.24em;color:var(--accent)}
.brand-sub{font-family:var(--mono);font-size:.5rem;letter-spacing:.17em;
           color:var(--ink);margin-top:5px}
.topnav{display:flex;align-items:center;gap:6px}
.topnav a{font-family:var(--sans);font-size:.8rem;color:var(--muted);
          padding:8px 14px;border-radius:3px}
.topnav a:hover{color:var(--ink);background:#EEF2F7}
.topnav a.active{color:var(--accent-ink);background:#E7EDF4;font-weight:600}
.userchip{display:flex;align-items:center;gap:12px;font-family:var(--sans);
          font-size:.78rem;color:var(--muted)}
.userchip .avatar{width:30px;height:30px;border-radius:50%;background:var(--ink);
                  color:var(--bg);display:inline-flex;align-items:center;justify-content:center;
                  font-family:var(--mono);font-size:.7rem;font-weight:700}
.userchip a{color:var(--muted)}
.userchip a:hover{color:var(--ink)}
.wrap{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:40px 32px 64px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;
          gap:24px;margin-bottom:32px;flex-wrap:wrap}
.kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;
        text-transform:uppercase;color:var(--accent);display:block;margin-bottom:10px}
h1{font-family:var(--serif);font-weight:400;font-size:2rem;letter-spacing:-.01em}
.lede{font-family:var(--sans);color:var(--muted);font-size:.92rem;max-width:64ch;margin-top:8px}

/* ── alerts ─────────────────────────────────────────────── */
.alert{display:flex;gap:12px;align-items:flex-start;font-family:var(--sans);
       font-size:.85rem;padding:14px 18px;margin-bottom:26px;border:1px solid var(--hairline)}
.alert.ok{background:#F0F5F1;border-color:#CFE0D4;color:var(--ok)}
.alert.err{background:#F9F1F1;border-color:#E5C9C9;color:var(--danger)}
.alert .icon{flex:0 0 auto;margin-top:1px}

/* ── stat cards ─────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0 34px}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.stats{grid-template-columns:1fr}}
.stat{background:var(--card);border:1px solid var(--hairline);padding:20px 22px;
      display:flex;gap:16px;align-items:center}
.stat .icon{color:var(--accent);flex:0 0 auto}
.stat .num{font-family:var(--serif);font-size:1.9rem;line-height:1.1}
.stat .lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;
           text-transform:uppercase;color:var(--faint);margin-top:4px}
.stat.alertable{border-left:3px solid var(--warn)}

/* ── panels / cards ─────────────────────────────────────── */
.panel{background:var(--card);border:1px solid var(--hairline);margin-bottom:26px}
.panel-head{display:flex;align-items:center;justify-content:space-between;
            gap:16px;padding:18px 24px;border-bottom:1px solid var(--hairline)}
.panel-title{font-family:var(--sans);font-weight:600;font-size:.82rem;
             letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
             display:flex;align-items:center;gap:10px}
.panel-title .icon{color:var(--accent)}
.panel-body{padding:22px 24px}
.panel-sub{font-family:var(--sans);font-size:.78rem;color:var(--faint);
           font-weight:400;letter-spacing:0;text-transform:none}

/* ── tables ─────────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.85rem}
th{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
   text-align:left;padding:8px 12px;border-bottom:1px solid var(--hairline);font-weight:600}
td{padding:12px;border-bottom:1px solid var(--hairline);color:var(--muted);vertical-align:middle}
tr:last-child td{border-bottom:none}
td:first-child{color:var(--ink)}
tbody tr:hover{background:#FBFAF7}

/* ── forms ──────────────────────────────────────────────── */
label{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;
      text-transform:uppercase;color:var(--faint);margin-bottom:6px}
input[type=text],input[type=email],input[type=password],select,textarea{
  font-family:var(--sans);font-size:.88rem;color:var(--ink);background:#fff;
  border:1px solid var(--hairline);padding:10px 14px;width:100%;max-width:380px}
input:focus,select:focus,textarea:focus{outline:2px solid #B9C8DA;outline-offset:-1px;
  border-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--mono);
     font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
     padding:11px 20px;background:var(--ink);color:var(--bg);border:1px solid var(--ink);
     cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:#EEF2F7}
.btn.sm{padding:7px 12px;font-size:.64rem}
.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}
.btn.danger:hover{background:var(--danger);color:#fff}
.btn[disabled]{opacity:.5;cursor:not-allowed}
form.inline{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
form.inline input,form.inline select{width:auto;min-width:160px}

/* ── badges & tags ──────────────────────────────────────── */
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);
     font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
     border:1px solid var(--hairline);padding:4px 9px;background:var(--bg)}
.tag.ok{color:var(--ok);border-color:#CFE0D4;background:#F0F5F1}
.tag.warn{color:var(--warn);border-color:#E8DAC0;background:#F8F3E9}
.tag.new{color:var(--accent);border-color:var(--accent)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--faint);display:inline-block}
.dot.ok{background:var(--ok)} .dot.warn{background:var(--warn)} .dot.new{background:var(--accent)}
.empty{font-family:var(--sans);font-size:.85rem;color:var(--faint);font-style:italic;padding:14px 0}
.sha{font-family:var(--mono);font-size:.68rem;color:var(--faint)}

/* ── matter cards (client view) ─────────────────────────── */
.matter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:760px){.matter-grid{grid-template-columns:1fr}}
.mcard{background:var(--card);border:1px solid var(--hairline);padding:24px 26px;
       display:block;color:var(--ink);position:relative;transition:border-color .15s}
.mcard:hover{border-color:var(--accent)}
.mcard .code{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:var(--accent)}
.mcard h3{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin:8px 0 6px}
.mcard .meta{font-family:var(--sans);font-size:.78rem;color:var(--muted)}
.mcard .go{position:absolute;top:22px;right:22px;color:var(--accent);opacity:.45}
.mcard:hover .go{opacity:1}

/* ── footer ─────────────────────────────────────────────── */
.foot{border-top:1px solid var(--hairline);padding:22px 32px;text-align:center;
      font-family:var(--sans);font-size:.7rem;color:var(--faint)}