/* Layout: split-screen auth (brand rail + form) → app shell (left nav rail + workspace). Dark-first, single committed look. */
:root{
  --bg:#060a14; --surface:#0b1222; --surface-2:#101a31; --surface-3:#16213d;
  --line:#1c2744; --line-strong:#2a3860;
  --fg:#e7ecf8; --fg-2:#b7c1da; --muted:#7f8bab;
  --accent:#2f6bff; --accent-hi:#5b8cff; --accent-soft:rgba(47,107,255,.14);
  --ok:#2fcf8a; --ok-soft:rgba(47,207,138,.13);
  --warn:#f2b54a; --warn-soft:rgba(242,181,74,.13);
  --danger:#ff4d6a; --danger-soft:rgba(255,77,106,.13);
  --violet:#8b7bff; --violet-soft:rgba(139,123,255,.16);
  --f-display:"Sora","Segoe UI",system-ui,sans-serif;
  --f-body:"Plus Jakarta Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r-sm:8px; --r-md:12px; --r-lg:16px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
.mono{font-family:var(--f-mono)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Brand mark ---------- */
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:30px;height:30px;flex:none}
.brand-name{font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:-.02em}
.brand-sub{color:var(--muted);font-size:13px;font-weight:500}

/* ---------- Auth ---------- */
.auth{min-height:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.auth-rail{position:relative;overflow:hidden;padding:40px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;border-right:1px solid var(--line);
  background:
    radial-gradient(60% 50% at 20% 100%,rgba(47,107,255,.22),transparent 70%),
    radial-gradient(40% 40% at 90% 10%,rgba(91,140,255,.10),transparent 70%),
    var(--bg)}
.auth-rail::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);opacity:.45}
.auth-rail>*{position:relative}
.rail-copy{max-width:460px;display:grid;gap:14px}
.eyebrow{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-hi)}
.rail-copy h1{font-size:clamp(28px,3.4vw,40px);line-height:1.12;font-weight:600}
.rail-copy p{color:var(--fg-2);font-size:15px;max-width:42ch}
.modules{display:grid;gap:2px;max-width:420px;border:1px solid var(--line);border-radius:var(--r-md);background:rgba(11,18,34,.75);backdrop-filter:blur(6px);overflow:hidden}
.module{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--fg-2)}
.module:last-child{border-bottom:0}
.module .i{color:var(--muted)}
.module.live{color:var(--fg)}
.module.live .i{color:var(--accent-hi)}
.module .tag{margin-left:auto;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.module.live .tag{color:var(--ok)}
.rail-foot{color:var(--muted);font-size:12.5px}

.auth-main{display:flex;align-items:center;justify-content:center;padding-block:40px;padding-inline:24px}
.auth-card{width:100%;max-width:420px;display:grid;gap:22px}
.auth-mobile-brand{display:none}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.seg button{border:0;background:none;padding:8px 6px;border-radius:9px;color:var(--muted);font-weight:600;font-size:13px}
.seg button[aria-selected="true"]{background:var(--surface-3);color:var(--fg);box-shadow:inset 0 0 0 1px var(--line-strong)}
.auth-head{display:grid;gap:6px}
.auth-head h2{font-size:24px;font-weight:600}
.auth-head p{color:var(--muted)}
form.stack{display:grid;gap:14px}
.field{display:grid;gap:6px}
.field label{font-size:12.5px;font-weight:600;color:var(--fg-2)}
.control{position:relative;display:flex;align-items:center}
.control>.i{position:absolute;left:12px;color:var(--muted);pointer-events:none}
.control input,.control select{width:100%;height:44px;padding:0 14px 0 40px;background:var(--surface);border:1px solid var(--line);border-radius:10px;outline:none;transition:border-color .15s,box-shadow .15s}
.control select{appearance:none;padding-right:36px}
.control .chev{position:absolute;right:12px;left:auto;color:var(--muted)}
.control input::placeholder{color:#58648a}
.control input:focus,.control select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.control input[readonly]{color:var(--fg-2);background:var(--surface-2)}
.control .eye{position:absolute;right:6px;width:34px;height:34px;border:0;background:none;color:var(--muted);border-radius:8px;display:grid;place-items:center}
.control .eye:hover{color:var(--fg)}
.hint{font-size:12px;color:var(--muted)}
.form-error{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--danger-soft);color:#ffb3c0;font-size:13px;border:1px solid rgba(255,77,106,.3)}
.form-note{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--accent-soft);color:#c4d4ff;font-size:13px;border:1px solid rgba(47,107,255,.3)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:13.5px;white-space:nowrap;transition:background .15s,border-color .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn-lg{height:46px;font-size:14.5px}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:#3d77ff}
.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--fg)}
.btn-ghost:hover{background:var(--surface-2)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#ff6680}
.btn-block{width:100%}
.btn[disabled]{opacity:.6;cursor:progress}
.switch-line{text-align:center;color:var(--muted);font-size:13px}
.link{background:none;border:0;padding:0;color:var(--accent-hi);font-weight:600}
.link:hover{text-decoration:underline}
.demo{border:1px dashed var(--line-strong);border-radius:var(--r-md);padding:12px 14px;display:grid;gap:8px;font-size:12.5px;color:var(--fg-2)}
.demo-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.demo-row .mono{font-size:12px;color:var(--fg)}
.chip-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--fg-2)}
.chip-btn:hover{color:var(--fg);border-color:var(--accent)}

/* ---------- App shell: top header + tabs ---------- */
.app{min-height:100%;display:flex;flex-direction:column}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(8,13,26,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{max-width:1320px;margin:0 auto;padding-inline:clamp(16px,3vw,40px);height:68px;display:flex;align-items:center;gap:20px}
.hdr .brand{flex:none}
.tabs{display:flex;align-items:stretch;align-self:stretch;gap:2px;margin:0 auto;min-width:0;scrollbar-width:none}
.tab{position:relative;display:flex;align-items:center;gap:9px;height:100%;padding:0 14px;border:0;background:none;color:var(--fg-2);font-weight:500;font-size:14px;white-space:nowrap}
.tab:hover{color:var(--fg)}
.tab::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:transparent}
.tab[aria-current="page"]{color:#fff}
.tab[aria-current="page"] .i{color:var(--accent-hi)}
.tab[aria-current="page"]::after{background:var(--accent)}


.hdr-right{display:flex;align-items:center;gap:12px;flex:none}
.hdr-org{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:var(--fg-2);font-size:13px;font-weight:500;max-width:200px}
.hdr-org .i{width:15px;height:15px;color:var(--muted)}
.hdr-org span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct{position:relative}
.me-btn{display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:999px;background:none;text-align:left}
.me-btn:hover,.me-btn[aria-expanded="true"]{background:var(--surface-2);border-color:var(--line)}
.me-btn .who{display:grid;line-height:1.25}
.me-btn .who strong{font-size:13px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-btn .who span{font-size:11.5px;color:var(--muted)}
.me-btn .i{width:16px;height:16px;color:var(--muted)}
.menu{position:absolute;right:0;top:calc(100% + 8px);width:240px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:0 20px 50px rgba(0,0,0,.5);padding:6px;display:grid;animation:rise .14s ease}
.menu-head{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;display:grid;gap:2px;min-width:0}
.menu-head strong{font-size:13.5px}
.menu-head span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.menu button{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--fg-2);font-weight:500;text-align:left}
.menu button:hover{background:var(--surface-2);color:var(--fg)}
.main{width:100%;max-width:1320px;margin:0 auto;min-width:0;padding-block:32px 56px;padding-inline:clamp(16px,3vw,40px);display:grid;gap:24px;align-content:start}
.page-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
.page-head .t{display:grid;gap:6px}
.page-head h1{font-size:26px;font-weight:600}
.page-head p{color:var(--muted);max-width:60ch}

.av{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:600;font-size:12px;color:#fff;letter-spacing:.02em}
.av.lg{width:76px;height:76px;font-size:24px}
.av.dashed{background:none !important;border:1.5px dashed var(--line-strong);color:var(--muted)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.stat{padding:16px 20px;display:grid;gap:4px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat span{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px}
.stat strong{font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block}

/* toolbar + table */
.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--line)}
.search{flex:1 1 240px;min-width:0}
.search input{height:38px}
.filters{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.filters button{border:0;background:none;padding:6px 12px;border-radius:7px;color:var(--muted);font-weight:600;font-size:12.5px}
.filters button[aria-pressed="true"]{background:var(--surface-3);color:var(--fg)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:720px}
th{text-align:left;font-family:var(--f-mono);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:rgba(22,33,61,.45)}
.person{display:flex;align-items:center;gap:12px;min-width:0}
.person strong{font-weight:600;display:block}
.person small{color:var(--muted);font-size:12px}
.email{color:var(--fg-2)}
.date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600}
.pill.admin{background:var(--violet-soft);color:#c7beff}
.pill.member{background:var(--accent-soft);color:#a9c1ff}
.status{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--fg-2)}
.status .dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.status.invited .dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.acts{display:flex;gap:4px;justify-content:flex-end}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;border:1px solid transparent;background:none;color:var(--muted)}
.icon-btn:hover{background:var(--surface-3);color:var(--fg);border-color:var(--line-strong)}
.icon-btn.danger:hover{color:var(--danger);background:var(--danger-soft);border-color:rgba(255,77,106,.35)}
.icon-btn[disabled]{opacity:.3;cursor:not-allowed;background:none;border-color:transparent;color:var(--muted)}
.empty{padding:40px 16px;text-align:center;color:var(--muted);display:grid;gap:6px;justify-items:center}
.readonly-note{display:flex;gap:10px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px}
.you{font-family:var(--f-mono);font-size:10.5px;color:var(--accent-hi);border:1px solid rgba(91,140,255,.4);border-radius:5px;padding:0 5px;margin-left:6px;vertical-align:1px}

/* profile */
.profile{display:grid;grid-template-columns:minmax(0,1fr);max-width:880px}
.profile-top{display:flex;gap:20px;align-items:center;padding:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.profile-top .n{display:grid;gap:4px;min-width:0}
.profile-top h2{font-size:22px;font-weight:600}
.profile-top p{color:var(--fg-2)}
.kv{display:grid;grid-template-columns:160px minmax(0,1fr)}
.kv dt,.kv dd{margin:0;padding:16px 24px;border-bottom:1px solid var(--line)}
.kv dt{color:var(--muted);font-size:13px}
.kv dd{font-weight:500;overflow-wrap:anywhere}
.kv dt:nth-last-child(2),.kv dd:last-child{border-bottom:0}
.notice{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--r-md);border:1px solid rgba(242,181,74,.35);background:var(--warn-soft);color:#f6d79b;max-width:720px}
.notice strong{color:#ffe4b0}

/* coming soon */
.soon-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:clamp(24px,5vw,48px);display:grid;gap:18px;max-width:760px}
.soon-ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-hi)}
.soon-ico .i{width:24px;height:24px}
.soon-card ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.soon-card li{display:flex;gap:10px;align-items:flex-start;color:var(--fg-2)}
.soon-card li .i{color:var(--muted);margin-top:2px;width:16px;height:16px}
.soon-tag{justify-self:start;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);border:1px solid rgba(242,181,74,.4);border-radius:6px;padding:3px 8px}

/* modal */
.scrim{position:fixed;inset:0;background:rgba(3,6,14,.72);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:50;animation:fade .15s ease}
.modal{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:0 30px 80px rgba(0,0,0,.55);display:grid;animation:rise .18s ease}
.modal-h{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 0}
.modal-h .t{display:grid;gap:4px;flex:1;min-width:0}
.modal-h h3{font-size:18px;font-weight:600}
.modal-h p{color:var(--muted);font-size:13px}
.modal-b{padding:20px;display:grid;gap:14px}
.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--line)}
.danger-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--danger-soft);color:var(--danger);flex:none}
.mini-person{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.mini-person .n{display:grid;min-width:0}
.mini-person small{color:var(--muted);overflow-wrap:anywhere}
.role-opts{display:grid;gap:8px}
.role-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:var(--surface)}
.role-opt:hover{border-color:var(--line-strong)}
.role-opt input{margin-top:3px;accent-color:var(--accent)}
.role-opt strong{display:block;font-weight:600}
.role-opt span{color:var(--muted);font-size:12.5px}
.role-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.cur{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}

/* toast */
.toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:grid;gap:8px;z-index:60}
.toast{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--surface-3);border:1px solid var(--line-strong);box-shadow:0 12px 30px rgba(0,0,0,.4);font-size:13.5px;animation:rise .2s ease;max-width:360px}
.toast .i{color:var(--ok)}
.toast.err .i{color:var(--danger)}

@keyframes fade{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .auth{grid-template-columns:1fr}
  .auth-rail{display:none}
  .auth-mobile-brand{display:flex}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:1280px){
  .hdr-org{display:none}
}
@media (max-width:1100px){
  .tab{padding:0 10px}
  .me-btn .who{display:none}
}
@media (max-width:640px){
  .hdr-in{flex-wrap:wrap;height:auto;padding-block:10px 0;row-gap:4px}
  .tabs{order:3;width:100%;margin:0;overflow-x:auto}
  .tab{height:46px}
  .kv{grid-template-columns:1fr}
  .kv dt{padding-bottom:2px;border-bottom:0}
  .kv dd{padding-top:0}
}
@media (max-width:480px){
  .modal-f{flex-direction:column-reverse}
  .modal-f .btn{width:100%}
  .filters{width:100%}
  .filters button{flex:1}
}

/* ---------- Full-stack additions ---------- */
html,body{margin:0;height:100%}
[hidden]{display:none!important}
.boot{min-height:100%;display:grid;place-items:center;color:var(--muted)}
.spinner{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.invite-banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-md);border:1px solid rgba(47,107,255,.35);background:var(--accent-soft);color:#c9d7ff}
.invite-banner strong{color:#fff}
.invite-banner .i{color:var(--accent-hi);margin-top:2px}
.center-wrap{min-height:100%;display:grid;place-items:center;padding-block:40px;padding-inline:16px}
.verify-card{width:100%;max-width:460px;display:grid;gap:20px;padding:32px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.verify-ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-hi)}
.verify-ico .i{width:24px;height:24px}
.verify-card h2{font-size:22px;font-weight:600}
.verify-card p{color:var(--fg-2)}
.verify-actions{display:flex;gap:10px;flex-wrap:wrap}
.copy-box{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg)}
.copy-box input{flex:1;min-width:0;border:0;background:none;outline:none;font-family:var(--f-mono);font-size:12px;color:var(--fg-2)}
.result-ok{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;background:var(--ok-soft);border:1px solid rgba(47,207,138,.35);color:#b6f0d4}
.status.expired .dot{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.create-org{display:grid;gap:14px;max-width:720px;padding:24px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.create-org form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.create-org .field{flex:1 1 260px}
.dev-link{font-size:12px;color:var(--warn);overflow-wrap:anywhere}
.av-c0{background:#3a5bd9}.av-c1{background:#7a4fd6}.av-c2{background:#1f8a8a}.av-c3{background:#c2477a}
.av-c4{background:#2f7a46}.av-c5{background:#b0702a}.av-c6{background:#4a63a8}.av-c7{background:#8a4fa8}
.d-all{background:var(--fg-2)}.d-admin{background:var(--violet)}.d-member{background:var(--accent-hi)}.d-pending{background:var(--warn)}
.th-right{text-align:right}
.seg.seg-2{grid-template-columns:repeat(2,1fr)}
.role-opts{border:0;padding:0;margin:0}
.muted{color:var(--muted)}
.muted-2{color:var(--fg-2)}
.muted-2 strong,.empty strong{color:var(--fg)}
.soon-card h2{font-size:20px;font-weight:600}
.verify-card .auth-head p strong{color:var(--fg)}
.kv dd .status{margin-left:10px}
.dev-link a{color:var(--warn)}
a.brand{color:inherit;text-decoration:none;border-radius:8px}
a.brand:hover .brand-name{color:#fff}
a.brand:focus-visible{outline-offset:4px}
.module .tag.tag-count{font-family:var(--f-body);font-size:12.5px;font-weight:600;color:var(--fg);background:var(--accent-soft);border:1px solid rgba(47,107,255,.35);padding:2px 10px;border-radius:999px;font-variant-numeric:tabular-nums}
.landing-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.landing-stat span{display:flex;align-items:center;gap:10px;color:var(--fg-2)}
.landing-stat span .i{color:var(--accent-hi)}
.landing-stat strong{font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.auth-head p strong{color:var(--fg)}
#root{min-height:100vh}
.auth{min-height:100vh}
.module-link{width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:inherit;cursor:pointer;transition:background .15s}
.module-link:hover{background:var(--accent-soft)}
.module-link:hover .go{color:var(--accent-hi);transform:translateX(2px)}
.module-link .tag{margin-left:auto}
.module-link .go{width:16px;height:16px;color:var(--muted);transition:transform .15s,color .15s}

/* ---------- Tasks ---------- */
.head-acts{display:flex;gap:10px;flex-wrap:wrap}
.boot.pad{min-height:240px}
.stat-btn{border:0;border-right:1px solid var(--line);background:none;text-align:left;cursor:pointer;transition:background .15s}
.stat-btn:hover{background:var(--surface-2)}
.stat-btn[aria-pressed="true"]{background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--accent)}
.st-todo-dot{background:var(--fg-2)}.st-prog-dot{background:var(--accent-hi)}.st-block-dot{background:var(--danger)}.st-done-dot{background:var(--ok)}
.tasks-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.seg-list{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);position:sticky;top:88px}
.seg-title{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 10px 8px}
.seg-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:9px;background:none;color:var(--fg-2);font-weight:500;text-align:left;min-width:0}
.seg-item:hover{background:var(--surface-2);color:var(--fg)}
.seg-item[aria-pressed="true"]{background:var(--accent-soft);color:#fff}
.seg-item .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seg-item .ct,.seg-row .ct{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:0 8px;min-width:26px;text-align:center}
.mine{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-2);cursor:pointer;white-space:nowrap}
.mine input{accent-color:var(--accent);width:16px;height:16px}
.tasks-table{min-width:880px}
.c-task{max-width:340px}
.task-title{display:block;border:0;background:none;padding:0;color:var(--fg);font-weight:600;text-align:left;line-height:1.35}
.task-title:hover{color:var(--accent-hi);text-decoration:underline}
.task-desc{display:block;color:var(--muted);font-size:12.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.seg-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2);font-size:12.5px;color:var(--fg-2);white-space:nowrap}
.seg-pill .i{width:14px;height:14px;color:var(--muted)}
.status-wrap{position:relative;display:inline-flex;align-items:center}
.status-select{appearance:none;height:30px;padding:0 30px 0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-2);font-size:12.5px;font-weight:600;cursor:pointer}
.status-wrap .chev{position:absolute;right:9px;width:14px;height:14px;pointer-events:none;color:currentColor;opacity:.7}
.status-wrap.st-todo .status-select{color:var(--fg-2)}
.status-wrap.st-prog .status-select{color:#a9c1ff;background:var(--accent-soft);border-color:rgba(47,107,255,.4)}
.status-wrap.st-block .status-select{color:#ffb3c0;background:var(--danger-soft);border-color:rgba(255,77,106,.4)}
.status-wrap.st-done .status-select{color:#9ff0c9;background:var(--ok-soft);border-color:rgba(47,207,138,.4)}
.status-wrap.st-prog{color:#a9c1ff}.status-wrap.st-block{color:#ffb3c0}.status-wrap.st-done{color:#9ff0c9}.status-wrap.st-todo{color:var(--fg-2)}
.status-select option{background:var(--surface);color:var(--fg)}
td.overdue{color:#ffb3c0;font-weight:600}
td.overdue .i{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.empty .btn{margin-top:8px}
.modal.wide{max-width:600px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
textarea{width:100%;font:inherit;color:inherit;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;outline:none;resize:vertical;min-height:80px}
textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
textarea::placeholder{color:#58648a}
.opt{color:var(--muted);font-weight:400}
.control input[type=date]{color-scheme:dark}
.task-meta{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.task-meta span{display:flex;align-items:center;gap:8px}
.task-meta .i{width:15px;height:15px}
.task-meta strong{color:var(--fg)}
.seg-rows{display:grid;gap:8px;max-height:320px;overflow:auto}
.seg-row{display:flex;align-items:center;gap:6px}
.seg-row .control{flex:1}
.seg-row .control input{height:38px}
.seg-add{display:flex;gap:10px;align-items:flex-end;padding-top:14px;border-top:1px solid var(--line)}
.seg-add .field{flex:1}
@media (max-width:980px){
  .tasks-layout{grid-template-columns:1fr}
  .seg-list{position:static;display:flex;overflow-x:auto;padding:6px;scrollbar-width:thin}
  .seg-title{display:none}
  .seg-item{flex:none}
  .stat-btn:nth-child(2){border-right:0}
}
@media (max-width:480px){
  .grid-2{grid-template-columns:1fr}
  .seg-add{flex-direction:column;align-items:stretch}
}

/* ---------- Activity log ---------- */
.act-wrap{padding:8px 20px 20px}
.act-day{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 6px}
.act-list{list-style:none;margin:0;padding:0;display:grid}
.act{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.act-list>.act:last-child{border-bottom:0}
.act-ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-hi)}
.act-ico .i{width:16px;height:16px}
.act.add .act-ico{background:var(--ok-soft);color:var(--ok)}
.act.del .act-ico{background:var(--danger-soft);color:var(--danger)}
.act-body{display:grid;gap:6px;min-width:0;padding-top:5px}
.act-body p{color:var(--fg-2);overflow-wrap:anywhere}
.act-body p strong{color:var(--fg);font-weight:600}
.act time{color:var(--muted);font-size:12.5px;white-space:nowrap;padding-top:6px;font-variant-numeric:tabular-nums}
.chgs{display:flex;flex-wrap:wrap;gap:6px}
.chg{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-2);font-size:12px;color:var(--fg-2)}
.chg .k{color:var(--muted)}
.chg .from{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(127,139,171,.6);overflow-wrap:anywhere}
.chg .to{color:var(--fg);font-weight:600;overflow-wrap:anywhere}
.chg .i{width:12px;height:12px;color:var(--muted)}
.act-more{display:flex;justify-content:center;padding-top:16px}
.task-hist{display:grid;gap:8px}
.task-hist h4{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:600;color:var(--fg-2)}
.task-hist h4 .i{width:15px;height:15px;color:var(--muted)}
#task-history{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);padding:4px 12px;background:var(--surface-2)}
#task-history>.muted{padding:8px 0}
.act-list.compact .act{grid-template-columns:26px minmax(0,1fr);padding:9px 0}
.act-list.compact .act-ico{width:26px;height:26px;border-radius:7px}
.act-list.compact .act-ico .i{width:13px;height:13px}
.act-list.compact .act-body{padding-top:2px;font-size:13px}
.act-list.compact time{grid-column:2;padding-top:0;font-size:11.5px}
.spinner.sm{width:18px;height:18px;border-width:2px;margin:10px auto}
@media (max-width:640px){
  .act-wrap{padding:4px 14px 14px}
  .act{grid-template-columns:28px minmax(0,1fr)}
  .act time{grid-column:2;padding-top:0}
}
/* Six header tabs: hide the org pill and the name under the avatar earlier so nothing overlaps. */
.hdr-org{display:none} /* org name is shown as the eyebrow on every page */
@media (max-width:1240px){ .me-btn .who{display:none} .tab{padding:0 10px} }
@media (max-width:1100px){
  .hdr-in{flex-wrap:wrap;height:auto;padding-block:10px 0;row-gap:4px;justify-content:space-between}
  .tabs{order:3;width:100%;margin:0;overflow-x:auto}
  .tab{height:46px}
}

/* ---------- Shared: badges, small avatars, small buttons ---------- */
.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tab .badge{margin-left:-2px}
.filters .cnt{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;margin-left:4px;border-radius:999px;background:var(--warn);color:#1b1300;font-size:10.5px;font-weight:700}
.av.sm{width:28px;height:28px;font-size:10.5px}
.av.more{background:var(--surface-3);color:var(--fg-2);border:1px solid var(--line-strong)}
.btn-sm{height:32px;padding:0 12px;font-size:12.5px}
.d-ok{background:var(--ok)}
.sp{flex:1}
.btn.danger-txt{color:#ffb3c0}
.btn.danger-txt:hover{background:var(--danger-soft);border-color:rgba(255,77,106,.4)}
.modal-f .sp + .btn{margin-left:0}

/* ---------- Events ---------- */
.ev-list{padding:4px 20px 20px}
.ev-list>.act-day:first-child{margin-top:14px}
.ev-list>.empty{padding:48px 16px}
.ev-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.ev-card:last-child{border-bottom:0}
.ev-card.past{opacity:.72}
.ev-card.declined .ev-title{text-decoration:line-through;text-decoration-color:rgba(127,139,171,.7)}
.ev-date{display:grid;justify-items:center;padding:8px 0 7px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-2);line-height:1.1}
.ev-date .m{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-hi)}
.ev-date strong{font-family:var(--f-display);font-size:22px;font-weight:600;margin:2px 0}
.ev-date .d{font-size:11px;color:var(--muted)}
.ev-main{display:grid;gap:6px;min-width:0}
.ev-title{justify-self:start;border:0;background:none;padding:0;color:var(--fg);font-weight:600;font-size:15px;text-align:left;line-height:1.35}
.ev-title:hover{color:var(--accent-hi);text-decoration:underline}
.ev-meta{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--muted);font-size:12.5px}
.ev-meta span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}
.ev-meta .i{width:14px;height:14px}
.ev-people{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px}
.av-stack{display:flex;padding-left:6px}
.av-stack>*{margin-left:-6px}
.av-stack .av{box-shadow:0 0 0 2px var(--surface)}
.stk{position:relative;display:inline-flex}
.stk::after{content:"";position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px var(--surface);background:var(--muted)}
.stk.rs-accepted::after{background:var(--ok)}
.stk.rs-maybe::after{background:var(--warn)}
.stk.rs-declined::after{background:var(--danger)}
.stk.rs-declined .av{opacity:.5}
.ev-side{display:grid;gap:6px;justify-items:end}
.ev-flag{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--warn)}
.rsvp{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.rsvp button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:6px 10px;border-radius:7px;color:var(--muted);font-weight:600;font-size:12.5px}
.rsvp button .i{width:14px;height:14px}
.rsvp button:hover{color:var(--fg);background:var(--surface-2)}
.rsvp button.rs-accepted[aria-pressed="true"]{background:var(--ok-soft);color:#9ff0c9;box-shadow:inset 0 0 0 1px rgba(47,207,138,.45)}
.rsvp button.rs-maybe[aria-pressed="true"]{background:var(--warn-soft);color:#f6d79b;box-shadow:inset 0 0 0 1px rgba(242,181,74,.45)}
.rsvp button.rs-declined[aria-pressed="true"]{background:var(--danger-soft);color:#ffb3c0;box-shadow:inset 0 0 0 1px rgba(255,77,106,.45)}
.rsvp button[disabled]{opacity:.6;cursor:progress}
.rsvp.big button{padding:8px 14px;font-size:13px}
.rsvp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.rsvp-row>span{font-weight:600;color:var(--fg-2)}
.ev-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-hi);flex:none}
.ev-kv{display:grid;grid-template-columns:120px minmax(0,1fr);margin:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.ev-kv dt,.ev-kv dd{margin:0;padding:10px 12px;border-bottom:1px solid var(--line)}
.ev-kv dt{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;background:var(--surface-2)}
.ev-kv dt .i{width:15px;height:15px}
.ev-kv dd{overflow-wrap:anywhere}
.ev-kv dt:nth-last-child(2),.ev-kv dd:last-child{border-bottom:0}
.ev-kv a,.msg-bubble a{color:var(--accent-hi)}
.agenda{white-space:pre-wrap;color:var(--fg-2)}
.att-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.att-group{display:grid;gap:6px;align-content:start}
.att-group h4{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:600;color:var(--fg-2)}
.att{display:flex;align-items:center;gap:10px;font-size:13px}
.rsd-accepted{background:var(--ok)}.rsd-maybe{background:var(--warn)}.rsd-declined{background:var(--danger)}.rsd-pending{background:var(--muted)}
.pick-head{display:flex;align-items:center;justify-content:space-between}
.pick-head label{font-size:12.5px;font-weight:600;color:var(--fg-2)}
.pick-head .link{font-size:12.5px}
.pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.pick{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer;min-width:0}
.pick:hover{background:var(--surface-3)}
.pick input{accent-color:var(--accent);width:16px;height:16px;flex:none}
.pick .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.pick.is-org{cursor:default}
.mine.allday{align-self:end;height:44px}
.control input[type=time]{color-scheme:dark}

/* ---------- Calendar ---------- */
.cal-panel{overflow:visible}
.cal-bar{justify-content:space-between;row-gap:12px}
.cal-nav{display:flex;align-items:center;gap:6px}
.cal-title{font-size:18px;font-weight:600;margin-left:8px;white-space:nowrap}
.cal-opts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cal-person{width:200px}
.cal-person select{height:36px}
.lg-ev{background:var(--accent-hi)}.lg-tk{background:var(--violet)}
.cal-month{display:grid}
.cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.cal-wd span{padding:10px 10px 8px;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(118px,auto)}
.cal-cell{position:relative;display:grid;grid-template-rows:auto 1fr;gap:4px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.cal-cell:nth-child(7n){border-right:0}
.cal-grid>.cal-cell:nth-last-child(-n+7){border-bottom:0}
.cal-cell.wkend{background:rgba(6,10,20,.35)}
.cal-cell.out{background:rgba(6,10,20,.6)}
.cal-cell.out .cal-num{color:#4d5878}
.cal-cell-h{display:flex;align-items:center;justify-content:space-between}
.cal-num{width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--fg-2);font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}
.cal-num:hover{background:var(--surface-3);color:var(--fg)}
.cal-cell.today .cal-num{background:var(--accent);color:#fff}
.cal-add{width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:7px;background:none;color:var(--muted);opacity:0;transition:opacity .12s}
.cal-add .i{width:15px;height:15px}
.cal-cell:hover .cal-add,.wk-col:hover .cal-add,.cal-add:focus-visible{opacity:1}
.cal-add:hover{background:var(--surface-3);color:var(--fg)}
.cal-items{display:grid;gap:3px;align-content:start;min-width:0}
.cal-chip{display:flex;align-items:center;gap:5px;width:100%;min-width:0;padding:3px 7px;border:0;border-left:3px solid var(--accent-hi);border-radius:5px;background:var(--accent-soft);color:#d3defc;font-size:12px;text-align:left;line-height:1.35}
.cal-chip:hover{filter:brightness(1.25)}
.cal-chip span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-chip time{flex:none;color:var(--accent-hi);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}
.cal-chip small{flex:none;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}
.cal-chip.ev.solid{background:rgba(47,107,255,.32);color:#fff}
.cal-chip.ev.rs-pending{border-left-style:dashed;background:transparent;box-shadow:inset 0 0 0 1px rgba(91,140,255,.35)}
.cal-chip.ev.rs-declined{opacity:.5}
.cal-chip.ev.rs-declined span{text-decoration:line-through}
.cal-chip.task{border-left-color:var(--violet);background:var(--violet-soft);color:#ddd7ff}
.cal-chip.task .i{width:12px;height:12px;flex:none;color:var(--violet)}
.cal-chip.task.st-done{opacity:.6}
.cal-chip.task.st-done span{text-decoration:line-through}
.cal-chip.task.st-block .i{color:var(--danger)}
.cal-chip.task.overdue{border-left-color:var(--danger);background:var(--danger-soft);color:#ffc6cf}
.cal-chip.task.overdue .i{color:var(--danger)}
.cal-more{justify-self:start;border:0;background:none;padding:1px 4px;color:var(--muted);font-size:11.5px;font-weight:600;border-radius:5px}
.cal-more:hover{color:var(--fg);background:var(--surface-3)}
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:420px}
.wk-col{display:grid;grid-template-rows:auto 1fr;border-right:1px solid var(--line);min-width:0}
.wk-col:last-child{border-right:0}
.wk-col.today{background:rgba(47,107,255,.05)}
.wk-h{display:flex;align-items:baseline;gap:8px;padding:10px 10px 8px;border-bottom:1px solid var(--line)}
.wk-h span{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wk-h strong{font-family:var(--f-display);font-size:20px;font-weight:600}
.wk-h .cal-add{margin-left:auto;align-self:center}
.wk-col.today .wk-h strong{color:var(--accent-hi)}
.wk-items{display:grid;gap:6px;align-content:start;padding:8px}
.wk-items .cal-chip{flex-wrap:wrap;padding:6px 8px;gap:2px 6px}
.wk-items .cal-chip span{white-space:normal;flex-basis:100%;order:2}
.wk-items .cal-chip small{max-width:100%;order:3}
.wk-none{color:#4d5878;font-size:12px;padding:4px 2px}
.day-list{display:grid;gap:6px}
.day-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);text-align:left;color:var(--fg)}
.day-item:hover{border-color:var(--line-strong);background:var(--surface-3)}
.day-ico{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:9px;background:var(--accent-soft);color:var(--accent-hi)}
.day-ico.tk{background:var(--violet-soft);color:var(--violet)}
.day-ico .i{width:16px;height:16px}
.day-t{flex:1;display:grid;gap:2px;min-width:0}
.day-t strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.day-t small{color:var(--muted);font-size:12px}
.status-dot{width:9px;height:9px;border-radius:50%;flex:none}
.rs-tag{flex:none;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--fg-2)}
.rs-tag.rs-accepted{background:var(--ok-soft);color:#9ff0c9}
.rs-tag.rs-maybe{background:var(--warn-soft);color:#f6d79b}
.rs-tag.rs-declined{background:var(--danger-soft);color:#ffb3c0}

/* ---------- Chat ---------- */
.chat-ph p{max-width:72ch}
.chat{display:grid;grid-template-columns:300px minmax(0,1fr);height:max(460px,calc(100vh - 250px));border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.chat-list{display:flex;flex-direction:column;gap:2px;padding:8px;border-right:1px solid var(--line);overflow-y:auto;min-height:0}
.ch-sec{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 10px 6px}
.ch-empty{padding:4px 10px;font-size:12.5px}
.ch-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:none;text-align:left;color:var(--fg-2);min-width:0}
.ch-item:hover{background:var(--surface-2)}
.ch-item[aria-current="true"]{background:var(--accent-soft)}
.ch-t{flex:1;display:grid;gap:1px;min-width:0}
.ch-n{display:flex;align-items:baseline;gap:8px;min-width:0}
.ch-n strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--fg)}
.ch-n time{flex:none;font-size:11px;color:var(--muted)}
.ch-p{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-item.unread .ch-p{color:var(--fg-2);font-weight:600}
.team-av{background:var(--surface-3);color:var(--accent-hi);border:1px solid var(--line-strong)}
.team-av .i{width:15px;height:15px}
.chat-thread{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0;min-height:0}
.chat-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);min-width:0}
.chat-head .t{display:grid;min-width:0}
.chat-head .t strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-head .t small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-back{display:none}
.chat-msgs{overflow-y:auto;padding:12px 16px 8px;display:flex;flex-direction:column;gap:2px;overscroll-behavior:contain}
.chat-msgs>.boot.pad,.chat-msgs>.chat-empty{margin:auto}
.chat-older{display:flex;justify-content:center;padding:4px 0 10px}
.chat-day{display:flex;align-items:center;gap:12px;margin:14px 0 8px;color:var(--muted);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.chat-day::before,.chat-day::after{content:"";flex:1;height:1px;background:var(--line)}
.msg{display:flex;gap:10px;align-items:flex-end;max-width:min(78%,640px);margin-top:8px}
.msg.grouped{margin-top:2px}
.msg.mine{align-self:flex-end}
.msg-av{width:28px;flex:none;display:flex}
.msg-col{display:grid;gap:3px;min-width:0}
.msg.mine .msg-col{justify-items:end}
.msg-who{display:flex;align-items:baseline;gap:8px;font-size:12px;padding:0 4px}
.msg-who strong{font-weight:600;color:var(--fg-2)}
.msg-who time{color:var(--muted);font-size:11px}
.msg-row{display:flex;align-items:center;gap:4px;min-width:0}
.msg-bubble{padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--surface-3);border:1px solid var(--line-strong);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;min-width:0}
.msg.grouped .msg-bubble{border-radius:4px 14px 14px 4px}
.msg.mine .msg-bubble{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:14px 14px 4px 14px}
.msg.mine.grouped .msg-bubble{border-radius:14px 4px 4px 14px}
.msg.mine .msg-bubble a{color:#fff;text-decoration:underline}
.msg-bubble.deleted,.msg.mine .msg-bubble.deleted{background:none;border:1px dashed var(--line-strong);color:var(--muted)}
.msg-del{width:28px;height:28px;opacity:0;transition:opacity .12s}
.msg-del .i{width:15px;height:15px}
.msg:hover .msg-del,.msg-del:focus-visible{opacity:1}
.chat-compose{display:flex;gap:10px;align-items:flex-end;padding:12px 16px 4px;border-top:1px solid var(--line)}
.chat-compose textarea{min-height:44px;max-height:160px;resize:none;padding:11px 14px;line-height:1.45}
.chat-compose .btn{height:44px}
.chat-hint{padding:2px 16px 10px;font-size:11.5px;color:#4d5878}

@media (max-width:980px){
  .cal-grid{grid-auto-rows:minmax(96px,auto)}
  .cal-week{grid-template-columns:1fr;min-height:0}
  .wk-col{border-right:0;border-bottom:1px solid var(--line);grid-template-rows:auto}
  .wk-col:last-child{border-bottom:0}
  .wk-h{border-bottom:0;padding-bottom:4px}
  .wk-items{padding-top:0}
  .wk-none{display:none}
  .chat{grid-template-columns:240px minmax(0,1fr)}
}
@media (max-width:760px){
  .ev-card{grid-template-columns:52px minmax(0,1fr)}
  .ev-side{grid-column:1 / -1;justify-items:start}
  .ev-kv{grid-template-columns:1fr}
  .ev-kv dt{border-bottom:0;padding-bottom:4px}
  .cal-title{font-size:16px}
  .cal-opts{width:100%}
  .cal-person{flex:1 1 180px;width:auto}
  .cal-wd span{padding:8px 4px;text-align:center;font-size:10px;letter-spacing:.04em}
  .cal-grid{grid-auto-rows:minmax(74px,auto)}
  .cal-cell{padding:3px}
  .cal-cell-h{justify-content:center}
  .cal-add{display:none}
  .cal-chip{padding:0;height:6px;border:0;border-radius:3px;font-size:0}
  .cal-chip>*{display:none}
  .cal-more{font-size:10.5px;padding:0;justify-self:center}
  .cal-week .cal-add{display:grid;opacity:1}
  .cal-week .cal-chip{height:auto;padding:6px 8px;border-left:3px solid var(--accent-hi);font-size:12px}
  .cal-week .cal-chip.task{border-left-color:var(--violet)}
  .cal-week .cal-chip>*{display:revert}
  .chat{grid-template-columns:1fr;height:calc(100vh - 230px);min-height:420px}
  .chat-list{border-right:0}
  .chat:not(.show-thread) .chat-thread{display:none}
  .chat.show-thread .chat-list{display:none}
  .ch-back{display:grid}
  .msg{max-width:88%}
  .msg-del{opacity:1}
  .chat-compose .btn span{display:none}
  .chat-hint{display:none}
}
/* Tall dialogs (task / event with history) scroll inside the window */
.modal{max-height:calc(100dvh - 32px);overflow-y:auto}
.wk-items .cal-chip.task span{flex:1 1 0;order:0}
@media (max-width:760px){
  .chat-ph p,.chat-ph .eyebrow{display:none}
  .chat{height:calc(100dvh - 200px);min-height:380px}
}
@media (max-width:640px){
  .ev-filters{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
  .ev-filters button{flex:none;white-space:nowrap}
}
