/* Ticket — dark first (same family as Market Hours Dial), light theme via [data-theme=light] */
:root{
  --bg:#0b0d10; --bg2:#0f1216; --panel:#13161b; --panel2:#181c22; --line:#232831; --line2:#2d333d;
  --fg:#e9edf2; --muted:#8790a0; --faint:#5b6370;
  --accent:#35d0b4; --accent-fg:#06231d; --accent2:#8f8cff;
  --ok:#3ddc84; --bad:#ff6b6b; --warn:#ffb547;
  --p-low:#7f8ea3; --p-normal:#35d0b4; --p-high:#ff9152; --p-urgent:#ff5a5f;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --r:12px; --r-sm:8px;
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
  --font-num:var(--font-ui);
  --font-code:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#f4f6f9; --bg2:#eef1f5; --panel:#ffffff; --panel2:#f7f9fb; --line:#e1e5eb; --line2:#d3d9e1;
  --fg:#151a21; --muted:#5d6675; --faint:#9aa3b0;
  --accent:#0f9f87; --accent-fg:#ffffff; --accent2:#5b57e0;
  --ok:#14a85a; --bad:#d93b3b; --warn:#c77700;
  --p-low:#6b7a8f; --p-normal:#0f9f87; --p-high:#e0681f; --p-urgent:#e02f36;
  --shadow:0 10px 30px rgba(20,30,50,.10);
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg);color:var(--fg)}
body{margin:0;font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-size:14px;line-height:1.45;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0 0 .4em;font-weight:600;letter-spacing:0;line-height:1.25}
h1{font-size:1.6rem} h2{font-size:1.2rem} h3{font-size:1rem;display:flex;align-items:center;gap:8px}
code{font-family:var(--font-code);font-size:.86em;background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.muted{color:var(--muted)} .small{font-size:.85rem} .warn{color:var(--warn)} .ok{color:var(--ok)}
.mono{font-family:var(--font-code);width:100%}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inline{display:inline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- top bar ---------- */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:10px max(16px,calc((100vw - 1280px)/2));background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.1rem;color:var(--fg);letter-spacing:0}
.brand:hover{text-decoration:none}
.logo{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#071412}
.logo .ic{width:19px;height:19px;stroke-width:2.2}
.logo.big{width:52px;height:52px;border-radius:14px}.logo.big .ic{width:30px;height:30px}
.nav{display:flex;gap:4px;flex:1}
.nav a{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:9px;color:var(--muted);font-weight:500;position:relative}
.nav a:hover{background:var(--panel);color:var(--fg);text-decoration:none}
.nav a.on{background:var(--panel);color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.cnt{font-family:var(--font-num);font-size:.72rem;background:var(--accent);color:var(--accent-fg);border-radius:999px;padding:0 7px;line-height:18px;min-width:18px;text-align:center}
.tools{display:flex;align-items:center;gap:6px}
.iconbtn{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:1.2rem}
.iconbtn:hover{background:var(--panel);color:var(--fg);border-color:var(--line)}
.me{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border-radius:999px;color:var(--fg)}
.me:hover,.me.on{background:var(--panel);text-decoration:none}
.who{display:flex;flex-direction:column;line-height:1.1}
.who b{font-weight:600;font-size:.92rem}.who small{color:var(--muted);font-size:.75rem}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:22px 16px 40px;flex:1}
.foot{text-align:center;color:var(--faint);font-size:.75rem;padding:14px;font-family:var(--font-num)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.pagehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.crumbs{margin-bottom:14px;font-size:.9rem}
.backlink{margin-left:-4px;display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-weight:500;padding:3px 12px 3px 3px;border-radius:999px;border:1px solid transparent;transition:color .15s,background .15s,border-color .15s}
.backlink .bk{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--panel2);border:1px solid var(--line2);color:var(--fg);transition:transform .15s,background .15s,border-color .15s,color .15s}
.backlink .bk .ic{width:15px;height:15px;stroke-width:2.2}
.backlink:hover{text-decoration:none;color:var(--fg);background:var(--panel);border-color:var(--line)}
.backlink:hover .bk{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);transform:translateX(-2px)}
.greet{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.greet h1{margin:0}

/* ---------- buttons & fields ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border-radius:9px;border:1px solid var(--line2);background:var(--panel2);color:var(--fg);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .05s}
.btn:hover{border-color:var(--muted);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.done{background:color-mix(in srgb,var(--ok) 16%,var(--panel));border-color:color-mix(in srgb,var(--ok) 50%,transparent);color:var(--ok)}
.btn.ghost{background:none}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent);background:none}
.btn.warnbtn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:none}
.btn.small{padding:4px 10px;font-size:.85rem}
.btn.wide{width:100%}
summary.btn{list-style:none;width:max-content}summary.btn::-webkit-details-marker{display:none}
.fld{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.fld>span{font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
input,select,textarea{font:inherit;color:var(--fg);background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);padding:9px 11px;width:100%;min-width:0}
textarea{resize:vertical;min-height:90px;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
input[type=checkbox],input[type=radio]{width:auto}
.hint{color:var(--faint);font-size:.8rem}
.check{display:flex;align-items:center;gap:8px;margin:4px 0 12px;cursor:pointer}
.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
.actions.left{justify-content:flex-start}
.row-form{display:flex;gap:8px;align-items:center;margin-top:10px}
.filter{margin-bottom:6px}

/* segmented radio */
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line2);border-radius:9px;background:var(--bg2);color:var(--muted);font-weight:600;transition:all .15s}
.seg input:checked+span{border-color:var(--accent);color:var(--fg);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.pri-seg span i{width:9px;height:9px;border-radius:50%;background:var(--pc)}
.pri-seg .ps-low{--pc:var(--p-low)}.pri-seg .ps-normal{--pc:var(--p-normal)}.pri-seg .ps-high{--pc:var(--p-high)}.pri-seg .ps-urgent{--pc:var(--p-urgent)}
.pri-seg input:checked+span{border-color:var(--pc);background:color-mix(in srgb,var(--pc) 14%,var(--panel))}

.deptpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.dcard{cursor:pointer}
.dcard input{position:absolute;opacity:0}
.dcard span{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--bg2)}
.dcard small{grid-column:2;color:var(--muted);font-size:.78rem}
.dcard input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.ddot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:1px}
.dcard .ddot{margin:0}

/* ---------- badges ---------- */
.pri{display:inline-flex;align-items:center;gap:5px;padding:1px 8px 1px 6px;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pc);background:color-mix(in srgb,var(--pc) 13%,transparent);border:1px solid color-mix(in srgb,var(--pc) 40%,transparent);white-space:nowrap}
.pri i{width:7px;height:7px;border-radius:50%;background:var(--pc)}
.pri-low{--pc:var(--p-low)}.pri-normal{--pc:var(--p-normal)}.pri-high{--pc:var(--p-high)}.pri-urgent{--pc:var(--p-urgent)}
.pri-urgent i{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--p-urgent) 70%,transparent)}50%{box-shadow:0 0 0 5px transparent}}
.st{display:inline-flex;padding:1px 8px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid var(--line2);color:var(--muted);white-space:nowrap}
.st-open{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent)}
.st-in_progress{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.st-closed{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.tag{display:inline-block;font-size:.72rem;font-weight:600;padding:0 7px;border-radius:5px;border:1px solid var(--line2);color:var(--muted);margin-right:4px}
.tag-admin{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent)}
.tag-sup{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.tag-bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.tag-off{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.newpill{font-size:.72rem;font-weight:700;color:var(--accent-fg);background:var(--accent);border-radius:999px;padding:1px 8px}

.av{--h:200;display:inline-grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;font-weight:700;font-size:.85rem;letter-spacing:.02em;color:hsl(var(--h) 80% 86%);background:hsl(var(--h) 45% 26%);border:1px solid hsl(var(--h) 45% 36%)}
:root[data-theme="light"] .av{color:hsl(var(--h) 55% 28%);background:hsl(var(--h) 70% 90%);border-color:hsl(var(--h) 50% 78%)}
.av.sm{width:26px;height:26px;font-size:.68rem}
.av{line-height:1;text-align:center;padding:0;overflow:hidden}
.av.av{display:inline-grid;place-items:center;flex-direction:row} /* beats list rules like ".x li>span" that would push the initials off-centre */
.av.lg{width:58px;height:58px;font-size:1.2rem}
.av.dept{border-radius:10px}.av.dept .ic{width:18px;height:18px}.av.sm.dept .ic{width:14px;height:14px}

/* ---------- flash / banners ---------- */
.flash{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;margin-bottom:14px;border:1px solid var(--line2);background:var(--panel)}
.flash .x{margin-left:auto;background:none;border:0;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.6}
.flash-success{border-color:color-mix(in srgb,var(--ok) 45%,transparent);color:var(--ok)}
.flash-error{border-color:color-mix(in srgb,var(--bad) 45%,transparent);color:var(--bad)}
.flash-warning{border-color:color-mix(in srgb,var(--warn) 45%,transparent);color:var(--warn)}
.flash-info{border-color:color-mix(in srgb,var(--accent2) 45%,transparent);color:var(--accent2)}
.banner{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:10px;margin-bottom:12px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);animation:slide .3s ease-out}
.banner .btn{margin-left:auto}
.banner.lic-bad{background:color-mix(in srgb,var(--bad) 12%,var(--panel));border-color:color-mix(in srgb,var(--bad) 45%,transparent);color:var(--bad)}
.banner.lic-warn{background:color-mix(in srgb,var(--warn) 12%,var(--panel));border-color:color-mix(in srgb,var(--warn) 45%,transparent);color:var(--warn)}
.banner svg{flex:none;width:18px;height:18px}
.lic-grid{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:8px 0 14px}.lic-grid dt{color:var(--muted)}.lic-grid dd{margin:0}
@keyframes slide{from{opacity:0;transform:translateY(-6px)}}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:18px}
.stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);color:var(--fg);position:relative;overflow:hidden;--sc:var(--muted)}
a.stat:hover{text-decoration:none;border-color:var(--line2)}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sc);opacity:.9}
.stat b{font-family:var(--font-num);font-size:1.7rem;font-weight:600;line-height:1.1}
.stat span{color:var(--muted);font-size:.85rem}
.stat.on{border-color:var(--sc);background:color-mix(in srgb,var(--sc) 9%,var(--panel))}
.c-in{--sc:var(--accent)}.c-out{--sc:var(--accent2)}.c-unread{--sc:var(--warn)}.c-urgent{--sc:var(--p-urgent)}.c-team{--sc:#4db8ff}

/* ---------- inbox ---------- */
.inbox{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.inbox-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px 0}
.tabs{display:flex;gap:4px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:3px}
.tabs a{padding:6px 14px;border-radius:7px;color:var(--muted);font-weight:600}
.tabs a b{font-family:var(--font-num);font-size:.78rem;font-weight:500;margin-left:4px;color:var(--faint)}
.tabs a:hover{color:var(--fg);text-decoration:none}
.tabs a.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.tabs a.on b{color:var(--accent)}
.search{display:flex;gap:8px;flex:1;justify-content:flex-end;min-width:260px}
.sbox{position:relative;flex:1;max-width:380px}
.sbox .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--faint)}
.sbox input{padding-left:34px}
.search select{width:auto}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}
.chip{padding:3px 12px;border-radius:999px;border:1px solid var(--line2);color:var(--muted);font-size:.85rem;font-weight:600}
.chip:hover{color:var(--fg);text-decoration:none}
.chip.on{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.list{list-style:none;margin:0;padding:0}
.list li+li{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:10px auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px 12px 8px;color:var(--fg);position:relative;transition:background .12s}
.row:hover{background:var(--panel2);text-decoration:none}
.row::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}
.row.p4::after{background:var(--p-urgent)}.row.p3::after{background:var(--p-high)}
.udot{width:8px;height:8px;border-radius:50%;background:transparent}
.row.unread .udot{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.rmain{min-width:0;display:flex;flex-direction:column;gap:2px}
.l1{display:flex;gap:8px;align-items:center;font-size:.85rem;color:var(--muted);min-width:0}
.l1 .parties{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.arrow{color:var(--faint)}
.role{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:0 6px;border-radius:4px;color:var(--faint);border:1px solid var(--line);flex:none}
.role-to_me{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.role-to_dept{color:#4db8ff;border-color:color-mix(in srgb,#4db8ff 40%,transparent)}
.role-team{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 40%,transparent)}
.l2{display:flex;gap:8px;align-items:baseline;min-width:0}
.tid{font-family:var(--font-num);font-size:.8rem;color:var(--faint);flex:none}
.tid.big{font-size:.95rem}
.subj{font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row.unread .subj{font-weight:700}
.l3{font-size:.86rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l3 b{color:var(--fg);font-weight:600}
.rside{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.rside time{font-family:var(--font-num);font-size:.78rem;color:var(--muted);white-space:nowrap}
.row.unread .rside time{color:var(--accent);font-weight:600}
.badges{display:flex;gap:5px}
.meta{display:flex;gap:10px;color:var(--faint);font-family:var(--font-num);font-size:.75rem}
.meta span{display:flex;align-items:center;gap:3px}.meta .ic{width:13px;height:13px}
.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px;border-top:1px solid var(--line)}
.empty{text-align:center;padding:56px 20px;color:var(--muted)}
.empty h2{font-weight:500;color:var(--fg)}
.empty-art{display:inline-grid;place-items:center;width:72px;height:72px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);margin-bottom:14px;color:var(--accent)}
.empty-art .ic{width:36px;height:36px;stroke-width:1.5}

/* ---------- ticket view ---------- */
.tview{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.thead-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.tsubj{font-size:1.45rem;margin:0 0 6px;word-break:break-word}
.tline{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:6px 0 0;color:var(--fg)}
.rename summary{cursor:pointer;color:var(--muted);font-size:.82rem;width:max-content}
.timeline{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:14px}
.msg{display:flex;gap:12px;align-items:flex-start}
.bubble{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:4px var(--r) var(--r) var(--r);padding:12px 16px}
.msg.mine .bubble{background:color-mix(in srgb,var(--accent) 6%,var(--panel));border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}
.mhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;margin-bottom:6px;font-size:.92rem}
.mhead time{margin-left:auto;font-family:var(--font-num);font-size:.75rem;color:var(--faint)}
.mbody{word-wrap:break-word;overflow-wrap:anywhere;line-height:1.55}
.mbody a.tref{font-family:var(--font-num)}
.ev{display:flex;justify-content:center}
.evline{font-size:.82rem;color:var(--muted);background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:3px 14px}
.evline time{color:var(--faint);font-family:var(--font-num);font-size:.74rem;margin-left:4px}
.ev-closed .evline{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}
.ev-reopened .evline{color:var(--warn)}
.atts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:10px}
.att{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:7px 11px 7px 7px;border:1px solid var(--line2);border-radius:10px;background:var(--bg2);color:var(--fg);max-width:260px}
.att:hover{border-color:var(--accent);text-decoration:none}
.att .ficon,.att img{grid-row:span 2}
.att small{color:var(--muted);font-size:.75rem;font-family:var(--font-num)}
.att.img{grid-template-columns:1fr;padding:6px;max-width:220px}
.att.img img{grid-row:auto;width:100%;max-height:160px;object-fit:cover;border-radius:6px;display:block;margin-bottom:5px;background:var(--panel2)}
.fname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem}
.ficon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:color-mix(in srgb,var(--accent2) 18%,var(--panel));color:var(--accent2);font-family:var(--font-num);font-size:.62rem;font-weight:600}
.ficon.sm{width:30px;height:30px;font-size:.56rem}
.reply textarea{margin-bottom:10px}
.closedbox{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}
.closedbox>div{display:flex;align-items:center;gap:8px;color:var(--ok)}
.side .card{padding:16px}
.closeform{margin-bottom:14px}
.facts{display:grid;grid-template-columns:auto 1fr;gap:9px 14px;margin:0;font-size:.92rem}
.facts dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.facts dd{margin:0;min-width:0}
.facts dd small{display:block;color:var(--muted);font-size:.78rem}
.pri-select{padding:5px 8px;width:auto;font-weight:700}
.pri-select.p1{color:var(--p-low)}.pri-select.p2{color:var(--p-normal)}.pri-select.p3{color:var(--p-high)}.pri-select.p4{color:var(--p-urgent)}
.mini-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.assign select{margin-top:6px;padding:5px 8px}
.aud,.filelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.aud li{display:flex;align-items:center;gap:9px}
.aud li>span:not(.av){display:flex;flex-direction:column;line-height:1.2;min-width:0}
.aud li>span .tag{align-self:flex-start;margin:2px 0 1px}
.aud small{color:var(--muted);font-size:.76rem}
.aud .end{margin-left:auto}
.filelist a{display:flex;align-items:center;gap:9px;color:var(--fg);min-width:0}
.filelist small{margin-left:auto;color:var(--muted);font-family:var(--font-num);font-size:.72rem;flex:none}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:24px;cursor:zoom-out}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:var(--shadow)}
.lightbox .x{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}

/* ---------- drop zone ---------- */
.drop{position:relative;margin-bottom:12px}
.drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.drop-inner{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px dashed var(--line2);border-radius:10px;color:var(--muted);cursor:pointer;transition:all .15s}
.drop-inner small{margin-left:auto;color:var(--faint);font-size:.78rem}
.drop-inner:hover,.drop.over .drop-inner{border-color:var(--accent);color:var(--fg);background:color-mix(in srgb,var(--accent) 7%,transparent)}
.drop-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.drop-list li{display:flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;border-radius:999px;background:var(--bg2);border:1px solid var(--line2);font-size:.82rem}
.drop-list li small{color:var(--muted);font-family:var(--font-num)}
.drop-list li.bad{border-color:var(--bad);color:var(--bad)}
.drop-list button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1}

/* ---------- admin ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--line2)}
.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr[data-href]{cursor:pointer}
.tbl tr[data-href]:hover td{background:var(--panel2)}
.tbl tr.off td{opacity:.55}
.tbl .num{text-align:right;font-family:var(--font-num)}
.tblhead{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.tblhead .filter{max-width:360px;margin:0}
.uname{display:flex;align-items:center;gap:9px;color:var(--fg)}
.uname>span:not(.cav):not(.av){display:flex;flex-direction:column;line-height:1.2}
.uname small{color:var(--muted);font-size:.78rem}
.addbox{padding:14px}
.addbox[open] summary{margin-bottom:16px}
.profile-id{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.profile-id h2{margin:0}
.profile-id p{margin:2px 0 0}
.pwshow{display:flex;align-items:center;gap:12px;border-color:color-mix(in srgb,var(--warn) 50%,transparent)}
.pwshow small{display:block;margin-top:3px}
.copybtn{margin-left:6px;vertical-align:middle;display:inline-flex;align-items:center;gap:5px}
.copybtn .ic{width:14px;height:14px}
.copybtn.copied{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}
.pw{font-size:1.1rem;user-select:all;color:var(--warn)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.dtile{color:var(--fg);border-top:3px solid var(--dc);margin:0}
.dtile:hover{text-decoration:none;border-color:var(--dc);border-top-width:3px}
.dmeta{display:flex;gap:14px;color:var(--muted);font-size:.85rem}
.dmeta span{display:flex;align-items:center;gap:5px}.dmeta .ic{width:15px;height:15px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatches label{cursor:pointer}
.swatches input{position:absolute;opacity:0}
.swatches i{display:block;width:26px;height:26px;border-radius:8px;background:var(--c);border:2px solid transparent;box-shadow:inset 0 0 0 2px var(--panel)}
.swatches input:checked+i{border-color:var(--fg)}
.bar{display:grid;grid-template-columns:90px 1fr 40px;gap:10px;align-items:center;margin-bottom:9px}
.bar b{font-family:var(--font-num);text-align:right}
.bt{height:10px;border-radius:999px;background:var(--bg2);overflow:hidden}
.bf{display:block;height:100%;border-radius:999px}
.pf-low{background:var(--p-low)}.pf-normal{background:var(--p-normal)}.pf-high{background:var(--p-high)}.pf-urgent{background:var(--p-urgent)}

/* ---------- login / install ---------- */
.login{display:grid;place-items:center;min-height:calc(100vh - 120px)}
.login-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:var(--shadow)}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.login-brand h1{margin:0}.login-brand p{margin:2px 0 0}
.langs{text-align:center;margin:16px 0 0;font-size:.85rem;color:var(--faint)}
.langs a{color:var(--muted)}.langs a.on{color:var(--accent);font-weight:600}
.install{max-width:720px;margin:0 auto}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px}
.checks li.ok{color:var(--ok)}.checks li.warn{color:var(--warn)}

/* ---------- waiting too long ---------- */
.c-late{--sc:var(--p-urgent)}
.stat.hot{border-color:color-mix(in srgb,var(--p-urgent) 55%,transparent);background:color-mix(in srgb,var(--p-urgent) 10%,var(--panel))}
.stat.hot b{color:var(--p-urgent)}
.row.late{background:linear-gradient(90deg,color-mix(in srgb,var(--p-urgent) 14%,transparent),transparent 65%)}
.row.late::after{background:var(--p-urgent);width:4px;animation:latebar 1.6s ease-in-out infinite}
@keyframes latebar{50%{opacity:.35}}
.latepill{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;color:var(--p-urgent);white-space:nowrap}
.latepill .ic{width:13px;height:13px}
.facts dd .ic{width:14px;height:14px;vertical-align:-2px}
.latetxt{color:var(--p-urgent);font-weight:600}
.slas{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;margin-bottom:8px}
.slas label{display:grid;grid-template-columns:90px 70px auto;gap:8px;align-items:center}
.slas input{padding:6px 8px;text-align:right;font-family:var(--font-num)}
.tgfields .fld>span{display:flex;align-items:center;gap:5px}
.tgfields .ic{width:14px;height:14px}
a.btn.disabled{opacity:.45;pointer-events:none}

/* ---------- people added later ---------- */
.role-added{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.aud li.added{padding-top:9px;border-top:1px dashed var(--line)}
.addpeople{margin-top:14px}
.addpeople[open] summary{margin-bottom:12px}
.addpeople .form .fld{margin-bottom:10px}
.addpeople .seg{margin-bottom:10px}
.addpeople textarea{min-height:60px;margin-bottom:6px}
fieldset.share{border:1px solid var(--line2);border-radius:10px;padding:8px 12px 2px;margin:0 0 10px}
fieldset.share legend{font-size:.82rem;font-weight:600;color:var(--fg);padding:0 4px}
fieldset.share .check{align-items:flex-start;margin:6px 0 8px}
fieldset.share .check input{margin-top:4px}
fieldset.share .check span{display:flex;flex-direction:column;line-height:1.25}
fieldset.share small{color:var(--muted);font-size:.76rem}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .tview{grid-template-columns:1fr}
  .side{order:-1}
}
@media (max-width:720px){
  .top{gap:8px;flex-wrap:wrap}
  .nav{order:3;width:100%;flex:none}
  .nav a span{display:none}
  .nav a{flex:1;justify-content:center}
  .who{display:none}
  .tools{margin-left:auto}
  .cols2{grid-template-columns:1fr}
  .row{grid-template-columns:8px auto minmax(0,1fr);padding-right:12px}
  .row .av{display:none}
  .row{grid-template-columns:8px minmax(0,1fr) auto}
  .rside .meta{display:none}
  .slas{grid-template-columns:1fr}
  .role{display:none}
  .inbox-head{flex-direction:column;align-items:stretch}
  .tabs{align-self:flex-start}
  .search{min-width:0;width:100%}
  .search select{max-width:42%}
  .sbox{max-width:none}
  .greet h1{font-size:1.3rem}
  .drop-inner small{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* several supervisors */
.suplist{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0 8px}
.supchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);cursor:pointer;font-size:.88rem}
.supchip input{position:absolute;opacity:0;pointer-events:none}
.supchip i{font-style:normal;color:var(--muted);font-weight:700;margin-left:2px}
.supchip:hover i{color:var(--bad)}
.supchip:has(input:not(:checked)){opacity:.45;text-decoration:line-through;border-color:var(--line2);background:none}
.supchip:not(:has(.av)){padding-left:12px}

/* directory + supervisor panel */
.block{display:block}
.pad{padding:8px 14px 0;margin:0}
.nowrap{white-space:nowrap}
.tbl.people td{vertical-align:middle}
.uname .pnrow{display:flex;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}
.pnrow .tag{margin:0;line-height:1.45;font-size:.68rem;letter-spacing:.02em;display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 7px}
.tag-sup .tsd{display:inline-flex;align-items:center;color:var(--fg);font-weight:500;padding-left:7px;border-left:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
.tag-sup .tsd .ddot{width:6px;height:6px;margin-right:4px;vertical-align:0}
.uname .pnrow .tag,.uname .pnrow .tsd{flex-direction:row;line-height:1.45;white-space:nowrap}
.tag.tag-sup:has(.tsd){display:inline-flex;align-items:center;gap:0 7px;vertical-align:middle;line-height:1.45}
.tag-sup .tsd{white-space:nowrap}
.pdept{display:flex;flex-direction:column;gap:3px;line-height:1.25}
.pdname{display:inline-flex;align-items:center}
.pdname .ddot{margin-right:8px;vertical-align:0}
.psup{color:var(--muted);font-size:.76rem;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding-left:17px}
.psd{display:inline-flex;align-items:center;color:var(--fg);opacity:.85}
.psd .ddot{width:7px;height:7px;margin-right:5px;vertical-align:0}
.waitlist{list-style:none;margin:0;padding:0}
.waitlist li{border-top:1px solid var(--line)}
.waitlist li:first-child{border-top:0}
.waitlist a{display:flex;gap:10px;align-items:flex-start;padding:9px 2px;color:inherit}
.waitlist a:hover{text-decoration:none;background:color-mix(in srgb,var(--accent) 6%,transparent)}
.waitlist a>span:not([class]){display:flex;flex-direction:column;min-width:0}
.waitlist a>.pri{flex:none;margin-top:1px}
.waitlist b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.waitlist small{color:var(--muted)}
.waitlist li.late small{color:var(--bad)}
.pwpop{display:inline-block;position:relative}
.pwpop summary{list-style:none;display:inline-flex}
.pwpop summary::-webkit-details-marker{display:none}
.pwpop[open] form{position:absolute;right:0;top:110%;z-index:20;width:280px;background:var(--panel);border:1px solid var(--line2);border-radius:12px;padding:12px;box-shadow:0 12px 30px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:8px;text-align:left;white-space:normal}
.teamforms{margin-top:16px;gap:16px}
.teamforms h4{margin:0 0 8px}
.teamforms .addbox{align-self:start}
#members .pwshow{margin-bottom:12px}
@media (max-width:720px){.tblwrap{overflow-x:auto;max-width:100%}.pwpop[open] form{position:fixed;left:16px;right:16px;top:30%;width:auto}}
@media (max-width:720px){.hide-sm{display:none}.teamforms{grid-template-columns:1fr}.pwpop[open] form{width:250px}}
td.nowrap>details,td.nowrap>form{display:inline-flex;vertical-align:middle;margin:0}

/* inbox filters */
.ftoggle{gap:6px}
.ftoggle.on{border-color:var(--accent);color:var(--accent)}
.ftoggle.open{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.ftoggle .cnt{background:var(--accent);color:#06221c;border-radius:999px;padding:0 7px;font-size:.75rem;line-height:1.5}
.fpanel{margin:12px 14px 0;padding:14px;border:1px solid var(--line2);border-radius:12px;background:color-mix(in srgb,var(--fg) 3%,transparent)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px}
.fgrid .fld{margin:0}
.pripick{display:flex;flex-wrap:wrap;gap:6px}
.pripick label{cursor:pointer;opacity:.45}
.pripick label:has(input:checked){opacity:1}
.pripick input{position:absolute;opacity:0;pointer-events:none}
.dates{display:flex;gap:6px;align-items:center}
.dates input{min-width:0;flex:1}
.fchecks{display:flex;flex-wrap:wrap;gap:2px 14px}
.fchecks .check{margin:2px 0}
.fpanel .actions{margin-top:12px}
.fchip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){.ftoggle span{display:none}.fgrid{grid-template-columns:1fr}}

/* ---------- chat ---------- */
.cav{position:relative;display:inline-flex;flex:none}
.cav .odot{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--faint);border:2px solid var(--panel);display:none}
.cav.on .odot,.is-on .cav .odot{display:block;background:var(--ok)}
.uname .cav{margin-right:0}
.chatdock{position:fixed;right:16px;bottom:0;z-index:60;display:flex;align-items:flex-end;gap:12px;pointer-events:none}
.chatdock>*{pointer-events:auto}
.cside{position:relative;display:flex;flex-direction:column;align-items:flex-end;padding-bottom:14px}
.cl{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:var(--panel);color:var(--fg);font:inherit;font-weight:600;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.cl:hover,.cl.open{border-color:var(--accent)}
.cl .ic{color:var(--accent)}
.cl .clon{color:var(--ok);font-weight:500}
.cl .cnt,.cri .cnt,.clr .cnt{background:var(--bad);color:#fff;border-radius:999px;padding:0 7px;font-size:.75rem;line-height:1.55;min-width:20px;text-align:center}
.cl.has{animation:clpulse 2s ease-in-out infinite}
@keyframes clpulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--bad) 25%,transparent),0 8px 24px rgba(0,0,0,.35)}}
.cr{position:absolute;right:0;bottom:66px;width:300px;max-height:min(70vh,520px);overflow:auto;background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.4)}
.cr input{width:100%;margin-bottom:8px}
.cr h4{margin:10px 2px 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.crl{list-style:none;margin:0;padding:0}
.crl li.muted{padding:6px 4px}
.cri{display:flex;align-items:center;gap:10px;width:100%;padding:7px 6px;border:0;background:none;color:inherit;font:inherit;text-align:left;border-radius:10px;cursor:pointer}
.cri:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
.crt{display:flex;flex-direction:column;min-width:0;flex:1}
.crt small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crall{display:block;margin-top:8px;padding:6px;text-align:center;font-size:.85rem}
.cws{display:flex;flex-direction:row-reverse;align-items:flex-end;gap:12px}
.cw{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line2);box-shadow:0 12px 34px rgba(0,0,0,.4)}
.cw-dock{width:320px;height:440px;border-radius:14px 14px 0 0;border-bottom:0}
.cw-dock.min{height:auto}
.cw-dock.min .cwb,.cw-dock.min .cwf{display:none}
.cw.ping{animation:cwping .9s ease-out}
@keyframes cwping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 70%,transparent),0 12px 34px rgba(0,0,0,.4)}100%{box-shadow:0 0 0 14px transparent,0 12px 34px rgba(0,0,0,.4)}}
.cwh{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border-bottom:1px solid var(--line);cursor:default}
.cw-dock .cwh{cursor:pointer;border-radius:14px 14px 0 0}
.cw-dock.min .cwh{border-bottom:0}
.cwwho{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.2}
.cwwho b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cwwho small{color:var(--muted);font-size:.78rem}
.peer-on .cwwho small{color:var(--ok)}
.cwbadge{background:var(--bad);color:#fff;border-radius:999px;padding:0 7px;font-size:.75rem;font-weight:700}
.cwbtn{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;border:0;background:none;color:var(--muted);font:inherit;font-size:1.05rem;cursor:pointer;text-decoration:none}
.cwbtn:hover{background:color-mix(in srgb,var(--fg) 8%,transparent);color:var(--fg);text-decoration:none}
.cwb{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column}
.cwl{display:flex;flex-direction:column;gap:4px;margin-top:auto}
.cwmore{align-self:center;margin-bottom:8px;border:1px solid var(--line2);background:none;color:var(--muted);border-radius:999px;padding:3px 12px;font:inherit;font-size:.8rem;cursor:pointer}
.cday{align-self:center;margin:10px 0 4px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cm{max-width:82%;padding:7px 10px 5px;border-radius:14px;position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:0 8px}
.cm .ctext{flex:1 1 auto;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
.cm time{flex:none;white-space:nowrap;font-size:.68rem;opacity:.7;margin-top:2px}
.cm.them{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:4px}
.cm.me{align-self:flex-end;background:color-mix(in srgb,var(--accent) 18%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-bottom-right-radius:4px}
.cm.pending{opacity:.6}
.cm.failed{border-color:var(--bad);cursor:pointer}
.cm.failed time::after{content:' ⚠';color:var(--bad)}
.cseen{flex:none;white-space:nowrap;font-size:.68rem;color:var(--accent)}
.cwempty{margin:auto;color:var(--muted);font-size:.9rem;text-align:center}
.cwnote{margin-top:8px;padding:6px 10px;border-radius:10px;font-size:.78rem;color:var(--muted);background:color-mix(in srgb,var(--warn) 9%,transparent);border:1px dashed color-mix(in srgb,var(--warn) 40%,transparent)}
.cwf{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--line)}
.cwf textarea{flex:1;resize:none;min-height:38px;max-height:120px;padding:8px 10px;line-height:1.35}
.cwf .btn{height:38px}
/* chat page */
.chatpage{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
.chatlist{padding:12px}
.chatstart{margin:0 0 10px}
.chatstart select{min-width:0;flex:1}
.clist{list-style:none;margin:0;padding:0}
.cli{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;color:inherit}
.cli:hover{background:color-mix(in srgb,var(--accent) 7%,transparent);text-decoration:none}
.cli.on{background:color-mix(in srgb,var(--accent) 13%,transparent)}
.cli.off{opacity:.55}
.clt{display:flex;flex-direction:column;min-width:0;flex:1}
.clt small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clr{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:.75rem;color:var(--muted)}
.cw-page{height:calc(100vh - 210px);min-height:420px;border-radius:14px}
.chatmain .empty{padding:40px 20px}
@media (max-width:980px){.chatpage{grid-template-columns:260px 1fr}}
@media (max-width:720px){
  .chatpage{grid-template-columns:1fr}
  .chatpage.has-peer .chatlist{display:none}
  .cw-page{height:calc(100vh - 190px)}
  .chatdock{left:0;right:0;justify-content:flex-end;padding:0 12px}
  .cws{position:fixed;left:0;right:0;bottom:0}
  .cw-dock{width:100%;height:70vh;border-radius:14px 14px 0 0}
  .cw-dock.min{width:auto;margin-left:auto;margin-right:84px}
  .cl .cltext,.cl .clon{display:none}
  .cl{width:52px;height:52px;padding:0;justify-content:center;position:relative}
  .cl .cnt{position:absolute;top:-4px;right:-4px}
  .cr{position:fixed;left:12px;right:12px;bottom:76px;width:auto}
  .chatdock.has-open .cside{display:none}
}
body{padding-bottom:70px}

/* work-status labels */
.wl{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap;color:var(--lc);background:color-mix(in srgb,var(--lc) 14%,transparent);border:1px solid color-mix(in srgb,var(--lc) 45%,transparent)}
.wl::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.hbadges,.sbadges{display:inline-flex;flex-wrap:wrap;gap:5px;align-items:center}
.badges{flex-wrap:wrap;justify-content:flex-end}
.st-self{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent)}
#status .sbadges{margin-bottom:6px}
.labelpick{margin-top:4px}
.labelpick summary{list-style:none;display:inline-flex}
.labelpick summary::-webkit-details-marker{display:none}
.labelpick[open] form{margin-top:8px;padding:10px;border:1px solid var(--line2);border-radius:12px;background:var(--panel2)}
.labelpick p{margin:0 0 8px}
.lgrid{display:flex;flex-wrap:wrap;gap:6px}
.lgrid label{cursor:pointer}
.lgrid input{position:absolute;opacity:0;pointer-events:none}
.lgrid span{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--muted);border:1px solid var(--line2)}
.lgrid input:checked+span{color:var(--lc);border-color:var(--lc);background:color-mix(in srgb,var(--lc) 14%,transparent)}
.lgrid input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.labelpick .actions{margin-top:8px}
/* checklist */
.tasks{padding:14px 16px}
.tasks.empty-tasks{padding:8px 16px}
.taskhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.taskhead h3{margin:0;display:flex;align-items:center;gap:8px}
.tprog{color:var(--muted);font-size:.85rem}
.tprog b{color:var(--fg)}
.pbar{height:6px;border-radius:999px;background:var(--line);margin:10px 0 6px;overflow:hidden}
.pbar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s}
.tasklist{list-style:none;margin:0;padding:0}
.tasklist li{border-top:1px solid var(--line)}
.tasklist li:first-child{border-top:0}
.trow{display:flex;align-items:flex-start;gap:8px;padding:7px 0}
.tasklist .tasklist{margin-left:30px;border-left:2px solid var(--line);padding-left:10px}
.tasklist .tasklist li{border-top:0}
.tasklist .tasklist .trow{padding:4px 0}
li.folded>.tasklist{display:none}
.tfold{display:inline-grid;place-items:center;width:18px;height:22px;flex:none;padding:0;border:0;background:none;color:var(--muted);cursor:pointer;border-radius:4px}
.tfold:hover{color:var(--fg);background:var(--line)}
.tfold .ic{width:14px;height:14px;transition:transform .15s}
li.folded>.trow .tfold .ic{transform:rotate(-90deg)}
.tfold.sp{cursor:default;background:none}
.haskids>.trow>.tbody{font-weight:600}
.tsub{font-style:normal;font-weight:600;font-size:.75rem;color:var(--muted);margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--line);text-decoration:none;display:inline-block}
.tsub.all{color:var(--ok)}
.tacts{display:inline-flex;align-items:center;gap:2px;margin-left:auto}
.tacts .iconbtn{opacity:0;transition:opacity .15s}
.tacts .iconbtn{width:26px;height:26px;font-size:1.05rem}
.tacts .iconbtn .ic{width:14px;height:14px}
.trow:hover .tacts .iconbtn,.tacts .iconbtn:focus{opacity:1}
@media (hover:none){.tacts .iconbtn{opacity:.6}}
.subform{margin:0 0 8px 56px}
.subform textarea{width:100%}
.subform .actions{margin-top:6px}
.tasklist form{margin:0}
.tbox{display:inline-grid;place-items:center;width:22px;height:22px;flex:none;margin-top:1px;border-radius:6px;border:2px solid var(--line2);background:none;color:var(--accent-fg);cursor:pointer;padding:0}
.tbox:hover:not(:disabled){border-color:var(--accent)}
.tbox .ic{width:14px;height:14px;stroke-width:3}
.done>.trow .tbox{background:var(--accent);border-color:var(--accent)}
.tbox:disabled{cursor:default;opacity:.7}
.tbody{flex:1;min-width:0;overflow-wrap:anywhere}
.tbody small{display:block;color:var(--faint);font-size:.75rem}
.done>.trow>.tbody{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}
.done>.trow>.tbody small{text-decoration:none}
.taskadd summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--muted);font-size:.9rem;padding:4px 0}
.taskadd summary::-webkit-details-marker{display:none}
.taskadd summary:hover{color:var(--accent)}
.taskadd textarea{width:100%;margin-top:6px}
.taskadd .actions{margin-top:6px}
form.busy{opacity:.6;pointer-events:none}
.tmeta{display:inline-flex;align-items:center;gap:3px}
.tmeta .ic{width:13px;height:13px}
.tmeta.all{color:var(--ok)}
.taskfld summary{cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px;font-weight:600}
.taskfld textarea{margin-top:8px;width:100%}
.selfhint{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent2) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent2) 30%,transparent);color:var(--fg)}

/* ---------- toasts (toastr, recoloured to the app theme) ---------- */
#toast-container{top:64px;right:16px}
#toast-container>div{width:340px;max-width:calc(100vw - 32px);opacity:1;box-shadow:var(--shadow);border-radius:10px;padding:12px 38px 12px 48px;
  background-color:var(--panel);color:var(--fg);border:1px solid var(--line2);border-left:4px solid var(--accent2);font-family:var(--font-ui);font-size:.92rem;line-height:1.4;
  background-position:14px center;background-size:20px 20px}
#toast-container>div:hover{box-shadow:var(--shadow);opacity:1;cursor:default}
#toast-container>.toast-info:has(.toast-title){cursor:pointer}
#toast-container .toast-title{font-weight:600;margin-bottom:2px}
#toast-container .toast-message{overflow-wrap:anywhere;white-space:pre-line}
#toast-container .toast-close-button{position:absolute;top:8px;right:10px;color:var(--muted);text-shadow:none;opacity:.8;font-size:1.25rem;font-weight:400}
#toast-container .toast-close-button:hover{color:var(--fg);opacity:1}
#toast-container .toast-progress{background:var(--accent2);opacity:.5;height:3px;bottom:0;border-radius:0 0 0 6px}
#toast-container>.toast-success{border-left-color:var(--ok)}
#toast-container>.toast-success .toast-progress{background:var(--ok)}
#toast-container>.toast-error{border-left-color:var(--bad)}
#toast-container>.toast-error .toast-progress{background:var(--bad)}
#toast-container>.toast-warning{border-left-color:var(--warn)}
#toast-container>.toast-warning .toast-progress{background:var(--warn)}
#toast-container>.toast-success{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233ddc84' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l2.7 2.7L16 9.8'/%3E%3C/svg%3E")!important}
#toast-container>.toast-error{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff6b6b' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.4v.1'/%3E%3C/svg%3E")!important}
#toast-container>.toast-warning{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffb547' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5l9.5 16.5h-19z'/%3E%3Cpath d='M12 10v4.5M12 17.2v.1'/%3E%3C/svg%3E")!important}
#toast-container>.toast-info{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f8cff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.6v.1'/%3E%3C/svg%3E")!important}
@media (max-width:640px){#toast-container{top:60px;right:12px;left:12px}#toast-container>div{width:auto;margin:0 0 8px}}

/* "You" in the directory: same size and place as the Ticket button, but not a button */
.youtag{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;border:1px dashed var(--line2);color:var(--muted);font-weight:600;white-space:nowrap;line-height:inherit}
.youtag .ic{width:16px;height:16px}

/* e-mail settings */
.cols2.tight{gap:10px}
.smtplog pre{margin:8px 0 0;max-height:220px;overflow:auto;font-family:var(--font-code);font-size:.75rem;white-space:pre-wrap;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--muted)}
.actions .btn.ghost{margin-right:auto}

/* ---------- v1.11: internal notes, saved replies, @mentions, pop-ups ---------- */
.rtop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.rmode span{padding:6px 12px;font-size:.88rem}
.rmode input[value=note]:checked+span{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,var(--panel))}
.rtools{position:relative;margin-left:auto}
.rtools .btn .ic:last-child{width:14px;height:14px;opacity:.7}
.cpop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(380px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line2);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.35);padding:8px}
.cpop input{margin-bottom:6px}
.cpop ul{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}
.cpop li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;border-radius:8px;cursor:pointer;outline:none}
.cpop li:hover,.cpop li:focus{background:var(--panel2)}
.cpop li b{font-size:.92rem}
.cpop li em{font-style:normal;font-size:.72rem;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:0 7px;align-self:center}
.cpop li small{grid-column:1/-1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cpop .cempty{padding:8px 10px;margin:0}
.cpop .cmanage{display:flex;align-items:center;gap:6px;margin-top:6px;padding:8px 10px 4px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.cpop .cmanage .ic{width:15px;height:15px}
.notehint{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:.85rem;color:var(--warn)}
.notehint .ic{width:15px;height:15px;flex:none}
.reply.notemode{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}
.reply.notemode textarea{background:color-mix(in srgb,var(--warn) 6%,var(--bg2));border-color:color-mix(in srgb,var(--warn) 40%,var(--line2))}
.reply.notemode [data-send]{background:var(--warn);border-color:var(--warn);color:#1d1300}
.msg.note .bubble{background:color-mix(in srgb,var(--warn) 7%,var(--panel));border:1px dashed color-mix(in srgb,var(--warn) 55%,var(--line))}
.notetag{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 6px;font-size:.75rem;font-weight:700;letter-spacing:.02em;color:var(--warn);text-transform:uppercase}
.notetag .ic{width:13px;height:13px}
.notetag span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.mention{display:inline-block;padding:0 6px;border-radius:6px;background:color-mix(in srgb,var(--accent2) 16%,transparent);color:var(--accent2);font-weight:600;line-height:1.45}
.mpop{list-style:none;margin:-6px 0 10px;padding:6px;background:var(--panel);border:1px solid var(--line2);border-radius:10px;box-shadow:0 10px 26px rgba(0,0,0,.3);max-width:420px}
.mpop li{display:flex;flex-direction:column;padding:6px 10px;border-radius:7px;cursor:pointer}
.mpop li small{color:var(--muted);font-size:.78rem}
.mpop li.on{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}
.mpop li.out b{color:var(--muted)}
.mpop li.out small{color:var(--warn)}
/* saved replies page */
.canned .crep{padding:14px 16px;margin-bottom:10px}
.canned .crep.on{border-color:var(--accent)}
.crhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.crhead b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crhead .chip{font-size:.72rem;padding:0 8px;flex:none}
.chip.c-me{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.chip.c-dept{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent)}
.cracts{margin-left:auto;display:flex;gap:2px;flex:none}
.cracts .ic{width:16px;height:16px}
.crbody{color:var(--muted);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}
/* pop-up switch on the profile */
.notifyrow{display:flex;align-items:center;gap:12px;margin:12px 0 8px}
.switch{position:relative;display:inline-block;width:44px;height:24px;flex:none;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;border-radius:999px;background:var(--line2);transition:background .15s}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked+span{background:var(--accent)}
.switch input:checked+span::after{transform:translateX(20px)}
.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
#desktop .flash{display:block;margin:10px 0;line-height:1.5}
#desktop code{word-break:break-all}
#toast-container .toast-message{white-space:pre-line}
h2>.ic:first-child{margin-right:8px;vertical-align:-3px}

/* ---------- v1.12: due dates, board, calendar, time ---------- */
.greet-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.vswitch{display:flex;gap:2px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:3px}
.vswitch a{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:7px;color:var(--muted);font-weight:600;font-size:.88rem}
.vswitch a:hover{color:var(--fg);text-decoration:none}
.vswitch a.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.vswitch .ic{width:16px;height:16px}
.duepill{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;white-space:nowrap;color:var(--muted);--dc:var(--muted)}
.duepill .ic{width:13px;height:13px}
.duepill.d-late{color:var(--p-urgent)} .duepill.d-today{color:var(--warn)} .duepill.d-soon{color:var(--accent2)}
.duefld input{max-width:220px}
.duefld em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0}
#due .duepill{font-size:.85rem}
.duepick{margin-top:6px}
.duepick summary{list-style:none;display:inline-flex}
.duepick summary::-webkit-details-marker{display:none}
.duepick form{margin-top:8px}
.duepick .row-form{display:flex;gap:6px}
.duepick .row-form input{flex:1}
/* time */
.timecard h3 .ttotal{margin-left:auto;font-family:var(--font-num);color:var(--accent)}
.tpeople,.tentries{list-style:none;margin:0 0 10px;padding:0}
.tpeople li{display:flex;justify-content:space-between;font-size:.88rem;padding:2px 0}
.tpeople b,.tentries b{font-family:var(--font-num);font-weight:600}
.tentries li{display:grid;grid-template-columns:auto 1fr auto 24px;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:.88rem}
.tentries .tday{color:var(--muted);font-size:.8rem;white-space:nowrap}
.tentries .twho small{display:block;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.tentries .iconbtn{width:24px;height:24px}
.tlog{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.tlrow{display:grid;grid-template-columns:1fr auto;gap:6px}
.tlrow input[type=date]{width:auto}
.tlog .actions{justify-content:space-between;margin-top:2px}
[data-timer].running{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,transparent);font-family:var(--font-num)}
[data-timer].running .ic{animation:pulse 1.4s ease-in-out infinite}
.timecard>p.small{display:flex;align-items:center;gap:6px;margin:10px 0 0}
.timecard>p.small .ic{width:13px;height:13px}
/* board */
.chips.bare{padding:0;border:0;margin-bottom:14px;align-items:center}
.bhint{margin-left:auto}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.bcol{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:10px;min-height:200px;transition:border-color .15s,background .15s}
.bcol.dropok{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg2))}
.bcol header{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:4px 6px 10px}
.bcol header small{flex-basis:100%;color:var(--muted);font-size:.78rem}
.bcount{font-family:var(--font-num);font-size:.8rem;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 8px}
.bc-open header b::before,.bc-in_progress header b::before,.bc-closed header b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.bc-open header b::before{background:var(--accent2)} .bc-in_progress header b::before{background:var(--warn)} .bc-closed header b::before{background:var(--ok)}
.bcards{display:flex;flex-direction:column;gap:8px}
.bcard{position:relative;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:10px;padding:10px 12px;transition:transform .1s,box-shadow .15s,opacity .15s}
.bcard[data-can]{cursor:grab}
.bcard:hover{border-color:var(--line2);box-shadow:0 4px 14px rgba(0,0,0,.18)}
.bcard.p4{border-left-color:var(--p-urgent)} .bcard.p3{border-left-color:var(--p-high)} .bcard.p2{border-left-color:var(--p-normal)} .bcard.p1{border-left-color:var(--p-low)}
.bcard.dragging{opacity:.4} .bcard.busy{opacity:.5;pointer-events:none}
.bcard.unread .bsubj{font-weight:700}
.bcard.unread::after{content:"";position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.bc1{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}
.bc1 .pri{font-size:.66rem;padding:0 6px 0 5px}
.bsubj{display:block;color:var(--fg);font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.bsubj:hover{color:var(--accent);text-decoration:none}
.bc3{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:.8rem;color:var(--muted)}
.bc3 .tmeta{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.bc3 .tmeta .ic{width:13px;height:13px}
.bmove{position:absolute;right:6px;bottom:6px;display:flex;gap:2px;opacity:0;transition:opacity .15s}
.bcard:hover .bmove,.bcard:focus-within .bmove{opacity:1}
.bmove .iconbtn{width:24px;height:24px;font-size:1rem;line-height:1;background:var(--panel2);border-color:var(--line)}
.bc-closed .bcard{opacity:.75}
.bempty{padding:6px}
/* calendar */
.calbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.calbar .chips.bare{margin:0}
.calnav{display:flex;align-items:center;gap:8px}
.calnav h2{margin:0;min-width:170px;text-align:center}
.calnav .iconbtn{font-size:1.3rem;border:1px solid var(--line)}
.calinfo{margin:4px 0 12px}
.calinfo .latetxt{color:var(--p-urgent);font-weight:600}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--line);gap:1px}
.cwd{background:var(--bg2);padding:8px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.calday{background:var(--panel);min-height:112px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.calday.out{background:var(--bg2)} .calday.out .cnum{color:var(--faint)}
.cdh{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.cnum{font-family:var(--font-num);font-size:.85rem;font-weight:600;width:24px;height:24px;display:inline-grid;place-items:center;border-radius:50%}
.calday.today .cnum{background:var(--accent);color:var(--accent-fg)}
.cwk{display:none;font-size:.78rem;color:var(--muted)}
.cadd{margin-left:auto;opacity:0;color:var(--muted);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px}
.cadd .ic{width:14px;height:14px}
.calday:hover .cadd{opacity:1} .cadd:hover{background:var(--panel2);color:var(--accent)}
.cev{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:6px;font-size:.78rem;color:var(--fg);background:var(--panel2);border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;--pc:var(--p-normal)}
.cev:hover{text-decoration:none;border-color:var(--pc)}
.cev i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--pc)}
.cev .tid{font-family:var(--font-num);color:var(--muted);font-size:.72rem}
.cev.p1{--pc:var(--p-low)} .cev.p3{--pc:var(--p-high)} .cev.p4{--pc:var(--p-urgent)}
.cev.late{background:color-mix(in srgb,var(--p-urgent) 12%,var(--panel));border-color:color-mix(in srgb,var(--p-urgent) 40%,transparent)}
.cev.done{opacity:.55;text-decoration:line-through}
@media (max-width:980px){.board{grid-template-columns:1fr}.bmove{opacity:1}.bhint{display:none}}
@media (max-width:720px){
  .greet{flex-wrap:wrap}
  .vswitch span{display:none}
  .cal{display:flex;flex-direction:column;background:none;border:0;gap:6px}
  .cwd,.calday:not(.has):not(.today){display:none}
  .calday{min-height:0;border:1px solid var(--line);border-radius:10px}
  .cwk{display:inline}
  .cadd{opacity:1}
  .cev{white-space:normal}
}
.bcard:has(.bmove) .bc3{padding-right:58px}

/* ---------- v1.13: linked tickets, merge ---------- */
.linkcard .lgroup{margin-bottom:10px}
.linkcard .lgroup>small{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.linkcard .lgroup>small b{font-family:var(--font-num);color:var(--fg);letter-spacing:0}
.linkcard ul{list-style:none;margin:0;padding:0}
.linkcard li{display:flex;align-items:center;gap:4px}
.lrow{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:7px;color:var(--fg);font-size:.88rem}
a.lrow:hover{background:var(--panel2);text-decoration:none}
.lrow .tid{font-family:var(--font-num);color:var(--muted);font-size:.8rem;flex:none}
.lrow .lsubj{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .st{flex:none;font-size:.68rem}
.lrow.done .lsubj{color:var(--muted);text-decoration:line-through}
.linkcard li .iconbtn{width:24px;height:24px;flex:none}
.linkacts{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin-top:4px}
.linkacts details{flex-basis:100%}
.linkacts details:not([open]){flex-basis:auto}
.linkacts summary{list-style:none;display:inline-flex}
.linkacts summary::-webkit-details-marker{display:none}
.linkacts form{margin-top:8px;gap:8px}
.linkacts .row-form{display:flex;gap:6px}
.linkacts .row-form input{flex:1}
.mergedbox{display:flex;align-items:center;gap:8px}
.st-merged{white-space:nowrap}

/* ---------- v1.14: automation ---------- */
.autodays .inl{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;text-transform:none;letter-spacing:0;font-weight:400}
.autodays .inl input{width:80px;flex:none}
.autostat{line-height:1.6;margin:6px 0}
#auto details{margin:4px 0 8px}
#auto details code{word-break:break-all}

/* ---------- v1.15: department form fields, export ---------- */
.req{color:var(--bad);font-style:normal;font-weight:700}
.fld>span .req{letter-spacing:0}
.cfcheck{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
.cfcheck input[type=checkbox]{width:auto;flex:none;margin:0}
.cfcheck>span{font-weight:600}
.cfcheck .hint{flex-basis:100%}
fieldset.cfgroup{border:1px solid var(--line2);border-radius:10px;padding:12px 14px 0;margin:0 0 14px;background:var(--panel2)}
fieldset.cfgroup legend{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--fg);padding:0 6px}
.cfcard .cfview{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:6px 16px;margin:10px 0 0}
.cfcard .cfview dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.cfcard .cfview dd{margin:0;overflow-wrap:anywhere}
.cfcard .cfform{margin-top:12px}
.cfcard .cfform .actions{justify-content:flex-end}
.cflist{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column}
.cflist li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.cflist li:first-child{border-top:0}
.cflist li.off .cfmain b{color:var(--muted)}
.cflist li.on .cfmain b{color:var(--accent)}
.cfmain{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.cfmain small{flex-basis:100%;overflow-wrap:anywhere}
.cfacts{display:flex;align-items:center;gap:2px;flex:none}
.cfacts .iconbtn{width:28px;height:28px;font-size:.95rem}
.cfacts .iconbtn.ph{visibility:hidden}
.cfpreview .fld{opacity:.85}
.exportbox{position:relative}
.exportbox summary{list-style:none}
.exportbox summary::-webkit-details-marker{display:none}
.exportmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:15;min-width:250px;background:var(--panel);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}
.exportmenu a{display:flex;flex-direction:column;padding:8px 10px;border-radius:7px;color:var(--fg)}
.exportmenu a:hover{background:var(--panel2);text-decoration:none}
.exportmenu a small{color:var(--muted);font-size:.76rem}
.exportmenu p{margin:4px 10px 6px;font-size:.76rem}
@media (max-width:640px){.cfcard .cfview{grid-template-columns:1fr}.cfcard .cfview dd{margin-bottom:6px}.cflist li{flex-wrap:wrap}}
.timeexp{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 14px}
.timeexp input[type=date]{width:auto}
.timeexp select{width:auto}
.timeexp .ic{width:15px;height:15px;vertical-align:-2px}
.fld.cfcheck>span{text-transform:none;letter-spacing:0;font-size:.92rem;color:var(--fg)}

/* ---------- v1.16: knowledge base ---------- */
.kbsearch{display:flex;gap:8px;margin:0 0 12px;max-width:640px}
.kbsearch .sbox{max-width:none}
.kbgroup h2{font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 10px}
.kbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.kbcard{display:flex;flex-direction:column;gap:6px;margin:0;color:var(--fg);transition:border-color .15s,transform .1s}
.kbcard:hover{text-decoration:none;border-color:var(--accent)}
.kbcard.draft{border-style:dashed}
.kbcard b{font-size:1.02rem;line-height:1.3}
.kbcard small{line-height:1.45}
.kbcard .kbstat{margin-top:auto;font-size:.74rem}
.kbtags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem}
.kbtags .tag{margin:0;display:inline-flex;align-items:center;gap:3px}
.kbtags .tag .ic,.kbcard .tag .ic{width:12px;height:12px}
.kbdept{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}
.tag-draft{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.kbpop ol{margin:6px 0 0;padding-left:20px;line-height:1.8}
.kbview{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.kbart h1{margin:10px 0 14px;font-size:1.6rem;line-height:1.25}
.kbbody{line-height:1.65;overflow-wrap:anywhere}
.kbbody h2{font-size:1.2rem;margin:22px 0 8px}
.kbbody h3{font-size:1.05rem;margin:18px 0 6px}
.kbbody h4{font-size:.95rem;margin:14px 0 4px;color:var(--muted)}
.kbbody p{margin:0 0 12px}
.kbbody ul,.kbbody ol{margin:0 0 12px;padding-left:22px}
.kbbody li{margin:3px 0}
.kbbody pre{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;overflow:auto;margin:0 0 12px}
.kbbody pre code{background:none;border:0;padding:0;font-size:.85rem}
.kbbody blockquote{margin:0 0 12px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--panel2);border-radius:0 8px 8px 0}
.kbby{margin:18px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.kbacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.kbvote .row-form{display:flex;gap:6px}
.kbmore{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.kbmeta{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.kbtext{font-family:var(--font-code);font-size:.88rem;line-height:1.5}
.kbsug{border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line2));background:color-mix(in srgb,var(--accent) 6%,var(--panel2));border-radius:10px;padding:10px 14px;margin:-6px 0 14px}
.kbsug p{margin:0 0 6px;display:flex;align-items:center;gap:6px;font-size:.88rem}
.kbsug ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.kbsug a{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:5px 8px;border-radius:7px;color:var(--fg)}
.kbsug a:hover{background:var(--panel);text-decoration:none}
.kbsug em{font-style:normal;font-size:.74rem;color:var(--muted)}
.kbsug small{flex-basis:100%;color:var(--muted);font-size:.78rem}
.kbfrom{margin:-6px 0 16px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.kbfrom .ic{width:15px;height:15px}
@media (max-width:900px){.kbview{grid-template-columns:1fr}}
@media (max-width:640px){.kbmeta{grid-template-columns:1fr}.kbsearch{flex-wrap:wrap}}

/* ---------- v1.17: e-mail to ticket ---------- */
.viamail{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-size:.7rem;font-weight:600;color:var(--muted);border:1px solid var(--line2);border-radius:5px;padding:0 6px;vertical-align:1px}
.viamail .ic{width:11px;height:11px}
.inaddr{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:.85rem}
.inaddr code{user-select:all}
.inlog{margin-top:10px}
.inlog .tbl td{vertical-align:top;padding:6px 8px}
.mailhint{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0 0}.mailhint .ic{width:14px;height:14px}.mailhint code{user-select:all}
/* v1.17.2 people: last seen */
.lseen{font-size:13px;color:var(--muted)}
.lseen.on{color:#3ddc84;font-weight:600}
/* v1.17.3 department colors: custom color from the color wheel */
.swcustom{position:relative;display:block;width:26px;height:26px}
.swcustom i{display:block;width:26px;height:26px;border-radius:8px;border:2px solid transparent;background:conic-gradient(#ff4d4d,#ffd34d,#3ddc84,#4db8ff,#a855f7,#ff4d8b,#ff4d4d);box-shadow:inset 0 0 0 2px var(--panel)}
.swcustom.set i{background:var(--c)}
.swcustom.set i::after{content:"";position:absolute;right:-3px;bottom:-3px;width:11px;height:11px;border-radius:50%;background:conic-gradient(#ff4d4d,#ffd34d,#3ddc84,#4db8ff,#a855f7,#ff4d8b,#ff4d4d);border:2px solid var(--panel)}
.swcustom input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.swcustom input:checked+i{border-color:var(--fg)}
.swcustom input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
/* v1.18 Slack */
.viaslack{color:#e8a5ff}
.slackhow ol{margin:8px 0 0;padding-left:20px;display:grid;gap:8px}
.slackhow summary{cursor:pointer;color:var(--accent)}
pre.manifest{max-height:180px;overflow:auto;background:var(--bg2,rgba(0,0,0,.25));border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:11.5px;margin:6px 0;white-space:pre}
/* v1.18.1 app icon */
img.logo{display:block;background:none;object-fit:contain}

/* v1.19: stars and deleting tickets */
.starform{display:inline-flex;margin:0}
.starbtn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:none;color:var(--faint);cursor:pointer;transition:color .12s,background .12s,transform .12s}
.starbtn .ic{width:18px;height:18px;fill:none}
.starbtn:hover{color:var(--warn);background:var(--panel2)}
.starbtn.on{color:var(--warn)}
.starbtn.on .ic{fill:currentColor}
.starbtn.pop{transform:scale(1.25)}
.srow{position:relative}
.srow .row{padding-right:46px}
.rowstar{position:absolute;right:10px;top:50%;transform:translateY(-50%)}
.rowstar .starbtn:not(.on){opacity:.45}
.srow:hover .rowstar .starbtn{opacity:1}
.headstar{margin-left:auto}
.tabs a.tabstar{display:inline-flex;align-items:center;gap:5px}
.tabs a.tabstar .ic{width:14px;height:14px}
.tabs a.tabstar.on .ic{color:var(--warn);fill:var(--warn)}
.delbanner{background:color-mix(in srgb,var(--bad) 10%,var(--panel));border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.delbanner form{margin-left:auto}
.delcard summary{cursor:pointer;display:flex;align-items:center;gap:6px;list-style:none}
.delcard summary::-webkit-details-marker{display:none}
.delcard summary .ic{width:15px;height:15px}
.delcard[open] summary{color:var(--bad);margin-bottom:8px}
.delcard input{width:100%;margin:8px 0}
@media (max-width:720px){.srow .row{padding-right:42px}.rowstar{right:6px}}

/* v1.20: new ticket, also add people or departments */
.alsofld summary{cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px;font-weight:600}
.alsofld .alsocnt{font-family:var(--font-num);font-size:.75rem;background:var(--accent);color:var(--accent-fg);border-radius:999px;padding:0 7px;line-height:1.5}
.alsofld .hint{margin:8px 0 10px}
.alsogrp{display:grid;gap:6px;margin-bottom:12px}
.alsodepts{display:flex;flex-wrap:wrap;gap:6px}
.chipcheck{cursor:pointer;position:relative}
.chipcheck input{position:absolute;opacity:0;pointer-events:none}
.chipcheck span{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--line2);border-radius:999px;background:var(--bg2);font-size:.86rem}
.chipcheck .ddot{margin:0}
.chipcheck input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--fg)}
.chipcheck input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.alsopeople{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--bg2);display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:12px}
.alsopeople .check{margin:3px 0}
.alsopeople .check[hidden]{display:none}
.alsopeople small{font-size:.75rem}
