:root{--navy:#0a1536;--acc:#2f5bff;--acc2:#1e40af;--bg:#f4f6fb;--card:#fff;--ink:#0f1a33;--mute:#64718c;--line:#e5e9f2;--ok:#16a34a;--warn:#f59e0b;--bad:#dc2626;--r:14px;--sh:0 1px 2px rgba(15,26,51,.05),0 10px 28px rgba(15,26,51,.07)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font:14px/1.5 Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
.mute{color:var(--mute)}
label{display:block;font-size:12px;font-weight:600;color:#38456a;margin-top:12px}
input,select,textarea{width:100%;margin-top:5px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus,.btn:focus-visible{border-color:var(--acc);box-shadow:0 0 0 3px rgba(47,91,255,.15)}
.btn{background:var(--acc);color:#fff;border:0;border-radius:10px;padding:9px 16px;font-weight:600;transition:.15s;box-shadow:0 4px 12px rgba(47,91,255,.25)}
.btn:hover{background:var(--acc2)}.btn:disabled{opacity:.6}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{background:var(--bg)}
.btn.danger{background:#fee2e2;color:var(--bad);box-shadow:none}.btn.big{width:100%;padding:12px;margin-top:18px}
.err{color:var(--bad);font-size:13px;margin-top:10px}
/* login */
#login{display:grid;grid-template-columns:1.1fr 1fr;height:100vh;height:100dvh;overflow:hidden}
.brand{position:relative;overflow:hidden;background:linear-gradient(155deg,#0b1a4a 0%,#0a2a8a 60%,#0d3bb5 100%);color:#fff;padding:clamp(20px,4vh,56px) clamp(32px,4.5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(12px,2.5vh,32px);min-height:0;height:100%}
.brand .bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.brand>*:not(.bg){position:relative}
.blogo{display:flex;align-items:center;gap:22px}
.badge{width:clamp(96px,17vh,176px);height:clamp(96px,17vh,176px);border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;box-shadow:0 0 0 6px rgba(255,255,255,.14),0 16px 36px rgba(0,0,0,.30)}
.badge .logo{width:84%;height:auto}
.blogo i{width:1px;height:48px;background:rgba(255,255,255,.3)}
.bt{font-size:12px;letter-spacing:.26em;color:#bcd0ff;line-height:1.8}
.bmid{max-width:560px}.accbar{display:block;width:56px;height:3px;border-radius:2px;background:#8dc63f;margin-bottom:clamp(12px,2.6vh,24px)}
.brand h1{font-size:clamp(32px,5.4vh,50px);line-height:1.1;font-weight:700;letter-spacing:-.025em}
.brand p{margin:clamp(10px,2vh,20px) 0 clamp(14px,3vh,32px);font-size:clamp(14px,1.9vh,17px);line-height:1.6;color:rgba(255,255,255,.78)}
.feats{list-style:none;display:grid;gap:clamp(8px,1.3vh,12px)}
.feats li{display:flex;gap:16px;align-items:center;padding:clamp(9px,1.7vh,16px) 20px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.05)}
.fi{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;flex:none}
.fi svg{width:20px;height:20px;stroke:#bcd0ff}
.feats b{display:block;font-size:15px;font-weight:600}.feats small{display:block;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.74)}
.bfoot{font-size:12.5px;color:rgba(255,255,255,.6)}
.formside{display:grid;place-items:center;padding:clamp(16px,3vh,40px) 40px;background:#f4f7fc;height:100%;min-height:0;overflow-y:auto}.lcard{margin:auto}
.lcard{width:100%;max-width:470px;background:#fff;padding:44px 44px 36px;border-radius:28px;border:1px solid #e6ebf5;box-shadow:0 1px 2px rgba(15,26,51,.05),0 24px 60px rgba(15,26,51,.10)}
.mlogo{display:none;width:150px;height:auto;margin:0 0 20px}
.kick{font-size:12px;font-weight:700;letter-spacing:.24em;color:var(--acc);margin-bottom:10px}
.lcard h2{font-size:38px;line-height:1.15;font-weight:700;letter-spacing:-.02em;color:#0f1a33}
.sub{margin:8px 0 24px;font-size:15px;line-height:1.5;color:#55627f}
.lcard label{font-size:13px;font-weight:600;color:#1b2540;margin-top:18px}.lcard form label:first-of-type{margin-top:0}
.lcard input{height:52px;padding:0 18px;border-radius:26px;font-size:15px;margin-top:8px}
.lcard .pw input{margin-top:8px;padding-right:56px}
.lcard .btn.big{height:54px;border-radius:27px;font-size:16px;margin-top:8px;box-shadow:0 10px 24px rgba(47,91,255,.30)}
.lcard #rb{margin-top:24px}
.fgt{text-align:right;margin:14px 0 18px}.fgt a,.back a{font-size:14px;font-weight:600;color:var(--acc);text-decoration:none}.fgt a:hover,.back a:hover{text-decoration:underline}
.back{text-align:center;margin-top:22px}.back a{color:#33415f}
.need{margin-top:24px;text-align:center;font-size:13px;color:#55627f}
.note{display:flex;gap:10px;align-items:flex-start;margin:18px 0 20px;padding:12px 14px;border-radius:14px;background:#eef3ff;font-size:13px;line-height:1.5;color:#33415f}
.note svg{flex:none;width:18px;height:18px;margin-top:1px;stroke:var(--acc);fill:none;stroke-width:1.8}
.ok{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:#ecfdf3;color:#15803d;font-size:14px;line-height:1.5}#fok{margin:0 0 14px}
.pw{position:relative;display:block}
.eyeb{position:absolute;right:8px;top:calc(50% + 4px);transform:translateY(-50%);width:40px;height:40px;border:0;background:none;border-radius:50%;display:grid;place-items:center}
.eyeb svg{width:20px;height:20px;fill:none;stroke:#475577;stroke-width:1.7}.eyeb.on svg{stroke:var(--acc)}
/* shell */
#app{position:fixed;inset:0;display:grid;grid-template-columns:244px 1fr;overflow:hidden}
#side{background:linear-gradient(180deg,#0a1536,#0b1f5c);color:#c9d3ef;display:flex;flex-direction:column;padding:16px 12px 12px;overflow:hidden;min-height:0}
.navs{flex:1;min-height:0;overflow-y:auto}
.sb{display:flex;align-items:center;gap:10px;padding:2px 2px 16px;color:#fff}.sbp{flex:none;width:112px;background:#fff;border-radius:12px;padding:6px 9px;box-shadow:0 4px 12px rgba(0,0,0,.25)}.sbp img{display:block;width:100%;height:auto}.sb span{font-weight:800;font-size:16px;line-height:1.15}.sb small{display:block;font-weight:600;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#9fb2e6;margin-top:2px}
.nav{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;margin:2px 0;border:0;background:none;color:inherit;border-radius:10px;text-align:left;font-weight:500;transition:.15s}
.nav:hover{background:rgba(255,255,255,.07);color:#fff}.nav.on{background:rgba(47,91,255,.9);color:#fff;box-shadow:0 6px 16px rgba(47,91,255,.35)}
.ic{width:18px;height:18px;flex:none}
.me{flex:none;margin-top:8px;padding:12px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:10px;align-items:center}.me div{min-width:0;flex:1}.me b{display:block;color:#fff;font-size:13px}.me small{opacity:.7;display:block;overflow:hidden;text-overflow:ellipsis}.me button{background:none;border:0;color:#fca5a5;font-size:12px;font-weight:600}
.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}
#top{display:flex;align-items:center;gap:12px;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line)}
#top h1{font-size:19px;font-weight:700;flex:1;letter-spacing:-.01em}.search input{margin:0;width:230px;border-radius:99px;padding:8px 14px}
.bell{position:relative;width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:50%;display:grid;place-items:center}.bell b{position:absolute;top:-4px;right:-4px;background:var(--bad);color:#fff;border-radius:99px;font-size:10px;padding:1px 6px}
#view{flex:1;min-height:0;overflow:auto;padding:20px 24px}
/* cards & stats */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:18px}.card h3{font-size:14px;margin-bottom:12px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px}.stat small{color:var(--mute);font-weight:500}.stat b{display:block;font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.02em}
.stat{position:relative;overflow:hidden;--c:#94a3b8}.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.stat.a{--c:var(--warn)}.stat.b{--c:var(--acc)}.stat.c{--c:var(--bad)}.stat.d{--c:var(--ok)}.stat.e{--c:#8b5cf6}.stat.e b{color:#7c3aed}
.stat.a b{color:var(--warn)}.stat.b b{color:var(--acc)}.stat.c b{color:var(--bad)}.stat.d b{color:var(--ok)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.act{font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}.act:last-child{border:0}.act small{color:var(--mute);display:block}

/* dashboard */
.dash{display:flex;flex-direction:column;height:100%;min-height:520px}.dash .stats{flex:none}
.dgrid{flex:1;min-height:0;display:grid;gap:14px;grid-template-columns:1fr 1fr 1.15fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"pri wl act" "ch ch act"}
.g-pri{grid-area:pri}.g-wl{grid-area:wl}.g-ch{grid-area:ch}.g-act{grid-area:act}
.dc{display:flex;flex-direction:column;min-height:0;overflow:hidden}.dc h3{flex:none;display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:10px}.dc .bd{flex:1;min-height:0;overflow-y:auto}
.lg{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--mute)}.lg i{width:10px;height:10px;border-radius:3px;margin-left:8px}.lg i:first-child{margin-left:0}
.pbar{margin:0 0 13px}.pl{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:5px}.pl>span{display:flex;align-items:center;gap:8px;min-width:0}.pl b{font-size:14px}
.pd{width:10px;height:10px;border-radius:50%;flex:none}.pbar .av{width:22px;height:22px;font-size:9px}
.trk{height:8px;border-radius:9px;background:#eef1f8;overflow:hidden}.trk s{display:block;height:100%;min-width:0;border-radius:9px;transition:width .4s}
.chart{display:flex;align-items:stretch;gap:clamp(3px,1vw,12px);padding-top:18px}
.day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}
.pair{flex:1;min-height:0;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line)}
.vb{position:relative;display:block;width:42%;max-width:20px;height:var(--h);min-height:3px;background:var(--c);border-radius:5px 5px 0 0}.vb em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:10px;font-weight:700;color:var(--c);padding-bottom:1px}
.day small{flex:none;margin-top:5px;text-align:center;font-size:11px;line-height:1.15;font-weight:600;color:#38456a}.day small u{text-decoration:none;font-weight:500;color:var(--mute);font-size:10px}
.act{position:relative;padding:9px 0 9px 18px}.act::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;border-radius:50%;background:var(--acc)}

/* files, success screen, sms */
.btn.sm{padding:5px 11px;font-size:12px;border-radius:8px}.atts label.btn{margin:0;display:inline-block;cursor:pointer}
.chk{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:13px;color:var(--ink)}.chk input{width:auto;margin:0}
.two{display:grid;grid-template-columns:minmax(320px,540px) 1fr;gap:14px;align-items:start}.two .tw{max-height:60vh}
.pc{font-size:11px;font-weight:600;color:var(--mute);white-space:nowrap}.tk .m .pc{margin-left:auto}
kbd{font:600 11px/1 Inter,system-ui,sans-serif;background:#eef1f8;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 5px;color:#38456a}
.drop{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;margin-top:16px;padding:18px 14px;border:2px dashed #c3cde4;border-radius:14px;background:#f8faff;color:var(--mute);font-size:12.5px;font-weight:400;cursor:pointer;transition:.15s}
.drop:hover,.drop.on{border-color:var(--acc);background:#eef3ff}.drop b{color:var(--ink);font-size:14px}.drop small{font-size:11.5px;opacity:.85}.drop .di{font-size:22px;line-height:1}
.fl{list-style:none;display:grid;gap:8px;margin-top:10px}.fl:empty{display:none}
.fl li,.ar{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ft{width:40px;height:40px;border-radius:9px;background:#f1f4fb;display:grid;place-items:center;flex:none;overflow:hidden;font-size:19px}.ft img{width:100%;height:100%;object-fit:cover;display:block}
.fn{flex:1;min-width:0;display:flex;flex-direction:column}.fn b,.fn .lnk{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;max-width:100%}.fn small{color:var(--mute);font-size:11.5px}
.x{width:28px;height:28px;border:0;border-radius:50%;background:#f1f4fb;color:#475577;font-size:18px;line-height:1;flex:none}.x:hover{background:#fee2e2;color:var(--bad)}
.atts{margin-top:16px}.ah{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.al{display:grid;gap:8px}.al p{font-size:13px}
.lb{position:fixed;inset:0;z-index:90;background:rgba(5,10,30,.82);display:grid;place-items:center;padding:24px;cursor:zoom-out}.lb img{max-width:100%;max-height:100%;border-radius:10px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb button{position:absolute;top:14px;right:18px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;font-size:24px;line-height:1}
.okw{position:relative;text-align:center;padding:6px 4px 0}.okw h2{font-size:26px;margin:14px 0 4px}.okt{color:#38456a;font-size:15px}.okt b{color:var(--acc)}
.tick{width:84px;height:84px;margin:6px auto 0}.tick svg{width:100%;height:100%;fill:none;stroke:var(--ok);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.tick circle{fill:#ecfdf3;stroke-dasharray:152;stroke-dashoffset:152;animation:dr .6s ease-out forwards}.tick path{stroke-dasharray:40;stroke-dashoffset:40;animation:dr .4s .5s ease-out forwards}
@keyframes dr{to{stroke-dashoffset:0}}
.sum{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 0;text-align:left}.sum div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8faff;min-width:0}.sum small{display:block;color:var(--mute);font-size:11.5px}.sum b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis}
.sum div:first-child{grid-column:1/-1}.sum div:first-child b{white-space:normal;word-break:break-word}
.nt2{list-style:none;display:grid;gap:8px;margin-top:14px;text-align:left}.nt2 li{padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45}.nt2 .good{background:#ecfdf3;color:#166534}.nt2 .warn{background:#fffbeb;color:#92400e}.nt2 .bad{background:#fef2f2;color:#b91c1c}
.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-12px;left:calc(var(--i) * 4.6%);width:8px;height:14px;border-radius:2px;background:hsl(calc(var(--i) * 47) 85% 55%);opacity:0;animation:fall 2.4s calc(var(--i) * 60ms) ease-in forwards}
.confetti i:nth-child(odd){width:10px;height:10px;border-radius:50%}
@keyframes fall{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(340px) rotate(540deg)}}
@media(prefers-reduced-motion:reduce){.confetti{display:none}.tick circle,.tick path{animation:none;stroke-dashoffset:0}}
@media(max-width:1100px){.two{grid-template-columns:1fr}}

/* ticket detail, conversation, templates */
.mbox.wide{max-width:700px}
code{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#eef1f8;border-radius:5px;padding:1px 5px;color:#26325a}
.tabs{display:flex;gap:4px;margin:14px 0 4px;border-bottom:1px solid var(--line)}
.tab{border:0;background:none;padding:9px 14px;font-weight:600;font-size:13.5px;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0}
.tab:hover{color:var(--ink)}.tab.on{color:var(--acc);border-bottom-color:var(--acc)}
.tn{display:inline-block;min-width:18px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--acc);color:#fff;font-size:11px;line-height:18px;text-align:center}.tn:empty{display:none}
.thh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.thh h2{margin:0}
.chip.rp{background:#fef3c7;color:#b45309}
.ts{font-size:20px;line-height:1.35;margin:14px 0 12px;word-break:break-word}
.bn{padding:11px 14px;border-radius:12px;font-size:13.5px;background:#eef3ff;color:#1e3a8a;border:1px solid #dbe6ff}
.bn.In-Progress{background:#fffbeb;color:#92400e;border-color:#fde9b0}.bn.Resolved,.bn.Closed{background:#ecfdf3;color:#166534;border-color:#c7f0d8}
.ig{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.ig>div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8faff;min-width:0}
.ig small,.dsc small{display:block;color:var(--mute);font-size:11.5px;margin-bottom:2px}.ig b{display:flex;align-items:center;gap:7px;font-size:13.5px}
.dsc{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.dsc p{white-space:pre-wrap;word-break:break-word;font-size:14px}
.cv{margin-top:18px}.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cl{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8faff;scroll-behavior:smooth}
.cvempty{text-align:center;color:var(--mute);font-size:13px;padding:22px 0}
.ev{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11.5px;color:var(--mute);text-align:center;flex-wrap:wrap}.ev span{background:#eaeef8;border-radius:99px;padding:2px 10px}
.bub{max-width:88%;align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:4px 14px 14px 14px;padding:9px 12px;box-shadow:0 1px 2px rgba(15,23,60,.04)}
.bub.mine{align-self:flex-end;background:#eaf0ff;border-color:#cfdcff;border-radius:14px 4px 14px 14px}
.bub.int{background:#fffbeb;border:1px dashed #f1c75b}.bub.ro{background:#fff7ed;border-color:#fdba74}
.bh{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px;font-size:12.5px}.bh .av{width:22px;height:22px;font-size:9px}.bh small{margin-left:auto;color:var(--mute);font-size:11px}
.rl{font-size:10.5px;font-weight:700;border-radius:99px;padding:1px 8px;background:#e9edf8;color:#475577}.rl.in{background:#fde68a;color:#92400e}.rl.ro{background:#fed7aa;color:#9a3412}
.bb{white-space:pre-wrap;word-break:break-word;font-size:13.5px;line-height:1.55}
.cvf,.rop{margin-top:12px}.cvf textarea,.rop textarea{margin-top:0}.cvf .acts,.rop .acts{margin-top:10px}
.cvo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}.cvo .chk{margin-top:0}
.cvs{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px}.cvs select{width:auto;padding:6px 10px}
.rop{padding:14px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa}.rop p{font-size:13px;color:#7c2d12;margin:3px 0 10px}
.vh{margin-top:10px}.vars{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.vr{border:1px solid var(--line);background:#f4f7fc;border-radius:8px;padding:3px 8px;font:12px ui-monospace,Menlo,Consolas,monospace;color:#26325a}.vr:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
#tbody{font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.sec{margin-left:2px;padding-left:12px;border-left:3px solid #e3e9f7}.sec h4{font-size:12.5px;margin-top:12px;color:#38456a}
.acts.wrap{flex-wrap:wrap}
.help{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#f8faff;padding:10px 14px;font-size:12.5px;color:#38456a}.help summary{cursor:pointer;font-weight:700}.help p{margin-top:9px;line-height:1.55}
@media(max-width:560px){.ig{grid-template-columns:1fr}.bub{max-width:96%}}
/* board */
.board{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:14px;align-items:start;min-height:100%}
.col{background:#eceff7;border-radius:var(--r);padding:10px;min-height:200px}.col.over{outline:2px dashed var(--acc);background:#e3e9ff}
.col h3{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 6px 10px}.col h3 b{margin-left:auto;background:#fff;border-radius:99px;padding:0 9px;font-size:12px;color:var(--mute)}
.dot{width:9px;height:9px;border-radius:50%}.s-New{background:var(--warn)}.s-In-Progress{background:var(--acc)}.s-Resolved{background:var(--ok)}.s-Closed{background:#94a3b8}
.tk{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:9px;cursor:pointer;transition:.15s;box-shadow:0 1px 2px rgba(15,26,51,.04)}.tk:hover{transform:translateY(-2px);box-shadow:var(--sh)}.tk.drag{opacity:.4}
.tk .id{color:var(--acc);font-weight:700;font-size:12px}.tkh{display:flex;align-items:center;gap:8px}.tkby{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0;max-width:64%;background:#f1f4fb;border:1px solid #e1e7f5;border-radius:99px;padding:2px 10px 2px 3px;font-size:11.5px;font-weight:600;color:#38456a}.tkby i{flex:none;width:18px;height:18px;border-radius:50%;background:#94a3b8;color:#fff;font:700 9px/18px Inter,system-ui,sans-serif;text-align:center}.tkby span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk p{font-weight:600;margin:3px 0 8px;word-break:break-word}.tk .m{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute)}.tk .m .chip{margin-left:auto}
.empty{text-align:center;color:var(--mute);font-size:13px;padding:18px 0}
.chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px}
.p-Critical{background:#fee2e2;color:#b91c1c}.p-Urgent{background:#ffedd5;color:#c2410c}.p-High{background:#fef3c7;color:#a16207}.p-Medium{background:#dbeafe;color:#1d4ed8}.p-Low{background:#dcfce7;color:#15803d}.chip.od{background:#fee2e2;color:#b91c1c}
.av{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;flex:none}
/* tables */
.tw{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f8fafd;text-align:left;font-size:12px;color:var(--mute);padding:11px 14px;white-space:nowrap}td{padding:10px 14px;border-top:1px solid var(--line);vertical-align:middle}
td select{margin:0;padding:6px 8px;font-size:12px;min-width:120px}.lnk{background:none;border:0;color:var(--ink);font-weight:600;text-align:left}.lnk:hover{color:var(--acc)}
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.tools label{margin:0}.tools input,.tools select{width:auto;margin-top:3px}
/* chat */
.chat{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
#msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:#f8fafd}
.msg{max-width:70%;padding:9px 14px;border-radius:16px;background:#fff;border:1px solid var(--line);align-self:flex-start;word-break:break-word}.msg.me{align-self:flex-end;background:var(--acc);color:#fff;border-color:var(--acc)}.msg small{display:block;font-size:11px;opacity:.7;margin-bottom:2px}.msg em{font-style:normal;font-weight:700;background:#fef3c7;color:#92400e;border-radius:5px;padding:0 4px}
.cform{position:relative;display:flex;gap:10px;padding:12px;border-top:1px solid var(--line)}.cform input{margin:0}
#mm{position:absolute;bottom:62px;left:12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh);min-width:220px;overflow:hidden}#mm button{display:block;width:100%;text-align:left;padding:9px 14px;border:0;background:#fff}#mm button:hover{background:var(--bg)}
/* modal & toast */
#modal{position:fixed;inset:0;background:rgba(10,21,54,.55);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:50}
.mbox{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:24px;box-shadow:0 30px 70px rgba(0,0,0,.3)}.mbox h2{font-size:19px;margin-bottom:4px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.acts{display:flex;gap:10px;margin-top:20px;align-items:center}.sp{flex:1}fieldset{border:0}
.perms{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:6px}.perms label{display:flex;gap:8px;align-items:center;font-weight:500;margin:0}.perms input{width:auto;margin:0}
#toasts{position:fixed;right:18px;bottom:18px;display:grid;gap:8px;z-index:99}.toast{background:#0f1a33;color:#fff;padding:11px 16px;border-radius:12px;box-shadow:var(--sh);font-weight:500}.toast.bad{background:var(--bad)}
.note{padding:10px 0;border-bottom:1px solid var(--line)}.note small{color:var(--mute);display:block}
@media(max-height:760px){.feats small,.bfoot{display:none}.feats li{padding:10px 16px}}@media(max-height:620px){.feats{display:none}}
@media(max-width:1100px){.dash{height:auto;min-height:0}.dgrid{grid-template-columns:1fr 1fr;grid-template-rows:auto;grid-template-areas:"pri wl" "ch ch" "act act"}.g-ch{height:280px}.g-act .bd{max-height:340px}}
@media(max-width:640px){.dgrid{grid-template-columns:1fr;grid-template-areas:"pri" "wl" "ch" "act"}}
@media(max-width:900px){#login{grid-template-columns:1fr}.brand{display:none}#app{grid-template-columns:64px 1fr}.sbp{width:42px;padding:3px 4px;border-radius:9px}.nav span,.sb span,.me div,.me button{display:none}.nav{justify-content:center}.search{display:none}.board{grid-template-columns:repeat(4,260px)}.g2{grid-template-columns:1fr}#top{padding:12px 14px}#view{padding:14px}}

.locf{width:auto;margin:0;padding:8px 10px;font-weight:600}
.loc{font-size:11px;font-weight:600;color:#38456a;background:#eef2ff;border-radius:6px;padding:1px 7px}
.stp{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:#e0e7ff;color:#2f5bff}.stp.In-Progress{background:#fef3c7;color:#b45309}.stp.Resolved,.stp.Closed{background:#dcfce7;color:#16a34a}
.rq p{margin-top:8px}.rq pre{white-space:pre-wrap;font:inherit;background:var(--bg);border-radius:10px;padding:10px 12px;margin-top:8px}

@media(max-width:900px){.mlogo{display:block}.formside{padding:20px}.lcard{padding:32px 24px}.lcard h2{font-size:32px}}
