/* Meriin team app — design system. Tokens first: light by default, dark by system setting or the theme switch. */
:root{
  --lime:#D6F70A;--navy:#002957;
  --bg:#fbfbfc;--panel:#f4f4f6;--surface:#ffffff;--surface-2:#f6f6f8;--surface-3:#ececf0;--hover:#f0f0f3;
  --border:#e6e6eb;--border-strong:#d3d3db;
  --text:#18181b;--text-2:#3f3f46;--muted:#71717a;--faint:#a1a1aa;
  --accent:#413AEA;--accent-2:#3229d6;--accent-soft:#ededfe;--accent-text:#3a33d6;--on-accent:#ffffff;
  --ok:#16a34a;--ok-soft:#e8f7ee;--mid:#c2410c;--mid-soft:#fff1e6;--bad:#dc2626;--bad-soft:#fdecec;--info:#2563eb;--info-soft:#e9f0fe;--violet:#7c3aed;
  --on-bad:#ffffff;
  --shadow-sm:0 1px 2px rgba(24,24,27,.05);--shadow:0 1px 3px rgba(24,24,27,.06),0 1px 2px rgba(24,24,27,.04);--shadow-lg:0 16px 40px rgba(24,24,27,.16),0 2px 6px rgba(24,24,27,.06);
  --focus:0 0 0 3px rgba(65,58,234,.25);
  --radius:10px;--radius-sm:7px;--side:244px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c0d10;--panel:#0f1014;--surface:#15161b;--surface-2:#1a1b21;--surface-3:#23242c;--hover:#1d1e25;
  --border:#25262e;--border-strong:#33343e;
  --text:#ececf1;--text-2:#c8c8d2;--muted:#8b8b97;--faint:#5f5f6b;
  --accent:#8c86ff;--accent-2:#a29dff;--accent-soft:#22213d;--accent-text:#aaa6ff;--on-accent:#0c0d10;
  --ok:#4ade80;--ok-soft:#10261a;--mid:#fb923c;--mid-soft:#2c1c0e;--bad:#f87171;--bad-soft:#2d1415;--info:#60a5fa;--info-soft:#13213b;--violet:#a78bfa;
  --on-bad:#1a0606;--shadow-sm:none;--shadow:none;--shadow-lg:0 16px 40px rgba(0,0,0,.55);--focus:0 0 0 3px rgba(140,134,255,.32);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0c0d10;--panel:#0f1014;--surface:#15161b;--surface-2:#1a1b21;--surface-3:#23242c;--hover:#1d1e25;
  --border:#25262e;--border-strong:#33343e;
  --text:#ececf1;--text-2:#c8c8d2;--muted:#8b8b97;--faint:#5f5f6b;
  --accent:#8c86ff;--accent-2:#a29dff;--accent-soft:#22213d;--accent-text:#aaa6ff;--on-accent:#0c0d10;
  --ok:#4ade80;--ok-soft:#10261a;--mid:#fb923c;--mid-soft:#2c1c0e;--bad:#f87171;--bad-soft:#2d1415;--info:#60a5fa;--info-soft:#13213b;--violet:#a78bfa;
  --on-bad:#1a0606;--shadow-sm:none;--shadow:none;--shadow-lg:0 16px 40px rgba(0,0,0,.55);--focus:0 0 0 3px rgba(140,134,255,.32);
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--text)}
body{font:13.5px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Tahoma,"Noto Sans Arabic",sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
h1,h2,h3,h4{color:var(--text);letter-spacing:-.011em;font-weight:600}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
code{font-size:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:0 4px}
kbd{font-size:10.5px;background:var(--surface);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0 4px;color:var(--muted);line-height:16px;display:inline-block;min-width:16px;text-align:center}
.kbds{display:inline-flex;gap:3px}
pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;max-height:460px;overflow:auto;color:var(--text-2)}
.icon{flex:none;vertical-align:middle}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.small{font-size:12px}
.bad{color:var(--bad)}
.clip{display:block;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spacer{flex:1}
.sep{width:1px;height:18px;background:var(--border)}
.loading{padding:40px;color:var(--muted)}
.nowrap{white-space:nowrap}

/* ---- controls ---- */
button,a.button{font:inherit;font-weight:500;font-size:13px;border:1px solid transparent;border-radius:var(--radius-sm);padding:5px 11px;cursor:pointer;background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.4;text-decoration:none;white-space:nowrap;min-height:30px}
button:hover,a.button:hover{background:var(--accent-2);text-decoration:none}
button.secondary,a.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
button.secondary:hover,a.button.secondary:hover{background:var(--hover)}
button.ghost{background:transparent;color:var(--text-2)}
button.ghost:hover{background:var(--hover)}
button.danger{background:var(--bad);color:var(--on-bad)}
button.danger:hover{filter:brightness(.94);background:var(--bad)}
button:disabled{opacity:.5;cursor:default}
button.busy{position:relative;color:transparent!important}
button.busy::after{content:"";position:absolute;inset:0;margin:auto;width:13px;height:13px;border:2px solid var(--muted);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.small-btn{padding:2px 8px;font-size:12px;min-height:24px}
.link-btn{background:none;border:0;color:var(--accent-text);padding:0;font-weight:500;min-height:0;font-size:12px}
.link-btn:hover{background:none;text-decoration:underline}
.icon-btn{background:transparent;color:var(--muted);border:1px solid transparent;width:30px;height:30px;padding:0;border-radius:7px;min-height:0}
.icon-btn:hover{background:var(--hover);color:var(--text)}
input,select,textarea{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%;min-height:32px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
input::placeholder,textarea::placeholder{color:var(--faint)}
textarea{min-height:84px;resize:vertical;line-height:1.55}
.invalid{border-color:var(--bad)!important}
.field-error{color:var(--bad);font-size:12px;margin-top:4px}
label{display:block;font-weight:500;font-size:12.5px;margin:12px 0 5px;color:var(--text-2)}
label small{font-weight:400;color:var(--muted)}
label.inline{display:inline-flex;align-items:center;gap:6px;font-weight:400;margin:4px 14px 4px 0;color:var(--text)}
input.check{width:auto;min-height:0;margin:0;accent-color:var(--accent);width:15px;height:15px}
.field{min-width:0}
.field>label{margin-top:10px}
details{margin-top:10px}
summary{cursor:pointer;font-weight:500;color:var(--text-2);padding:4px 0}
summary:hover{color:var(--accent-text)}
label.switch{position:relative;display:inline-block;width:32px;height:18px;margin:0;flex:none}
label.switch input{opacity:0;width:0;height:0;position:absolute;min-height:0}
.slider{position:absolute;inset:0;background:var(--border-strong);border-radius:99px;cursor:pointer;transition:background .15s}
.slider::before{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
label.switch input:checked+.slider{background:var(--accent)}
label.switch input:checked+.slider::before{transform:translateX(14px)}
label.switch input:disabled+.slider{opacity:.5;cursor:default}
label.switch input:focus-visible+.slider{box-shadow:var(--focus)}
.segmented{display:inline-flex;background:var(--surface-3);border-radius:8px;padding:2px;gap:2px;flex-wrap:wrap}
.segmented button{background:transparent;color:var(--muted);border:0;padding:3px 10px;min-height:26px;font-size:12.5px;border-radius:6px}
.segmented button:hover{background:transparent;color:var(--text)}
.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.segmented.sm button{padding:2px 8px;min-height:22px;font-size:12px}
.tag{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:6px;padding:0 6px;font-size:11.5px;line-height:19px;color:var(--text-2);background:var(--surface);white-space:nowrap}
.tag.ok{color:var(--ok);background:var(--ok-soft);border-color:transparent}
.tag.mid{color:var(--mid);background:var(--mid-soft);border-color:transparent}
.tag.bad{color:var(--bad);background:var(--bad-soft);border-color:transparent}
.tag.info{color:var(--info);background:var(--info-soft);border-color:transparent}
.tag.accent{color:var(--accent-text);background:var(--accent-soft);border-color:transparent}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:0 8px;font-size:11.5px;font-weight:500;line-height:19px;background:var(--surface-3);color:var(--text-2);white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.mid{background:var(--mid-soft);color:var(--mid)}
.pill.high{background:var(--bad-soft);color:var(--bad)}
.pill.info{background:var(--info-soft);color:var(--info)}
.pill.low{background:var(--ok-soft);color:var(--ok)}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);border-radius:999px;padding:2px 10px;font-size:12px;text-decoration:none}
.chip:hover{background:var(--hover);text-decoration:none}
.chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:4px 6px;background:var(--surface);min-height:34px;cursor:text}
.chips:focus-within{border-color:var(--accent);box-shadow:var(--focus)}
.chip-item{display:inline-flex;align-items:center;gap:3px;background:var(--surface-3);border-radius:5px;padding:0 2px 0 7px;font-size:12px;line-height:22px}
.chip-x{background:none;border:0;color:var(--muted);padding:0 4px;min-height:0;font-size:14px;line-height:1}
.chip-x:hover{background:none;color:var(--bad)}
.chips-input{border:0;box-shadow:none!important;padding:2px 4px;min-height:24px;flex:1;min-width:120px;width:auto}

/* ---- people ---- */
.avatar{display:inline-grid;place-items:center;border-radius:50%;background:var(--av);color:#fff;font-weight:600;flex:none;letter-spacing:0;line-height:1}
.avatar.square{border-radius:7px}
.person{display:inline-flex;align-items:center;gap:8px;min-width:0}
.person-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.person-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- login: the Meriin brand panel (meriin.com: navy, indigo, lime, the n mark) and the sign-in card ---- */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1fr) minmax(420px,1.1fr);background:var(--bg)}
.login-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:44px 52px;color:#fff;
  background:radial-gradient(760px 460px at 10% -10%,rgba(65,58,234,.55),transparent 70%),linear-gradient(160deg,var(--navy) 0%,#001b3d 100%)}
.login-logo{position:relative;z-index:1;display:block;align-self:flex-start;height:34px;width:auto}
.login-pitch{position:relative;z-index:1;max-width:460px}
.login-kicker{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#acc4ff}
.login-kicker::before{content:"";width:22px;height:4px;border-radius:2px;background:var(--lime)}
.login-pitch h2{margin:0 0 16px;color:#fff;font-size:36px;line-height:1.12;font-weight:700;letter-spacing:-.025em}
.login-pitch p{margin:0;color:rgba(255,255,255,.74);font-size:15px;line-height:1.6}
.login-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.login-points li{position:relative;padding-left:24px;color:rgba(255,255,255,.88);font-size:14px;line-height:1.5}
.login-points li::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;border-radius:2px;background:var(--lime)}
.login-foot{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.5);font-size:12px;letter-spacing:.06em}
.login-mark{position:absolute;right:-72px;bottom:-64px;width:320px;height:auto;opacity:.09;pointer-events:none}
.login-main{display:grid;place-items:center;padding:40px 24px}
.login-card{width:100%;max-width:380px}
.login-card h1{margin:0 0 6px;font-size:26px;font-weight:700;letter-spacing:-.02em}
.login-lead{margin:0 0 24px;color:var(--muted);font-size:14px}
a.button.google-btn{width:100%;gap:10px;padding:10px 14px;margin:0 0 18px;font-size:14px;font-weight:600;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;min-height:46px;box-shadow:var(--shadow-sm)}
a.button.google-btn:hover{background:var(--hover);border-color:var(--accent)}
a.button.google-btn img{width:18px;height:18px}
.login-note{margin:0 0 18px;color:var(--muted);font-size:12.5px;line-height:1.55}
.login-help{padding-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:12.5px}
.login-help p{margin:0 0 4px}
@media (max-width:820px){
  .login-wrap{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .login-brand{padding:28px 24px 32px;gap:24px}
  .login-pitch h2{font-size:25px}
  .login-mark{width:190px;right:-48px;bottom:-48px}
  .login-foot,.login-points{display:none}
}

/* ---- shell: fixed sidebar, content area with a top bar ---- */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
nav.side{background:var(--panel);border-right:1px solid var(--border);padding:10px 8px;display:flex;flex-direction:column;gap:1px;position:sticky;top:0;height:100vh;overflow-y:auto}
.side-brand{display:flex;align-items:center;gap:9px;padding:6px 8px 12px;font-size:15px;font-weight:700;letter-spacing:-.3px;color:var(--text);text-decoration:none}
.side-brand:hover{text-decoration:none}
.side-logo{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--navy);color:var(--lime);font-weight:800;font-size:13px}
.side-search{display:flex;align-items:center;gap:8px;width:100%;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:7px;padding:4px 8px;margin:0 0 8px;font-weight:400;justify-content:flex-start;min-height:30px;box-shadow:var(--shadow-sm)}
.side-search:hover{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.side-search .kbds{margin-left:auto}
.side-group{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--faint);padding:14px 8px 4px;letter-spacing:.02em;text-transform:uppercase;background:none;border:0;width:100%;justify-content:flex-start;min-height:0;cursor:pointer}
.side-group:hover{background:none;color:var(--muted)}
.side-group .icon{transition:transform .15s}
.side-group.closed .icon{transform:rotate(-90deg)}
.nav-item{display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:6px;color:var(--text-2);font-size:13px;font-weight:500;text-decoration:none;min-height:30px;border:1px solid transparent}
.nav-item .icon{color:var(--muted)}
.nav-item:hover{background:var(--hover);color:var(--text);text-decoration:none}
.nav-item.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow);border-color:var(--border)}
.nav-item.active .icon{color:var(--accent)}
.nav-item .count{margin-left:auto;font-size:11px;color:var(--muted);font-weight:500}
.nav-item .badge{margin-left:auto;background:var(--accent);color:var(--on-accent);border-radius:99px;padding:0 6px;font-size:10.5px;font-weight:600;line-height:17px}
.side-me{margin-top:auto;padding-top:8px;border-top:1px solid var(--border)}
.me-btn{display:flex;align-items:center;gap:8px;width:100%;background:transparent;color:var(--text);border:0;padding:6px 8px;border-radius:7px;justify-content:flex-start;font-weight:500;min-height:38px}
.me-btn:hover{background:var(--hover)}
.me-btn .person-text{align-items:flex-start}
.column{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:6px;padding:0 24px;height:48px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);min-width:0}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--text);text-decoration:none}
.crumbs .here{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-btn{display:none!important}
main{padding:20px 28px 64px;width:100%;max-width:1320px;outline:none}
main:focus,main:focus-visible{box-shadow:none}
.page-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:4px 0 18px}
.page-title{flex:1;min-width:0;display:flex;gap:12px;align-items:flex-start}
.page-title-text{min-width:0}
.page-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--surface);border:1px solid var(--border);color:var(--accent);flex:none;box-shadow:var(--shadow-sm)}
.page-head h1{font-size:19px;margin:0;line-height:1.3}
.page-head p{margin:2px 0 0;max-width:760px}
.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.page-actions select{width:auto;min-width:200px}
.page-body>*+*{margin-top:16px}
.scrim{display:none}

/* ---- surfaces ---- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}
.card+.card{margin-top:14px}
.card h3{margin:0 0 8px;font-size:13.5px}
.card-head{display:flex;align-items:center;gap:8px;margin:-2px 0 10px}
.card-head h3{margin:0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row h3{margin:0}
.row.nowrap{flex-wrap:nowrap}
.toolbar>input[type=search],.toolbar input[type=search]{flex:1 1 220px;max-width:340px;width:auto}
.toolbar select{width:auto}
.card .list{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;margin:0 -18px -16px}
.card .card-head+.list{margin-top:0}
.set-body>.list{border:0;border-radius:0;box-shadow:none}
.stats+.props,.stats+.facts{margin-top:14px}
.toolbar{gap:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:14px}
.grid.two>.card+.card{margin-top:0}
.stack>*+*{margin-top:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.actions.end{justify-content:flex-end}
.scroll{overflow-x:auto}
.notice{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);background:var(--surface);padding:9px 12px;border-radius:8px;font-size:13px}
.notice.error{color:var(--bad);background:var(--bad-soft);border-color:transparent}
.notice.ok{background:var(--ok-soft);border-color:transparent;color:var(--text)}
.facts,.props{display:grid;grid-template-columns:max-content 1fr;gap:7px 16px;margin:4px 0 0;font-size:13px}
.facts dt,.props dt{color:var(--muted)}
.facts dd,.props dd{margin:0;min-width:0;overflow-wrap:anywhere;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}
.empty-state h3{margin:12px 0 4px;font-size:14.5px}
.empty-state p{margin:0 auto 14px;max-width:420px}
.empty-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}

/* ---- stats and charts ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-sm);height:100%;position:relative}
.stat-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:500;min-width:0}
.stat-label>.row{min-width:0;overflow:hidden;text-overflow:ellipsis}
.stat-value{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-top:4px;color:var(--text);font-variant-numeric:tabular-nums}
.stat-sub{font-size:12px;color:var(--muted);margin-top:1px}
.stat.warn .stat-value{color:var(--mid)}
.stat.bad .stat-value{color:var(--bad)}
a.stat-link{text-decoration:none;color:inherit;display:block}
a.stat-link:hover .stat{border-color:var(--border-strong);box-shadow:var(--shadow)}
.meter{height:6px;background:var(--surface-3);border-radius:99px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--accent);border-radius:99px}
.mini-meter{display:inline-block;width:56px;height:5px;background:var(--surface-3);border-radius:9px;margin-left:8px;vertical-align:middle;overflow:hidden}
.mini-meter span{display:block;height:100%;background:var(--accent)}
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(90px,32%) 1fr auto;gap:10px;align-items:center;font-size:12.5px}
.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{height:7px;background:var(--surface-3);border-radius:9px;overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--accent);border-radius:9px}
.bar-value{font-variant-numeric:tabular-nums}

/* ---- list rows (issue-tracker style) ---- */
.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.list-group{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-2)}
.list-group .count{color:var(--muted);font-weight:500}
.lrow{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;min-height:44px;outline:none;text-decoration:none}
.lrow:last-child{border-bottom:0}
.lrow:hover{background:var(--hover);text-decoration:none}
.lrow:focus-visible{background:var(--hover);box-shadow:inset 2px 0 0 var(--accent)}
.lrow.active{background:var(--accent-soft)}
.lrow.unread .lrow-title{font-weight:600}
.lrow.unread::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;margin-left:-8px;margin-right:-4px}
.lrow-lead{display:flex;align-items:center;flex:none}
.lrow-main{display:flex;flex-direction:column;min-width:0;flex:1}
.lrow-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.lrow-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrow-meta{display:flex;align-items:center;gap:8px;flex:none;color:var(--muted);font-size:12px}
.st{flex:none}
.st-queued{color:var(--faint)}
.st-running{color:var(--mid)}
.st-review{color:var(--accent)}
.st-done{color:var(--ok)}
.st-failed{color:var(--bad)}
.st-closed{color:var(--faint)}

/* ---- split view and record pages ---- */
.split{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;min-height:calc(100vh - 190px);box-shadow:var(--shadow-sm)}
.split-list{border-right:1px solid var(--border);overflow-y:auto;max-height:calc(100vh - 150px)}
.split-list .list{border:0;border-radius:0;box-shadow:none}
.split-detail{overflow-y:auto;max-height:calc(100vh - 150px);padding:22px 26px}
.split-head{display:flex;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-2);position:sticky;top:0;z-index:1;flex-wrap:wrap}
.detail-title{font-size:17px;margin:0 0 6px;line-height:1.35}
.record{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.record-side{position:sticky;top:64px;display:flex;flex-direction:column;gap:12px}
.record-side>.card+.card{margin-top:0}
.side-title{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px}
.decision{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);margin:18px -26px -22px;padding:12px 26px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.decision input{flex:1;min-width:180px}
.diff{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:12.5px}
.diff>div{padding:8px 10px;min-width:0;overflow-wrap:anywhere}
.diff .before{background:var(--bad-soft)}
.diff .after{background:var(--ok-soft)}
.diff .cap{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);display:block;margin-bottom:3px}
.diff+.diff{margin-top:8px}

/* ---- board ---- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:200px;max-height:calc(100vh - 220px)}
.board-head{display:flex;align-items:center;gap:7px;padding:9px 12px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.board-count{color:var(--muted);font-weight:500;margin-left:auto}
.board-cards{display:flex;flex-direction:column;gap:8px;padding:0 8px 10px;overflow-y:auto}
.board-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 11px;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column;gap:7px;text-decoration:none;color:var(--text)}
.board-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);text-decoration:none}
.board-card .t{font-weight:500;line-height:1.35}
.board-card .m{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;flex-wrap:wrap}
.board-empty{padding:4px 6px}

/* ---- tables (data table) ---- */
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
th{color:var(--muted);font-weight:500;font-size:12px;background:var(--surface);white-space:nowrap}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.datatable{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.card .datatable{border:0;box-shadow:none;border-radius:0;margin:0 -18px -16px}
.table-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--border)}
.table-search{max-width:240px}
.table-filter{width:auto;max-width:210px;padding:4px 8px;font-size:12.5px;min-height:30px}
.table-filter.on{border-color:var(--accent);background:var(--accent-soft)}
.table-wrap{overflow:auto;max-height:70vh;outline:none}
.table-wrap:focus-visible{box-shadow:inset var(--focus)}
table.data thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 var(--border)}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--text)}
th.sortable::after{content:"↕";opacity:.25;margin-left:4px;font-size:10px}
th[aria-sort="ascending"]::after{content:"↑";opacity:1;color:var(--accent)}
th[aria-sort="descending"]::after{content:"↓";opacity:1;color:var(--accent)}
table.data tbody tr:last-child td{border-bottom:0}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--hover)}
tr.active td{background:var(--accent-soft)!important}
tr.selected td{background:color-mix(in srgb,var(--accent-soft) 70%,var(--surface))}
th.sel,td.sel{width:34px;padding-right:0}
td.empty{text-align:center;color:var(--muted);padding:28px}
.more{margin:10px 12px}
.bulk{display:flex;gap:8px;align-items:center;padding:7px 12px;background:var(--accent-soft);border-bottom:1px solid var(--border)}
.table-count{white-space:nowrap}
.grid-table td,.grid-table th{padding:7px 12px}
.cell-link{display:inline-block;min-width:26px;text-align:center;border-radius:6px;padding:1px 6px;font-weight:600;text-decoration:none}
.heat-1{background:var(--accent-soft);color:var(--accent-text)}
.heat-2{background:color-mix(in srgb,var(--accent) 30%,var(--surface))}
.heat-3{background:color-mix(in srgb,var(--accent) 52%,var(--surface));color:#fff}
.heat-4{background:var(--accent);color:var(--on-accent)}

/* ---- tabs, stepper, settings ---- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;margin-top:4px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{display:inline-flex;align-items:center;gap:6px;background:none;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 11px;font-weight:500;font-size:13px;text-decoration:none;min-height:0;white-space:nowrap}
.tab:hover{background:none;color:var(--text);text-decoration:none}
.tab.active{color:var(--text);border-bottom-color:var(--accent)}
.tab-count{background:var(--surface-3);color:var(--text-2);border-radius:99px;padding:0 6px;font-size:11px}
.tab.active .tab-count{background:var(--accent);color:var(--on-accent)}
.tab-panel>*+*{margin-top:14px}
.stepper{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 18px;flex-wrap:wrap}
.stepper li{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;font-weight:500}
.stepper li+li::before{content:"";width:24px;height:1px;background:var(--border-strong)}
.stepper-dot{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--border-strong);font-size:11px;background:var(--surface)}
.stepper li.now{color:var(--text)}
.stepper li.now .stepper-dot{border-color:var(--accent);color:var(--accent);box-shadow:var(--focus)}
.stepper li.done .stepper-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.set-section{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--border)}
.set-section:first-child{padding-top:4px}
.set-section:last-child{border-bottom:0}
.set-intro h3{margin:0 0 4px;font-size:14px}
.set-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.set-body>.pad{padding:14px 16px}
.set-body>.pick{border:0;border-radius:0}
.set-row{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}
.set-row:last-child{border-bottom:0}
.set-text{flex:1;min-width:0}
.set-title{font-weight:500}
.set-control{flex:none;display:flex;align-items:center;gap:8px}
.set-control input,.set-control select{width:auto;min-width:220px}
.change-bar{position:sticky;bottom:14px;z-index:12;display:flex;align-items:center;gap:10px;background:var(--text);color:var(--bg);border-radius:10px;padding:8px 10px 8px 14px;box-shadow:var(--shadow-lg);margin-top:16px;font-size:13px}
.change-bar button.secondary{background:transparent;color:var(--bg);border-color:color-mix(in srgb,var(--bg) 35%,transparent)}
.change-bar button.secondary:hover{background:color-mix(in srgb,var(--bg) 12%,transparent)}

/* ---- pick lists ---- */
.pick{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.pick-head{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.pick-search{max-width:280px;min-height:30px}
.pick-bulk{display:flex;gap:6px;align-items:center}
.pick-head>.muted{margin-left:auto}
.pick-list{overflow-y:auto}
.pick-group{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px 4px}
.pick-row{display:flex;align-items:center;gap:10px;margin:0;padding:7px 12px;font-weight:400;color:var(--text);cursor:pointer;border-bottom:1px solid var(--border)}
.pick-row:last-child{border-bottom:0}
.pick-row:hover{background:var(--hover)}
.pick-row.on{background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface))}
.pick-text{display:flex;flex-direction:column;min-width:0;flex:1}
.pick-empty{padding:16px 12px}

/* ---- dialogs, drawer, palette, menu ---- */
dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:0}
dialog::backdrop{background:rgba(9,9,11,.42);backdrop-filter:blur(2px)}
dialog.dialog{border-radius:14px;width:min(460px,calc(100vw - 32px))}
dialog.dialog.wide{width:min(680px,calc(100vw - 32px))}
dialog.dialog form,dialog.dialog .dialog-body{padding:20px 22px}
dialog.dialog h3{margin:0 0 8px;font-size:15.5px}
dialog.drawer{margin:0 0 0 auto;height:100vh;max-height:100vh;width:min(560px,100vw);border-radius:0;border-width:0 0 0 1px;animation:slide .16s ease-out}
dialog.drawer.wide{width:min(860px,100vw)}
@keyframes slide{from{transform:translateX(24px);opacity:.6}}
.drawer-head{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);z-index:1}
.drawer-head h3{margin:0;flex:1;font-size:15px;overflow:hidden;text-overflow:ellipsis}
.drawer-body{padding:16px 18px 40px}
dialog.palette{margin-top:12vh;border-radius:14px;width:min(620px,calc(100vw - 24px))}
dialog.palette>input{border:0;border-bottom:1px solid var(--border);border-radius:0;padding:14px 16px;font-size:15px;box-shadow:none;min-height:50px}
.palette-list{list-style:none;margin:0;padding:6px;max-height:52vh;overflow:auto}
.palette-group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 3px;font-weight:600}
.palette-item{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:8px;cursor:pointer}
.palette-item.active{background:var(--accent-soft)}
.palette-empty{padding:14px}
.palette-foot{border-top:1px solid var(--border);padding:7px 14px}
table.keys td{border:0;padding:5px 8px}
table.keys td:first-child{white-space:nowrap;width:150px}
table.keys kbd+kbd{margin-left:4px}
.menu-pop{position:fixed;z-index:60;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:4px}
.menu-pop button{display:flex;align-items:center;gap:9px;width:100%;background:transparent;color:var(--text);border:0;justify-content:flex-start;font-weight:400;padding:6px 9px;border-radius:6px;min-height:30px}
.menu-pop button:hover,.menu-pop button:focus-visible{background:var(--hover);box-shadow:none}
.menu-pop .danger-item{color:var(--bad)}
.menu-hint{margin-left:auto;color:var(--muted);font-size:11.5px}
.menu-sep{height:1px;background:var(--border);margin:4px 0}

/* ---- inbox, task page, forms ---- */
.feed-body{white-space:pre-line;color:var(--text-2)}
.timeline{list-style:none;display:flex;gap:0;padding:0;margin:4px 0 0;flex-wrap:wrap}
.step{flex:1;min-width:92px;position:relative;padding-top:18px;font-size:12px;color:var(--muted)}
.step::before{content:"";position:absolute;top:6px;left:0;right:0;height:2px;background:var(--border)}
.step .dot{position:absolute;top:1px;left:0;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--border-strong)}
.step.done{color:var(--text-2)}
.step.done::before{background:var(--ok)}
.step.done .dot{background:var(--ok);border-color:var(--ok)}
.step.now{color:var(--text);font-weight:600}
.step.now .dot{border-color:var(--accent);background:var(--accent);animation:pulse 1.4s ease-in-out infinite}
.step.skipped{opacity:.55}
.step-name{display:block}
@keyframes pulse{50%{box-shadow:0 0 0 6px var(--accent-soft)}}
.doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 28px;line-height:1.75;font-size:14.5px}
.doc h2,.doc h3,.doc h4,.doc h5{margin:20px 0 8px}
.doc table{margin:10px 0}
.doc td,.doc th{border:1px solid var(--border)}
.doc-bar{display:flex;align-items:center;gap:6px;margin:0 0 8px}
.sources li{margin:3px 0;overflow-wrap:anywhere}
.code-row{display:flex;gap:8px;align-items:flex-start}
.code-row pre{flex:1;margin:0;white-space:pre-wrap;word-break:break-all}
.type-groups>*+*{margin-top:14px}
.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:6px}
.type-card{flex-direction:column;align-items:flex-start;white-space:normal;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);padding:10px 12px;font-weight:400;gap:2px;min-height:62px;box-shadow:var(--shadow-sm)}
.type-card:hover{background:var(--hover);border-color:var(--border-strong)}
.type-card.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--focus)}
.type-card strong{font-weight:500}
.client-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.client-card{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;cursor:pointer;text-align:left;font-weight:400;white-space:normal;align-items:stretch;min-height:0}
.client-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);text-decoration:none;background:var(--surface)}
.client-card.active{border-color:var(--accent);box-shadow:var(--focus)}
.client-card .top{display:flex;gap:10px;align-items:center}
.client-card .name{font-weight:600}
.client-card .stats-line{display:flex;gap:12px;color:var(--muted);font-size:12px;flex-wrap:wrap}
.form-section{margin:18px 0 0;font-size:14px}
.int-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.int-card{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm)}
.int-head{display:flex;align-items:center;gap:10px}
.int-logo{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;font-weight:700;color:#fff;font-size:14px;flex:none}
.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.check-step{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border)}
.check-step:last-child{border-bottom:0}
.check-step>.icon{color:var(--faint)}
.check-step.ok>.icon{color:var(--ok)}
.check-step .label{flex:1;min-width:200px}
.attention{list-style:none;padding:0;margin:0}
.attention li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid var(--border)}
.attention li:last-child{border-bottom:0}
.health{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.issues{padding-left:18px}
.skill-text{max-height:360px;font-family:inherit;font-size:13.5px;line-height:1.6}
.skeleton{display:flex;flex-direction:column;gap:10px;padding:6px 0}
.skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}
.skeleton-line:nth-child(3n){width:70%}
.skeleton-line:nth-child(3n+2){width:85%}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---- notifications ---- */
.bell{position:relative}
.bell .count{position:absolute;top:2px;right:2px;background:var(--bad);color:#fff;border-radius:999px;padding:0 4px;font-size:10px;font-weight:700;line-height:14px;min-width:14px;text-align:center}
.bell-panel{position:absolute;right:0;top:38px;width:380px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:30}
.bell-head,.bell-foot{justify-content:space-between;padding:6px 8px}
.bell-foot{border-top:1px solid var(--border);margin-top:6px;padding-top:10px}
.note{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;width:100%;text-align:left;background:transparent;color:var(--text);padding:8px;border-radius:8px;font-weight:400;white-space:normal;border:0;justify-content:stretch}
.note:hover{background:var(--hover)}
.note.unread{background:var(--accent-soft)}
.note .note-subject{font-size:13px}
.note .muted{grid-column:2}
.toasts{position:fixed;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px;z-index:40}
.toast{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:340px;text-align:left;white-space:normal;background:var(--text);color:var(--bg);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow-lg);font-weight:400}
.toast:hover{background:var(--text)}

/* ---- phone and small screens: the sidebar becomes a drawer, split views stack ---- */
@media (max-width:1100px){.record{grid-template-columns:minmax(0,1fr)}.record-side{position:static}}
@media (max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}
  nav.side{position:fixed;left:0;top:0;bottom:0;width:270px;z-index:50;transform:translateX(-100%);transition:transform .18s ease;box-shadow:var(--shadow-lg)}
  body.nav-open nav.side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(9,9,11,.42);z-index:45}
  .menu-btn{display:inline-flex!important}
  .topbar{padding:0 12px}
  main{padding:14px 14px 50px}
  .split{grid-template-columns:minmax(0,1fr);min-height:0}
  .split-list{border-right:0;max-height:none}
  .split.has-detail .split-list{display:none}
  .split:not(.has-detail) .split-detail{display:none}
  .split-detail{max-height:none;padding:16px}
  .decision{margin:16px -16px -16px;padding:12px 16px}
  .set-section{grid-template-columns:minmax(0,1fr);gap:10px}
  .set-row{flex-wrap:wrap}
  .set-control input,.set-control select{min-width:0;width:100%}
  .grid.two{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stat-value{font-size:19px}
  .page-actions{width:100%}
  .page-actions select{width:100%;min-width:0}
  .bell-panel{position:fixed;left:12px;right:12px;width:auto;top:52px}
  .doc{padding:16px}
  .table-search{max-width:none;flex:1 1 100%}
  .diff{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .lrow{flex-wrap:wrap;row-gap:4px}
  .lrow-main{flex:1 1 calc(100% - 44px)}
  .lrow-meta{flex-basis:100%;padding-left:26px;flex-wrap:wrap}
  .split-head .segmented{flex:1}
  .toolbar>.segmented{max-width:100%;overflow-x:auto;flex-wrap:nowrap}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
