:root{color-scheme:light;--bg:#f4f6fb;--glass:hsla(0,0%,100%,.55);--glass-strong:hsla(0,0%,100%,.82);--glass-border:hsla(0,0%,100%,.65);--surface-solid:#fff;--text:#0f172a;--text-2:#64748b;--text-3:#94a3b8;--line:rgba(15,23,42,.08);--primary:#3b82f6;--primary-h:#2563eb;--primary-soft:rgba(59,130,246,.12);--grad:linear-gradient(135deg,#3b82f6,#38bdf8);--success:#22c55e;--success-soft:rgba(34,197,94,.14);--success-ink:#15803d;--warning:#f59e0b;--warning-soft:rgba(245,158,11,.16);--warning-ink:#b45309;--danger:#ef4444;--danger-soft:rgba(239,68,68,.13);--danger-ink:#b91c1c;--info:#0ea5e9;--info-soft:rgba(14,165,233,.14);--info-ink:#0369a1;--neutral-soft:rgba(100,116,139,.13);--shadow:0 8px 32px rgba(31,38,135,.08),0 2px 6px rgba(0,0,0,.04);--shadow-h:0 16px 42px rgba(31,38,135,.14),0 3px 8px rgba(0,0,0,.05);--inset:inset 0 1px 0 hsla(0,0%,100%,.9),inset 0 -1px 2px rgba(15,23,42,.06);--blob1:#93c5fd;--blob2:#a5f3fc;--blob3:#c7d2fe;--blob4:#fde68a;--blob-op:.55;--r-card:20px;--r-ctl:12px;--r-pill:999px;--font:"Plus Jakarta Sans",Inter,system-ui,-apple-system,"Segoe UI",sans-serif;box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0b1020;--glass:rgba(15,23,42,.55);--glass-strong:rgba(20,28,50,.88);--glass-border:hsla(0,0%,100%,.08);--surface-solid:#141b30;--text:#e2e8f0;--text-2:#94a3b8;--text-3:#64748b;--line:hsla(0,0%,100%,.08);--primary-soft:rgba(59,130,246,.22);--success-ink:#4ade80;--warning-ink:#fbbf24;--danger-ink:#f87171;--info-ink:#38bdf8;--shadow:0 8px 32px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.2);--shadow-h:0 16px 42px rgba(0,0,0,.5),0 3px 8px rgba(0,0,0,.25);--inset:inset 0 1px 0 hsla(0,0%,100%,.06),inset 0 -1px 2px rgba(0,0,0,.3);--blob1:#1d4ed8;--blob2:#0e7490;--blob3:#1e3a8a;--blob4:#854d0e;--blob-op:.32}}:root[data-theme=dark]{color-scheme:dark;--bg:#0b1020;--glass:rgba(15,23,42,.55);--glass-strong:rgba(20,28,50,.88);--glass-border:hsla(0,0%,100%,.08);--surface-solid:#141b30;--text:#e2e8f0;--text-2:#94a3b8;--text-3:#64748b;--line:hsla(0,0%,100%,.08);--primary-soft:rgba(59,130,246,.22);--success-ink:#4ade80;--warning-ink:#fbbf24;--danger-ink:#f87171;--info-ink:#38bdf8;--shadow:0 8px 32px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.2);--shadow-h:0 16px 42px rgba(0,0,0,.5),0 3px 8px rgba(0,0,0,.25);--inset:inset 0 1px 0 hsla(0,0%,100%,.06),inset 0 -1px 2px rgba(0,0,0,.3);--blob1:#1d4ed8;--blob2:#0e7490;--blob3:#1e3a8a;--blob4:#854d0e;--blob-op:.32}html{scroll-padding-top:env(safe-area-inset-top,0)}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh}body,body:before{background:var(--bg)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:60}h1,h2,h3,h4{margin:0;line-height:1.25;letter-spacing:-.01em}h1{font-size:28px;font-weight:800}h2{font-size:22px}h2,h3{font-weight:700}h3{font-size:18px}h4{font-size:15px;font-weight:700}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--text-2)}.small{font-size:12px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}svg.lucide{width:18px;height:18px;stroke-width:1.75;flex-shrink:0}.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:var(--blob-op);animation:drift 26s ease-in-out infinite alternate}.blob.b1{width:520px;height:520px;background:var(--blob1);top:-140px;left:-80px}.blob.b2{width:460px;height:460px;background:var(--blob2);top:10%;right:-120px;animation-duration:30s}.blob.b3{width:420px;height:420px;background:var(--blob3);bottom:-160px;left:30%;animation-duration:22s}.blob.b4{width:360px;height:360px;background:var(--blob4);bottom:10%;right:15%;animation-duration:28s}@keyframes drift{0%{transform:translate(0) scale(1)}50%{transform:translate(60px,40px) scale(1.08)}to{transform:translate(-40px,70px) scale(.95)}}.glass{background:var(--glass);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--glass-border);box-shadow:var(--shadow)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.glass{background:var(--glass-strong)}}.card{border-radius:var(--r-card);padding:20px;transition:transform .2s ease-out,box-shadow .2s ease-out}.card.hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-h)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-head .sub{font-size:12px;color:var(--text-2);margin-top:2px}.app{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:20px;gap:20px;padding:16px;min-height:100vh;transition:grid-template-columns .25s ease-out}body.collapsed .app{grid-template-columns:80px minmax(0,1fr)}body[data-shell=bare] .app{grid-template-columns:minmax(0,1fr);padding:0}body[data-shell=bare] .sidebar,body[data-shell=bare] .topbar{display:none}.sidebar{position:-webkit-sticky;position:sticky;top:calc(16px + env(safe-area-inset-top,0px));height:calc(100vh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:24px;display:flex;flex-direction:column;padding:16px 12px;overflow:hidden;z-index:40}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}.logo{width:38px;height:38px;flex-shrink:0;background:url(/logo.png) 50%/contain no-repeat;filter:drop-shadow(0 4px 10px rgba(59,130,246,.3))}.logo svg{display:none}.logo.on-dark{background-color:#fff;background-size:70%;border-radius:12px;filter:none;box-shadow:0 6px 18px rgba(15,23,42,.25)}.ws-name{min-width:0}.ws-name b{display:block;font-size:15px;font-weight:800}.ws-name span{display:block;font-size:11.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapse-btn{margin-left:auto}.nav{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:0 2px;scrollbar-width:thin}.nav-section-title{font-size:11px;font-weight:700;color:var(--text-3);padding:14px 12px 6px;white-space:nowrap}.nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;color:var(--text-2);font-weight:600;font-size:13.5px;white-space:nowrap;transition:background .2s,color .2s;position:relative}.nav a:hover{background:var(--primary-soft);color:var(--text)}.nav a.active{background:var(--grad);color:#fff;box-shadow:0 8px 22px rgba(59,130,246,.38)}.nav .count{margin-left:auto;background:var(--danger);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}.nav a.active .count{background:hsla(0,0%,100%,.28)}.side-foot{border-top:1px solid var(--line);padding-top:12px;margin-top:8px;display:grid;grid-gap:10px;gap:10px}.storage{padding:12px;border-radius:14px;background:var(--primary-soft)}.storage .row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px}.profile{display:flex;align-items:center;gap:10px;padding:4px 6px}.profile .who{min-width:0;flex:1 1}.profile .who b{display:block;font-size:13px}.profile .who span{font-size:11.5px;color:var(--text-2)}body.collapsed .nav .count,body.collapsed .nav-label,body.collapsed .nav-section-title,body.collapsed .profile .logout,body.collapsed .profile .who,body.collapsed .storage,body.collapsed .ws-name{display:none}body.collapsed .nav a{justify-content:center;padding:11px}body.collapsed .brand{flex-direction:column}body.collapsed .collapse-btn{margin:6px 0 0}body.collapsed .collapse-btn svg{transform:rotate(180deg)}body.collapsed .profile{justify-content:center}.main{min-width:0;display:flex;flex-direction:column;gap:20px}.topbar{position:-webkit-sticky;position:sticky;top:calc(16px + env(safe-area-inset-top,0px));z-index:30;border-radius:18px;padding:10px 12px 10px 16px;gap:12px}.crumb,.topbar{display:flex;align-items:center}.crumb{gap:6px;font-size:13px;color:var(--text-2);white-space:nowrap;min-width:0}.crumb b{color:var(--text);font-weight:700;overflow:hidden;text-overflow:ellipsis}.crumb svg{width:14px;height:14px}.search{flex:1 1;max-width:420px;margin-left:auto;position:relative}.search input{width:100%;padding:9px 52px 9px 38px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--glass-strong);box-shadow:var(--inset);outline:none}.search input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.search>svg{left:12px;color:var(--text-3)}.kbd,.search>svg{position:absolute;top:50%;transform:translateY(-50%)}.kbd{right:8px;font-size:11px;font-weight:700;color:var(--text-2);border:1px solid var(--line);background:var(--surface-solid);border-radius:6px;padding:1px 6px}.top-actions{display:flex;align-items:center;gap:8px}.hamburger{display:none}.dot-wrap{position:relative}.dot-wrap .dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface-solid)}#view{min-width:0;padding-bottom:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:var(--r-ctl);border:1px solid transparent;font-weight:700;font-size:13.5px;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;transition:background .2s,transform .15s,box-shadow .2s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--grad);color:#fff;box-shadow:0 6px 18px rgba(59,130,246,.35)}.btn-primary:hover{box-shadow:0 10px 26px rgba(59,130,246,.5)}.btn-secondary{background:var(--glass-strong);border-color:var(--line);box-shadow:var(--inset)}.btn-secondary:hover{border-color:var(--primary)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--primary-soft);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:10px}.icon-btn{width:38px;height:38px;padding:0;border-radius:12px}.ripple{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.45);transform:scale(0);animation:ripple .55s ease-out forwards;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}.input,.select,.textarea{width:100%;padding:10px 12px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--glass-strong);box-shadow:var(--inset);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.textarea{resize:vertical;min-height:80px}.field{display:grid;grid-gap:6px;gap:6px}.field label{font-size:12.5px;font-weight:700}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:700;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.plain:before{display:none}.b-success{background:var(--success-soft);color:var(--success-ink)}.b-warning{background:var(--warning-soft);color:var(--warning-ink)}.b-danger{background:var(--danger-soft);color:var(--danger-ink)}.b-info{background:var(--info-soft);color:var(--info-ink)}.b-neutral{background:var(--neutral-soft);color:var(--text-2)}.b-primary,.tag{background:var(--primary-soft);color:var(--primary)}.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:800;font-size:11.5px;flex-shrink:0;border:2px solid var(--surface-solid)}.avatar.sm{width:26px;height:26px;font-size:10px}.avatar.lg{width:44px;height:44px;font-size:14px}.g0{background:linear-gradient(135deg,#3b82f6,#38bdf8)}.g1{background:linear-gradient(135deg,#f472b6,#fb923c)}.g2{background:linear-gradient(135deg,#0ea5e9,#22d3ee)}.g3{background:linear-gradient(135deg,#22c55e,#14b8a6)}.g4{background:linear-gradient(135deg,#f59e0b,#ef4444)}.avatar-group{display:flex}.avatar-group .avatar:not(:first-child){margin-left:-9px}.avatar-group .more{color:var(--text-2)}.avatar-group .more,.progress{background:var(--neutral-soft)}.progress{height:8px;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:var(--grad)}.progress.success>span{background:var(--success)}.progress.warning>span{background:var(--warning)}.progress.danger>span{background:var(--danger)}.ring{position:relative;display:inline-grid;place-items:center}.ring b{position:absolute;font-size:12px;font-weight:800}.tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--neutral-soft);overflow-x:auto;scrollbar-width:none}.tabs button{border:0;background:transparent;padding:7px 14px;border-radius:10px;font-weight:700;font-size:13px;color:var(--text-2);cursor:pointer;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}.tabs button[aria-selected=true]{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow)}.seg{display:inline-flex}.dropdown{position:relative}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;border-radius:14px;padding:6px;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--shadow-h);display:none;z-index:50}.menu.open{display:block;animation:pop .16s ease-out}.menu button{display:flex;width:100%;align-items:center;gap:10px;padding:9px 10px;border:0;background:transparent;border-radius:10px;cursor:pointer;font-weight:600;text-align:left}.menu button:hover{background:var(--primary-soft)}@keyframes pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.overlay{position:fixed;inset:0;background:rgba(15,23,42,.32);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .25s;z-index:70}.overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);z-index:80;border-radius:24px 0 0 24px;transform:translateX(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;background:var(--glass-strong);padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.drawer.open{transform:none}.drawer-head{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line)}.drawer-body{flex:1 1;overflow-y:auto;padding:20px;display:grid;grid-gap:20px;gap:20px;align-content:start}.drawer-foot{padding:14px 20px;border-top:1px solid var(--line)}.modal{position:fixed;left:50%;top:50%;width:min(480px,calc(100% - 32px));transform:translate(-50%,-46%) scale(.97);opacity:0;pointer-events:none;z-index:90;border-radius:22px;padding:22px;background:var(--glass-strong);transition:all .22s ease-out}.modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}.toasts{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));display:grid;grid-gap:10px;gap:10px;z-index:100}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:14px;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--shadow-h);font-weight:600;animation:pop .2s ease-out}.toast svg{color:var(--success)}[data-tip]{position:relative}[data-tip]:focus-visible:after,[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:8px;white-space:nowrap;z-index:60;pointer-events:none}.empty{text-align:center;padding:56px 24px;display:grid;justify-items:center;grid-gap:10px;gap:10px}.empty .ill{width:72px;height:72px;border-radius:22px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary);margin-bottom:6px}.empty .ill svg{width:30px;height:30px}.skeleton{background:linear-gradient(90deg,var(--neutral-soft) 25%,hsla(0,0%,100%,.35) 50%,var(--neutral-soft) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:10px}@keyframes shimmer{to{background-position:-200% 0}}table.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:12px;font-weight:700;color:var(--text-2);padding:10px 12px;white-space:nowrap}.tbl td,.tbl th{border-bottom:1px solid var(--line)}.tbl td{padding:12px;vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:var(--primary-soft)}.tbl-wrap{overflow-x:auto}.cell-proj b{display:block;font-weight:700}.cell-proj span{font-size:12px;color:var(--text-2)}.pm{display:flex;align-items:center;gap:8px;white-space:nowrap}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head p{color:var(--text-2);margin-top:4px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:20px;gap:20px;margin-bottom:20px}.kpi{display:flex;flex-direction:column;gap:12px}.kpi .top{display:flex;align-items:center;justify-content:space-between}.kpi .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.kpi .val{font-size:30px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.kpi .bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.trend{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700}.trend svg{width:14px;height:14px}.trend.up{color:var(--success-ink)}.trend.down{color:var(--danger-ink)}.dash{grid-template-columns:minmax(0,1fr) 340px;grid-gap:20px}.col,.dash{display:grid;gap:20px}.col{grid-template-columns:minmax(0,1fr);grid-gap:20px;align-content:start}.col,.col>*{min-width:0}.chart-box{position:relative;height:260px}.donut-box{position:relative;height:200px}.legend{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 12px;gap:8px 12px;margin-top:14px}.legend div{display:flex;align-items:center;gap:8px;font-size:12.5px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.legend b{margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.list-plain{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:4px;gap:4px}.dl-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px}.dl-item:hover{background:var(--primary-soft)}.date-chip{width:44px;text-align:center;border-radius:12px;padding:5px 0;background:var(--surface-solid);box-shadow:var(--inset);flex-shrink:0}.date-chip b{display:block;font-size:16px;line-height:1.1}.date-chip span{font-size:10.5px;color:var(--text-2);font-weight:700}.dl-item .t{flex:1 1;min-width:0}.dl-item .t b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-item .t span{font-size:12px;color:var(--text-2)}.timeline{display:grid;grid-gap:0;gap:0}.timeline,.tl{position:relative}.tl{display:flex;gap:12px;padding-bottom:16px}.tl:not(:last-child):before{content:"";position:absolute;left:15px;top:34px;bottom:2px;width:2px;background:var(--line)}.tl p{font-size:13px}.tl span{font-size:11.5px;color:var(--text-3)}.wl{grid-gap:14px;gap:14px}.wl,.wl-row{display:grid}.wl-row{grid-template-columns:170px 1fr 48px;align-items:center;grid-gap:12px;gap:12px}.wl-row .pm span{display:block;font-size:11.5px;color:var(--text-2)}.wl-row .pm b{font-size:13px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px;padding:12px;border-radius:18px}.toolbar .input,.toolbar .select{width:auto}.toolbar .grow{flex:1 1;min-width:180px;position:relative}.toolbar .grow svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-3)}.toolbar .grow .input{width:100%;padding-left:38px}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:20px;gap:20px}.pcard{display:grid;grid-gap:16px;gap:16px;cursor:pointer}.pcard .head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.pcard .code{font-size:11.5px;font-weight:700;color:var(--text-3)}.pcard h4{margin:4px 0 2px}.pcard .meta{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text-2);border-top:1px solid var(--line);padding-top:14px}.pcard .meta span{display:inline-flex;align-items:center;gap:6px}.pcard .meta svg{width:15px;height:15px}.phead{display:grid;grid-template-columns:auto 1fr auto;grid-gap:20px;gap:20px;align-items:center;margin-bottom:20px}.phead .stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--text-2)}.phead .stats b{display:block;color:var(--text);font-size:14px}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(272px,1fr);grid-gap:16px;gap:16px;overflow-x:auto;padding:4px 2px 12px;margin-top:20px;scroll-snap-type:x proximity}.kcol{border-radius:20px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:420px;scroll-snap-align:start}.kcol-head{display:flex;align-items:center;gap:8px;padding:4px 6px}.kcol-head b{font-size:13.5px}.kcol-head .n{font-size:12px;font-weight:700;color:var(--text-2);background:var(--neutral-soft);border-radius:999px;padding:0 8px}.kcol-head .bar{width:8px;height:8px;border-radius:50%}.kcol-body{display:grid;grid-gap:10px;gap:10px;align-content:start;flex:1 1;border-radius:14px;padding:2px;transition:background .15s}.kcol-body.over{background:var(--primary-soft);outline:2px dashed var(--primary);outline-offset:2px}.kcard{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:16px;padding:14px;display:grid;grid-gap:10px;gap:10px;box-shadow:0 2px 10px rgba(31,38,135,.06);cursor:-webkit-grab;cursor:grab;transition:transform .2s,box-shadow .2s}.kcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-h)}.kcard.dragging{opacity:.45;transform:rotate(2deg)}.kcard .t{font-weight:700;font-size:13.5px;line-height:1.35}.kcard .foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-2)}.kcard .icons{display:flex;gap:10px}.kcard .icons span{display:inline-flex;align-items:center;gap:3px}.kcard .icons svg{width:14px;height:14px}.kcard .due.late{color:var(--danger-ink);font-weight:700}.add-card{border:1.5px dashed var(--line);background:transparent;border-radius:14px;padding:10px;color:var(--text-2);font-weight:700;cursor:pointer;display:flex;gap:6px;align-items:center;justify-content:center}.add-card:hover{border-color:var(--primary);color:var(--primary)}.tgroup{border-radius:20px;padding:6px 8px;margin-bottom:16px}.tgroup-head{display:flex;align-items:center;gap:10px;padding:12px;width:100%;border:0;background:none;cursor:pointer;text-align:left}.tgroup-head svg.chev{transition:transform .2s}.tgroup.closed svg.chev{transform:rotate(-90deg)}.tgroup.closed .tgroup-body{display:none}.trow{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto auto;grid-gap:14px;gap:14px;align-items:center;padding:12px;border-top:1px solid var(--line)}.trow .ttl{font-weight:600;position:relative;width:-moz-fit-content;width:fit-content;max-width:100%}.trow .ttl:after{content:"";position:absolute;left:0;top:50%;height:2px;width:0;background:var(--text-2);transition:width .35s ease-out}.trow.done .ttl{color:var(--text-3)}.trow.done .ttl:after{width:100%}.trow .sub{font-size:12px;color:var(--text-2)}.check{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border-radius:7px;border:2px solid var(--text-3);cursor:pointer;display:grid;place-items:center;transition:all .2s;margin:0}.check:checked{background:var(--success);border-color:var(--success)}.check:checked:after{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}.cal-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:20px;gap:20px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.cal-dow{font-size:12px;font-weight:700;color:var(--text-2);text-align:center;padding:6px 0}.cal-day{min-height:104px;border-radius:14px;padding:8px;background:var(--glass-strong);border:1px solid transparent;cursor:pointer;display:flex;flex-direction:column;gap:4px;text-align:left;transition:border-color .15s}.cal-day:hover{border-color:var(--primary)}.cal-day.out{opacity:.4}.cal-day.sel{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.cal-day .d{font-size:12.5px;font-weight:700;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}.cal-day.today .d{background:var(--grad);color:#fff}.ev{font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}.ev.ms:before{content:"◆";font-size:9px}.agenda-item{display:flex;gap:12px;padding:12px;border-radius:14px;background:var(--glass-strong);margin-bottom:10px}.agenda-item .bar{width:4px;border-radius:4px;flex-shrink:0}.inbox-item{display:flex;gap:14px;padding:16px;border-top:1px solid var(--line);cursor:pointer;position:relative;transition:background .15s}.inbox-item:first-child{border-top:0}.inbox-item:hover{background:var(--primary-soft)}.inbox-item.unread{background:rgba(59,130,246,.06)}.inbox-item.unread:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--primary)}.inbox-item .body{flex:1 1;min-width:0}.inbox-item .body p{font-size:13.5px}.inbox-item .body .quote{margin-top:6px;padding:8px 12px;border-radius:10px;background:var(--glass-strong);font-size:13px;color:var(--text-2)}.inbox-item time{font-size:12px;color:var(--text-3);white-space:nowrap}.chip{border:1px solid var(--line);background:var(--glass-strong);padding:6px 14px;border-radius:999px;font-weight:700;font-size:12.5px;cursor:pointer;box-shadow:var(--inset)}.chip[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.portal{max-width:1180px;margin:0 auto;padding:20px}.portal-top{display:flex;align-items:center;gap:12px;border-radius:18px;padding:12px 16px;margin-bottom:24px}.portal-hero{display:grid;grid-template-columns:1fr auto;grid-gap:24px;gap:24px;align-items:center;margin-bottom:20px}.portal-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:20px;gap:20px}.ms-line{display:grid;grid-gap:0;gap:0}.ms{display:grid;grid-template-columns:28px 1fr auto;grid-gap:12px;gap:12px;padding-bottom:18px;position:relative}.ms:not(:last-child):before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line)}.ms.done:not(:last-child):before{background:var(--success)}.ms .node{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--neutral-soft);color:var(--text-3)}.ms.done .node{background:var(--success);color:#fff}.ms.now .node{background:var(--grad);color:#fff;box-shadow:0 0 0 5px var(--primary-soft)}.ms .node svg{width:14px;height:14px}.appr{display:grid;grid-gap:10px;gap:10px;padding:14px;border-radius:16px;background:var(--glass-strong);margin-bottom:12px}.appr.decided{opacity:.6}.doc-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px}.doc-row:hover{background:var(--primary-soft)}.doc-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--danger-soft);color:var(--danger-ink);flex-shrink:0}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{position:relative;overflow:hidden;background:linear-gradient(140deg,#1e40af,#2563eb 45%,#38bdf8 110%);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}.login-art .orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55}.login-art .glass-w{background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:22px;padding:22px;position:relative}.login-art h1{font-size:40px;max-width:480px;line-height:1.15;letter-spacing:-.02em}.login-form-wrap{display:grid;place-items:center;padding:32px}.login-form{width:min(420px,100%);border-radius:26px;padding:32px;display:grid;grid-gap:16px;gap:16px}.pw{position:relative}.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%)}.divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:12px}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.fade-in{animation:fadeIn .35s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}.mini{padding:16px 18px;border-radius:18px}.mini span{font-size:12.5px;color:var(--text-2);font-weight:600}.mini b{display:block;font-size:22px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px;letter-spacing:-.01em}.gantt-wrap{overflow-x:auto;border-radius:var(--r-card)}.gantt{min-width:980px;position:relative}.g-row{display:grid;grid-template-columns:270px 1fr;min-height:44px;border-top:1px solid var(--line)}.g-row.head{border-top:0;min-height:40px}.g-row.group{min-height:36px;background:var(--neutral-soft)}.g-row.group .g-label{font-weight:800;font-size:12.5px}.g-label{display:flex;align-items:center;gap:10px;padding:6px 14px;font-size:13px;min-width:0}.g-label .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.g-track{position:relative;background-image:repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px calc(100% / 9))}.g-weeks{display:grid;grid-template-columns:repeat(9,1fr);font-size:11.5px;font-weight:700;color:var(--text-2);align-items:center}.g-weeks span{padding-left:8px}.g-bar{top:50%;transform:translateY(-50%);height:22px;border-radius:7px;background:var(--primary-soft);overflow:hidden;transition:box-shadow .2s}.g-bar,.g-bar i{position:absolute}.g-bar i{inset:0 auto 0 0;background:var(--grad)}.g-bar.late{background:var(--danger-soft)}.g-bar.late i{background:var(--danger)}.show-crit .g-bar.crit{box-shadow:0 0 0 2px var(--warning),0 4px 14px rgba(245,158,11,.35)}.g-who{transform:translateY(-50%);display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--text-2);white-space:nowrap}.g-ms,.g-who{position:absolute;top:50%}.g-ms{width:14px;height:14px;background:var(--grad);transform:translate(-50%,-50%) rotate(45deg);border-radius:3px;box-shadow:0 0 0 3px var(--primary-soft)}.g-ms-l{position:absolute;top:50%;transform:translateY(-50%);font-size:11.5px;font-weight:700;white-space:nowrap}.g-today{top:0;bottom:0;width:2px;z-index:2;pointer-events:none}.g-today,.g-today span{position:absolute;background:var(--danger)}.g-today span{top:4px;left:4px;font-size:10.5px;font-weight:800;color:#fff;padding:1px 6px;border-radius:6px;white-space:nowrap}.switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:40px;height:23px;border-radius:999px;background:var(--neutral-soft);position:relative;cursor:pointer;transition:background .2s;box-shadow:var(--inset);flex-shrink:0;margin:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform .2s}.switch:checked{background:var(--primary)}.switch:checked:after{transform:translateX(17px)}.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:20px;gap:20px}.mcard{display:grid;grid-gap:14px;gap:14px}.mcard .top{display:flex;gap:12px;align-items:center}.skills{display:flex;flex-wrap:wrap;gap:6px}.skills span{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--line)}.mstats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;border-top:1px solid var(--line);padding-top:12px;font-size:11.5px;color:var(--text-2)}.mstats b{display:block;font-size:16px;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.terms{display:flex;gap:4px;flex-wrap:wrap}.term{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}.fin-row{display:grid;grid-template-columns:200px 1fr 120px;grid-gap:14px;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.fin-row:first-child{border-top:0}.fin-bars{display:grid;grid-gap:5px;gap:5px}.fin-bars .lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-2)}.chat{display:grid;grid-template-columns:270px minmax(0,1fr);grid-gap:20px;gap:20px;height:calc(100vh - 220px);min-height:520px}.chat-side{padding:12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.chan{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;cursor:pointer;width:100%;border:0;background:none;text-align:left;font-weight:600;color:var(--text-2)}.chan.active,.chan:hover{background:var(--primary-soft)}.chan.active{color:var(--text)}.chan .unr{margin-left:auto;background:var(--primary);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:0 7px}.chat-main{display:flex;flex-direction:column;padding:0;overflow:hidden}.chat-head{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line)}.chat-msgs{flex:1 1;overflow-y:auto;padding:20px;display:grid;grid-gap:18px;gap:18px;align-content:start}.msg{display:flex;gap:12px}.msg .who{font-size:13px}.msg .who span{font-size:11.5px;color:var(--text-3);margin-left:6px;font-weight:500}.msg .txt{margin-top:3px;max-width:68ch}.msg .att{gap:10px;margin-top:8px;padding:8px 12px;border-radius:12px;background:var(--glass-strong);border:1px solid var(--line);font-size:12.5px;font-weight:600}.msg .att,.msg .thread{display:inline-flex;align-items:center}.msg .thread{margin-top:6px;font-size:12px;font-weight:700;color:var(--primary);gap:6px}.chat-input{padding:14px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}.tpl-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.tpl{padding:16px;border-radius:18px;cursor:pointer;display:grid;grid-gap:10px;gap:10px;text-align:left;border:1px solid var(--glass-border);color:inherit;font:inherit}.tpl .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.rule{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:center;padding:16px;border-top:1px solid var(--line)}.rule:first-child{border-top:0}.rule.off{opacity:.55}.flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;margin-top:8px}.flow .step{padding:4px 10px;border-radius:8px;background:var(--glass-strong);border:1px solid var(--line);font-weight:600}.flow .step b{color:var(--primary);margin-right:4px}.flow svg{width:14px;height:14px;color:var(--text-3)}.matrix td:not(:first-child),.matrix th:not(:first-child){text-align:center}.perm{display:inline-block;min-width:28px;font-size:11.5px;font-weight:800;padding:3px 8px;border-radius:7px}.settings{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.set-nav{padding:10px;position:-webkit-sticky;position:sticky;top:96px;display:grid;grid-gap:2px;gap:2px}.set-nav button{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;font-weight:600;color:var(--text-2);border:0;background:none;cursor:pointer;text-align:left}.set-nav button:hover{background:var(--primary-soft);color:var(--text)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.toggle-row:first-of-type{border-top:0}.toggle-row p{font-size:12.5px;color:var(--text-2)}.status-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--line);font-weight:600;font-size:12.5px}.status-chip i{width:9px;height:9px;border-radius:50%;display:inline-block}@keyframes rise{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}@keyframes fadeOnly{0%{opacity:0}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ringDraw{0%{stroke-dashoffset:var(--c)}}@keyframes draw{0%{stroke-dashoffset:1}}@keyframes ping{75%,to{transform:scale(2.6);opacity:0}}@keyframes wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}@keyframes checkPop{0%{transform:scale(.6)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translateX(48px) scale(.94)}to{opacity:1;transform:none}}@keyframes landed{0%{transform:scale(.9);box-shadow:0 0 0 0 rgba(59,130,246,.55)}55%{transform:scale(1.04)}to{transform:none;box-shadow:0 0 0 10px rgba(59,130,246,0)}}@keyframes pillIn{0%{transform:scale(.94);opacity:.5}to{transform:none;opacity:1}}@keyframes spinIn{0%{transform:rotate(-120deg) scale(.4);opacity:0}}@keyframes barIn{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes msPop{0%{transform:translate(-50%,-50%) rotate(45deg) scale(0)}to{transform:translate(-50%,-50%) rotate(45deg) scale(1)}}@keyframes todayIn{0%{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes todayPulse{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.45)}50%{box-shadow:0 0 0 7px rgba(59,130,246,0)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bounceDown{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.reveal{animation:rise .6s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0) * 60ms)}#ptab>*{animation:rise .45s cubic-bezier(.2,.8,.2,1) backwards}.progress>span{transform-origin:left center;animation:grow 1.1s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0) * 60ms + .25s)}.ring-fg{animation:ringDraw 1.3s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0) * 60ms + .25s)}.spark-line{stroke-dasharray:1;animation:draw 1.2s ease-out backwards;animation-delay:calc(var(--i,0) * 60ms + .3s)}.spark-area{animation:fadeOnly .8s ease-out backwards;animation-delay:calc(var(--i,0) * 60ms + .8s)}.card.hover{position:relative;overflow:hidden}.card.hover:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,hsla(0,0%,100%,.22) 50%,transparent 65%);transform:translateX(-120%);transition:transform .9s ease-out;pointer-events:none}.card.hover:hover:after{transform:translateX(120%)}.nav a svg{transition:transform .25s ease-out}.nav a:hover svg{transform:translateX(2px) scale(1.08)}.nav a.active{animation:pillIn .35s ease-out}.brand .logo{transition:transform .5s cubic-bezier(.2,.9,.3,1.4)}.brand:hover .logo{transform:rotate(-8deg) scale(1.08)}.dot-wrap .dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--danger);animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}.dot-wrap:hover svg{animation:wiggle .6s ease-in-out}.theme-toggle svg{animation:spinIn .5s cubic-bezier(.2,.9,.3,1.3)}.theme-anim *,.theme-anim :after,.theme-anim :before{transition:background-color .5s ease,color .5s ease,border-color .5s ease,box-shadow .5s ease!important}.btn-primary:hover{transform:translateY(-1px)}.btn svg{transition:transform .3s cubic-bezier(.2,.9,.3,1.4)}.btn:hover .lucide-plus{transform:rotate(90deg)}.btn:hover .lucide-send{transform:translate(2px,-2px)}.btn:hover .lucide-download{animation:bounceDown .6s ease-in-out}.btn:hover .lucide-chevrons-left{transform:translateX(-2px)}.check:checked{animation:checkPop .35s cubic-bezier(.2,.9,.3,1.4)}.trow{transition:opacity .4s ease .25s}.trow.done{opacity:.6}.toast{animation:toastIn .45s cubic-bezier(.2,.9,.3,1.2)}.toast svg{animation:checkPop .5s .15s backwards}.kcol-body .kcard{animation:rise .45s cubic-bezier(.2,.8,.2,1) backwards}.kcol-body .kcard:nth-child(2){animation-delay:60ms}.kcol-body .kcard:nth-child(3){animation-delay:.12s}.kcol-body .kcard:nth-child(4){animation-delay:.18s}.kcol-body .kcard.just-moved{animation:landed .7s cubic-bezier(.2,.8,.2,1)}.drawer.open .drawer-body>*{animation:rise .45s cubic-bezier(.2,.8,.2,1) backwards}.drawer.open .drawer-body>:nth-child(2){animation-delay:50ms}.drawer.open .drawer-body>:nth-child(3){animation-delay:.1s}.drawer.open .drawer-body>:nth-child(4){animation-delay:.15s}.drawer.open .drawer-body>:nth-child(5){animation-delay:.2s}.drawer.open .drawer-body>:nth-child(6){animation-delay:.25s}.g-bar{animation:barIn .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--r,0) * 45ms + .2s)}.g-ms{animation:msPop .5s cubic-bezier(.2,.9,.3,1.5) backwards;animation-delay:calc(var(--r,0) * 45ms + .45s)}.g-ms-l,.g-who{animation:fadeOnly .5s ease-out backwards;animation-delay:calc(var(--r,0) * 45ms + .65s)}.g-today{animation:todayIn 1s ease-out .3s backwards}.cal-day{animation:fadeOnly .35s ease-out backwards}.cal-day.today .d{animation:todayPulse 2.4s ease-in-out infinite}.msg:last-child{animation:rise .35s ease-out backwards}.login-art .orb{animation:drift 16s ease-in-out infinite alternate}.login-art h1{animation:rise .8s cubic-bezier(.2,.8,.2,1) .1s backwards}.login-art .glass-w{animation:rise .8s cubic-bezier(.2,.8,.2,1) .3s backwards}.login-art .glass-w.hide-sm:last-child{animation-delay:.45s}.logo.on-dark{animation:floaty 4s ease-in-out infinite}@media (max-width:1279px){.app{grid-template-columns:80px minmax(0,1fr)}body:not(.expanded) .nav .count,body:not(.expanded) .nav-label,body:not(.expanded) .nav-section-title,body:not(.expanded) .profile .logout,body:not(.expanded) .profile .who,body:not(.expanded) .storage,body:not(.expanded) .ws-name{display:none}body:not(.expanded) .nav a{justify-content:center;padding:11px}body:not(.expanded) .brand{flex-direction:column}body:not(.expanded) .collapse-btn{margin:6px 0 0}body:not(.expanded) .collapse-btn svg{transform:rotate(180deg)}body:not(.expanded) .profile{justify-content:center}body.expanded .app{grid-template-columns:260px minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dash{grid-template-columns:minmax(0,1fr)}.dash>.col:last-child{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.cal-wrap,.portal-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:767px){.app{grid-template-columns:minmax(0,1fr)!important;padding:10px;gap:14px}.sidebar{position:fixed;left:10px;top:calc(10px + env(safe-area-inset-top,0px));height:calc(100% - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));width:270px;transform:translateX(-120%);transition:transform .3s ease-out;z-index:75;background:var(--glass-strong)}body.nav-open .sidebar{transform:none}body .nav .count,body .nav-label,body .nav-section-title,body .profile .logout,body .profile .who,body .storage,body .ws-name{display:revert!important}body .nav a{justify-content:flex-start!important;padding:9px 12px!important}body .brand{flex-direction:row!important}.collapse-btn{display:none!important}.hamburger{display:inline-flex}.topbar{top:calc(10px + env(safe-area-inset-top,0px));padding:8px}.crumb,.hide-sm,.kbd{display:none}.search{max-width:none}.kpis{grid-template-columns:1fr 1fr;gap:12px}.kpi .val{font-size:24px}h1{font-size:23px}.wl-row{grid-template-columns:120px 1fr 40px}.phead{grid-template-columns:1fr}.phead>.ring{display:none}.trow{grid-template-columns:28px minmax(0,1fr) auto}.trow .hide-xs{display:none}.cal-day{min-height:62px;padding:5px}.cal-day .ev{display:none}.cal-day.has:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);margin:auto auto 0}.login,.portal-hero{grid-template-columns:1fr}.login-art{padding:28px;min-height:280px}.login-art h1{font-size:28px}.login-art .hide-sm,.tbl.resp thead{display:none}.tbl.resp tr{display:grid;grid-gap:8px;gap:8px;padding:14px 4px;border-bottom:1px solid var(--line)}.tbl.resp td{border:0;padding:0 8px;display:flex;justify-content:space-between;align-items:center;gap:12px}.tbl.resp td:before{content:attr(data-label);font-size:12px;font-weight:700;color:var(--text-2)}.tbl.resp td:first-child:before{display:none}.tbl.resp td .progress{flex:1 1;max-width:160px}.minis{grid-template-columns:1fr 1fr;gap:12px}.chat{grid-template-columns:1fr;height:auto}.chat-side{flex-direction:row;overflow-x:auto}.chan{width:auto;white-space:nowrap}#chanList{display:flex;gap:4px}.chat-side>div:first-child{display:none}.chat-msgs{max-height:60vh}.form-grid,.settings{grid-template-columns:1fr}.set-nav{display:none}.fin-row{grid-template-columns:1fr}.rule{grid-template-columns:auto minmax(0,1fr)}.rule .meta-r{grid-column:1/-1}.toasts{left:10px;right:10px}}@media (prefers-reduced-motion:reduce){.blob{animation:none}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.btn:disabled{opacity:.6;cursor:not-allowed}.menu button>span{min-width:0;text-align:left}.drawer .doc-row{color:inherit}.quote{margin-top:6px;padding:8px 12px;border-radius:10px;background:var(--glass-strong);font-size:13px;color:var(--text-2)}.g-drag{cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.g-drag:active{cursor:-webkit-grabbing;cursor:grabbing}.g-resize{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:ew-resize;z-index:1}.g-resize:hover{background:hsla(0,0%,100%,.35)}.g-arrows{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}.doc-editor{min-height:420px;padding:18px 20px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--glass-strong);box-shadow:var(--inset);outline:none;line-height:1.7;max-width:100%;overflow-wrap:anywhere}.doc-editor:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.doc-editor h2,.doc-editor h3{margin:14px 0 6px}.doc-editor ol,.doc-editor p,.doc-editor ul{margin:0 0 10px}.doc-editor blockquote{margin:0 0 10px;padding:8px 14px;border-left:3px solid var(--primary);background:var(--primary-soft);border-radius:8px}.doc-editor table{border-collapse:collapse}.doc-editor td,.doc-editor th{border:1px solid var(--line);padding:6px 10px}.ts-grid{width:100%;border-collapse:collapse}.ts-grid td,.ts-grid th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:center;font-size:13px}.ts-grid td:first-child,.ts-grid th:first-child{text-align:left}.ts-grid input{width:64px;text-align:center;padding:6px}.ts-grid tfoot td{font-weight:800;border-bottom:0}.field-row{display:grid;grid-template-columns:minmax(0,1.4fr) 130px 90px auto;grid-gap:10px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.field-row:first-child{border-top:0}@media (max-width:767px){.field-row{grid-template-columns:1fr 1fr}}.menu .menu-link{display:flex;width:100%;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-weight:600}.menu .menu-link:hover{background:var(--primary-soft)}.secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;padding:10px 12px;border-radius:10px;background:var(--neutral-soft);overflow-wrap:anywhere}.sp-pts{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11.5px;font-weight:800}.rm-track{position:relative;height:28px;border-radius:8px;background:var(--neutral-soft)}.rm-item{position:absolute;top:4px;height:20px;border-radius:6px;background:var(--grad);color:#fff;font-size:11px;font-weight:700;padding:0 8px;white-space:nowrap;display:flex;align-items:center;transform:translateX(-50%)}.rm-item.ms{background:var(--surface-solid);color:var(--text);box-shadow:0 0 0 2px var(--primary)}.widget-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line)}.widget-row:last-child{border-bottom:0}.ai-out{white-space:pre-wrap;line-height:1.65}.doc-editor.skeleton{min-height:420px}.doc-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-3);float:left;height:0;pointer-events:none}.doc-editor a{color:var(--primary);text-decoration:underline}.collaboration-cursor__caret{position:relative;margin-left:-1px;margin-right:-1px;border-left:1px solid;border-right:1px solid;word-break:normal;pointer-events:none}.collaboration-cursor__label{position:absolute;top:-1.4em;left:-1px;font-size:11px;font-weight:700;line-height:normal;white-space:nowrap;color:#fff;padding:1px 6px;border-radius:6px 6px 6px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.blob{animation:none;will-change:auto}.glass{backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%)}html.lite .blob{display:none}html.lite .drawer,html.lite .glass,html.lite .modal,html.lite .overlay,html.lite .toast{backdrop-filter:none;-webkit-backdrop-filter:none}html.lite .drawer,html.lite .glass,html.lite .modal{background:var(--glass-strong)}html.lite *,html.lite :after,html.lite :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.cal-day.today .d,.dot-wrap .dot:after{animation-iteration-count:3}