@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent:#ff7849;--accent-soft:color-mix(in oklab, var(--accent) 16%, transparent);--accent-text:color-mix(in oklab, var(--accent) 80%, white);--bg:#111113;--sidebar:#151517;--surface:#19191c;--surface-2:#202024;--surface-3:#28282d;--border:#ffffff12;--border-strong:#ffffff1f;--text:#ececef;--text-2:#a9a9b2;--muted:#74747e;--shadow:0 12px 40px #00000073;--danger:#f0566a;--success:#3fb97a;--radius:10px;--radius-sm:7px;--ease:cubic-bezier(.2, .8, .2, 1);--font:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--accent-text:color-mix(in oklab, var(--accent) 85%, black);--bg:#f5f4f1;--sidebar:#efede9;--surface:#fff;--surface-2:#f6f5f2;--surface-3:#ecebe7;--border:#14141e14;--border-strong:#14141e24;--text:#1c1c21;--text-2:#55555f;--muted:#8b8b94;--shadow:0 12px 40px #1e1e2824;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{color:var(--accent-text)}::selection{background:color-mix(in oklab, var(--accent) 35%, transparent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);background-clip:padding-box;border:3px solid #0000;border-radius:10px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}.app{grid-template-rows:minmax(0,1fr);grid-template-columns:auto 1fr;height:100%;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);width:248px;transition:width .22s var(--ease);flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{width:64px}.sb-top{align-items:center;gap:8px;padding:14px 12px 8px;display:flex}.sb-scroll{flex:1;padding:4px 10px 10px;overflow:hidden auto}.sb-section{margin-top:18px}.sb-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;justify-content:space-between;align-items:center;padding:0 10px 6px;font-size:11px;font-weight:600;display:flex}.collapsed .sb-label,.collapsed .nav-text,.collapsed .ws-name,.collapsed .kbd,.collapsed .nav-badge,.collapsed .sb-hide-c{display:none}.nav-item{border-radius:var(--radius-sm);width:100%;color:var(--text-2);white-space:nowrap;text-align:left;align-items:center;gap:10px;padding:7px 10px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--surface-3);color:var(--text)}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-item svg{flex-shrink:0}.collapsed .nav-item{justify-content:center;padding:8px}.nav-badge{color:var(--muted);margin-left:auto;font-size:11px}.nav-dot{border-radius:3px;flex-shrink:0;width:8px;height:8px}.sb-bottom{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:10px;display:flex}.ws-switch{border-radius:var(--radius-sm);flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.ws-switch:hover{background:var(--surface-2)}.ws-logo{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.ws-name{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.ws-sub{color:var(--muted);font-size:11px;font-weight:500}.main{flex-direction:column;min-width:0;height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:54px;padding:0 24px;display:flex}.crumbs{color:var(--muted);align-items:center;gap:6px;min-width:0;font-weight:500;display:flex}.crumbs b{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.search-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:34px;color:var(--muted);align-items:center;gap:8px;width:260px;margin-left:auto;padding:0 10px;display:flex}.search-btn:hover{border-color:var(--border-strong)}.kbd{background:var(--surface-3);color:var(--text-2);border-radius:5px;margin-left:auto;padding:1px 6px;font-family:inherit;font-size:11px}.content{flex:1;overflow-y:auto}.page{max-width:1400px;animation:pageIn .28s var(--ease);margin:0 auto;padding:28px 32px 48px}.page.wide{max-width:none}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{font-size:24px}.page-head p{color:var(--text-2);margin:4px 0 0}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);height:34px;color:var(--text);white-space:nowrap;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.danger{color:var(--danger)}.btn.sm{height:28px;padding:0 9px;font-size:12px}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-2);flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.sm{width:24px;height:24px}.icon-btn.on{color:var(--accent)}.input,.select,.textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);outline:none;width:100%;height:34px;padding:0 10px;transition:border-color .15s,background .15s}.textarea{resize:vertical;height:auto;min-height:80px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{border-color:color-mix(in oklab, var(--accent) 60%, transparent);background:var(--surface)}.input.bare{background:0 0;border-color:#0000;height:auto;padding:0}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:28px}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--text-2);font-size:12px;font-weight:600}.row{align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:12px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card-pad{padding:16px 18px}.card-head{align-items:center;gap:8px;margin-bottom:12px;display:flex}.card-head h3{font-size:14px}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.seg button{height:28px;color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.seg button:hover{color:var(--text)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0003}:root[data-theme=light] .seg button.on{box-shadow:0 1px 3px #00000014}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 12px;font-weight:600;display:inline-flex}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-color:var(--accent)}.chip{background:var(--surface-3);height:22px;color:var(--text-2);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.tag:before{content:"#";opacity:.55}.prio{background:color-mix(in oklab, var(--c) 15%, transparent);color:color-mix(in oklab, var(--c) 85%, var(--text))}.dot{background:var(--c);border-radius:50%;flex-shrink:0;width:8px;height:8px}.progress{background:var(--surface-3);border-radius:6px;height:6px;overflow:hidden}.progress>div{background:var(--c,var(--accent));height:100%;transition:width .4s var(--ease);border-radius:6px}.check{border:1.5px solid var(--border-strong);color:#0000;border-radius:6px;flex-shrink:0;place-items:center;width:18px;height:18px;transition:all .15s;display:grid}.check:hover{border-color:var(--accent)}.check.on{background:var(--accent);border-color:var(--accent);color:#fff}.check.round{border-radius:50%}.empty{text-align:center;color:var(--muted);padding:28px 12px;font-size:13px}.empty svg{opacity:.5;margin-bottom:6px}.avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:grid}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0505088c;justify-content:center;align-items:flex-start;padding-top:10vh;animation:.18s fade;display:flex;position:fixed;inset:0}:root[data-theme=light] .overlay{background:#1e1e2840}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--border-strong);width:min(520px,100vw - 32px);box-shadow:var(--shadow);animation:pop .22s var(--ease);border-radius:14px;flex-direction:column;max-height:80vh;display:flex}.modal.lg{width:min(680px,100vw - 32px)}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-head{align-items:center;padding:16px 18px 0;display:flex}.modal-head h3{font-size:16px}.modal-body{flex-direction:column;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.drawer-overlay{z-index:40;background:#05050859;animation:.18s fade;position:fixed;inset:0}:root[data-theme=light] .drawer-overlay{background:#1e1e281f}.drawer{background:var(--surface);border-left:1px solid var(--border-strong);z-index:41;width:min(560px,100vw);box-shadow:var(--shadow);animation:slideIn .26s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}}.menu{z-index:60;background:var(--surface);border:1px solid var(--border-strong);min-width:190px;box-shadow:var(--shadow);animation:pop .14s var(--ease);border-radius:10px;max-height:360px;padding:5px;position:fixed;overflow-y:auto}.menu-item{text-align:left;width:100%;color:var(--text-2);border-radius:6px;align-items:center;gap:9px;padding:7px 9px;font-weight:500;display:flex}.menu-item:hover,.menu-item.hl{background:var(--surface-2);color:var(--text)}.menu-item.danger{color:var(--danger)}.menu-sep{background:var(--border);height:1px;margin:4px 0}.toast-wrap{z-index:80;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--surface-3);border:1px solid var(--border-strong);box-shadow:var(--shadow);animation:pop .2s var(--ease);border-radius:9px;align-items:center;gap:10px;padding:9px 14px;font-weight:500;display:flex}.palette{background:var(--surface);border:1px solid var(--border-strong);width:min(620px,100vw - 32px);box-shadow:var(--shadow);animation:pop .18s var(--ease);border-radius:14px;overflow:hidden}.palette-input{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-input input{background:0 0;border:0;outline:none;flex:1;font-size:15px}.palette-list{max-height:400px;padding:6px;overflow-y:auto}.palette-group{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:168px;grid-auto-flow:dense;gap:14px;display:grid}.widget{flex-direction:column;padding:16px 18px;transition:box-shadow .2s,opacity .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.widget .w-body{flex:1;min-height:0;margin:0 -6px;padding:0 6px;overflow-y:auto}.editing .widget{border-style:dashed;border-color:var(--border-strong);cursor:grab}.editing .widget .w-body{pointer-events:none}.widget.dragging{opacity:.35}.widget.drop-target{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.w-resize{cursor:nwse-resize;width:18px;height:18px;color:var(--muted);border-radius:4px;place-items:center;display:grid;position:absolute;bottom:4px;right:4px}.w-resize:hover{color:var(--accent);background:var(--surface-2)}.w-tools{gap:2px;margin-left:auto;display:none}.editing .w-tools{display:flex}.welcome h2{margin-top:2px;font-size:22px}.stat-big{letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1.1}.list-row{border-radius:7px;align-items:center;gap:10px;min-width:0;padding:7px 6px;transition:background .12s;display:flex}.list-row:hover{background:var(--surface-2)}.list-row.clickable{cursor:pointer}.done-text{color:var(--muted);text-decoration:line-through}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toolbar .input{width:220px}.toolbar .select{width:auto;height:32px;font-size:13px}.task-table{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.task-group-head{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.task-row{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:22px minmax(0,1fr) 140px 110px 90px 28px;align-items:center;gap:12px;padding:9px 14px;transition:background .12s;display:grid}.task-row:last-child{border-bottom:0}.task-row:hover{background:var(--surface-2)}.task-meta{color:var(--muted);align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.due{color:var(--text-2);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.due.late{color:var(--danger)}.quick-add{color:var(--muted);align-items:center;gap:10px;padding:8px 14px;display:flex}.quick-add input{background:0 0;border:0;outline:none;flex:1}.kanban{grid-auto-columns:minmax(270px,1fr);grid-auto-flow:column;align-items:start;gap:14px;padding-bottom:8px;display:grid;overflow-x:auto}.k-col{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;min-height:200px;padding:10px;transition:border-color .15s,background .15s}:root[data-theme=light] .k-col{background:#efeeea}.k-col.over{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 6%, var(--surface-2))}.k-head{align-items:center;gap:8px;padding:4px 6px 10px;font-weight:650;display:flex}.k-card{background:var(--surface);border:1px solid var(--border);cursor:grab;border-radius:10px;margin-bottom:8px;padding:12px;transition:border-color .15s,transform .15s,box-shadow .15s}.k-card:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 6px 18px #0000002e}.k-card.dragging{opacity:.4}.k-card h4{margin:6px 0 8px;font-size:13.5px;font-weight:600;line-height:1.35}.cal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.cal-head,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-head div{text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11px;font-weight:600}.cal-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:3px;min-width:0;min-height:112px;padding:6px;transition:background .12s;display:flex}.cal-day:nth-child(7n){border-right:0}.cal-day.other{background:var(--surface-2)}.cal-day.other .cal-num{color:var(--muted)}.cal-day.over{background:var(--accent-soft)}.cal-num{width:24px;height:24px;color:var(--text-2);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.cal-day.is-today .cal-num{background:var(--accent);color:#fff}.cal-item{background:color-mix(in oklab, var(--c) 18%, transparent);color:color-mix(in oklab, var(--c) 70%, var(--text));text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-left:2px solid var(--c);border-radius:5px;padding:2px 6px;font-size:11.5px;font-weight:600;overflow:hidden}.cal-item.done{opacity:.5;text-decoration:line-through}.week{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:52px repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.week-hd{border-bottom:1px solid var(--border);border-left:1px solid var(--border);text-align:center;color:var(--text-2);padding:8px;font-size:12px}.week-hd b{color:var(--text);font-size:18px;display:block}.week-hd.is-today b{color:var(--accent)}.week-col{border-left:1px solid var(--border);height:660px;position:relative}.week-hour{border-bottom:1px solid var(--border);height:44px;color:var(--muted);text-align:right;padding:2px 6px 0 0;font-size:10.5px}.week-ev{background:color-mix(in oklab, var(--c) 22%, var(--surface));border-left:3px solid var(--c);cursor:pointer;border-radius:6px;padding:3px 6px;font-size:11.5px;font-weight:600;position:absolute;left:3px;right:3px;overflow:hidden}.d-head{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:12px 14px;display:flex}.d-body{flex-direction:column;flex:1;gap:18px;padding:20px 24px 40px;display:flex;overflow-y:auto}.d-title{background:0 0;border:0;outline:none;width:100%;font-size:20px;font-weight:650}.props{grid-template-columns:120px 1fr;align-items:center;gap:8px 12px;font-size:13px;display:grid}.props>span{color:var(--muted);align-items:center;gap:7px;display:flex}.props .select,.props .input{height:30px;font-size:13px}.sec-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.comment{gap:10px;display:flex}.comment .bubble{background:var(--surface-2);border-radius:10px;flex:1;padding:8px 12px}.attach{border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.attach img{object-fit:cover;border-radius:5px;width:34px;height:34px}.tag-input{flex-wrap:wrap;align-items:center;gap:5px;min-height:30px;display:flex}.tag-input input{background:0 0;border:0;outline:none;flex:1;min-width:80px;font-size:13px}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;display:grid}.proj-card{cursor:pointer;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.proj-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.proj-cover{background:linear-gradient(135deg, color-mix(in oklab, var(--c) 55%, var(--surface)), color-mix(in oklab, var(--c) 18%, var(--surface)));background-position:50%;background-size:cover;height:84px;position:relative}.proj-icon{background:var(--c);color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.proj-card .proj-icon{border:3px solid var(--surface);width:44px;height:44px;position:absolute;bottom:-18px;left:16px}.proj-hero{border-radius:12px;height:150px;margin-bottom:-34px}.proj-hero-row{align-items:flex-end;gap:16px;margin-bottom:18px;padding:0 20px;display:flex;position:relative}.proj-hero-row>.grow{padding-top:40px}.proj-hero-row .proj-icon{border:4px solid var(--bg);border-radius:16px;width:64px;height:64px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.gantt{position:relative}.gantt-row{border-bottom:1px solid var(--border);grid-template-columns:200px 1fr;align-items:center;height:44px;display:grid}.gantt-track{height:100%;position:relative}.gantt-bar{background:color-mix(in oklab, var(--c) 30%, var(--surface));border:1px solid color-mix(in oklab, var(--c) 60%, transparent);cursor:pointer;border-radius:6px;height:22px;position:absolute;top:11px;overflow:hidden}.gantt-bar>div{background:var(--c);opacity:.75;height:100%}.gantt-today{background:var(--accent);z-index:2;width:2px;position:absolute;top:0;bottom:0}.gantt-months{color:var(--muted);border-bottom:1px solid var(--border);grid-template-columns:200px 1fr;font-size:11px;display:grid}.icon-pick{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.icon-pick button{height:32px;color:var(--text-2);border-radius:7px;place-items:center;display:grid}.icon-pick button:hover{background:var(--surface-2)}.icon-pick button.on{background:var(--accent-soft);color:var(--accent-text)}.swatches{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.swatch{background:var(--c);border:2px solid #0000;border-radius:7px;width:24px;height:24px;transition:transform .12s}.swatch:hover{transform:scale(1.1)}.swatch.on{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--c)}.notes-layout{grid-template-columns:280px 1fr;height:100%;display:grid}.notes-list{border-right:1px solid var(--border);background:var(--sidebar);padding:16px 10px;overflow-y:auto}.note-item{text-align:left;border-radius:8px;width:100%;margin-bottom:2px;padding:10px 12px;transition:background .12s;display:block}.note-item:hover{background:var(--surface-2)}.note-item.on{background:var(--surface-3)}.note-item b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.note-item p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;overflow:hidden}.tree-item{color:var(--text-2);cursor:pointer;border-radius:7px;align-items:center;gap:4px;padding:5px 6px;font-weight:500;display:flex}.tree-item:hover{background:var(--surface-2);color:var(--text)}.tree-item.on{background:var(--surface-3);color:var(--text)}.tree-item .tree-actions{opacity:0;display:flex}.tree-item:hover .tree-actions{opacity:1}.editor-wrap{height:100%;overflow-y:auto}.editor-inner{max-width:780px;animation:pageIn .25s var(--ease);margin:0 auto;padding:28px 40px 120px}.ed-toolbar{z-index:5;background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;padding:6px;display:flex;position:sticky;top:0}.ed-toolbar .sep{background:var(--border-strong);width:1px;height:18px;margin:0 4px}.ed-title{letter-spacing:-.02em;background:0 0;border:0;outline:none;width:100%;margin-bottom:6px;font-size:34px;font-weight:700}.prose{min-height:50vh;color:var(--text);outline:none;font-size:15.5px;line-height:1.7}.prose:empty:before{content:attr(data-placeholder);color:var(--muted)}.prose h1{margin:24px 0 8px;font-size:28px}.prose h2{margin:22px 0 6px;font-size:21px}.prose h3{margin:18px 0 4px;font-size:17px}.prose p{margin:6px 0}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-2);margin:10px 0;padding:2px 14px}.prose pre{background:var(--surface-2);border:1px solid var(--border);white-space:pre-wrap;border-radius:8px;padding:12px 14px;font:13px/1.6 ui-monospace,Cascadia Code,Consolas,monospace;overflow-x:auto}.prose code{background:var(--surface-3);border-radius:4px;padding:1px 5px;font:.88em ui-monospace,Consolas,monospace}.prose img{border-radius:8px;max-width:100%}.prose hr{border:0;border-top:1px solid var(--border-strong);margin:20px 0}.prose table{border-collapse:collapse;width:100%;margin:10px 0}.prose td,.prose th{border:1px solid var(--border-strong);min-width:60px;padding:6px 10px}.prose ul[data-checklist]{padding-left:4px;list-style:none}.prose ul[data-checklist] li{padding-left:28px;position:relative}.prose ul[data-checklist] li:before{content:"";border:1.5px solid var(--border-strong);cursor:pointer;border-radius:5px;width:16px;height:16px;position:absolute;top:5px;left:0}.prose ul[data-checklist] li[data-done]:before{background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2'%3E%3Cpath d='m4 8.5 2.5 2.5L12 5.5'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--accent)}.prose ul[data-checklist] li[data-done]{color:var(--muted);text-decoration:line-through}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.note-card{cursor:pointer;flex-direction:column;gap:6px;height:170px;padding:14px 16px;transition:border-color .15s,transform .15s;display:flex;position:relative;overflow:hidden}.note-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.note-card .preview{color:var(--text-2);flex:1;font-size:12.5px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}.file-drop{border:1.5px dashed var(--border-strong);text-align:center;color:var(--muted);cursor:pointer;border-radius:10px;padding:20px;transition:border-color .15s,background .15s}.file-drop.over,.file-drop:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.habit-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(160px,1fr) repeat(7,40px) 80px 70px 30px;align-items:center;gap:6px;padding:10px 16px;display:grid}.habit-row:last-child{border-bottom:0}.habit-cell{background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;transition:all .15s var(--ease);color:#0000;border-radius:9px;justify-self:center;place-items:center;display:grid}.habit-cell:hover{border-color:var(--c)}.habit-cell.on{background:var(--c);border-color:var(--c);color:#fff;transform:scale(1.04)}.heat{grid-template-rows:repeat(7,12px);grid-auto-flow:column;gap:3px;display:grid;overflow-x:auto}.heat div{background:var(--surface-3);border-radius:3px;width:12px;height:12px}.timer-face{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:88px;font-weight:700;line-height:1}.timer-track{background:var(--surface-3);border-radius:4px;width:100%;height:4px;overflow:hidden}.timer-track div{background:var(--accent);height:100%;transition:width 1s linear}.mini-timer{background:var(--accent-soft);color:var(--accent-text);font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-weight:650;display:flex}.bm-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.bm-card{color:inherit;align-items:flex-start;gap:12px;padding:14px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.bm-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.bm-fav{color:#fff;text-transform:uppercase;border-radius:9px;flex-shrink:0;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.bars{align-items:flex-end;gap:6px;height:160px;padding-top:10px;display:flex}.bars .bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.bars .bar{background:var(--accent);width:100%;max-width:28px;transition:height .5s var(--ease);border-radius:4px 4px 2px 2px;min-height:2px;position:relative}.bars .bar:hover:after{content:attr(data-v);background:var(--surface-3);white-space:nowrap;color:var(--text);border-radius:5px;padding:2px 6px;font-size:11px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.bars .bar.dim{background:color-mix(in oklab, var(--accent) 30%, var(--surface-3))}.bars small{color:var(--muted);font-size:10.5px}.legend-row{align-items:center;gap:10px;padding:5px 0;font-size:13px;display:flex}.stack{border-radius:6px;gap:2px;height:10px;display:flex;overflow:hidden}.stack div{background:var(--c)}.settings-grid{grid-template-columns:220px 1fr;gap:28px;display:grid}.settings-nav{flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky;top:0}.set-row{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:14px 0;display:flex}.set-row:last-child{border-bottom:0}.set-row>div:first-child{flex:1}.set-row b{font-weight:600;display:block}.set-row small{color:var(--muted);font-size:12.5px}.toggle{background:var(--surface-3);border-radius:20px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.toggle:after{content:"";width:16px;height:16px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle.on{background:var(--accent)}.toggle.on:after{transform:translate(16px)}.nav-burger{display:none!important}@media (width<=1100px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,1fr)}.task-row{grid-template-columns:22px minmax(0,1fr) 110px 28px}.task-row .hide-md{display:none}}@media (width<=760px){.app{grid-template-columns:1fr}.sidebar{z-index:40;width:min(288px,86vw);height:100%;transition:transform .25s var(--ease);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.m-open{box-shadow:var(--shadow);transform:none}.sb-collapse{display:none}.nav-item{padding:10px}.nav-backdrop{z-index:35;background:#00000073;animation:.2s fade;position:fixed;inset:0}.nav-burger{margin-left:-6px;display:grid!important}.topbar{gap:8px;padding:0 12px}.crumbs>span,.crumbs>svg:first-of-type{display:none}.page{padding:20px 16px 40px}.dash-grid,.notes-layout{grid-template-columns:1fr}.notes-list{display:none}.search-btn{width:auto}.search-btn span,.search-btn .kbd{display:none}.settings-grid{grid-template-columns:1fr}.habit-row{grid-template-columns:minmax(0,1fr) repeat(7,26px) 24px;gap:4px;padding:10px 12px}.habit-row .hide-sm{display:none}.habit-cell{border-radius:7px;width:26px;height:26px}.cal-layout,.focus-grid,.proj-detail-grid{grid-template-columns:minmax(0,1fr)!important}.cal-head div{text-align:center;padding:8px 0;font-size:10px}.cal-day{min-height:64px;padding:3px}.cal-item{padding:1px 3px;font-size:9.5px}.page-head h1{font-size:22px}.tabs{scrollbar-width:none;overflow-x:auto}.tabs button{white-space:nowrap;flex-shrink:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.shared-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);white-space:nowrap;text-overflow:ellipsis;border-radius:99px;align-items:center;gap:4px;max-width:160px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex;overflow:hidden}.share-list{flex-direction:column;gap:2px;display:flex}.share-row{border-top:1px solid var(--border);gap:10px;padding:8px 4px}.share-row:first-child{border-top:0}@media (width<=760px){.proj-hero-row{flex-wrap:wrap;row-gap:10px}.proj-hero-row>.grow{flex:calc(100% - 90px)}.proj-hero-row>.row{flex:100%}.proj-hero-row>.row>div:first-child{flex:1;min-width:0;width:auto!important}}.set-form{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;max-width:380px;padding:4px 0 16px;display:flex}.set-form .btn{align-self:flex-start}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.admin-stat{flex-direction:column;gap:4px;display:flex}.admin-bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:3px;height:90px;padding:6px 0;display:flex}.admin-bars>div{flex:1;align-items:flex-end;height:100%;display:flex}.admin-bars span{background:var(--accent);border-radius:3px 3px 0 0;width:100%;min-height:2px}.comments{flex-direction:column;gap:10px;display:flex}.comment-input{position:relative}.mention{color:var(--accent);font-weight:650}.mention-list{z-index:5;background:var(--surface);border:1px solid var(--border-strong);min-width:200px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0}.note-comments{border-top:1px solid var(--border);flex-direction:column;align-items:stretch;gap:12px;margin-top:28px;padding-top:14px;display:flex}.note-comments>.btn{align-self:flex-start}.share-link{border:1px dashed var(--border-strong);border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.share-link .input{height:32px;font-size:12.5px}
