:root{--brand: #0f766e;--brand-600: #0d9488;--brand-50: #f0fdfa;--brand-100: #ccfbf1;--ink: #0f172a;--ink-2: #475569;--ink-3: #94a3b8;--line: #e2e8f0;--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--danger: #dc2626;--warn: #f59e0b;--ok: #16a34a;--radius: 14px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -12px rgba(15, 23, 42, .18);--nav-h: 64px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.4rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--brand);text-decoration:none}.shell{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:244px;flex:0 0 244px;background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;font-weight:700;font-size:1.05rem;color:var(--ink)}.brand .logo{width:36px;height:36px;border-radius:10px;flex:0 0 36px;background:linear-gradient(135deg,var(--brand),#14b8a6);display:grid;place-items:center;color:#fff;font-size:18px}.brand small{display:block;font-size:.68rem;color:var(--ink-3);font-weight:500;letter-spacing:.02em}.navlink{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--ink-2);font-weight:550;font-size:.9rem;position:relative;transition:background .15s,color .15s}.navlink:hover{background:var(--surface-2);color:var(--ink)}.navlink.active{background:var(--brand-50);color:var(--brand)}.navlink .ic{width:20px;text-align:center;font-size:1.05rem}.navlink .pill{margin-left:auto;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;padding:1px 7px;border-radius:999px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;background:#ffffffe0;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);padding:12px 18px;padding-top:max(12px,env(safe-area-inset-top));display:flex;align-items:center;gap:12px}.topbar h1{font-size:1.1rem}.topbar .spacer{flex:1}.content{padding:18px;flex:1}@media(max-width:900px){.sidebar{display:none}.content{padding:14px 12px calc(var(--nav-h) + 24px)}.topbar{padding-left:14px;padding-right:14px}}.bottomnav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fffffff0;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottomnav .row{display:flex;height:var(--nav-h)}.bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.63rem;color:var(--ink-3);font-weight:600;position:relative;min-width:0}.bottomnav a .ic{font-size:1.2rem;line-height:1}.bottomnav a>span:last-child{max-width:100%;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottomnav a.active{color:var(--brand)}.bottomnav a .dot{position:absolute;top:8px;right:calc(50% - 18px);background:var(--danger);color:#fff;font-size:.6rem;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:grid;place-items:center;padding:0 4px}@media(max-width:900px){.bottomnav{display:block}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:16px}.grid{display:grid;gap:12px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media(max-width:1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.grid.cols-4{grid-template-columns:repeat(2,1fr)}}.stat{padding:14px;display:flex;flex-direction:column;gap:4px}.stat .label{font-size:.74rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat .value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.stat .sub{font-size:.78rem;color:var(--ink-2)}@media(max-width:480px){.stat .value{font-size:1.25rem}}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:.8rem;font-weight:600;color:var(--ink-2);margin-bottom:5px}input,select,textarea,.input{width:100%;padding:10px 12px;font:inherit;font-size:.92rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}textarea{resize:vertical;min-height:90px;font-family:inherit}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:10px;border:1px solid transparent;background:var(--brand);color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:filter .15s,background .15s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:var(--surface);color:var(--ink-2);border-color:var(--line)}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.danger{background:var(--danger)}.btn.sm{padding:7px 12px;font-size:.82rem}.btn.block{width:100%}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:650;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.badge.dot:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.avatar{width:42px;height:42px;flex:0 0 42px;border-radius:999px;background:linear-gradient(135deg,#0f766e,#22c55e);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}.muted{color:var(--ink-3)}.small{font-size:.82rem}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.spacer{flex:1}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{text-align:center;padding:44px 18px;color:var(--ink-3)}.empty .ic{font-size:2.4rem;display:block;margin-bottom:8px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:560px}th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:100;display:grid;place-items:center;padding:16px;animation:fade .15s ease}.modal{background:var(--surface);border-radius:18px;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px -12px #0f172a66;animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}.modal header{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;position:sticky;top:0;background:var(--surface);border-radius:18px 18px 0 0}.modal .body{padding:18px}.modal footer{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:0;background:var(--surface)}@media(max-width:560px){.backdrop{align-items:flex-end;padding:0}.modal{max-width:100%;border-radius:20px 20px 0 0;max-height:92dvh}.modal header{border-radius:20px 20px 0 0}.modal footer{padding-bottom:max(14px,env(safe-area-inset-bottom))}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:translateY(12px) scale(.98);opacity:0}}.toasts{position:fixed;z-index:200;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + 16px);display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 24px))}@media(min-width:901px){.toasts{bottom:20px;left:auto;right:20px;transform:none}}.toast{background:var(--ink);color:#fff;padding:11px 15px;border-radius:12px;font-size:.87rem;box-shadow:var(--shadow);animation:pop .18s ease;display:flex;align-items:center;gap:9px}.toast.err{background:var(--danger)}.toast.ok{background:var(--ok)}.updatebar{position:fixed;z-index:300;left:12px;right:12px;bottom:calc(var(--nav-h) + 14px);background:var(--ink);color:#fff;border-radius:14px;padding:13px 15px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 40px -10px #00000080;animation:pop .2s ease}@media(min-width:901px){.updatebar{left:auto;right:20px;bottom:20px;width:380px}}.updatebar .txt{flex:1;font-size:.86rem;line-height:1.35}.updatebar .txt b{display:block;font-size:.92rem;margin-bottom:2px}.updatebar .btn{background:#fff;color:var(--ink);padding:8px 14px}.skel{background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%);background-size:400% 100%;animation:shimmer 1.3s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chat-shell{display:grid;grid-template-columns:340px 1fr;gap:12px;height:calc(100dvh - 118px)}.chat-shell.with-alert{height:calc(100dvh - 190px)}@media(max-width:900px){.chat-shell{grid-template-columns:1fr;height:calc(100dvh - var(--nav-h) - 78px)}.chat-shell.with-alert{height:calc(100dvh - var(--nav-h) - 186px)}}.chat-list{overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.chat-item{display:flex;gap:11px;padding:12px 13px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}.chat-item:hover{background:var(--surface-2)}.chat-item.active{background:var(--brand-50)}.chat-item .meta{min-width:0;flex:1}.chat-item .nm{font-weight:640;font-size:.9rem;display:flex;align-items:center;gap:6px}.chat-item .msg{font-size:.8rem;color:var(--ink-3)}.chat-item .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.chat-item .unread{background:var(--ok);color:#fff;font-size:.66rem;font-weight:700;min-width:19px;height:19px;border-radius:999px;display:grid;place-items:center;padding:0 5px}.chat-panel{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.chat-head{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:6px;background-color:#eae6df;background-image:radial-gradient(rgba(255,255,255,.55) 1px,transparent 1px);background-size:18px 18px}.bubble{max-width:min(78%,520px);padding:8px 11px 6px;border-radius:12px;font-size:.89rem;box-shadow:0 1px 1px #00000014;word-break:break-word;white-space:pre-wrap}.bubble.in{background:#fff;align-self:flex-start;border-top-left-radius:4px}.bubble.out{background:#d9fdd3;align-self:flex-end;border-top-right-radius:4px}.bubble .t{display:block;text-align:right;font-size:.64rem;color:#667781;margin-top:2px}.bubble img{max-width:100%;border-radius:8px;display:block;margin-bottom:4px}.chat-foot{padding:10px 12px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-end;background:var(--surface)}.chat-foot textarea{min-height:42px;max-height:130px;border-radius:20px;padding:10px 14px}.daysep{align-self:center;background:#ffffffd9;color:var(--ink-2);font-size:.7rem;font-weight:600;padding:3px 11px;border-radius:999px;margin:6px 0}.kanban{display:flex;align-items:flex-start;gap:12px;overflow-x:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch}.kancol{flex:0 0 268px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100dvh - 190px)}.kancol>header{padding:11px 13px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;font-weight:650;font-size:.86rem}.kancol .items{overflow-y:auto;padding:9px;display:flex;flex-direction:column;gap:8px}.kancard{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 11px;cursor:grab;font-size:.84rem}.kancard:active{cursor:grabbing}.kancard.dragging{opacity:.4}.kancol.over{outline:2px dashed var(--brand);outline-offset:-3px}.auth{min-height:100dvh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#0f766e,#134e4a 55%,#082f2b)}.auth .box{width:100%;max-width:400px;background:var(--surface);border-radius:20px;padding:28px 24px;box-shadow:0 30px 60px -20px #00000080}.auth .box .logo{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--brand),#14b8a6);display:grid;place-items:center;font-size:28px;margin:0 auto 14px}.alert{padding:10px 13px;border-radius:10px;font-size:.85rem;margin-bottom:12px}.alert.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert.ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.alert.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.alert.info{background:var(--brand-50);color:#115e59;border:1px solid var(--brand-100)}.chips{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.chip{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.82rem;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:999px;animation:rot .7s linear infinite}.spin.dark{border-color:#0f172a33;border-top-color:var(--brand)}@keyframes rot{to{transform:rotate(360deg)}}.chart-card{display:flex;flex-direction:column}.bars{display:flex;align-items:flex-end;gap:4px;flex:1;min-height:90px}.bars .b{flex:1;background:var(--brand-100);border-radius:4px 4px 0 0;min-height:3px;position:relative}.bars .b>i{position:absolute;inset:auto 0 0;background:var(--brand);border-radius:4px 4px 0 0;display:block}.mobile-logo.svelte-12qhfyh{display:none}@media(max-width:900px){.mobile-logo.svelte-12qhfyh{display:inline}}@media(min-width:901px){.hide-desktop{display:none!important}}@media(max-width:620px){.hide-sm{display:none}}
