:root{--bg:#f6f6f9;--panel:#fff;--text:#1a1b23;--muted:#6b6e80;--faint:#9a9cab;--border:#e6e7ee;--hover:#f2f2f7;--accent:#6a45ff;--accent-soft:#eee9ff;--side:#14151b;--side-text:#b9bbc8;--side-hover:#22232c;--danger:#e5484d;--shadow:0 12px 40px rgba(20,20,40,.16);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0f14;--panel:#16171e;--text:#e9e9f0;--muted:#a0a2b4;--faint:#6d7084;--border:#272833;--hover:#1e1f28;--accent:#8b6dff;--accent-soft:#272043;--side:#0a0b0f;--side-text:#a9abb9;--side-hover:#1b1c24;--shadow:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0f14;--panel:#16171e;--text:#e9e9f0;--muted:#a0a2b4;--faint:#6d7084;--border:#272833;--hover:#1e1f28;--accent:#8b6dff;--accent-soft:#272043;--side:#0a0b0f;--side-text:#a9abb9;--side-hover:#1b1c24;--shadow:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:252px;flex-shrink:0;background:var(--side);color:var(--side-text);display:flex;flex-direction:column;padding:16px 10px;overflow-y:auto}.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 18px}.logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#6a45ff,#ff5fa2);color:#fff;font-weight:700;display:grid;place-items:center;font-size:13px;flex-shrink:0}.logo.big{width:52px;height:52px;border-radius:14px;font-size:18px;margin:0 auto 14px}.brand-name{color:#fff;font-weight:600;font-size:13.5px}.brand-sub{font-size:11.5px;opacity:.7}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:none;border-radius:8px;cursor:pointer;color:var(--side-text);text-align:left}.nav-item.active,.nav-item:hover{background:var(--side-hover)}.nav-item.active{color:#fff}.nav-item .count{margin-left:auto;font-size:12px;opacity:.6}.nav-item .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;display:inline-block}.side-label{justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:18px 10px 6px;opacity:.75}.side-foot,.side-label{display:flex;align-items:center}.side-foot{margin-top:auto;padding:14px 8px 0;gap:9px;border-top:1px solid var(--side-hover)}.side-foot .me{flex:1 1;min-width:0;font-size:12.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-btn{background:none;border:0;color:inherit;opacity:.65;cursor:pointer;font-size:12px;padding:0}.link-btn:hover{opacity:1}.icon-btn{background:none;border:0;cursor:pointer;border-radius:6px;width:28px;height:28px;display:grid;place-items:center;font-size:15px;flex-shrink:0}.icon-btn:hover{background:var(--hover)}.sidebar .icon-btn{color:var(--side-text)}.sidebar .icon-btn:hover{background:var(--side-hover)}.new-proj{width:100%;padding:7px 10px;border-radius:8px;border:1px solid #333543;background:#1b1c24;color:#fff;margin:4px 0;outline:none}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:14px;padding:16px 24px 12px;background:var(--panel);flex-wrap:wrap}.menu{display:none}.title-wrap{min-width:0;flex:1 1}h1{font-size:19px;margin:0;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subtitle{color:var(--muted);font-size:12.5px;margin-top:2px}.seg,.tabs{display:flex;gap:2px;background:var(--hover);padding:3px;border-radius:9px}.seg button,.tabs button{border:0;background:none;padding:6px 12px;border-radius:7px;cursor:pointer;color:var(--muted);font-weight:500}.seg button.active,.tabs button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.1)}.toolbar{display:flex;align-items:center;gap:10px;padding:4px 24px 12px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.search{padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg);width:240px;max-width:100%;outline:none}.search:focus{border-color:var(--accent)}.stats{color:var(--muted);font-size:12.5px;margin-left:auto}.btn{border:1px solid var(--border);background:var(--panel);padding:7px 13px;border-radius:8px;cursor:pointer;font-weight:500}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.small-btn{font-size:12.5px;padding:4px 10px}.view{flex:1 1;overflow:auto;padding:18px 24px 40px}.muted{color:var(--muted);font-size:12.5px}.error-bar{display:flex;gap:12px;justify-content:space-between;background:rgba(229,72,77,.12);color:var(--danger);padding:8px 24px;font-size:13px;font-weight:500}.error-bar,.pill{align-items:center}.pill{display:inline-flex;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}.group-count{color:var(--faint);font-size:12px}.type{font-size:10px;font-weight:700;padding:2px 6px;border-radius:5px;letter-spacing:.04em;flex-shrink:0}.type.Static{background:rgba(14,165,233,.14);color:#0284c7}.type.Video{background:rgba(236,72,153,.14);color:#db2777}.av{width:24px;height:24px;border-radius:50%;color:#fff;font-size:10.5px;font-weight:600;display:inline-grid;place-items:center;flex-shrink:0}.av.none{background:var(--hover);color:var(--faint);border:1px dashed var(--faint)}.due{font-size:12.5px;color:var(--muted)}.due.over{color:var(--danger);font-weight:600}.due.soon{color:#d97706;font-weight:600}.prio{font-size:12px;font-weight:500}.prio.urgent{color:#e5484d}.prio.high{color:#f59e0b}.prio.normal{color:var(--muted)}.prio.low{color:var(--faint)}.proj{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;min-width:0}.proj span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list{min-width:860px}.cols,.row{display:grid;grid-template-columns:minmax(260px,1fr) 160px 120px 130px 90px 80px;align-items:center;grid-gap:12px;gap:12px}.cols{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;padding:0 12px 8px}.group{margin-bottom:18px}.group-head{display:flex;align-items:center;gap:8px;padding:6px 2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chev{width:14px;color:var(--faint);transition:transform .15s;font-size:9px}.collapsed .chev{transform:rotate(-90deg)}.rows{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.collapsed .rows{display:none}.row{padding:9px 12px;border-bottom:1px solid var(--border);cursor:pointer}.row:hover{background:var(--hover)}.tname{display:flex;align-items:center;gap:9px;min-width:0}.tname .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.sdot{width:11px;height:11px;border-radius:50%;flex-shrink:0;border:2.5px solid}.who{display:flex;align-items:center;gap:7px;min-width:0}.who span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick input{width:100%;border:0;background:none;padding:10px 12px;outline:none;color:var(--text)}.quick input::placeholder{color:var(--faint)}.board{gap:14px;align-items:flex-start}.board,.col{display:flex}.col{width:272px;flex-shrink:0;background:var(--hover);border-radius:12px;padding:10px;flex-direction:column;gap:8px;border:2px solid transparent}.col.over{border-color:var(--accent);border-style:dashed}.col-head{align-items:center;padding:2px 2px 4px}.card,.col-head{display:flex;gap:8px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:11px 12px;cursor:-webkit-grab;cursor:grab;flex-direction:column}.card:hover{border-color:var(--accent)}.card.dragging{opacity:.4}.card-title{font-weight:550;line-height:1.35}.card-meta{gap:6px;flex-wrap:wrap}.card-foot,.card-meta{display:flex;align-items:center;font-size:12px;color:var(--muted)}.card-foot{gap:10px}.card-foot .av{margin-left:auto}.add-card{border:0;background:none;color:var(--muted);text-align:left;padding:6px 4px;cursor:pointer;border-radius:6px}.add-card:hover{background:var(--panel);color:var(--text)}.col.dragging{opacity:.45}.col.no-drop{opacity:.35}.board-hint{margin:0 0 12px}.col-head.movable{cursor:-webkit-grab;cursor:grab}.col-head .col-menu{margin-left:auto;width:24px;height:24px;color:var(--muted);font-size:16px;line-height:1}.cat-tag{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.add-col{background:none;border:2px dashed var(--border);min-height:56px;justify-content:center}.add-col .add-input{margin:0}.board-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:8px 12px;border-radius:8px;background:rgba(229,72,77,.12);color:var(--danger);font-size:13px;font-weight:500}.status-editor{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;gap:8px;box-shadow:0 4px 14px rgba(0,0,0,.08)}.se-row,.status-editor{display:flex;flex-direction:column}.se-row{gap:4px}.se-row>label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}.status-editor input,.status-editor select{padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);outline:none;width:100%}.status-editor input:focus,.status-editor select:focus{border-color:var(--accent)}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:22px;height:22px;border-radius:6px;border:2px solid transparent;padding:0}.swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--panel) inset}.se-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.4}.se-confirm{display:flex;flex-direction:column;gap:8px;padding:9px;border-radius:8px;background:var(--hover);font-size:12.5px;line-height:1.45}.se-foot{display:flex;justify-content:space-between;gap:6px}.cal-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.cal-head h2{font-size:16px;margin:0 8px 0 0;min-width:150px}.cal{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel);min-width:790px}.dow{padding:8px;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}.day,.dow{border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.day{min-height:112px;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0}.day:nth-child(7n),.dow:nth-child(7n){border-right:0}.day.other{background:var(--bg)}.day.other .dnum{opacity:.45}.day.today .dnum{background:var(--accent);color:#fff}.day.over{background:var(--accent-soft)}.dnum{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}.chip,.dnum{font-size:12px}.chip{padding:3px 6px;border-radius:5px;background:var(--hover);border-left:3px solid;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip:hover{background:var(--accent-soft)}.chip .type{font-size:9px;padding:1px 4px;margin-right:4px}.nodue{margin-top:18px}.nodue .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.scrim{position:fixed;inset:0;background:rgba(10,10,20,.28);opacity:0;pointer-events:none;transition:opacity .2s;z-index:9}.scrim.open{opacity:1;pointer-events:auto}.drawer{display:none}.drawer.open{display:flex;flex-direction:column;position:fixed;z-index:10;top:50%;left:50%;transform:translate(-50%,-50%);width:min(1040px,calc(100vw - 48px));height:min(820px,calc(100vh - 48px));background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;animation:cardin .18s ease}@keyframes cardin{0%{opacity:0;transform:translate(-50%,-48%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.scrim{background:rgba(10,10,20,.45)}.task-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"title side" "main side";grid-column-gap:28px;column-gap:28px;align-items:start;padding:20px 24px 32px}.task-grid>.d-title{grid-area:title;margin-bottom:6px}.task-grid>.fields{grid-area:side;position:-webkit-sticky;position:sticky;top:0;grid-template-columns:96px minmax(0,1fr);gap:7px 10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.task-grid>.fields input,.task-grid>.fields select{background:var(--panel);padding:5px 8px;font-size:13px}.task-grid>.fields>label{font-size:12px}.task-grid>.fields .stepper{flex-wrap:wrap;gap:6px}.task-grid>.fields .stepper .due{flex-basis:100%;font-size:11.5px}.task-grid>.fields .link-row{flex-wrap:wrap;gap:4px}.task-grid>.task-main{grid-area:main;min-width:0}.task-grid>.task-main>.sec-title:first-child{margin-top:8px}.brief-wrap{position:relative}.brief-input{display:block;min-height:220px;font-size:14px;line-height:1.55;padding:11px 13px 30px}.brief-expand{position:absolute;right:22px;bottom:7px;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;cursor:pointer;line-height:1.5}.brief-expand:hover{color:var(--accent);border-color:var(--accent)}@keyframes slidein{0%{transform:translateX(40px);opacity:.4}to{transform:none;opacity:1}}.d-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.d-head .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.save-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);white-space:nowrap;margin-right:4px}.save-badge.saving{color:var(--muted)}.save-badge.saved{color:#059669;font-weight:500}.save-badge.error{color:var(--danger);font-weight:600}.spinner{width:11px;height:11px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.d-body{flex:1 1;overflow-y:auto;padding:18px 22px 40px}.d-title{width:100%;font-size:20px;font-weight:650;border:0;background:none;outline:none;padding:4px 0;margin-bottom:14px;border-bottom:1px solid transparent}.d-title:focus{border-bottom-color:var(--accent)}.fields{display:grid;grid-template-columns:128px 1fr;grid-gap:8px 12px;gap:8px 12px;align-items:center}.fields>label{color:var(--muted);font-size:12.5px}.fields input,.fields select{padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);width:100%;outline:none}.fields input:focus,.fields select:focus,textarea:focus{border-color:var(--accent)}.link-row{display:flex;gap:8px;align-items:center}.link-row a{color:var(--accent);font-size:12.5px;white-space:nowrap;text-decoration:none;font-weight:500}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:28px;height:28px;border:1px solid var(--border);border-radius:7px;background:var(--bg);cursor:pointer}.sec-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin:24px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}textarea{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--bg);padding:9px 11px;resize:vertical;min-height:84px;outline:none}.bar{height:5px;background:var(--hover);border-radius:3px;overflow:hidden;margin-bottom:6px}.bar i{display:block;height:100%;background:#10b981;transition:width .2s}.sub{display:flex;align-items:center;gap:9px;padding:5px 4px;border-radius:6px}.sub:hover{background:var(--hover)}.sub input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.sub span{flex:1 1;cursor:pointer}.sub.done span{text-decoration:line-through;color:var(--faint)}.sub .icon-btn{opacity:0;width:22px;height:22px;font-size:12px;color:var(--faint)}.sub:hover .icon-btn{opacity:1}.add-input{width:100%;border:1px dashed var(--border);border-radius:7px;background:none;padding:7px 10px;margin-top:6px;outline:none}.add-input:focus{border-color:var(--accent);border-style:solid}.custom-fields{margin-bottom:10px}.custom-fields>label{overflow-wrap:anywhere;line-height:1.3}.dropdown-row{display:flex;align-items:center;gap:8px}.label-picks{display:flex;flex-wrap:wrap;gap:6px}.label-chip{border:1px solid;background:none;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer}.label-chip.on{color:#fff}.fields input.field-check{width:16px;height:16px;padding:0;accent-color:var(--accent);cursor:pointer;justify-self:start}.fields-modal{width:min(720px,100%)}.field-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field-item{border:1px solid var(--border);border-radius:9px;padding:6px 8px}.field-line{align-items:center;gap:8px;flex-wrap:wrap}.field-line,.field-order{display:flex}.field-order .icon-btn{width:24px;height:24px;font-size:13px}.field-order .icon-btn:disabled{opacity:.3;cursor:default}.field-name{flex:1 1;min-width:140px;border:1px solid transparent;border-radius:6px;padding:5px 8px;background:none;font-weight:600;outline:none}.field-name:hover{border-color:var(--border)}.field-name:focus{border-color:var(--accent);background:var(--bg)}.kind-tag{font-size:11px;font-weight:600;color:var(--muted);background:var(--hover);border-radius:5px;padding:2px 7px}.field-confirm{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.opt-list{margin:4px 0 2px 56px;display:flex;flex-direction:column;gap:4px}.opt-row{display:flex;align-items:center;gap:8px}.opt-row input{flex:1 1;border:1px solid var(--border);border-radius:6px;padding:4px 8px;background:var(--bg);outline:none}.opt-row input:focus{border-color:var(--accent)}.swatch{width:18px;height:18px;border-radius:5px;border:0;cursor:pointer;flex-shrink:0}.field-add{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.field-add input,.field-add select{flex:1 1;min-width:160px;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);outline:none}.field-add input:focus,.field-add select:focus{border-color:var(--accent)}.tpl-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.tpl-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:7px}.tpl-row:hover{background:var(--hover)}.tpl-row>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:600px){.opt-list{margin-left:8px}}.comment{display:flex;gap:10px;margin-bottom:14px}.comment p{margin:3px 0 0;white-space:pre-wrap;line-height:1.45}.c-form{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.c-form textarea{min-height:64px}.modal-scrim{position:fixed;inset:0;background:rgba(10,10,20,.4);z-index:30;display:grid;place-items:center;padding:16px}.modal{width:min(640px,100%);max-height:min(720px,100%);background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.invite{padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:6px}.invite-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.invite-grid input{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);outline:none;min-width:0}.invite-grid input:focus{border-color:var(--accent)}.team-ok{margin:10px 0 0;padding:9px 12px;border-radius:8px;background:rgba(16,185,129,.12);color:#059669;font-size:13px;font-weight:500}.team-list{margin-top:10px}.member{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}.member:last-child{border-bottom:0}.member .av{width:32px;height:32px;font-size:12px}.member-info{flex:1 1;min-width:0}.member-info .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member.inactive{opacity:.55}.member-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.confirm-box,.member{flex-wrap:wrap}.confirm-box{flex-basis:100%;display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:4px;padding:9px 11px;border-radius:8px;background:var(--hover);font-size:12.5px;line-height:1.45}.confirm-box>span{flex:1 1;min-width:200px}.badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:5px;font-size:10.5px;font-weight:700;letter-spacing:.03em;background:var(--accent-soft);color:var(--accent);vertical-align:1px}.badge.guest{background:rgba(245,158,11,.14);color:#d97706}.badge.off{background:var(--hover);color:var(--muted)}@media (max-width:560px){.invite-grid{grid-template-columns:1fr}}.role-chips{display:inline-flex;flex-wrap:wrap;gap:4px}.role-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;border:1.5px solid;font-size:11.5px;font-weight:600;line-height:1.6;background:none;white-space:nowrap}.role-chip.toggle{cursor:pointer}.role-pick{margin-top:10px}.member-roles,.role-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.member-roles{margin-top:4px}.no-access{color:#d97706}.role-dot{width:14px;height:14px;border-radius:4px;flex-shrink:0}.rename-input{padding:5px 8px;border:1px solid var(--accent);border-radius:7px;background:var(--bg);outline:none;width:100%;font-weight:600}.role-checks{display:flex;flex-direction:column;gap:6px}.role-check{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;cursor:pointer}.role-check.on{border-color:var(--accent);background:var(--accent-soft)}.role-check input{accent-color:var(--accent);width:15px;height:15px}.role-check .muted{margin-left:auto}.viewer-list{display:flex;flex-wrap:wrap;gap:8px}.viewer{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--border);border-radius:999px;font-size:12.5px}.viewer .badge{margin-left:2px}.empty-state{text-align:center;padding:28px 16px;border:1px dashed var(--border);border-radius:12px;margin-bottom:16px}.empty-state p{margin:6px 0 12px}.nav-item .lock{font-size:11px;opacity:.7}.tree{display:flex;flex-direction:column}.side-label.drop,.tree-row.drop{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:8px}.tree-row{position:relative;gap:7px}.tree-row svg{flex-shrink:0;opacity:.85}.tree-chev{width:14px;height:18px;display:grid;place-items:center;font-size:10px;transition:transform .15s;flex-shrink:0;border-radius:4px;cursor:pointer}.tree-chev:hover{background:var(--side-hover)}.tree-chev.open{transform:rotate(90deg)}.tree-more{opacity:0;width:20px;height:20px;display:grid;place-items:center;border-radius:5px;font-size:14px;line-height:1;flex-shrink:0;margin-left:auto;cursor:pointer}.tree-row:focus-within .tree-more,.tree-row:hover .tree-more{opacity:.8}.tree-more:hover{background:var(--side-hover);opacity:1}.tree-more+.count{margin-left:4px}.tree-menu{display:flex;flex-direction:column;background:#1e1f28;border:1px solid #333543;border-radius:9px;padding:4px;margin:2px 8px 6px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:5}.tree-menu button{background:none;border:0;color:#e6e7ee;text-align:left;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:13px}.tree-menu button:hover{background:#2a2b36}.tree-menu button.danger{color:#ff8a8f}.tree-edit{padding:2px 8px 6px;display:flex;flex-direction:column;gap:5px}.tree-edit .new-proj{margin:0}.tree-copy{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--side-text)}.tree-copy select{flex:1 1;min-width:0;background:#1b1c24;border:1px solid #333543;color:#fff;border-radius:6px;padding:4px 6px;font-size:12px}.tree-edit-actions{display:flex;justify-content:flex-end;gap:12px}.tree-edit-actions .strong{opacity:1;color:#b9a8ff;font-weight:600}.tree-edit-actions .danger{opacity:1;color:#ff8a8f;font-weight:600}.tree-confirm,.tree-move{margin:2px 8px 6px;padding:8px;border-radius:9px;background:#1e1f28;border:1px solid #333543;display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:#e6e7ee;line-height:1.45}.tree-move .muted{color:var(--side-text);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.tree-move-opt{background:none;border:0;color:#e6e7ee;text-align:left;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-move-opt:hover:not(:disabled){background:#2a2b36}.tree-move-opt:disabled{opacity:.4;cursor:default}.tree-move .link-btn{align-self:flex-end;margin-top:4px}.tree-err{display:flex;justify-content:space-between;gap:8px;margin:2px 8px 6px;padding:6px 8px;border-radius:7px;background:rgba(229,72,77,.18);color:#ffb3b6;font-size:12px}.tree-tip{font-size:11px;opacity:.45;padding:8px 10px 0}.mselect{width:100%}.mselect-anchor,.mselect-box{position:relative}.mselect-box{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:38px;padding:4px 28px 4px 6px;border:1px solid var(--border);border-radius:8px;background:var(--bg);cursor:text}.mselect-box.open{border-color:var(--accent)}.mselect-box input{flex:1 1;min-width:120px;border:0;background:none;outline:none;padding:4px 2px}.mselect-caret{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:11px;pointer-events:none}.mselect-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 3px;border-radius:999px;background:var(--accent-soft);font-size:12.5px;font-weight:500}.mselect-chip .av{width:20px;height:20px;font-size:9px}.mselect-chip button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:15px;line-height:1;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;padding:0}.mselect-chip button:hover{background:var(--hover);color:var(--text)}.mselect-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;max-height:240px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.mselect-opt{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;cursor:pointer}.mselect-opt.hi{background:var(--hover)}.mselect-opt .tick{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--faint);display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}.mselect-opt.on .tick{background:var(--accent);border-color:var(--accent)}.mselect-opt .av{width:24px;height:24px}.mselect-who{display:flex;flex-direction:column;min-width:0;flex:1 1}.mselect-who b{font-weight:550;font-size:13px}.mselect-who small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mselect-empty{padding:10px;color:var(--muted);font-size:12.5px}.mselect-count{font-size:11.5px;margin-top:4px}.attachments{margin-top:4px}.att-drop{border-radius:10px;transition:background .15s,outline-color .15s;outline:2px dashed transparent;outline-offset:2px}.att-drop.over{outline-color:var(--accent);background:var(--accent-soft)}.att-empty{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 12px;border:1.5px dashed var(--border);border-radius:10px;background:none;color:var(--muted);cursor:pointer;font-size:13px}.att-empty:hover{border-color:var(--accent);color:var(--text)}.att-empty small{color:var(--faint);font-size:11.5px}.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-gap:10px;gap:10px}.att-tile{position:relative;min-width:0}.att-thumb{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:4/3;border-radius:9px;overflow:hidden;border:1px solid var(--border);background:var(--hover);padding:0;cursor:zoom-in}.att-thumb img{width:100%;height:100%;object-fit:cover;display:block}.att-thumb:hover{border-color:var(--accent)}.att-noprev{font-size:26px}.att-file{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-top:3px solid;background:var(--panel)}.att-file-icon{font-size:26px;line-height:1}.att-file-icon.big{font-size:56px}.att-file-ext{color:#fff;font-size:10px;font-weight:800;letter-spacing:.05em;padding:1px 6px;border-radius:4px}.att-file-size{font-size:10.5px;color:var(--muted)}.viewer-doc{width:min(1000px,100%);height:100%;align-self:stretch;border:0;border-radius:6px;background:#fff}.viewer-nopreview{display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;text-align:center;padding:24px}.viewer-nopreview span{opacity:.75;font-size:13px}.viewer-nopreview .btn{margin-top:8px;text-decoration:none}.att-play{position:absolute;left:6px;bottom:6px;padding:1px 7px;border-radius:5px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;font-weight:600}.att-name{font-size:11.5px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-del{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:11px;cursor:pointer;opacity:0;transition:opacity .15s}.att-del:focus,.att-tile:hover .att-del{opacity:1}.att-confirm{position:absolute;top:5px;right:5px;display:flex;gap:8px;padding:3px 8px;border-radius:7px;background:var(--panel);border:1px solid var(--border);font-size:12px}.att-confirm .danger{color:var(--danger);opacity:1;font-weight:600}.att-tile.pending .att-thumb{cursor:default}.att-progress{width:70%;height:6px;border-radius:3px;background:var(--border);overflow:hidden}.att-progress span{display:block;height:100%;background:var(--accent);transition:width .2s}.att-err{font-size:11px;color:var(--danger);padding:6px;text-align:center}.card-cover{display:block;width:calc(100% + 24px);margin:-11px -12px 2px;aspect-ratio:16/9;object-fit:cover;border-radius:10px 10px 0 0;pointer-events:none}.lightbox{position:fixed;inset:0;z-index:50;background:rgba(5,5,10,.92);display:flex;flex-direction:column}.viewer-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;color:#fff}.viewer-title{flex:1 1;min-width:0;display:flex;flex-direction:column;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-title small{font-weight:400;opacity:.65;font-size:12px}.viewer-bar .btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;text-decoration:none}.viewer-close{color:#fff}.viewer-close:hover{background:rgba(255,255,255,.12)}.viewer-stage{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;padding:0 64px 24px}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;border-radius:6px;background:#000}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:34px;cursor:pointer}.viewer-nav:hover{background:rgba(255,255,255,.18)}.viewer-nav.prev{left:12px}.viewer-nav.next{right:12px}@media (max-width:820px){.viewer-stage{padding:0 8px 16px}.viewer-nav{width:36px;height:52px}}.unread-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}.notif-scrim{place-items:start center;padding-top:60px}.notif-panel{width:min(520px,100%);max-height:min(640px,calc(100vh - 80px))}.notif-panel .mark-all{color:var(--accent);opacity:1;font-weight:500;margin-right:4px}.notif-panel .mark-all:disabled{opacity:.35;cursor:default}.notif-list{overflow-y:auto;padding:6px}.notif{display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;padding:10px;border:0;background:none;border-radius:9px;cursor:pointer;position:relative}.notif:hover{background:var(--hover)}.notif.unread{background:var(--accent-soft)}.notif.unread:hover{filter:brightness(.98)}.notif-icon .av{width:30px;height:30px;font-size:11px}.notif-glyph{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;background:var(--hover);color:var(--muted);font-weight:700}.notif-glyph.overdue{background:rgba(229,72,77,.15);color:var(--danger)}.notif-glyph.due_soon{background:rgba(245,158,11,.15);color:#d97706}.notif-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1}.notif-text{font-size:13.5px;line-height:1.4}.notif-detail{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif-detail.status{font-weight:600;color:var(--text)}.notif-time{font-size:11.5px;color:var(--faint)}.notif-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:6px}.notif-more{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px;font-size:12px;color:var(--faint)}.notif-empty{text-align:center;padding:36px 20px}.notif-empty p{margin:6px 0 0}.follow-btn.on{border-color:var(--accent);color:var(--accent)}.follow-count{margin-left:6px;font-size:11px;padding:0 6px;border-radius:999px;background:var(--hover);color:var(--muted)}.c-input{position:relative;width:100%}.c-actions{display:flex;gap:8px;justify-content:flex-end}.mention-list{position:absolute;left:0;bottom:calc(100% + 4px);z-index:20;margin:0;padding:4px;list-style:none;min-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.mention-list li{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13px}.mention-list li.hi{background:var(--hover)}.mention-list .av{width:22px;height:22px;font-size:9.5px}.mention-list small{margin-left:auto}.mention{color:var(--accent);font-weight:600}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.login-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:32px 28px;text-align:center;box-shadow:var(--shadow)}.login-card h1{font-size:20px;margin-bottom:6px;white-space:normal}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:22px;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-weight:600;cursor:pointer}.google-btn:hover{border-color:var(--accent);background:var(--hover)}.login-error{margin:16px 0 0;padding:9px 12px;border-radius:8px;background:rgba(229,72,77,.12);color:var(--danger);font-size:13px;font-weight:500}.login-warn{margin:18px 0 0;padding:10px 12px;border-radius:8px;background:rgba(245,158,11,.12);color:#b45309;font-size:12.5px;line-height:1.5;text-align:left}.login-warn code{font-size:11.5px}@media (max-width:820px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;transform:translateX(-105%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:var(--shadow)}.menu{display:grid}.topbar{padding:12px 16px 10px}.toolbar{padding:4px 16px 12px}.error-bar{padding:8px 16px}.view{padding:14px 16px 40px}.search{flex:1 1;min-width:0}.stats{display:none}.fields{grid-template-columns:100px 1fr}.d-body{padding:16px 16px 40px}.drawer.open{width:100vw;height:100dvh;border-radius:0;border:0}.task-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "side" "main";padding:14px 16px 32px}.task-grid>.fields{position:static;margin-bottom:6px}}