:root{--bg: #0f172a;--bg-deep: #020617;--surface: #1e293b;--glass: rgba(30, 41, 59, .7);--primary: #6366f1;--primary-dark: #4f46e5;--sky: #38bdf8;--gold: #fbbf24;--purple: #c084fc;--green: #22c55e;--amber: #f59e0b;--red: #ef4444;--text: #f8fafc;--muted: #94a3b8;--border: rgba(255, 255, 255, .1);--border-soft: rgba(255, 255, 255, .08);--radius: 16px;--radius-sm: 8px;--desc-bg: #161f2c;--glass-solid: #1a2436;--font-ui: "Inter", system-ui, sans-serif;--font-head: var(--font-ui);--font-body: var(--font-ui);--font-mono: var(--font-ui)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:.95rem;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.2}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--sky);text-decoration:none}a:hover{text-decoration:underline}.bg-premium{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(circle at 10% 20%,rgba(99,102,241,.08) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(245,158,11,.06) 0%,transparent 40%),var(--bg)}.glass{background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem;position:sticky;top:0;height:100vh}.sidebar .logo{display:flex;align-items:center;gap:.6rem;padding:.5rem .5rem 1.25rem;font-family:var(--font-head);font-weight:800;font-size:1.15rem}.sidebar .logo .mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--sky));display:grid;place-items:center;font-size:1.1rem}.nav-item{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-radius:10px;font-size:.9rem;font-weight:500;color:var(--muted);background:transparent;border:none;cursor:pointer;width:100%;text-align:left;transition:all .15s}.nav-item:hover{background:#ffffff0d;color:var(--text)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 4px 15px #6366f14d}.nav-item .icon{font-size:1.1rem;width:1.2rem;text-align:center}.nav-group{display:flex;flex-direction:column}.nav-group-head{width:100%}.nav-group-head.open{color:var(--text)}.nav-group-caret{margin-left:auto;font-size:1.05rem;line-height:1;opacity:.75}.nav-group-head:hover .nav-group-caret{opacity:1}.nav-group-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);margin-left:auto;box-shadow:0 0 8px #6366f1cc}.nav-group-dot+.nav-group-caret{margin-left:.5rem}.nav-sub{display:flex;flex-direction:column;gap:.15rem;margin:.15rem 0 .35rem .75rem;padding-left:.5rem;border-left:1px solid var(--border-soft);animation:fadeIn .15s ease}.nav-sub-item{padding:.55rem .8rem;font-size:.85rem}.nav-sub-item .icon{font-size:.95rem}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:.75rem}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:65px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 2rem;background:#0f172ab3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.tab-scroller{flex:1;overflow-y:auto;padding:2rem}.view-header{margin-bottom:1.5rem}.view-header h1{font-size:1.8rem}.view-header p{color:var(--muted);font-size:.95rem;margin-top:.25rem}.mt-subhead{margin:2rem 0 .85rem;padding-top:1.5rem;border-top:1px solid var(--border-soft)}.mt-subhead h2{font-size:1.15rem;font-weight:700}.mt-subhead p{font-size:.85rem;margin-top:.2rem}.btn-primary{background:var(--primary);border:none;color:#fff;padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.4rem}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sm{background:#ffffff0d;border:1px solid var(--border);color:var(--text);padding:.4rem .8rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .15s}.btn-sm:hover{background:#ffffff1a}.btn-danger,.btn-sm.danger{color:#fca5a5;background:#ef44441a;border-color:#ef444452}.btn-danger:hover,.btn-danger:focus-visible,.btn-sm.danger:hover,.btn-sm.danger:focus-visible{background:var(--red);border-color:var(--red);color:#fff}.confirm-modal .btn-danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}.confirm-modal .btn-danger:hover{background:#dc2626;border-color:#dc2626}.confirm-modal .btn-danger:disabled{opacity:.6}.btn-signout{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}.btn-signout:hover{background:#dc2626;border-color:#dc2626}.btn-ghost{background:transparent;border:1px solid transparent}.input,.select,.textarea{width:100%;background:#00000040;border:1px solid var(--border);color:var(--text);padding:.6rem .75rem;border-radius:var(--radius-sm);transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary)}.textarea{resize:vertical;min-height:90px}input[type=date]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{opacity:.7;cursor:pointer;transition:opacity .18s ease}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.field{display:block;margin-bottom:.85rem}.field-label,label.field>span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.3rem}.cbx{position:relative;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer}.cbx>input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.cbx-box{width:20px;height:20px;flex:0 0 auto;border-radius:6px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.28);background:#ffffff0a;color:#fff;transition:background .15s ease,border-color .15s ease,transform .12s ease}.cbx-box svg{width:13px;height:13px;stroke-dasharray:14;stroke-dashoffset:14;transition:stroke-dashoffset .18s ease .04s}.cbx:hover .cbx-box{border-color:var(--primary);background:#6366f11f}.cbx:active .cbx-box{transform:scale(.9)}.cbx>input:focus-visible~.cbx-box{outline:2px solid var(--primary);outline-offset:2px}.cbx.on .cbx-box{background:var(--primary);border-color:var(--primary)}.cbx.on .cbx-box svg{stroke-dashoffset:0}.cbx.on:hover .cbx-box{background:#7c7ff5;border-color:#7c7ff5}.cbx.disabled{cursor:not-allowed;opacity:.45}.cbx.disabled .cbx-box{background:#ffffff0a;border-color:#ffffff2e}.cbx.disabled.on .cbx-box{background:var(--primary);border-color:var(--primary)}.cbx-label{min-width:0}.perm-list{display:flex;flex-direction:column;gap:.45rem}.perm-row{display:flex;align-items:center;gap:.5rem;font-size:.88rem;cursor:pointer}.perm-row small{font-size:.78rem}.doc-field{display:flex;flex-direction:column;gap:.6rem}.doc-addrow{display:flex;align-items:center;gap:.45rem;animation:fadeIn .2s ease}.doc-addrow .input{flex:1}.doc-addbtn{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;background:#ffffff08;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.82rem;padding:.55rem .85rem;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.doc-addbtn:hover{border-color:var(--primary);color:var(--text);background:#6366f10f}.doc-addbar{display:flex;flex-wrap:wrap;gap:.45rem}.doc-list{display:flex;flex-direction:column;gap:.45rem}.doc-card{position:relative;display:flex;align-items:center;gap:.25rem;background:#ffffff0a;border:1px solid var(--border-soft);border-radius:12px;padding:.45rem .45rem .45rem .6rem;transition:border-color .18s ease,background .18s ease}.doc-card:hover{border-color:#6366f173;background:#ffffff0f}.doc-body{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;color:var(--text)}.doc-body:hover{text-decoration:none}.doc-icon{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:#ffffff0d;border:1px solid var(--border-soft);border-radius:9px;color:var(--muted)}.doc-icon svg{width:20px;height:20px}.doc-text{display:flex;flex-direction:column;min-width:0}.doc-name{font-size:.84rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-sub{font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-kebab{flex-shrink:0;width:28px;height:28px;display:grid;place-items:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;transition:background .18s ease,color .18s ease}.doc-kebab:hover{background:#ffffff14;color:var(--text)}.doc-menu{position:absolute;top:calc(100% - 4px);right:.4rem;z-index:30;min-width:165px;border-radius:12px;padding:.3rem;box-shadow:0 12px 30px #00000073;animation:popIn .18s ease}.doc-menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:.82rem;padding:.5rem .6rem;border-radius:8px;cursor:pointer;transition:background .15s ease}.doc-menu button:hover{background:#6366f126}.doc-menu button.danger{color:#fca5a5}.doc-menu button.danger:hover{background:#ef444429;color:#fecaca}.ref-divider{height:1px;background:var(--border-soft);margin-bottom:.35rem}.ref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.6rem}.ref-card{position:relative;margin:0;display:flex;flex-direction:column;gap:.25rem;min-width:0}.ref-thumb{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:zoom-in;background:#ffffff08}.ref-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.ref-thumb:hover img{transform:scale(1.06)}.ref-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#02061773;opacity:0;font-size:1.1rem;transition:opacity .18s ease}.ref-thumb:hover .ref-overlay{opacity:1}.ref-remove{position:absolute;top:4px;right:4px;z-index:2;width:20px;height:20px;border-radius:50%;border:none;background:#020617b3;color:#fff;font-size:.7rem;cursor:pointer;opacity:0;display:grid;place-items:center;transition:opacity .18s ease,background .18s ease}.ref-card:hover .ref-remove,.ref-remove:focus-visible{opacity:1}.ref-remove:hover{background:var(--red)}.ref-name{font-size:.68rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.ref-addtile{aspect-ratio:1;width:100%;align-self:start;border:1px dashed var(--border);border-radius:10px;background:#ffffff05;color:var(--muted);font-size:1.3rem;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.ref-addtile:hover{border-color:var(--primary);color:var(--primary);background:#6366f10f}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#020617d9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;place-items:center;padding:2rem;cursor:zoom-out;animation:fadeIn .2s ease}.lightbox img{max-width:min(1000px,100%);max-height:82vh;border-radius:14px;border:1px solid var(--border);box-shadow:0 24px 60px #0009;cursor:default}.lightbox-name{position:absolute;bottom:1.2rem;left:50%;transform:translate(-50%);font-size:.78rem;color:var(--muted)}.st-field{display:flex;flex-direction:column;gap:.6rem}.st-head{display:flex;align-items:center;gap:.75rem}.st-head .tm-h{flex-shrink:0}.st-count{font-size:.75rem;color:var(--muted);background:#ffffff0f;border-radius:999px;padding:.08rem .5rem;margin-left:.3rem}.st-mini{flex:1;height:4px;border-radius:999px;background:#ffffff12;overflow:hidden}.st-mini>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--sky));border-radius:999px;transition:width .25s ease}.st-auto{flex:0 0 auto;margin-left:auto;display:inline-flex}.st-auto .status-toggle{gap:.45rem}.st-auto .stg-label{font-size:.78rem}.st-auto.off{cursor:not-allowed}.st-auto.off .status-toggle.disabled{opacity:.4;filter:grayscale(1);pointer-events:none}.st-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.st-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .5rem;border-radius:9px;transition:background .18s ease}.st-row+.st-row{border-top:1px solid var(--border-soft)}.st-row:hover{background:#ffffff0a}.st-row>.cbx,.msub-item>.cbx{flex:0 0 auto}.st-row .cbx-box,.msub-item .cbx-box{width:18px;height:18px}.st-title{flex:1;min-width:0;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .18s ease,opacity .18s ease}.st-row.done .st-title{color:var(--muted);text-decoration:line-through;opacity:.75}.role-toolbar{display:flex;gap:.75rem;align-items:center;margin-bottom:.5rem}.role-search{position:relative;flex:1;max-width:420px;display:block}.role-search-wide{max-width:none;margin-bottom:1rem}.role-search .input{padding-left:2.1rem;width:100%}.role-search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);opacity:.6;font-size:.85rem}.role-hint{font-size:.82rem;margin-bottom:1rem}.role-table{padding:.35rem .5rem .5rem}.role-thead{display:grid;grid-template-columns:1fr 120px 96px;gap:.5rem;align-items:center;padding:.6rem .75rem;color:var(--muted);font-size:.72rem;letter-spacing:.04em;font-weight:700}.role-row{display:grid;grid-template-columns:1fr 120px 96px;gap:.5rem;align-items:center;padding:.7rem .75rem;border-top:1px solid var(--border-soft);border-radius:9px;cursor:pointer;transition:background .15s ease}.role-row:hover{background:#ffffff0a}.role-cell-name{display:flex;align-items:center;gap:.6rem;min-width:0}.role-dot{font-size:1.05rem;line-height:1;flex-shrink:0}.role-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-permcount{font-size:.75rem;flex-shrink:0}.role-col-members{color:var(--muted);font-size:.85rem}.role-row-actions{display:flex;gap:.35rem;justify-content:flex-end;opacity:0;transition:opacity .15s ease}.role-row:hover .role-row-actions,.role-row:focus-within .role-row-actions{opacity:1}.role-editor{display:grid;grid-template-columns:232px minmax(0,1fr);gap:1.25rem;align-items:start}.role-side{position:sticky;top:0}.role-side-top{display:flex;gap:.4rem;margin-bottom:.75rem}.role-side-top .btn-sm:first-child{flex:1}.role-side-list{display:flex;flex-direction:column;gap:.15rem;max-height:70vh;overflow-y:auto}.role-side-item{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;padding:.45rem .6rem;border-radius:8px;border:none;background:none;color:var(--text);font:inherit;font-size:.86rem;cursor:pointer;transition:background .15s ease}.role-side-item:hover{background:#ffffff0d}.role-side-item.on{background:#6366f12e}.role-side-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-pane{padding:1.25rem 1.4rem}.role-pane-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.role-pane-head h2{font-size:.92rem;letter-spacing:.05em;color:var(--muted);margin:0}.role-tabs{display:flex;gap:1.2rem;border-bottom:1px solid var(--border-soft);margin:1rem 0 1.25rem}.role-tab{background:none;border:none;padding:.5rem .1rem;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.role-tab.on{color:var(--text);border-bottom-color:var(--primary)}.role-pane-body{display:flex;flex-direction:column}.role-icon-preview{width:40px;height:40px;display:grid;place-items:center;font-size:1.3rem;border-radius:10px;background:#ffffff0f;border:1px solid var(--border-soft)}.perm-item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid var(--border-soft)}.perm-item:first-of-type{border-top:none}.perm-item-text{min-width:0}.perm-item-label{font-weight:600;font-size:.9rem}.perm-item-hint{font-size:.8rem;margin:.2rem 0 0}.perm-default-tag{margin-left:.5rem;padding:.1rem .4rem;border-radius:999px;background:#38bdf826;border:1px solid rgba(56,189,248,.35);color:var(--sky);font-size:.66rem;font-weight:600;white-space:nowrap}.role-holders{display:flex;flex-wrap:wrap;gap:.4rem;margin:.35rem 0 .5rem}.role-holder{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .55rem .2rem .2rem;border-radius:999px;background:#ffffff0d;border:1px solid var(--border-soft);font-size:.82rem}.role-holder-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 820px){.role-editor{grid-template-columns:1fr}.role-side-list{flex-direction:row;overflow-x:auto;max-height:none}.role-side-item{width:auto;flex-shrink:0}.role-thead,.role-row{grid-template-columns:1fr 72px 84px}.role-row-actions{opacity:1}}.project-group-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin:2rem 0 .9rem;padding-top:1.2rem;border-top:1px solid var(--border-soft);font-weight:600;color:var(--muted)}.project-group-note{font-size:.8rem;font-weight:400}.project-card-wrap.paused .project-card{filter:saturate(.35);opacity:.82}.project-card-wrap.paused .project-card:hover{filter:saturate(.6);opacity:1}.project-card-wrap.paused .project-icon{filter:grayscale(1)}.project-paused-tag{align-self:flex-start;padding:.15rem .45rem;border-radius:999px;background:#94a3b82e;border:1px solid var(--border-soft);color:var(--muted);font-size:.68rem;font-weight:600;white-space:nowrap}.tl-target{position:absolute;top:2px;bottom:2px;width:2px;margin-left:-1px;background:var(--gold);border-radius:2px;pointer-events:none;z-index:3}.tl-target:before{content:"";position:absolute;top:-1px;left:-3px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--gold)}.tl-target.late{background:var(--red)}.tl-target.late:before{border-top-color:var(--red)}.tl-target-tag{color:var(--gold);background:#fbbf241f}.tl-target-tag.late{color:#fca5a5;background:#ef444424}font: inherit; color: var(--gold); background: none; border: none; cursor: pointer; padding: .1rem .3rem; margin-right: .25rem; border-radius: 6px; } .st-title.editable{cursor:text;padding:.12rem .3rem;margin-left:-.3rem;border-radius:6px}.st-title.editable:hover{background:#ffffff12}.st-title.editable:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.st-edit{flex:1;min-width:0;font:inherit;font-size:.88rem;color:var(--text);padding:.12rem .3rem;margin-left:-.3rem;border-radius:6px;background:#0f172a99;border:1px solid var(--primary);outline:none}.st-del{opacity:0;width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;background:none;border:none;border-radius:7px;color:var(--muted);cursor:pointer;transition:opacity .18s ease,background .18s ease,color .18s ease}.st-del svg{width:14px;height:14px}.st-row:hover .st-del,.st-del:focus-visible{opacity:1}.st-del:hover{background:#ef444426;color:var(--red)}.apick{position:relative;flex-shrink:0;line-height:0}.apick-trigger{display:grid;place-items:center;padding:0;background:none;border:none;border-radius:50%;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.apick-trigger:hover:not(:disabled){transform:scale(1.12)}.apick-trigger:disabled{cursor:default}.apick-empty{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1.5px dashed rgba(148,163,184,.45);color:var(--muted);font-size:.9rem;line-height:1;box-sizing:border-box}.apick-empty.sm{border-style:solid}.apick-trigger.empty{opacity:.55}.apick-trigger.empty:hover:not(:disabled){opacity:1}.st-row.done .apick-trigger{opacity:.7}.apick-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:240px;padding:.4rem;border-radius:12px;line-height:normal;box-shadow:0 18px 40px #00000073;animation:fadeIn .14s ease}.apick-search{width:100%;font-size:.83rem;padding:.4rem .5rem;margin-bottom:.35rem}.apick-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.apick-opt{display:flex;align-items:center;gap:.5rem;width:100%;padding:.35rem .45rem;background:none;border:none;border-radius:8px;color:var(--text);font:inherit;font-size:.85rem;text-align:left;cursor:pointer}.apick-opt:hover{background:#ffffff12}.apick-opt.on{background:#6366f12e}.apick-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apick-role{font-size:.7rem;flex-shrink:0}.apick-none{display:block;padding:.5rem .45rem;font-size:.82rem}.doclib-bar{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.1rem}.doclib-search{max-width:420px}.doclib-chips{display:flex;flex-wrap:wrap;gap:.4rem}.doclib-chips .chip{background:#ffffff0d;border:1px solid var(--border);border-radius:999px;padding:.35rem .8rem;color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.doclib-chips .chip:hover{border-color:#6366f180;color:var(--text)}.doclib-chips .chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.doclib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}.doclib-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border-radius:14px;transition:border-color .18s ease,transform .18s ease}.doclib-card:hover{border-color:#6366f173;transform:translateY(-2px);z-index:3}.doclib-card.pinned{border-color:#fbbf2473;background:#fbbf240d}.doclib-card.pinned:hover{border-color:#fbbf24b3}.doclib-head{display:flex;align-items:center;gap:.25rem}.doclib-head .doc-body:hover{text-decoration:none}.doclib-head .doc-body:hover .doc-name{color:var(--sky)}.doclib-descwrap{position:relative;height:1.2rem;flex-shrink:0}.doclib-desc{position:absolute;top:0;left:0;right:0;margin:0;font-size:.8rem;line-height:1.45;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doclib-card:hover .doclib-desc{z-index:6;white-space:normal;overflow:visible;margin:-.35rem -.4rem;padding:.35rem .4rem;background:var(--glass-solid);border:1px solid var(--border-soft);border-radius:9px;box-shadow:0 10px 26px #00000073}.doclib-foot{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.doclib-cat{padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;background:#38bdf824;border:1px solid rgba(56,189,248,.3);color:var(--sky)}.doclib-by{font-size:.7rem}.doclib-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;padding-top:.5rem;border-top:1px solid var(--border-soft)}.doclib-copied{font-size:.7rem;color:var(--green);margin-right:auto}.doclib-iconbtn{width:30px;height:30px;display:grid;place-items:center;flex-shrink:0;background:#ffffff08;border:1px solid var(--border);border-radius:9px;color:var(--muted);font-size:.82rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}.doclib-iconbtn:hover{background:#ffffff12;color:var(--text)}.doclib-iconbtn.sky{color:var(--sky);border-color:#38bdf852}.doclib-iconbtn.sky:hover{background:#38bdf81f;color:var(--sky)}.doclib-iconbtn.indigo{color:#a5b4fc;border-color:#6366f166}.doclib-iconbtn.indigo:hover{background:#6366f126;color:#a5b4fc}.doclib-iconbtn.danger{color:#fca5a5;border-color:#ef444452}.doclib-iconbtn.danger:hover{background:var(--red);border-color:var(--red);color:#fff}.doclib-pin{opacity:.5;filter:grayscale(1)}.doclib-card:hover .doclib-pin,.doclib-row:hover .doclib-pin{opacity:1}.doclib-pin.on{opacity:1;filter:none;border-color:#fbbf2473;background:#fbbf2414}.doclib-pin.on:hover{background:#fbbf2429}.doclib-sechead{display:flex;align-items:center;gap:.45rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--muted)}.doclib-sechead .mono{color:var(--gold)}.doclib-divider{height:1px;background:var(--border-soft);margin:1.25rem 0}.doclib-rows{border-radius:14px;padding:.3rem .4rem}.doclib-row{display:flex;align-items:center;gap:.55rem;padding:.5rem;border-radius:10px}.doclib-row+.doclib-row{border-top:1px solid var(--border-soft)}.doclib-row:hover{background:#ffffff0a}.doclib-row.pinned{background:#fbbf240a}.doclib-row .doc-body:hover{text-decoration:none}.doclib-row .doc-body:hover .doc-name{color:var(--sky)}.doclib-row .doclib-cat{flex-shrink:0}.doclib-row .doclib-by{white-space:nowrap;flex-shrink:0}.doclib-row .doclib-copied{margin-right:0}@media (max-width: 700px){.doclib-row .doclib-by{display:none}}.docpick-list{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin:.8rem 0}.docpick-row{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .55rem;background:none;border:1px solid transparent;border-radius:10px;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}.docpick-row:hover:not(:disabled){background:#ffffff0d}.docpick-row.on{background:#6366f129;border-color:#6366f173}.docpick-row.already{opacity:.5;cursor:default}.docpick-check{width:18px;flex-shrink:0;color:var(--muted);font-size:1rem}.docpick-row.on .docpick-check{color:var(--primary)}.docpick-text{display:flex;flex-direction:column;min-width:0;flex:1;gap:.1rem}.docpick-note{font-size:.72rem;flex-shrink:0}.docpick-pinmark{margin-right:.3rem;font-size:.75rem}.docpick-empty{font-size:.85rem;margin:1rem 0}.dr-test{background:#ffffff08;border:1px dashed var(--border-soft);border-radius:10px;padding:.7rem .8rem;margin-bottom:.75rem}.dr-test>span:first-child{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.4rem}.msub-list{display:flex;flex-direction:column;gap:.6rem}.msub-group{padding:.75rem .9rem;border-radius:12px}.msub-parent{display:flex;align-items:baseline;gap:.6rem;width:100%;padding:0 0 .5rem;background:none;border:none;border-bottom:1px solid var(--border-soft);color:var(--text);font:inherit;text-align:left;cursor:pointer}.msub-parent:hover .msub-parent-title{color:var(--sky)}.msub-parent-title{font-weight:600;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msub-parent-meta{font-size:.75rem;margin-left:auto;flex-shrink:0}.msub-items{list-style:none;margin:.35rem 0 0;padding:0;display:flex;flex-direction:column}.msub-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .25rem;border-radius:8px}.msub-item:hover{background:#ffffff0a}.msub-title{flex:1;min-width:0;text-align:left;padding:0;background:none;border:none;color:inherit;font:inherit;cursor:pointer}.msub-title:hover{color:var(--sky)}.msub-item.done .st-title{color:var(--muted);text-decoration:line-through;opacity:.75}.st-add{display:flex;gap:.4rem;animation:fadeIn .2s ease}.st-add .input{flex:1}.st-addbtn{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;border-radius:8px;color:var(--muted);font-size:.84rem;padding:.45rem .55rem;cursor:pointer;transition:background .18s ease,color .18s ease}.st-addbtn:hover{background:#6366f11f;color:var(--primary)}.st-empty{font-size:.82rem;color:var(--muted);margin:0}.watcher-list{display:flex;flex-wrap:wrap;gap:.4rem;max-height:160px;overflow-y:auto}.watcher-chip{display:inline-flex;align-items:center;gap:.4rem;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;padding:.25rem .6rem .25rem .25rem;font-size:.8rem;color:var(--text);cursor:pointer}.watcher-x{background:none;border:none;padding:0 0 0 .1rem;margin-left:.1rem;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;transition:color .18s ease}.watcher-x:hover{color:var(--text)}.watcher-add{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#ffffff0a;border:1px dashed var(--border);color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.watcher-add:hover{background:#6366f11f;border-color:var(--primary);color:var(--primary)}.watcher-pop{margin-top:.5rem;border-radius:12px;padding:.35rem;display:flex;flex-direction:column;box-shadow:0 12px 30px #0006}.watcher-search{margin-bottom:.35rem}.watcher-optlist{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.1rem}.watcher-empty{padding:.4rem .5rem;font-size:.82rem}.watcher-opt{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:.4rem .5rem;color:var(--text);font-size:.84rem;cursor:pointer;transition:background .18s ease}.watcher-opt:hover{background:#6366f11f}.watcher-role{font-size:.68rem}.watcher-hint{font-size:.82rem}.notion-row{display:inline-block;background:#38bdf81a;border:1px solid rgba(56,189,248,.3);border-radius:8px;padding:.5rem .8rem;font-size:.85rem}.notion-sync-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.notion-sync-msg{font-size:.78rem;line-height:1.45;flex:1;min-width:0}.progress{height:12px;background:#ffffff0f;border:1px solid var(--border);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--primary),var(--sky));border-radius:999px;transition:width .3s}.dept-group{margin-bottom:1.75rem}.dept-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.6rem}.dept-icon{font-size:1rem}.dept-name{font-size:.95rem;font-weight:700;margin:0}.dept-count{font-size:.75rem;color:var(--muted)}.trow-add{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.6rem;margin-bottom:1.5rem;background:transparent;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.trow-add:hover{border-color:#6366f180;color:var(--text);background:#6366f10f}.trow-list{display:flex;flex-direction:column;gap:.55rem}.trow{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border-radius:12px;cursor:pointer;background:#ffffff08;border:1px solid var(--border-soft);transition:border-color .15s ease,background .15s ease}.trow:hover{border-color:#6366f173;background:#6366f114}.trow.done{background:#22c55e0f;border-color:#22c55e38}.trow.done .trow-title{color:var(--muted);text-decoration:line-through}.trow-check{display:grid;place-items:center;flex-shrink:0;width:20px;height:20px;padding:0;border-radius:6px;cursor:pointer;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.28);color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}.trow-check svg{width:13px;height:13px}.trow-check:hover:not(:disabled){border-color:var(--green);background:#22c55e24;color:#fff6}.trow-check:active:not(:disabled){transform:scale(.9)}.trow-check:focus-visible{outline:2px solid var(--green);outline-offset:2px}.trow-check:disabled{cursor:default;opacity:.45}.trow.done .trow-check{background:var(--green);border-color:var(--green);color:#fff}.trow-icon{flex-shrink:0;width:22px;text-align:center;font-size:1.05rem}.trow-title{flex:1;min-width:0;font-weight:600;font-size:.97rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-flags{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.task-flag{display:inline-flex;line-height:0;text-decoration:none;transition:opacity .15s ease,transform .15s ease}.task-flag.on{opacity:.9;color:var(--text)}.task-flag.on.notion{cursor:pointer}.task-flag.on.notion:hover{opacity:1;transform:scale(1.15)}.task-flag.off{opacity:.2;color:var(--muted);cursor:default}.trow-prio{flex-shrink:0}.trow-who{display:flex;align-items:center;gap:.45rem;flex-shrink:0;width:160px}.trow-who-name{font-size:.85rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow-claim{justify-content:center;border:1px dashed rgba(99,102,241,.5);border-radius:999px;background:#6366f114;color:#a5b4fc;font-size:.8rem;font-weight:600;font-family:inherit;padding:.3rem .6rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.trow-claim:hover{border-color:var(--primary);border-style:solid;background:#6366f138;color:var(--text)}.trow-claim-plus{font-weight:700;line-height:1}.trow-due{flex-shrink:0;width:64px;font-size:.8rem;color:var(--muted);text-align:right}.trow-due.overdue{color:var(--red)}.trow-prog{display:flex;align-items:center;gap:.45rem;flex-shrink:0;width:110px}.trow-prog .progress{flex:1;height:7px}.trow-pct{font-size:.76rem;color:var(--muted);width:34px;text-align:right}.trow-status{flex-shrink:0;width:96px;font-size:.82rem;color:var(--muted)}.trow-group{display:flex;flex-direction:column;min-width:0}.trow-title{display:flex;align-items:center;gap:.5rem}.trow-title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow.done .trow-title-text{text-decoration:line-through}.trow-st{display:inline-flex;align-items:center;gap:.3rem;flex-shrink:0;padding:.1rem .55rem .1rem .4rem;border-radius:999px;cursor:pointer;background:#ffffff0d;border:1px solid var(--border-soft);color:var(--muted);font-size:.74rem;font-weight:600;line-height:1.5;transition:border-color .15s ease,color .15s ease,background .15s ease}.trow-st svg{width:10px;height:10px;transition:transform .15s ease}.trow-st:hover{border-color:#6366f18c;color:var(--text)}.trow-st.open{border-color:#6366f173;background:#6366f11f;color:var(--text)}.trow-st.open svg{transform:rotate(90deg)}.trow-subs{display:flex;flex-direction:column;gap:.1rem;margin:.35rem 0 .1rem 2.55rem;padding-left:.85rem;border-left:2px solid rgba(99,102,241,.25);cursor:pointer}.trow-sub{display:flex;align-items:center;gap:.55rem;padding:.3rem .55rem;border-radius:8px;font-size:.88rem}.trow-sub:hover{background:#6366f114}.trow-sub-box{display:grid;place-items:center;flex-shrink:0;width:15px;height:15px;border-radius:4px;border:1.5px solid var(--border);color:transparent}.trow-sub-box svg{width:9px;height:9px}.trow-sub.done .trow-sub-box{background:var(--green);border-color:var(--green);color:#fff}.trow-sub-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow-sub.done .trow-sub-title{color:var(--muted);text-decoration:line-through}@media (max-width: 1180px){.trow .trow-status{display:none}}@media (max-width: 980px){.trow .trow-prog{display:none}}@media (max-width: 820px){.trow .trow-who,.trow .trow-prio{display:none}}.task-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.85rem;align-items:start}.tcard{padding:.95rem 1.05rem;cursor:pointer;border-radius:14px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:.7rem}.tcard:hover{border-color:#6366f173;transform:translateY(-2px);box-shadow:0 12px 30px #02061773}.tcard.done{background:#22c55e0f;border-color:#22c55e40}.tcard.done .tcard-title{color:var(--muted);text-decoration:line-through}.tcard-head{display:flex;align-items:center;gap:.6rem}.tcard-icon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;background:#ffffff0d;border:1px solid var(--border);border-radius:11px;font-size:1.15rem}.tcard-title{flex:1;min-width:0;margin:0;font-family:var(--font-body);font-weight:700;font-size:1rem;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prio-pill{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;background:#ffffff0d;border:1px solid var(--border);border-radius:999px;padding:.24rem .6rem;font-size:.8rem;font-weight:600}.prio-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.tcard-menu-wrap{position:relative;flex-shrink:0}.tcard-menu{background:none;border:none;color:var(--muted);cursor:pointer;padding:.25rem;border-radius:8px;display:grid;place-items:center}.tcard-menu:hover{background:#ffffff0f;color:var(--text)}.tcard-menu-pop{position:absolute;top:calc(100% + 4px);right:0;z-index:41;min-width:190px;border-radius:12px;padding:.35rem;box-shadow:0 12px 30px #00000073}.tcard-menu-pop button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:.85rem;padding:.55rem .65rem;border-radius:8px;cursor:pointer}.tcard-menu-pop button:hover{background:#6366f126}.tcard-menu-pop button:disabled{color:var(--muted);cursor:not-allowed}.tcard-progrow{display:flex;align-items:center;gap:.6rem}.tcard-progrow .progress{flex:1;height:7px}.tcard-pct{font-weight:700;font-size:.9rem;color:var(--text);min-width:38px;text-align:right}.tcard-status{font-size:.8rem;color:var(--muted);margin-top:-.3rem}.tcard-divider{height:1px;background:var(--border-soft)}.tcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .9rem}.tcard-cell{display:flex;align-items:center;gap:.5rem;min-width:0;position:relative}.tcard-cell:nth-child(odd):after{content:"";position:absolute;right:-.45rem;top:4px;bottom:4px;width:1px;background:var(--border-soft)}.tcard-tile{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:10px;border:1px solid var(--border)}.tcard-tile svg{width:16px;height:16px}.tile-indigo{background:#6366f124;color:#a5b4fc}.tile-green{background:#22c55e24;color:#4ade80}.tile-slate{background:#94a3b824;color:#cbd5e1}.tcard-cell-text{min-width:0;display:flex;flex-direction:column;gap:1px}.tcard-val{font-weight:650;font-size:.9rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcard-val.mono{font-family:var(--font-mono)}.tcard-val.overdue{color:var(--red)}.tcard-lbl{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcard-cell .avatar{width:34px;height:34px;font-size:.8rem;flex-shrink:0}.tcard-docs{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.tcard-docs-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;color:var(--text)}.tcard-doc-tiles{display:flex;gap:.4rem;flex-wrap:wrap}.doc-tile{width:38px;height:38px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:#ffffff0d;border:1px solid var(--border);text-decoration:none;transition:border-color .15s}.doc-tile:hover{border-color:var(--primary)}.doc-tile .doc-cover{width:100%;height:100%;object-fit:cover}.doc-tile .doc-logo{width:58%;height:58%;object-fit:contain}.doc-tile .doc-emoji{font-size:1.1rem}.tcard-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:120px;cursor:pointer;border-radius:14px;background:#ffffff05;border:1px dashed var(--border);color:var(--muted);transition:border-color .18s ease,color .18s ease,background .18s ease,transform .15s ease}.tcard-new:hover{border-color:var(--primary);color:var(--primary);background:#6366f10f;transform:translateY(-2px)}.tcard-new-plus{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid currentColor;font-size:1.4rem;line-height:1}.tcard-new-label{font-size:.85rem;font-weight:600}.tl-wrap{padding:1rem;overflow-x:auto}.tl-scroll{min-width:720px}.tl-axis,.tl-row{display:grid;grid-template-columns:240px 1fr 118px;align-items:center}.tl-axis{border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:.25rem}.tl-axis-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.tl-stat{display:flex;flex-direction:column;align-items:flex-end;gap:1px;padding:0 .6rem;line-height:1.25}.tl-stat>b{font-size:.86rem;font-weight:700}.tl-stat>span{font-size:.72rem}.tl-stat.tl-axis-label{flex-direction:row}.tl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:-.5rem 0 1rem}.tl-track{position:relative;height:26px}.tl-axis-track{height:18px}.tl-tick{position:absolute;transform:translate(-50%);top:0;font-size:.66rem;color:var(--muted);font-family:var(--font-mono);white-space:nowrap}.tl-axis-track.weeks{height:34px}.tl-week-tick{text-align:center;line-height:1.25}.tl-week-tick b{display:block;font-size:.72rem;font-weight:700;color:var(--text-secondary, #94a3b8)}.tl-week-tick em{display:block;font-style:normal}.tl-vform{padding:.85rem 1rem;margin-bottom:1rem}.tl-vform-new{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.tl-vform-new .field{margin:0;min-width:180px}.tl-vform-hint{font-size:.78rem;margin:.6rem 0 0}.tl-vlist{margin-top:.75rem;border-top:1px solid var(--border)}.tl-vlist-row{display:flex;align-items:center;gap:.9rem;padding:.45rem .2rem;border-bottom:1px solid var(--border);font-size:.84rem}.tl-vlist-row:last-child{border-bottom:0}.tl-vlist-name{font-weight:600;min-width:90px}.tl-vlist-date .input{padding:.25rem .5rem;font-size:.8rem;width:150px}.tl-vlist-note{font-size:.72rem;font-style:italic}.tl-vlist-del{margin-left:auto}.tl-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--red);border-radius:2px}.tl-today.faint{opacity:.25;top:0;bottom:0}.tl-row{cursor:pointer;border-radius:8px}.tl-row:hover{background:#6366f114}.tl-row-label{display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem;min-width:0}.tl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.tl-name{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-who{font-size:.72rem;margin-left:auto;white-space:nowrap}.tl-bar{position:absolute;top:50%;transform:translateY(-50%);height:16px;border-radius:6px;min-width:6px;box-shadow:0 1px 4px #0000004d}.tl-nodate{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:.72rem}.filter-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap}.tl-sprint-group+.tl-sprint-group{border-top:1px solid var(--border-soft)}.tl-sprint{min-height:58px}.tl-sprint:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tl-sprint-label{align-items:center}.tl-sprint-text{display:flex;flex-direction:column;gap:2px;min-width:0}.tl-sprint-name{font-weight:700;font-size:.9rem;color:var(--sp)}.tl-sprint-dates{display:flex;align-items:center;gap:.4rem;font-size:.72rem}.tl-sprint-bar{height:12px;border-radius:6px;box-shadow:none;overflow:hidden;background:color-mix(in srgb,var(--sp) 26%,transparent)}.tl-sprint-fill{position:absolute;left:0;top:0;bottom:0;background:var(--sp);border-radius:inherit}.tl-plan-ghost{position:absolute;top:50%;transform:translateY(-50%);height:18px;border-radius:7px;border:1.5px dashed color-mix(in srgb,var(--sp) 55%,transparent);pointer-events:auto}.tl-plan-ghost.over{border-color:#ef4444a6}.tl-tag{font-size:.68rem;line-height:1.4;padding:0 .4rem;border-radius:999px;background:#ffffff0f;color:var(--muted);white-space:nowrap;flex-shrink:0}.tl-tag-live{color:#86efac;background:#22c55e24}.tl-milestone{position:absolute;top:0;transform:translate(-50%);font-size:.66rem;color:var(--gold);white-space:nowrap;z-index:2}.tl-milestone em{font-style:normal;font-weight:700}.tl-milestone-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed rgba(251,191,36,.35);pointer-events:none}.tl-empty-sub{cursor:default;font-size:.78rem}.tl-empty-sub:hover{background:none}.tl-feat .tl-name{font-weight:600}.tl-feat .tl-row-label{padding-left:1.6rem}.tl-sub .tl-row-label{padding-left:3rem}.tl-caret{flex-shrink:0;font-size:.95rem;color:var(--muted);transition:transform .15s ease}.tl-caret.open{transform:rotate(90deg)}.modal.ftm-modal{width:min(620px,100%)}.ftm-head{display:flex;align-items:baseline;gap:.7rem;margin-bottom:1rem}.ftm-head h2{margin:0;font-size:1.15rem}.ftm-count{font-size:.8rem}.ftm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:55vh;overflow-y:auto}.ftm-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;background:#ffffff0a;border:1px solid var(--border-soft);border-radius:10px}.ftm-item:hover{border-color:#6366f173}.ftm-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.ftm-title{font-size:.86rem;font-weight:600;color:var(--text)}.ftm-sub{font-size:.74rem}.ftm-jump{flex-shrink:0}.ftm-jump:hover{color:var(--primary);border-color:var(--primary)}.tl-feat-bar{overflow:hidden}.tl-feat-fill{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;opacity:.9}.view-header.row.between{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.seg-toggle{display:inline-flex;background:#ffffff0d;border:1px solid var(--border);border-radius:10px;padding:2px}.seg{background:none;border:none;color:var(--muted);font-size:.82rem;font-weight:600;padding:.35rem .8rem;border-radius:8px;cursor:pointer;transition:background .18s ease,color .18s ease}.seg:hover{color:var(--text)}.seg.on{background:var(--primary);color:#fff}.bug-chip{display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap;font-size:.74rem;font-weight:600;line-height:1;padding:.25rem .55rem;border-radius:999px;color:color-mix(in srgb,var(--chip) 70%,#fff);background:color-mix(in srgb,var(--chip) 18%,transparent);border:1px solid color-mix(in srgb,var(--chip) 45%,transparent)}.bug-chip.sm{font-size:.66rem;padding:.14rem .42rem}.bug-chip-img{width:1.05em;height:1.05em;object-fit:contain;border-radius:3px;vertical-align:-.15em}.bug-chip.clickable{cursor:pointer;transition:opacity .15s ease}.bug-chip.off{opacity:.32}.bug-chip.off:hover{opacity:.7}.bug-chip-ic{font-size:.85em}.bug-chip-x{background:none;border:none;color:inherit;cursor:pointer;font-size:.95em;line-height:1;padding:0;margin-left:.05rem;opacity:.7}.bug-chip-x:hover{opacity:1}.bug-addlabel{width:26px;height:26px;border-radius:999px;border:1px dashed var(--border);background:none;color:var(--muted);cursor:pointer;font-size:.95rem;line-height:1}.bug-addlabel:hover{border-color:var(--primary);color:var(--primary)}.bug-num{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);font-weight:700}.tokflt{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:1.1rem}.tokflt-bar{position:relative;flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;background:#ffffff0a;border:1px solid var(--border);border-radius:10px;padding:.35rem .5rem}.tokflt-search-ic{color:var(--muted);font-size:.85rem}.tokflt-search{flex:1;min-width:140px;background:none;border:none;color:var(--text);font-size:.85rem;padding:.2rem}.tokflt-search:focus{outline:none}.tokflt-token{display:inline-flex;align-items:center;gap:.3rem;background:#6366f124;border:1px solid rgba(99,102,241,.4);border-radius:7px;padding:.15rem .2rem .15rem .45rem;font-size:.78rem}.tokflt-token-facet{color:var(--muted)}.tokflt-token-op{color:var(--sky)}.tokflt-token-val{color:var(--text);font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tokflt-token-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.95rem;line-height:1;padding:0 .2rem}.tokflt-token-x:hover{color:var(--red)}.tokflt-add{background:none;border:none;color:var(--muted);font-size:.82rem;cursor:pointer;padding:.2rem .5rem;border-radius:6px;white-space:nowrap}.tokflt-add:hover{color:var(--primary);background:#6366f11a}.tokflt-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:264px;max-height:340px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.4rem;box-shadow:0 16px 40px #00000080;animation:popIn .16s ease}.tokflt-pop-head{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;color:var(--muted);padding:.3rem .45rem;text-transform:uppercase;letter-spacing:.03em}.tokflt-back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.9rem;padding:0}.tokflt-back:hover{color:var(--text)}.tokflt-pop-opt{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;color:var(--text);font-size:.85rem;padding:.5rem;border-radius:8px;cursor:pointer;text-align:left}.tokflt-pop-opt:hover{background:#6366f126}.tokflt-ops{display:flex;gap:.3rem;padding:.25rem .4rem .4rem}.tokflt-op{flex:1;background:#ffffff0d;border:1px solid var(--border);color:var(--muted);font-size:.78rem;padding:.3rem;border-radius:7px;cursor:pointer}.tokflt-op.on{background:var(--primary);color:#fff;border-color:transparent}.tokflt-valsearch{margin:0 .4rem .4rem;width:calc(100% - .8rem);font-size:.83rem;padding:.4rem .5rem}.tokflt-noval{padding:.6rem;font-size:.82rem;text-align:center;margin:0}.tokflt-vals{display:flex;flex-direction:column;gap:1px;max-height:210px;overflow-y:auto}.tokflt-val{display:flex;align-items:center;gap:.4rem;width:100%;background:none;border:none;color:var(--text);font-size:.83rem;padding:.42rem .45rem;border-radius:7px;cursor:pointer;text-align:left}.tokflt-val:hover{background:#ffffff0d}.tokflt-val.on{background:#6366f11f}.tokflt-check{width:14px;flex-shrink:0;color:var(--primary);font-size:.8rem}.tokflt-apply{width:100%;margin-top:.4rem;background:var(--primary);border:none;color:#fff;font-size:.82rem;font-weight:600;padding:.5rem;border-radius:8px;cursor:pointer}.tokflt-apply:disabled{opacity:.5;cursor:default}.select option{background:var(--surface);color:var(--text)}.bugm-discord svg{display:block}.s-open{--st: #94a3b8}.s-reopen{--st: #f472b6}.s-fixing{--st: #fb923c}.s-pending{--st: #f59e0b}.s-deployed{--st: #6366f1}.s-done{--st: #22c55e}.bug-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:.85rem;overflow-x:auto;padding-bottom:.5rem;align-items:start}.bug-col{background:#ffffff05;border:1px solid var(--border-soft);border-radius:14px;padding:.6rem;display:flex;flex-direction:column;gap:.6rem;min-height:140px;transition:border-color .18s ease,background .18s ease}.bug-col.over{border-color:var(--primary);background:#6366f10f}.bug-col-head{display:flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;color:var(--text);padding:.15rem .25rem}.bug-col-dot{width:9px;height:9px;border-radius:50%;background:var(--st, #94a3b8)}.bug-col-count{margin-left:auto;font-size:.72rem;color:var(--muted);background:#ffffff0f;border-radius:999px;padding:.05rem .45rem}.bug-col-body{display:flex;flex-direction:column;gap:.5rem}.bug-col-empty{text-align:center;color:var(--muted);font-size:.8rem;padding:.4rem 0;opacity:.45}.bug-card{background:var(--glass);border:1px solid var(--border);border-radius:11px;padding:.6rem .7rem;cursor:pointer;display:flex;flex-direction:column;gap:.4rem;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.bug-card:hover{border-color:#6366f180;transform:translateY(-1px);box-shadow:0 8px 20px #02061766}.bug-card.dragging{opacity:.45}.bug-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.bug-card-title{font-size:.85rem;font-weight:600;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bug-card-labels{display:flex;flex-wrap:wrap;gap:.3rem}.bug-list{padding:.15rem 0;overflow:hidden}.bug-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--border-soft);transition:background .15s ease}.bug-row:last-child{border-bottom:none}.bug-row:hover{background:#ffffff08}.bug-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}.bug-row-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.bug-row-name{font-size:.9rem;font-weight:600;color:var(--text)}.bug-row-ref{font-size:.76rem}.bug-row-num{font-family:var(--font-mono);margin-left:.1rem}.bug-row-side{display:flex;align-items:center;gap:.85rem;flex-shrink:0}.bug-row-updated{font-size:.74rem;white-space:nowrap}.bug-row-unassigned{color:var(--muted);font-size:1.1rem}.bug-modal-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.bug-status-sel{width:auto}.bug-title-input{width:100%;background:#ffffff0a;border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;color:var(--text);font-size:1.02rem;font-weight:600;margin-bottom:.35rem}.bug-title-input:focus{outline:none;border-color:var(--primary)}.bug-meta{font-size:.78rem;margin-bottom:.75rem}.bug-label-picker{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.bug-newlabel{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;padding:.5rem;background:#ffffff08;border:1px solid var(--border-soft);border-radius:10px}.bug-swatches{display:flex;gap:.25rem}.bug-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer}.bug-swatch.on{border-color:var(--text)}.bug-discord-btn{flex-shrink:0}.bug-media{display:flex;flex-wrap:wrap;gap:.5rem}.bug-media-item{display:block;width:120px;height:120px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#ffffff08;cursor:pointer;transition:border-color .15s ease}.bug-media-item:hover{border-color:var(--primary)}.bug-media-item img{width:100%;height:100%;object-fit:cover;display:block}.bug-media-video{width:220px;height:140px;object-fit:cover;cursor:default;background:#000}.bug-media-file{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;background:#ffffff0a;border:1px solid var(--border-soft);border-radius:8px;padding:.4rem .7rem;color:var(--text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bug-media-file:hover{border-color:var(--primary);text-decoration:none}.modal.bug-modal{width:min(1200px,100%);padding:0;display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.bugm-head{display:flex;align-items:center;gap:.5rem;padding:.9rem 1.15rem;border-bottom:1px solid var(--border-soft)}.bugm-icon{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:9px;background:#ef44441f;border:1px solid rgba(239,68,68,.3);font-size:1rem}.bugm-head-spacer{flex:1}.bugm-iconbtn{width:32px;height:32px;display:grid;place-items:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;font-size:.9rem;transition:background .15s ease,color .15s ease}.bugm-iconbtn:hover{background:#ffffff0f;color:var(--text)}.bugm-scroll{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.05rem}.bugm-section{display:flex;flex-direction:column;gap:.55rem}.bugm-sec-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.seg-sm .seg{font-size:.74rem;padding:.2rem .6rem}.bugm-desc-edit{min-height:220px;line-height:1.65}.bugm-desc-view{background:var(--desc-bg);border:1px solid var(--border-soft);border-radius:12px;padding:.85rem 1rem}.bugm-desc-clp{--clp-fade-to: var(--desc-bg)}.bugm-desc-clp .clp-body{border-radius:12px}.bugm-desc-empty{padding:.8rem 1rem;border:1px dashed var(--border);border-radius:12px;font-size:.85rem}.clp{--clp-fade-to: var(--surface)}.clp-body{position:relative;overflow:hidden}.clp-clamped:after{content:"";position:absolute;left:0;right:0;bottom:0;height:80px;background:linear-gradient(to bottom,transparent,var(--clp-fade-to));pointer-events:none}.clp-more{width:100%;margin-top:.4rem;padding:.35rem;background:none;border:1px solid var(--border-soft);border-radius:8px;color:var(--muted);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:color .15s ease,border-color .15s ease}.clp-more:hover{color:var(--text);border-color:var(--primary)}.bugm-quick{display:flex;flex-wrap:wrap;gap:.4rem}.bugm-others{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}.bugm-footer{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.15rem;border-top:1px solid var(--border-soft)}.badge-sel{position:relative}.badge-sel-btn{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.26rem .7rem;font-size:.82rem;font-weight:600;cursor:pointer;color:color-mix(in srgb,var(--c) 72%,#fff);background:color-mix(in srgb,var(--c) 20%,transparent);border:1px solid color-mix(in srgb,var(--c) 48%,transparent);transition:filter .15s ease}.badge-sel-btn:hover:not(:disabled){filter:brightness(1.12)}.badge-sel-btn:disabled{cursor:default}.badge-sel-caret{font-size:.6rem;opacity:.85}.badge-sel-pop{position:absolute;top:calc(100% + 5px);left:0;z-index:50;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.3rem;box-shadow:0 12px 30px #00000073;animation:popIn .16s ease}.badge-sel-opt{display:flex;align-items:center;gap:.4rem;width:100%;background:none;border:none;padding:.42rem .55rem;border-radius:7px;font-size:.82rem;font-weight:600;cursor:pointer}.badge-sel-opt:hover{background:#6366f126}.badge-sel-opt.on{background:#ffffff0d}.bug-info{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .8rem}.bug-info>.bugf:last-child:nth-child(odd){grid-column:1 / -1}.bugf{display:flex;align-items:center;gap:.5rem;background:#ffffff08;border:1px solid var(--border-soft);border-radius:10px;padding:.5rem .7rem;min-width:0;height:44px}.bugf-ic{flex-shrink:0;width:18px;text-align:center;font-size:.95rem}.bugf-lb{width:78px;flex-shrink:0;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bugf-ss{flex:1;min-width:0}.bugf-ss .ss-trigger{width:100%;justify-content:flex-end;padding:0;background:none;border:none;color:var(--text);font-size:.85rem;font-weight:600;text-align:right}.bugf-ss .ss-trigger:focus{outline:none}.bugf-ss .ss-trigger:disabled{opacity:.9}.bugf-ss .ss-panel-overlay{left:auto;right:0}.bugf-ss .ss-list{max-height:200px}.bugf-ss .ss-opt,.bugf-ss .ss-search{text-align:left;font-weight:400}.bug-modal .doc-card{color:var(--text);text-decoration:none}.bug-modal .doc-card:hover{text-decoration:none}.bug-modal .doc-card .doc-text{flex:1}.bug-modal .doc-card>svg{color:var(--muted);flex-shrink:0}.doc-card-btn{width:100%;font:inherit;text-align:left}@media (max-width: 560px){.bug-info{grid-template-columns:1fr}}.md-body{font-size:.9rem;line-height:1.65;color:var(--text);overflow-wrap:anywhere}.md-body>*:first-child{margin-top:0}.md-body>*:last-child{margin-bottom:0}.md-body p{margin:.6rem 0}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{margin:1.05rem 0 .5rem;font-weight:700;line-height:1.3;color:var(--text)}.md-body h1{font-size:1.15rem}.md-body h2{font-size:1.05rem}.md-body h3{font-size:.98rem}.md-body h4,.md-body h5,.md-body h6{font-size:.9rem;color:var(--muted)}.md-body ul,.md-body ol{margin:.6rem 0;padding-left:1.35rem}.md-body li{margin:.22rem 0}.md-body li::marker{color:var(--muted)}.md-body a{color:var(--sky);text-decoration:none}.md-body a:hover{text-decoration:underline}.md-body code{font-family:var(--font-mono);font-size:.86em;background:#ffffff12;border:1px solid var(--border-soft);border-radius:6px;padding:.08em .35em}.md-body pre{margin:.7rem 0;padding:.75rem .9rem;background:#00000059;border:1px solid var(--border-soft);border-radius:10px;overflow-x:auto}.md-body pre code{background:none;border:none;padding:0;font-size:.82rem;line-height:1.55}.md-body blockquote{margin:.7rem 0;padding:.15rem 0 .15rem .85rem;border-left:3px solid var(--primary);color:var(--muted)}.md-body hr{margin:1rem 0;border:none;border-top:1px solid var(--border)}.md-body img{max-width:100%;border-radius:10px;display:block;margin:.6rem 0}.md-body table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:.7rem 0;font-size:.85rem}.md-body th,.md-body td{border:1px solid var(--border-soft);padding:.4rem .6rem;text-align:left}.md-body th{background:#ffffff0a;font-weight:600}.md-body ul:has(input[type=checkbox]){list-style:none;padding-left:.2rem}.md-body input[type=checkbox]{margin-right:.4rem;accent-color:var(--primary);width:15px;height:15px}.project-select{min-height:100vh;display:flex;flex-direction:column}.project-select-top{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;border-bottom:1px solid var(--border);background:#0f172a99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.project-select-top .logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:800;font-size:1.1rem}.mark-img{width:34px;height:34px;border-radius:10px;object-fit:cover}.project-select-body{flex:1;overflow-y:auto;padding:3rem 2rem;max-width:1100px;margin:0 auto;width:100%}.project-back{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:#ffffff0a;border:1px solid var(--border);border-radius:12px;padding:.6rem .75rem;margin-bottom:.75rem;cursor:pointer;color:var(--text);transition:all .15s}.project-back:hover{background:#6366f11f;border-color:var(--primary)}.project-back .back-arrow{font-size:1.1rem;color:var(--muted)}.project-back .project-back-icon{font-size:1.2rem}.project-back .project-back-name{font-family:var(--font-head);font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 560px){.task-list{grid-template-columns:1fr}.tc-docs{margin-left:0}}.badge{padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;display:inline-flex;align-items:center;gap:.3rem}.badge.prio-low{background:#94a3b826;color:var(--muted)}.badge.prio-medium{background:#38bdf81f;color:var(--sky)}.badge.prio-high{background:#f59e0b24;color:var(--amber)}.badge.prio-urgent{background:#ef444426;color:var(--red)}.main-head{position:sticky;top:0;z-index:50}.preview-bar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.5rem;background:linear-gradient(#f59e0b29,#f59e0b29),#0f172aeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(245,158,11,.35);flex-shrink:0}.preview-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--amber);box-shadow:0 0 0 3px #f59e0b33}.preview-text{flex:1;min-width:0;font-size:.8rem;color:#fcd34d}.preview-text strong{font-weight:700}.preview-exit{flex-shrink:0;cursor:pointer;background:#f59e0b33;border:1px solid rgba(245,158,11,.45);color:#fde68a;font-size:.78rem;font-weight:600;padding:.3rem .7rem;border-radius:var(--radius-sm);transition:background .15s ease}.preview-exit:hover{background:#f59e0b52}.preview-toggle{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;margin-top:.4rem}.preview-toggle-inline{display:inline-flex;align-items:center;gap:.4rem}.goal-banner{display:flex;align-items:center;gap:1rem;padding:1.15rem 1.35rem;margin-bottom:1.5rem;border-radius:var(--radius);background:linear-gradient(135deg,#6366f133,#6366f10d);border:1px solid rgba(99,102,241,.3)}.goal-tile{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;background:#6366f12e;border:1px solid rgba(99,102,241,.35);color:#a5b4fc}.goal-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.goal-label{font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#a5b4fc}.goal-text{font-family:var(--font-body);font-weight:700;font-size:1.15rem;line-height:1.35;margin:0}.goal-empty{font-weight:500;color:var(--muted);font-size:.95rem}.goal-meta{display:flex;align-items:center;gap:.9rem;margin-top:.15rem;flex-wrap:wrap}.goal-when{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.74rem;color:var(--muted)}.goal-days{font-size:.74rem;font-weight:600;color:var(--sky)}.goal-days.overdue{color:var(--red)}@media (max-width: 720px){.goal-banner{align-items:flex-start;flex-wrap:wrap}}.health-wrap{flex-shrink:0}.health-badge{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.34rem .8rem;border-radius:999px;font-size:.82rem;font-weight:600;line-height:1;color:color-mix(in srgb,var(--c) 72%,#fff);background:color-mix(in srgb,var(--c) 18%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}.health-icon{font-size:.9rem}.health-detail{margin:.55rem 0 .9rem;font-size:.8rem;color:var(--muted)}.perf-range{position:relative;z-index:30}.perf-range-lbl{font-size:.85rem;color:var(--muted)}.perf-range-field{width:250px;flex-shrink:0}.perf-range-count{font-size:.8rem;color:var(--muted);margin-left:auto}.perf-who{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.perf-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.perf-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perf-noavatar{width:24px;flex-shrink:0}.perf-sub{font-size:.72rem;color:var(--muted);margin-left:.3rem}.perf-hint{font-size:.82rem;color:var(--muted);margin-bottom:1rem}.tm-paste-hint{margin-top:.6rem}.perf-when{font-size:.78rem;white-space:nowrap}.perf-drawer-scroll{max-height:55vh;overflow-y:auto}.perf-drawer-scroll .data-table th{position:sticky;top:0;z-index:1;background:var(--surface)}.perf-body{transition:opacity .15s ease}.perf-body.reloading{opacity:.5}.row-click{cursor:pointer}.row-click:hover td{background:#6366f11a}.row-idle{opacity:.55}.ot-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:.9rem 0 1.1rem}.ot-tile{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .9rem;background:#ffffff08;border:1px solid var(--border-soft);border-radius:12px}.ot-tile-hot{background:#fbbf2414;border-color:#fbbf244d}.ot-tile-num{font-size:1.5rem;font-weight:700;line-height:1.2}.ot-tile-hot .ot-tile-num{color:var(--gold)}.ot-tile-lb{font-size:.75rem;line-height:1.35}.ot-row-hot{cursor:pointer}.ot-row-hot:hover td{background:#6366f11a}.ot-row-open td{background:#6366f114}.ot-row-hot .ot-num{color:var(--gold);font-weight:700}.ot-expand{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font:inherit;font-size:.75rem;font-weight:600;padding:.2rem .6rem;cursor:pointer}.ot-expand:hover{color:var(--text);border-color:var(--primary)}.ot-detail-row td{background:#00000040}.ot-items{list-style:none;display:flex;flex-direction:column;gap:.35rem;padding:.25rem 0 .25rem .5rem}.ot-items li{display:flex;align-items:center;gap:.55rem;font-size:.82rem}.ot-item-kind{flex-shrink:0}.ot-item-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-item-when{flex-shrink:0;font-size:.75rem}@media (max-width: 720px){.ot-tiles{grid-template-columns:repeat(2,1fr)}}.thin-data{opacity:.45}.ins-section{position:relative;z-index:20}.ins-grid{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start}@media (max-width: 900px){.ins-grid{grid-template-columns:1fr}}.badge.ins-self{background:#38bdf81f;color:var(--sky)}.badge.ins-admin{background:#6366f12e;color:#a5b4fc}.badge.ins-other{background:#94a3b826;color:var(--muted)}.ins-row-dim{opacity:.3}.ins-row-focus td{background:#6366f11a}.ins-task-link{background:none;border:none;padding:0;font:inherit;color:var(--text);text-align:left;cursor:pointer}.ins-task-link:hover{color:var(--sky);text-decoration:underline}.ins-detail-btn{background:#6366f129;border:1px solid rgba(99,102,241,.45);color:#a5b4fc;border-radius:8px;font:inherit;font-size:.75rem;font-weight:600;padding:.2rem .65rem;cursor:pointer;transition:background .15s ease,color .15s ease}.ins-detail-btn:hover{background:#6366f152;color:#c7d2fe}.modal.modal-wide{width:min(880px,100%)}.modal.modal-xwide{width:min(1100px,100%)}.note-preview{width:100%;min-height:340px;max-height:55vh;resize:vertical;font-size:.85rem;line-height:1.6;white-space:pre;overflow:auto;margin-bottom:.75rem}.note-depts{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.85rem}.note-depts-head{color:var(--muted);font-size:.76rem;margin-bottom:.15rem}.note-dept{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;background:#ffffff0a;border:1px solid var(--border);border-radius:10px;padding:.5rem .75rem;cursor:pointer;color:var(--text);transition:background .18s ease,border-color .18s ease}.note-dept:hover{background:#ffffff12;border-color:var(--primary)}.note-dept-name{flex:1;font-weight:600;font-size:.85rem}.note-dept-meta{color:var(--muted);font-size:.75rem;white-space:nowrap}.note-dept.over{border-color:#ef444466}.note-dept.over .note-dept-meta{color:var(--red)}.note-dept-cta{min-width:4.2rem;text-align:right;font-size:.78rem;font-weight:600;color:var(--primary)}.row-actions{display:flex;gap:.4rem}.feat-attach{margin-bottom:.75rem}.feat-attach-toggle{display:flex;align-items:center;gap:.5rem;width:100%;background:#ffffff08;border:1px dashed var(--border);border-radius:10px;padding:.6rem .9rem;cursor:pointer;color:var(--muted);font-size:.85rem;font-weight:600;transition:background .18s ease,color .18s ease,border-color .18s ease}.feat-attach-toggle:hover{background:#ffffff0f;color:var(--text);border-color:var(--primary)}.feat-attach-caret{font-size:.7rem}.feat-attach-panel{margin-top:.4rem;display:flex;flex-direction:column;gap:.3rem;max-height:340px;overflow-y:auto;background:#1e293b80;border:1px solid var(--border);border-radius:10px;padding:.5rem}.feat-attach-empty{padding:.4rem .5rem;font-size:.85rem}.feat-attach-row{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:#ffffff08;border:1px solid transparent;border-radius:8px;padding:.5rem .7rem;cursor:pointer;color:var(--text);transition:background .15s ease,border-color .15s ease}.feat-attach-row:hover{background:#6366f11f;border-color:var(--primary)}.feat-attach-title{flex:1;font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feat-attach-cur{font-size:.76rem;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feat-attach-cta{font-size:.78rem;font-weight:600;color:var(--primary);white-space:nowrap}.feat-attach-divider{margin:.35rem .2rem .15rem;padding-top:.5rem;border-top:1px solid var(--border);color:var(--muted);font-size:.74rem}.caveat{margin:0 0 2rem;padding-left:1.1rem;color:var(--muted);font-size:.78rem;line-height:1.6}.caveat li{margin-bottom:.3rem}.carried{padding:1rem 1.25rem;margin-top:1.5rem}.carried summary{cursor:pointer;font-weight:600;font-size:.9rem}.carried-row{display:flex;align-items:center;gap:.75rem;width:100%;background:#ffffff08;border:1px solid var(--border-soft);border-radius:10px;padding:.5rem .7rem;margin-bottom:.4rem;color:var(--text);text-align:left;cursor:pointer}.carried-row:hover{background:#6366f11f}.carried-title{flex:1;min-width:0;font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-list{display:flex;flex-direction:column;gap:.5rem}.lb-row{display:flex;align-items:center;gap:.7rem;background:#ffffff08;border:1px solid var(--border-soft);border-radius:10px;padding:.5rem .7rem}.lb-rank{width:1.4rem;flex-shrink:0;text-align:center;font-size:.9rem;font-weight:700;color:var(--muted)}.lb-name{flex:1;min-width:0;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-pts{flex-shrink:0;font-size:.74rem}.lb-score{flex-shrink:0;font-size:.95rem;font-weight:700}.badge.status-planning{background:#94a3b826;color:var(--muted)}.badge.status-active{background:#22c55e24;color:var(--green)}.badge.status-completed{background:#6366f126;color:var(--primary)}.badge.role-owner{background:#fbbf2429;color:#fbbf24}.avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:700;flex-shrink:0}.avatar.sm{width:24px;height:24px;font-size:.65rem}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;margin-bottom:2rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem}.stat-icon{font-size:2rem}.stat-info{display:flex;flex-direction:column}.stat-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:700}.stat-label{font-size:.8rem;color:var(--muted)}.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:1rem;align-items:start}.column{background:#0003;border:1px solid var(--border-soft);border-radius:12px;padding:.75rem;min-height:120px;transition:background .15s,border-color .15s}.column.drag-over{background:#6366f114;border-color:var(--primary)}.column-head{display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem .75rem;font-family:var(--font-head);font-weight:600;font-size:.9rem}.column-head .count{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);background:#ffffff0f;padding:.1rem .5rem;border-radius:999px}.column-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:.4rem}.dot-todo{background:var(--muted)}.dot-in_progress{background:var(--sky)}.dot-review{background:var(--purple)}.dot-done{background:var(--green)}.task-card{background:var(--glass);border:1px solid var(--border);border-radius:10px;padding:.75rem;margin-bottom:.6rem;cursor:grab;transition:transform .12s,border-color .12s,box-shadow .12s}.task-card:hover{border-color:#6366f166;box-shadow:0 6px 18px #00000040}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.5}.task-card .title{font-weight:500;font-size:.9rem;margin-bottom:.5rem}.task-card .meta{display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:wrap}.task-card .meta-left{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.task-card .points{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:.05rem .35rem}.task-card .notion-link{font-size:.7rem;color:var(--muted)}.task-card .due{font-size:.72rem;color:var(--muted)}.task-card .due.overdue{color:var(--red);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#02061799;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;animation:fadeIn .2s ease}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:min(520px,100%);max-height:90vh;overflow-y:auto}.modal h2{font-size:1.25rem;margin-bottom:1.25rem}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.modal-actions .tm-savehint{margin-right:auto}.confirm-overlay{z-index:100}.modal.confirm-modal{width:min(440px,100%)}.confirm-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.confirm-ic{font-size:1.15rem}.confirm-head h2{margin:0;font-size:1.15rem}.confirm-msg{font-size:.9rem;line-height:1.55}.confirm-detail{margin-top:.5rem;padding:.6rem .75rem;background:#fbbf2412;border:1px solid rgba(251,191,36,.25);border-radius:10px;font-size:.78rem;line-height:1.5}.confirm-modal .modal-actions{margin-top:1.1rem}.tmodal{display:flex;width:min(1060px,100%);max-height:90vh;background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden}.tmodal-main{flex:1;min-width:0;display:flex;flex-direction:column}.tmodal-header{padding:1.25rem 1.5rem .9rem;border-bottom:1px solid var(--border-soft)}.tmodal-htop{display:flex;align-items:flex-start;gap:.85rem}.tmodal-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:#ffffff0d;border:1px solid var(--border);border-radius:12px;font-size:1.4rem}.tmodal-hid{flex:1;min-width:0}.tmodal-title{width:100%;background:none;border:none;padding:0;color:var(--text);font-family:var(--font-body);font-weight:700;font-size:1.5rem;line-height:1.25}.tmodal-title:focus{outline:none}.tmodal-title:disabled{color:var(--text);-webkit-text-fill-color:var(--text);opacity:1}.tmodal-x{flex-shrink:0;display:grid;place-items:center;width:34px;height:34px;background:#ffffff0a;border:1px solid var(--border);color:var(--muted);font-size:.9rem;line-height:1;cursor:pointer;border-radius:10px;transition:background .18s ease,color .18s ease,border-color .18s ease}.tmodal-x:hover{background:#ef44441f;border-color:#ef444466;color:var(--red)}.tmodal-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.85rem;font-size:.8rem;color:var(--muted)}.crumb-sep{color:#94a3b873;-webkit-user-select:none;user-select:none}.tm-idrow{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}.tm-idrow-spacer{flex:1}.tm-id{font-size:1rem;font-weight:700;color:var(--muted);letter-spacing:.02em}@keyframes popIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}.prio-wrap{position:relative}.prio-pill-btn{cursor:pointer;transition:border-color .18s ease,background .18s ease}.prio-pill-btn:hover:not(:disabled),.prio-pill-btn.open{border-color:#6366f180;background:#ffffff14}.prio-pill-btn:disabled{cursor:default}.prio-caret{font-size:.58rem;color:var(--muted)}.prio-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:150px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.3rem;box-shadow:0 12px 30px #00000073;animation:popIn .18s ease}.prio-opt{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.5rem .6rem;border-radius:8px;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .15s ease}.prio-opt:hover{background:#6366f126}.prio-opt.selected{background:#ffffff0d}.prio-check{margin-left:auto;color:var(--primary);font-size:.75rem}.status-toggle{display:inline-flex;align-items:center;gap:.55rem;background:none;border:none;padding:0;cursor:pointer}.status-toggle.disabled{cursor:default;opacity:.75}.stg-track{position:relative;width:44px;height:24px;flex-shrink:0;border-radius:999px;background:#ffffff24;border:1px solid var(--border);transition:background .2s ease,border-color .2s ease}.stg-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000073;transition:transform .22s cubic-bezier(.3,.9,.4,1)}.status-toggle.on .stg-track{background:var(--green);border-color:transparent}.status-toggle.on .stg-thumb{transform:translate(20px)}.stg-label{font-size:.82rem;font-weight:600;color:var(--muted);transition:color .2s ease;white-space:nowrap}.status-toggle.on .stg-label{color:var(--green)}.tm-progress{display:flex;align-items:center;gap:.85rem;margin-top:.2rem}.tm-progress-label{font-size:.78rem;color:var(--muted);flex-shrink:0}.tm-progress .progress{flex:1;height:10px}.tm-progress-pct{font-weight:700;font-size:.9rem;min-width:42px;text-align:right}.tmodal-scroll{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.tm-section{display:flex;flex-direction:column;gap:.6rem}.tm-h{display:flex;align-items:center;gap:.45rem;font-family:var(--font-head);font-size:1rem;font-weight:600;color:var(--text);margin:0}.tm-desc{min-height:80px;resize:none;overflow:hidden}.tm-desc-view{min-height:80px;padding:.6rem .75rem;border-radius:10px;white-space:pre-wrap;word-break:break-word;line-height:1.5;font-size:.9rem;color:var(--text);border:1px solid transparent;background:#ffffff05}.tm-desc-view.empty{color:var(--muted)}.tm-desc-view.editable{cursor:text;transition:border-color .18s ease,background .18s ease}.tm-desc-view.editable:hover{border-color:var(--border);background:#ffffff0a}.emoji-wrap{position:relative}.emoji-trigger{display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left}.emoji-trigger:disabled{opacity:.6;cursor:not-allowed}.emoji-current{font-size:1.35rem;line-height:1}.emoji-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:60;width:min(320px,90vw);max-height:280px;overflow-y:auto;border-radius:12px;padding:.5rem;box-shadow:0 12px 30px #0006}.emoji-custom{margin-bottom:.5rem}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.15rem}.emoji-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:none;border:none;border-radius:8px;padding:0;font-size:1.2rem;cursor:pointer;transition:background .15s ease}.emoji-cell:hover{background:#6366f12e}.emoji-cell.selected{background:var(--primary)}.tm-info{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.25rem}.tm-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.tm-field>span{font-size:.75rem;color:var(--muted)}.tm-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.tm-sprints{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.ts-step{display:inline-flex;align-items:center;gap:.4rem}.ts-arrow{color:#94a3b873;-webkit-user-select:none;user-select:none}.ts-chip{display:inline-flex;align-items:baseline;gap:.45rem;padding:.28rem .7rem;border-radius:999px;font-size:.8rem;font-weight:600;background:#6366f11f;border:1px solid rgba(99,102,241,.25);color:var(--text)}.ts-chip small{font-size:.7rem;font-weight:400;color:var(--muted)}.ts-chip.now{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 12px #6366f173}.ts-chip.now small{color:#ffffffc7}.ts-summary{margin:0;font-size:.8rem;color:var(--muted)}.ts-summary strong{font-weight:700;color:var(--text)}.ts-summary.warn,.ts-summary.warn strong{color:var(--gold)}.tmodal-footer{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.5rem;border-top:1px solid var(--border-soft);min-height:56px}.tmodal-foot-spacer{flex:1}.tm-savehint{font-size:.8rem;color:var(--muted);transition:color .2s ease}.tm-save-saving{color:var(--sky)}.tm-save-saved{color:var(--green)}.tm-save-error{color:var(--red)}.tm-activity{width:320px;flex-shrink:0;border-left:1px solid var(--border);background:#00000026;display:flex;flex-direction:column;padding:1.4rem 1.25rem;gap:1.1rem;overflow-y:auto}.tm-activity-head{font-family:var(--font-head);font-weight:600;font-size:1.05rem}.tm-comment{display:flex;flex-direction:column;gap:.5rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border-soft)}.tm-comment .btn-sm{align-self:flex-end}.tm-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.tm-feed-item{display:flex;gap:.7rem}.tm-feed-body{flex:1;min-width:0;font-size:.82rem}.tm-feed-line{display:flex;align-items:flex-start;gap:.4rem}.tm-feed-said{flex:1;min-width:0;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.tm-feed-line strong{color:var(--text);font-weight:600}.tm-feed-comment{margin-top:.25rem;color:var(--text);background:#ffffff0a;border-radius:8px;padding:.4rem .6rem;overflow-wrap:anywhere}.tm-feed-edit{flex-shrink:0;display:inline-flex;padding:.15rem;margin-top:-.1rem;background:none;border:none;border-radius:5px;cursor:pointer;color:var(--muted);transition:color .15s ease,background .15s ease}.tm-feed-edit:hover{color:var(--sky);background:#ffffff12}.tm-feed-editbox{margin-top:.25rem;display:flex;flex-direction:column;gap:.4rem}.tm-feed-editarea{min-height:80px;font-size:.82rem}.tm-feed-editrow{display:flex;justify-content:flex-end;gap:.4rem}.tm-feed-edited{font-style:italic}.linkified{color:var(--sky);text-decoration:underline}.linkified:hover{color:var(--primary)}.tm-feed-time{font-size:.72rem;color:var(--muted);margin-top:.25rem}@media (max-width: 900px){.tmodal{flex-direction:column;max-height:92vh}.tm-activity{width:auto;border-left:none;border-top:1px solid var(--border)}.tm-cols{grid-template-columns:1fr}}@media (max-width: 560px){.tm-info{grid-template-columns:1fr}.tm-idrow-spacer{display:none}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.callout-inline{background:#f59e0b1a;border-left:3px solid var(--amber);border-radius:8px;padding:.75rem 1rem;font-size:.85rem}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.role-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem .75rem;background:#ffffff0a;border:1px solid var(--border);border-radius:12px;color:var(--text);cursor:pointer;transition:all .15s}.role-card:hover:not(:disabled){border-color:var(--primary);background:#6366f11a;transform:translateY(-2px)}.role-card:disabled{opacity:.6;cursor:default}.role-icon{font-size:1.8rem}.role-label{font-family:var(--font-head);font-weight:600;font-size:.9rem}@media (max-width: 560px){.role-grid{grid-template-columns:repeat(2,1fr)}}.table-container{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse}.data-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:.75rem;border-bottom:1px solid var(--border)}.data-table td{font-size:.88rem;padding:.75rem;border-bottom:1px solid var(--border)}.data-table tr:hover td{background:#ffffff05}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{padding:2.5rem;text-align:center;width:min(400px,100%)}.login-card .mark{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--sky));display:grid;place-items:center;font-size:1.8rem;margin:0 auto 1.25rem}.login-card h1{font-size:1.5rem;margin-bottom:.4rem}.login-card p{color:var(--muted);margin-bottom:1.75rem}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;color:#1f2937;border:none;padding:.75rem;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:opacity .15s}.google-btn:hover{opacity:.9}.center-screen{min-height:100vh;display:grid;place-items:center}.row{display:flex;align-items:center;gap:.5rem}.between{justify-content:space-between}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.empty{color:var(--muted);text-align:center;padding:2rem;font-size:.9rem}.error-text{color:var(--red);font-size:.85rem;margin-top:.75rem}.section{margin-bottom:2rem}.section h3{font-size:1.1rem;margin-bottom:1rem}.ss-wrap{position:relative}.ss-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;text-align:left}.ss-trigger:disabled{opacity:.6;cursor:not-allowed}.ss-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-caret{color:var(--muted);font-size:.7rem;flex-shrink:0}.ss-panel{position:relative;z-index:50;margin-top:4px;border-radius:12px;padding:.4rem;box-shadow:0 12px 30px #0006}.ss-panel-overlay{position:absolute;top:calc(100% + 4px);left:0;margin-top:0;min-width:100%;width:max-content;max-width:420px}.ss-search{margin-bottom:.4rem}.ss-list{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto}.ss-opt{padding:.5rem .6rem;border-radius:8px;cursor:pointer;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-opt.active{background:#6366f12e}.ss-opt.selected{color:var(--sky)}.ss-empty{padding:.6rem;font-size:.85rem;text-align:center}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.project-card-wrap{position:relative;display:flex}.project-card-wrap>.project-card{flex:1;width:100%}.project-edit-btn{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#0f172aa6;border:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:.95rem;line-height:1;transition:color .15s,border-color .15s,background .15s}.project-edit-btn:hover{color:var(--text);border-color:var(--primary);background:#6366f12e}.project-card{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;text-align:left;padding:1.25rem;border-radius:16px;min-height:150px;cursor:pointer;color:var(--text);border:1px solid var(--border);transition:transform .15s,border-color .15s}.project-card:hover{transform:translateY(-2px);border-color:var(--primary)}.project-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem}.project-name{font-family:var(--font-head);font-weight:600;font-size:1rem;line-height:1.25}.project-meta{color:var(--muted);font-size:.75rem;margin-top:auto}.profile-btn{width:100%;padding:.5rem;border:none;border-radius:10px;background:none;color:inherit;font:inherit;cursor:pointer;transition:background .18s ease}.profile-btn:hover{background:#ffffff0d}.feat-card{position:relative}.feat-foot{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:auto;padding-top:.35rem}.feat-bar{height:8px;border:none;background:#ffffff14}.feat-bar.ongoing>span{background:repeating-linear-gradient(45deg,#6366f18c 0,#6366f18c 6px,#6366f12e 6px,#6366f12e 12px)}.feat-foot-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:24px}.feat-stat{font-size:.84rem;color:var(--text);white-space:nowrap}.feat-stat b{font-weight:700}.feat-card.done{border-color:#22c55e73;background:linear-gradient(180deg,#22c55e1a,#22c55e08)}.feat-card.done:hover{border-color:var(--green)}.feat-card.done .progress>span{background:linear-gradient(90deg,#16a34a,#4ade80)}.feat-card.done .feat-stat b{color:var(--green)}.feat-done-mark{position:absolute;top:.9rem;right:.9rem;display:grid;place-items:center;color:var(--green)}.feat-group{margin-bottom:.6rem}.feat-group-head{width:100%;display:flex;align-items:center;gap:.6rem;text-align:left;padding:.6rem .75rem;border-radius:10px;cursor:pointer;background:#ffffff08;border:1px solid var(--border-soft);color:var(--text);transition:background .15s ease,border-color .15s ease}.feat-group-head:hover{background:#ffffff0f;border-color:var(--border)}.feat-group-head.open{border-color:#6366f166}.feat-group-caret{width:1.1rem;flex-shrink:0;text-align:center;line-height:1;color:var(--muted);font-size:1.05rem;transition:color .15s ease}.feat-group-head:hover .feat-group-caret{color:var(--text)}.feat-group-head.open .feat-group-caret{color:var(--primary)}.feat-group-none{font-size:.82rem;font-weight:600;color:var(--muted)}.feat-group-count{margin-left:auto;font-size:.78rem;color:var(--muted)}.feat-group-done{font-size:.78rem;color:var(--muted)}.feat-group-grid{margin:.75rem 0 1.25rem;animation:fadeIn .2s ease}.sfeat-name{font-size:.88rem;font-weight:700;color:var(--text)}.sfeat-bar{width:96px;flex-shrink:0;height:7px}.quick-add{display:flex;align-items:center;gap:.5rem;margin-top:.45rem;padding:.35rem .6rem;border:1px dashed var(--border);border-radius:10px;background:transparent;transition:border-color .15s ease,background .15s ease}.quick-add:focus-within{border-color:#6366f180;background:#6366f10f}.quick-add-plus{color:var(--muted);flex-shrink:0}.quick-add-input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;font-size:.85rem;padding:.25rem 0}.quick-add-input::placeholder{color:var(--muted)}.quick-add-error{font-size:.75rem;color:var(--danger, #f87171)}.wl-prog{display:flex;align-items:center;gap:.6rem;min-width:140px}.wl-prog .progress{flex:1;height:8px}.wl-prog-pct{font-size:.78rem;color:var(--muted);min-width:34px;text-align:right}.feat-rows{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.5rem}.feat-row{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.55rem .8rem;border-radius:10px;cursor:pointer;background:#ffffff08;border:1px solid var(--border-soft);transition:background .15s ease,border-color .15s ease}.feat-row:hover{background:#ffffff0f;border-color:var(--border)}.feat-row.done{border-color:#22c55e59}.feat-row.done .progress>span{background:linear-gradient(90deg,#16a34a,#4ade80)}.feat-row-icon{width:28px;height:28px;flex-shrink:0;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.95rem}.feat-row-name{display:flex;align-items:center;gap:.35rem;min-width:140px;flex:1 1 auto;font-size:.88rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feat-row-check{color:#4ade80;display:inline-flex;flex-shrink:0}.feat-row-chips{display:flex;align-items:center;gap:.3rem;flex:0 1 auto;overflow:hidden;min-width:0}.feat-row-meta{font-size:.78rem;color:var(--muted);flex-shrink:0}.feat-row-bar{width:90px;height:8px;flex-shrink:0}.feat-row-pct{font-size:.78rem;color:var(--muted);min-width:34px;text-align:right;flex-shrink:0}@media (max-width: 720px){.feat-row-chips,.feat-row-bar{display:none}}.feat-chips{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.3rem}.feat-chips-lg .bug-chip{font-size:.8rem;padding:.3rem .62rem;gap:.35rem}.feat-people{display:flex;align-items:center;flex-shrink:0}.feat-people .avatar{border:2px solid var(--glass-solid);box-sizing:content-box}.feat-person{display:flex}.feat-person+.feat-person,.feat-person-more{margin-left:-8px}.feat-person-more{display:flex;align-items:center;height:24px;padding:0 .4rem;border:2px solid var(--glass-solid);border-radius:999px;box-sizing:content-box;background:#ffffff14;color:var(--muted);font-size:.65rem;font-weight:700}.feat-people.empty{min-height:24px;font-size:.74rem;color:var(--muted)}.feat-chip-row{display:flex;flex-wrap:wrap;gap:.3rem}.feat-block{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;margin-bottom:.9rem}.feat-cap{font-size:.72rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.feat-desc{margin:0;white-space:pre-wrap}.feat-team-list{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.feat-mate{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.2rem .55rem .2rem .2rem;border-radius:999px;background:#ffffff0d;border:1px solid var(--border)}.feat-mate-name{font-size:.8rem;font-weight:600;color:var(--text)}.feat-mate-n{font-size:.68rem;font-weight:700;color:var(--muted);padding:.05rem .35rem;border-radius:999px;background:#ffffff12}.fk-pills{display:flex;gap:.4rem}.fk-pill{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;background:#ffffff0d;border:1px solid var(--border);color:var(--muted);font-size:.82rem;font-weight:600;padding:.4rem .7rem;border-radius:9px;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.fk-pill small{font-size:.68rem;font-weight:400}.fk-hint{margin:.45rem 0 0;font-size:.75rem;color:var(--muted);line-height:1.45}.fk-pill:hover{color:var(--text)}.fk-pill.on{background:var(--primary);border-color:transparent;color:#fff}.fk-badge{font-size:.7rem;font-weight:600;color:var(--sky);white-space:nowrap;background:#38bdf81f;border:1px solid rgba(56,189,248,.35);padding:.15rem .5rem;border-radius:999px}.feat-label-new{display:flex;gap:.4rem}.feat-label-new .input{flex:1}.modal.feat-modal .field{margin-bottom:1.3rem}.modal.feat-modal .grid-2{gap:1.1rem;align-items:start}.modal.feat-modal .grid-2>.field{margin-bottom:0}.modal.feat-modal h2{margin-bottom:1.5rem}.lsel{position:relative}.lsel-btn{width:100%;display:flex;align-items:center;gap:.5rem;min-height:42px;padding:.35rem .6rem;text-align:left;cursor:pointer;background:#00000040;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color .15s ease}.lsel-btn:hover:not(:disabled){border-color:#6366f180}.lsel-btn.open{border-color:var(--primary)}.lsel-btn:disabled{opacity:.55;cursor:not-allowed}.lsel-vals{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.lsel-ph{color:var(--muted);font-size:.85rem}.lsel-caret{flex-shrink:0;color:var(--muted);font-size:.7rem}.lsel-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;padding:.3rem;max-height:280px;overflow-y:auto;background:var(--glass-solid);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #02061799}.lsel .bug-chip{font-size:.8rem;padding:.3rem .62rem;gap:.35rem}.lsel-opt{width:100%;display:flex;align-items:center;gap:.45rem;text-align:left;padding:.35rem .4rem;border:none;border-radius:7px;background:none;cursor:pointer}.lsel-opt:hover{background:#ffffff0f}.lsel-opt.on{background:#6366f124}.lsel-check{flex-shrink:0;width:14px;color:var(--primary);font-size:.8rem;font-weight:700}.lsel-empty{margin:0;padding:.5rem;color:var(--muted);font-size:.82rem}.project-card-new{background:transparent;border:1.5px dashed var(--border);align-items:center;justify-content:center;color:var(--muted);gap:.4rem}.project-card-new:hover{color:var(--text);border-color:var(--primary);transform:none}.project-new-plus{font-size:1.8rem}.icon-btn{position:relative;background:transparent;border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:10px;width:40px;height:40px;font-size:1.1rem;cursor:pointer;display:grid;place-items:center}.icon-btn:hover{background:#ffffff0d}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:.7rem;font-weight:700;display:grid;place-items:center}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:41;width:min(340px,90vw);max-height:420px;overflow-y:auto;border-radius:14px;padding:.5rem;background:var(--glass-solid);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 12px 32px #02061799}.bt-panel{width:min(400px,92vw);max-height:min(560px,76vh);padding:.75rem}.bt-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.bt-title{font-weight:600;font-size:.95rem}.bt-reset{background:none;border:none;padding:0;font-size:.78rem;color:var(--sky);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.bt-hint{margin:.3rem 0 .6rem;font-size:.74rem;color:var(--muted);line-height:1.45}.bt-search{width:100%;padding:.4rem .6rem;font-size:.82rem;margin-bottom:.5rem}.bt-empty{margin:.6rem .2rem;font-size:.82rem;color:var(--muted)}.bt-group+.bt-group{margin-top:.75rem;padding-top:.65rem;border-top:1px solid var(--border-soft)}.bt-group-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:0 .2rem .35rem}.bt-group-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.bt-group-head .stg-label{font-size:.74rem}.bt-list{list-style:none;margin:0;padding:0}.bt-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .45rem;border-radius:8px;transition:background .15s ease,opacity .15s ease}.bt-row:hover{background:#ffffff0d}.bt-row.off{opacity:.5}.bt-row.off:hover{opacity:.8}.bt-open{flex:1;min-width:0;display:flex;align-items:center;gap:.55rem;background:none;border:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.bt-ic{flex:0 0 auto;font-size:1rem;width:1.35rem;text-align:center}.bt-text{min-width:0;display:flex;flex-direction:column;gap:1px}.bt-name{font-size:.88rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-open:hover .bt-name{color:var(--sky)}.bt-sub{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-badge{background:var(--primary)}.notif-head{font-weight:600;padding:.5rem .75rem;font-size:.9rem}.notif-list{list-style:none;margin:0;padding:0}.notif-item{display:flex;flex-direction:column;gap:2px;padding:.6rem .75rem;border-radius:10px;font-size:.85rem}.notif-item.unread{background:#6366f11f}.notif-body{color:var(--text, #f8fafc)}.notif-time{color:var(--muted);font-size:.72rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}@media (max-width: 860px){.board{grid-template-columns:1fr}.tab-scroller{padding:1rem}.topbar{padding:0 1rem}}.feature-refs{border-left:2px solid rgba(99,102,241,.4);padding-left:.9rem;margin-top:1.25rem}.drp-wrap{position:relative}.drp-trigger{display:inline-flex;align-items:center;gap:.5rem;background:#ffffff0d;border:1px solid var(--border);border-radius:10px;padding:.45rem .8rem;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .18s ease,background .18s ease}.drp-trigger:hover{border-color:#6366f180}.drp-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;align-items:stretch;border-radius:14px;padding:.9rem;box-shadow:0 16px 40px #00000080;width:max-content;max-width:min(92vw,470px)}.drp-main{display:flex;flex-direction:column;gap:.6rem}.drp-inputs{display:flex;align-items:center;gap:.45rem}.drp-date{width:8.4rem}.drp-date .date-input-text{font-size:.82rem;padding:.35rem .5rem}.drp-head{display:flex;align-items:center;justify-content:space-between}.drp-month-label{background:none;border:none;color:var(--text);font-weight:600;font-size:.85rem;cursor:pointer;padding:.25rem .4rem;border-radius:8px}.drp-month-label:hover{background:#ffffff0f}.drp-nav button,.drp-year-row button{background:none;border:none;color:var(--muted);font-size:1rem;width:28px;height:28px;border-radius:50%;cursor:pointer}.drp-nav button:hover,.drp-year-row button:hover{background:#ffffff14;color:var(--text)}.drp-grid{display:grid;grid-template-columns:repeat(7,34px)}.drp-dow{height:28px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.68rem;font-weight:600}.drp-day{height:34px;background:none;border:none;color:var(--text);font-size:.8rem;cursor:pointer;border-radius:50%;transition:background .12s ease}.drp-day:hover:not(:disabled){background:#ffffff1a}.drp-day.off{color:var(--muted);opacity:.55}.drp-day:disabled{color:var(--muted);opacity:.3;cursor:default}.drp-day.in{background:#6366f138;border-radius:0}.drp-day.edge{background:var(--primary);color:#fff;font-weight:700}.drp-day.today:not(.edge){box-shadow:inset 0 0 0 1px var(--sky)}.drp-months{display:flex;flex-direction:column;gap:.5rem;padding:.4rem 0}.drp-year-row{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--text);font-weight:600}.drp-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.drp-month-cell{background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.5rem 0;font-size:.8rem;cursor:pointer}.drp-month-cell:hover{border-color:#6366f180}.drp-month-cell.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.drp-presets{display:flex;flex-direction:column;gap:2px;margin-left:.9rem;padding-left:.9rem;border-left:1px solid var(--border);min-width:128px}.drp-preset{background:none;border:none;text-align:left;color:var(--text);font-size:.82rem;padding:.45rem .6rem;border-radius:8px;cursor:pointer;white-space:nowrap}.drp-preset:hover{background:#ffffff0f}.drp-preset.on{color:var(--sky);font-weight:600;background:#38bdf81a}@media (max-width: 640px){.drp-panel{flex-direction:column}.drp-presets{margin-left:0;padding-left:0;border-left:none;border-top:1px solid var(--border);margin-top:.8rem;padding-top:.8rem;flex-direction:row;flex-wrap:wrap}}.errlog-toasts{position:fixed;right:1.25rem;bottom:4.75rem;z-index:140;display:flex;flex-direction:column;gap:.5rem;width:min(380px,calc(100vw - 2.5rem));pointer-events:none}.errlog-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;padding:.75rem .85rem;border-radius:12px;border:1px solid rgba(239,68,68,.35);border-left:3px solid var(--red);animation:errSlideIn .25s ease}@keyframes errSlideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.errlog-toast-icon{color:var(--red);line-height:1.35;flex-shrink:0}.errlog-toast-body{flex:1;min-width:0}.errlog-toast-msg{margin:.15rem 0 .35rem;font-size:.82rem;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.errlog-note{margin:0 0 .35rem;font-size:.72rem;color:var(--muted);overflow-wrap:anywhere}.errlog-toast-link{background:none;border:none;padding:0;cursor:pointer;color:var(--sky);font-size:.75rem;font-weight:600}.errlog-toast-link:hover{text-decoration:underline}.errlog-toast-x{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.75rem;padding:.1rem .2rem;flex-shrink:0}.errlog-toast-x:hover{color:var(--text)}.errlog-src{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--red)}.errlog-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:140;display:flex;align-items:center;gap:.35rem;padding:.5rem .8rem;border-radius:999px;background:#ef444426;border:1px solid rgba(239,68,68,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fca5a5;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .18s ease,transform .15s ease}.errlog-fab:hover{background:#ef444440;transform:translateY(-2px)}.errlog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:145;background:#02061780;opacity:0;pointer-events:none;transition:opacity .25s ease}.errlog-scrim.on{opacity:1;pointer-events:auto}.errlog-panel{position:fixed;top:0;right:0;bottom:0;z-index:150;width:min(440px,100vw);display:flex;flex-direction:column;background:#0f172aeb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-left:1px solid var(--border);transform:translate(100%);visibility:hidden;transition:transform .28s cubic-bezier(.4,0,.2,1),visibility .28s}.errlog-panel.on{transform:translate(0);visibility:visible}.errlog-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:1rem 1.1rem;border-bottom:1px solid var(--border);flex-shrink:0}.errlog-head h3{margin:0;font-size:.95rem;display:flex;align-items:center;gap:.45rem}.errlog-count{background:#ef444433;color:#fca5a5;font-size:.7rem;font-weight:700;padding:.1rem .4rem;border-radius:999px}.errlog-close{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.85rem;padding:.25rem .4rem;border-radius:6px}.errlog-close:hover{color:var(--text);background:#ffffff0f}.errlog-list{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem}.errlog-item{padding:.65rem .75rem;border-radius:10px;background:#ffffff0a;border:1px solid var(--border);border-left:3px solid var(--red)}.errlog-item-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.errlog-time{font-size:.68rem;color:var(--muted)}.errlog-item-msg{margin:.25rem 0 0;font-size:.8rem;color:var(--text);overflow-wrap:anywhere}.errlog-detail-toggle{margin-top:.35rem;background:none;border:none;padding:0;cursor:pointer;color:var(--muted);font-size:.7rem;font-weight:600}.errlog-detail-toggle:hover{color:var(--text)}.errlog-detail{margin:.4rem 0 0;padding:.55rem;border-radius:8px;background:var(--bg-deep);border:1px solid var(--border);font-family:var(--font-mono);font-size:.68rem;line-height:1.5;color:var(--muted);max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.errlog-foot{padding:.7rem 1.1rem;border-top:1px solid var(--border);font-size:.68rem;flex-shrink:0}.log-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.1rem}.log-filters{display:flex;flex-wrap:wrap;gap:.4rem}.log-controls-project{justify-content:flex-start;margin-bottom:.6rem}.log-project-filter{width:auto;min-width:200px;max-width:280px}.log-search{position:relative;flex:1;min-width:220px;max-width:360px}.log-search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.6;pointer-events:none}.log-search .input{width:100%;padding-left:2rem}.log-filters .chip{background:#ffffff0d;border:1px solid var(--border);border-radius:999px;padding:.35rem .8rem;color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.log-filters .chip:hover{border-color:#6366f180;color:var(--text)}.log-filters .chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.log-list{padding:.4rem;display:flex;flex-direction:column}.log-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .6rem}.log-row+.log-row{border-top:1px solid var(--border-soft)}.log-badge{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.95rem;border:1px solid transparent}.log-badge.tone-danger{background:#ef444426;border-color:#ef444459}.log-badge.tone-ok{background:#22c55e26;border-color:#22c55e59}.log-badge.tone-warn{background:#f59e0b26;border-color:#f59e0b59}.log-main{flex:1;min-width:0}.log-summary{font-size:.9rem;color:var(--text);overflow-wrap:anywhere}.log-diff{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.log-diff-item{font-size:.72rem;font-weight:600;padding:.12rem .5rem;border-radius:999px;background:#ffffff0d;color:var(--muted)}.log-diff-item.diff-add{background:#22c55e29;color:#86efac}.log-diff-item.diff-rm{background:#ef444429;color:#fca5a5}.log-diff-item.diff-role{background:#6366f129;color:#c7d2fe}.log-meta{display:flex;align-items:center;gap:.45rem;margin-top:.4rem;font-size:.75rem;flex-wrap:wrap}.log-actor{display:inline-flex;align-items:center;gap:.4rem}.log-project{white-space:nowrap}.ga-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.ga-sidebar{background:var(--surface);border-right:1px solid var(--border);padding:1.1rem .8rem;display:flex;flex-direction:column;gap:.3rem;position:sticky;top:0;height:100vh}.ga-back{color:var(--muted);margin-bottom:.35rem}.ga-nav{display:flex;flex-direction:column;gap:.2rem}.ga-main{min-width:0}.ga-main-inner{padding:1.75rem 2rem 4rem;min-width:0}.ga-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:.7rem;display:flex;flex-direction:column;gap:.4rem}.ga-user{display:flex;align-items:center;gap:.6rem;padding:.3rem .4rem;min-width:0}.ga-user-meta{min-width:0}.ga-user-name{font-size:.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ga-user-role{font-size:.7rem}.ga-signout-btn{width:100%;margin-top:.2rem}.picker-list{max-height:340px;overflow-y:auto;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#0f172a66}.picker-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.05)}.picker-row:last-child{border-bottom:none}.picker-row:hover{background:#ffffff0a}.picker-row.on{background:#6366f124}.picker-row .cbx-label{flex:1;display:flex;align-items:center;gap:.6rem;min-width:0}.picker-name{font-size:.9rem;color:var(--text)}.cost-slider{padding:1.25rem 1.5rem}.cost-slider-head{align-items:flex-start;gap:1rem}.cost-slider-title{font-size:1rem;font-weight:600}.cost-slider-sub{font-size:.8rem;margin-top:.15rem;max-width:46ch}.cost-slider-readout{white-space:nowrap;text-align:right}.cost-slider-months{font-size:1.9rem;font-weight:700;color:var(--primary)}.cost-slider-unit{font-size:.95rem;color:var(--text)}.cost-slider-years{font-size:.85rem}.cost-range-ticks{font-size:.72rem;margin-top:.1rem}.cost-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:#ffffff1f;outline:none;margin:.9rem 0 .35rem;cursor:pointer}.cost-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);border:3px solid rgba(255,255,255,.18);box-shadow:0 0 0 4px #6366f138,0 2px 6px #0006;cursor:pointer;transition:transform .12s ease}.cost-range::-webkit-slider-thumb:hover{transform:scale(1.12)}.cost-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary);border:3px solid rgba(255,255,255,.18);box-shadow:0 0 0 4px #6366f138;cursor:pointer}.cost-range::-moz-range-track{height:6px;border-radius:999px;background:#ffffff1f}.cost-summary{margin-top:1.25rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.9rem}.cost-summary .stat-card{padding:.85rem 1rem;gap:.7rem}.cost-summary .stat-icon{font-size:1.4rem}.cost-summary .stat-info{min-width:0}.cost-stat-value{font-size:1.02rem;white-space:nowrap}.cost-stat-total{border:1px solid rgba(99,102,241,.55);background:linear-gradient(135deg,#6366f12e,#38bdf814)}.cost-stat-total .cost-stat-value{color:var(--primary);font-size:1.12rem}.cost-stat-profit .cost-stat-value{color:var(--green)}.cost-stat-loss{border:1px solid rgba(239,68,68,.45)}.cost-stat-loss .cost-stat-value{color:var(--red)}.cost-view-row{justify-content:space-between;margin-bottom:1rem}.cost-anchor-nav{gap:.4rem;align-items:center}.cost-anchor-label{font-size:.9rem;font-weight:600;min-width:64px;text-align:center}.tet-card{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;flex-wrap:wrap}.tet-title{font-weight:700;font-size:.95rem;white-space:nowrap}.tet-field{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.tet-months{width:90px;text-align:center}.tet-month-sel{width:auto;padding:.45rem .6rem}.tet-note{font-size:.76rem;flex:1;min-width:220px}.cost-chart-wrap{position:relative;height:400px}.rev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.7rem 1rem}.rev-cell{margin-bottom:0}.rev-cell>span{font-size:.8rem}.rev-lump{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.rev-lump-input{margin-bottom:0;width:260px}.rev-lump-note{font-size:.78rem;max-width:46ch;line-height:1.5}.comp-plan-add{display:flex;align-items:center;gap:.6rem;margin-top:.6rem}.comp-plan-add .date-input{width:170px;flex-shrink:0}.comp-plan-del{margin-left:auto}.cost-section-head{align-items:flex-start;gap:1rem;margin-bottom:1rem}.cost-headcount{font-size:.85rem;font-weight:600;margin-left:.75rem;color:var(--text)}.cost-section-sub{font-size:.82rem;margin-top:.2rem;max-width:62ch}.cost-project-picker{margin-bottom:0;min-width:220px}.cost-project-picker .select{width:100%}.cost-table td{vertical-align:middle}.data-table th.cost-num-col,.data-table td.cost-num-col{text-align:right}.data-table th.cost-center-col,.data-table td.cost-center-col{text-align:center}.cost-table th.cost-num-col,.cost-table td.cost-num-col,.cost-table th.cost-center-col,.cost-table td.cost-center-col,.cost-table th.cost-tight,.cost-table td.cost-tight{width:1%;white-space:nowrap}.cost-table .input{padding:.4rem .55rem;font-size:.85rem}.cost-money{width:160px;min-width:160px;text-align:right;margin-left:auto;padding:.4rem .55rem;font-size:.85rem}.cost-money-block{width:100%;min-width:0;margin-left:0}.cost-name{max-width:430px}.cost-date{width:150px;min-width:150px;padding:.4rem .55rem;font-size:.85rem}.cost-kind-select{width:auto;min-width:130px;padding:.4rem .55rem}.cost-count-input{width:70px;min-width:70px;text-align:center;margin:0 auto}.cost-kind-badge{font-size:.75rem;white-space:nowrap}.cost-proj-bhxh{font-size:.74rem;margin-top:.15rem;white-space:nowrap}.cost-kind-hire{background:#6366f129;color:#c7d2fe}.cost-kind-outsource{background:#38bdf829;color:#bae6fd}.tsal-group-head{font-size:.85rem;font-weight:700;margin:0 0 .6rem .25rem;display:flex;align-items:center;gap:.4rem}.tsal-row{cursor:pointer}.modal.member-modal{width:min(640px,100%)}.modal.member-modal .grid-2{column-gap:1rem}.comp-card{background:#6366f112;border:1px solid rgba(99,102,241,.3);border-radius:12px;padding:1rem 1.1rem .9rem;margin:1.1rem 0 1rem}.comp-card-title{font-size:.92rem;font-weight:700;margin-bottom:.8rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.comp-card-sub{font-size:.74rem;font-weight:400}.comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;align-items:end}.comp-grid>.field{margin-bottom:0}@media (max-width: 560px){.comp-grid{grid-template-columns:1fr}}.modal.member-modal .grid-2{gap:.85rem 1rem;margin-bottom:.85rem}.modal.member-modal .grid-2>.field{margin-bottom:0}.mm-tabs{margin-bottom:1rem}.mm-tab-body{min-height:300px}.date-input{position:relative;display:flex;align-items:center}.date-input .date-input-text{width:100%;padding-right:2.1rem}.date-input-btn{position:absolute;right:.35rem;background:none;border:none;cursor:pointer;font-size:.9rem;opacity:.55;padding:.15rem;line-height:1}.date-input-btn:hover{opacity:1}.date-input-btn:disabled{opacity:.25;cursor:not-allowed}.date-input-native{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none}.modal.member-modal .field>span,.modal.member-modal .field-label{font-size:.85rem}.comp-card .input{font-size:1rem;padding:.6rem .75rem}.comp-card .cost-money{text-align:left}.comp-card-title{font-size:1rem}.comp-history{border-top:1px dashed var(--border);margin-top:.9rem;padding-top:.7rem}.comp-history-title{font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.45rem}.comp-hist-row{display:flex;align-items:center;gap:.6rem;font-size:.9rem;padding:.2rem 0}.comp-hist-date{font-size:.84rem;min-width:92px}.comp-up{color:var(--green)}.comp-down{color:var(--red)}.hint-box{background:#ffffff0a;border:1px solid var(--border-soft);border-radius:10px;padding:.6rem .8rem;font-size:.76rem;color:var(--muted);margin-bottom:.9rem;line-height:1.5}.cost-picker-list{max-height:320px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:10px;margin-bottom:.5rem}.cost-picker-meta{margin-left:auto;font-size:.78rem;white-space:nowrap}.cost-gear-chip{font-size:.75rem;white-space:nowrap}.cost-emp-name{white-space:nowrap}.cost-emp-role{font-size:.72rem;font-weight:600;white-space:nowrap;padding:.12rem .5rem;border-radius:999px;background:#6366f129;color:#c7d2fe;border:1px solid rgba(99,102,241,.28)}.cost-foot-row td{border-top:2px solid var(--border);border-bottom:none;padding-top:.9rem}.cost-foot-label{text-align:right;color:var(--muted);font-size:.82rem}.cost-foot-total{font-weight:700;color:var(--primary)}@media (max-width: 640px){.cost-project-picker{width:100%}.cost-section-head{flex-direction:column;align-items:stretch}}.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;margin-top:1rem}.period-review{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.7rem}.pr-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.mnc-head-name{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-list{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}.note-list-row{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.55rem .75rem;background:#ffffff08;border:1px solid var(--border-soft);border-radius:10px;color:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.note-list-row:hover{background:#6366f11a;border-color:var(--primary)}.nlr-name{font-weight:600;white-space:nowrap}.nlr-preview{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;overflow:hidden}.nlr-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.nlr-empty{flex:1;font-size:.82rem;font-style:italic}.nlr-caret{color:var(--muted);font-size:.85rem}.mnm-title{display:flex;align-items:center;gap:.6rem}.pr-summary{white-space:pre-wrap;font-size:.9rem;line-height:1.55;border-top:1px dashed var(--border);padding-top:.6rem}.pr-meta{font-size:.72rem;color:var(--muted)}.pr-status{font-size:.8rem}.mm-notes{display:flex;flex-direction:column;gap:.7rem}.mm-note-row{border:1px solid var(--border-soft);border-radius:10px;padding:.6rem .75rem}.mm-note-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.9rem}.mm-note-row p{font-size:.84rem;margin:.15rem 0;line-height:1.45}.note-log-empty{font-size:.85rem;padding:.5rem 0}.note-log-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin-bottom:.7rem}.note-log-select{padding:.2rem .5rem;font-size:.78rem;width:auto;min-width:140px}.note-log-list{max-height:320px;overflow-y:auto;padding-right:.2rem}.note-log-date{font-size:.78rem}.note-log-rating{font-size:.8rem;margin-bottom:.3rem}.note-log-line{display:flex;align-items:baseline;gap:.45rem}.note-log-ico{flex-shrink:0;font-size:.85rem;line-height:1.45}:root{--tap-min: 44px;--mnav-h: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}.sprint-select{width:auto;min-width:180px}button,a,.nav-item,.trow,.tcard,.bug-card,.bug-row,.feat-row{-webkit-tap-highlight-color:transparent}button,.trow,.tcard,.bug-card,.bug-row{touch-action:manipulation}.bugm-scroll,.tmodal-scroll,.tm-activity,.ss-list,.lsel-pop,.watcher-optlist,.tokflt-pop,.tokflt-vals,.feat-attach-panel,.picker-list,.ftm-list,.perf-drawer-scroll,.errlog-list,.notif-panel,.modal,.drp-panel,.sheet{overscroll-behavior:contain}body:has(.modal-overlay),body:has(.sheet-overlay),body:has(.lightbox){overflow:hidden}@media (pointer: coarse){input,select,textarea{font-size:16px}html{overscroll-behavior-y:none}.ref-remove,.st-del,.date-input-btn{opacity:1}.tcard-menu,.doc-kebab,.bugm-iconbtn,.tmodal-x,.watcher-add,.project-edit-btn,.drp-nav button{min-width:40px;min-height:40px}.btn-sm,.seg{min-height:38px}.drp-day{height:40px}.trow-check{position:relative}.trow-check:before{content:"";position:absolute;top:-13px;right:-13px;bottom:-13px;left:-13px}.trow-st{position:relative}.trow-st:before{content:"";position:absolute;top:-9px;right:-6px;bottom:-9px;left:-6px}.cbx-box{position:relative}.cbx-box:before{content:"";position:absolute;top:-11px;right:-11px;bottom:-11px;left:-11px}}.mnav,body.kb-open .mnav{display:none}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#02061799;display:grid;align-items:end;animation:fadeIn .18s ease}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet{background:var(--glass-solid);border:1px solid var(--border);border-bottom:none;border-radius:20px 20px 0 0;padding:.4rem .9rem calc(.9rem + var(--safe-bottom));max-height:85dvh;overflow-y:auto;animation:sheetUp .25s ease}.sheet-handle{width:36px;height:4px;border-radius:2px;background:#ffffff2e;margin:.35rem auto .7rem}.sheet .nav-item{min-height:48px}.sheet-sep{border:none;border-top:1px solid var(--border-soft);margin:.5rem 0}.sheet-user{display:flex;align-items:center;gap:.6rem;width:100%}@media (max-width: 768px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:90;padding:0 0 var(--safe-bottom);background:#0f172aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border)}.mnav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--mnav-h);padding:6px 0 8px;background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:.68rem;font-weight:600}.mnav-ic{display:grid;place-items:center;padding:3px 14px;border-radius:999px;font-size:1.2rem;line-height:1.3;transition:background .15s ease,box-shadow .15s ease}.mnav-item.active{color:#fff}.mnav-item.active .mnav-ic{background:var(--primary);box-shadow:0 4px 15px #6366f159}.tab-scroller{padding:1rem .85rem calc(var(--mnav-h) + var(--safe-bottom) + 1.25rem)}.main-head{padding-top:var(--safe-top);background:var(--bg)}.topbar{height:56px;padding:0 .85rem;gap:.5rem}.topbar .row{gap:.5rem!important;min-width:0}.topbar .icon-btn{width:36px;height:36px}.sprint-select{min-width:0!important;max-width:58vw}.preview-bar{padding:.5rem .85rem}.errlog-toasts{bottom:calc(var(--mnav-h) + var(--safe-bottom) + .75rem)}.view-header h1{font-size:1.3rem}.view-header.row.between,.view-header .row,.mt-subhead.row.between{flex-wrap:wrap;row-gap:.5rem}.view-header p{font-size:.84rem}.data-table{min-width:560px}.bug-board{grid-auto-columns:86%;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scroll-padding:0 7%}.bug-col{scroll-snap-align:center}.tl-scroll{min-width:640px}.tl-axis,.tl-row{grid-template-columns:132px 1fr}.tl-row-label,.tl-axis-label{position:sticky;left:0;z-index:2;background:var(--bg)}.tl-feat .tl-row-label{padding-left:1rem}.tl-sub .tl-row-label{padding-left:1.9rem}.tl-who{display:none}.ga-shell{display:block}.ga-sidebar{position:sticky;top:0;height:auto;z-index:60;flex-direction:row;align-items:center;gap:.25rem;overflow-x:auto;padding:calc(.45rem + var(--safe-top)) .6rem .45rem;border-right:none;border-bottom:1px solid var(--border)}.ga-sidebar .nav-item{width:auto;white-space:nowrap;padding:.5rem .7rem;flex-shrink:0}.ga-back{margin-bottom:0}.ga-nav{flex-direction:row;gap:.25rem}.ga-footer{margin:0 0 0 auto;border:none;padding:0;flex-direction:row;flex-shrink:0}.ga-user{display:none}.ga-signout-btn{width:auto;margin-top:0;white-space:nowrap}.ga-main-inner{padding:1rem .85rem 3rem}.cost-chart-wrap{height:280px}.perf-range-field{width:100%}}@media (max-width: 640px){.modal-overlay{place-items:end stretch;padding:0}.modal{width:100%;max-height:92dvh;border-radius:20px 20px 0 0;border-bottom:none;padding-bottom:calc(1.5rem + var(--safe-bottom));animation:sheetUp .25s ease}.tmodal{width:100%;max-height:96dvh;border-radius:20px 20px 0 0;animation:sheetUp .25s ease}.modal.bug-modal{max-height:96dvh;padding-bottom:0}.bugm-footer{padding-bottom:calc(.8rem + var(--safe-bottom));flex-wrap:wrap}.bugm-head{flex-wrap:wrap;row-gap:.35rem;padding:.75rem .85rem}.bugm-scroll{padding:1rem .85rem}.tmodal-header{padding:1rem .85rem .75rem}.tmodal-scroll{padding:1rem .85rem}.tmodal-title{font-size:1.15rem}.tmodal-icon{width:38px;height:38px;font-size:1.1rem}.modal h2{font-size:1.1rem}.bug-media-video{width:100%;max-width:320px;height:auto;aspect-ratio:11 / 7}.trow{display:grid;grid-template-columns:auto auto 1fr auto;grid-template-areas:"check icon title menu" "check icon meta  menu";row-gap:.15rem;column-gap:.6rem;padding:.6rem .7rem;min-height:56px;align-items:center}.trow .trow-prio,.trow .trow-who,.trow .trow-prog,.trow .trow-status{display:none}.trow-check{grid-area:check}.trow-icon{grid-area:icon;width:20px}.trow-title{grid-area:title;font-size:.92rem;line-height:1.3}.trow-title-text{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.trow-subs{margin-left:1.3rem;padding-left:.7rem}.trow-due{grid-area:meta;justify-self:start;text-align:left;width:auto}.task-flags{grid-area:meta;justify-self:end}.tcard-menu-wrap{grid-area:menu}.bug-row{flex-direction:column;align-items:stretch;gap:.4rem;padding:.7rem .85rem}.bug-row-side{justify-content:flex-start;gap:.6rem}.grid-2,.review-grid{grid-template-columns:1fr}.ss-panel-overlay{width:100%;max-width:100%}.drp-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;border-radius:20px 20px 0 0;padding-bottom:calc(.75rem + var(--safe-bottom));z-index:110;animation:sheetUp .25s ease}.drp-grid{grid-template-columns:repeat(7,1fr);width:100%}.tcard-grid{column-gap:.5rem}}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}.gantt{display:flex;flex-direction:column;gap:.6rem}.gantt-head,.gantt-legend-row,.gantt-row{display:grid;grid-template-columns:280px minmax(200px,1fr) 300px;gap:1rem;align-items:center}.gantt-head{padding:0 1rem;margin-top:.25rem}.gantt-col-label{align-self:end;padding-bottom:.35rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.gantt-legend-row{padding:0 1rem;margin-top:-.15rem}.gantt-legend-row>.gantt-legend{grid-column:2}.gantt-item{display:flex;flex-direction:column;gap:.35rem}.gantt-row{position:relative;padding:.85rem 2.75rem .85rem 1rem;border-radius:12px;cursor:pointer;border:1px solid var(--border-soft);transition:border-color .15s ease,background .15s ease}.gantt-row:hover{border-color:#6366f173;background:#6366f114}.gantt-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.gantt-row.open{border-color:#6366f173}.gantt-edit{position:absolute;top:.7rem;right:.7rem;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.gantt-edit:hover{color:var(--text);border-color:var(--primary);background:#6366f126}.gantt-meta{font-size:.74rem;color:var(--muted)}.gantt-info{min-width:0}.gantt-name{display:flex;align-items:center;gap:.35rem;min-width:0;font-weight:600;font-size:.95rem}.gantt-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-caret{flex:0 0 auto;width:.8rem;color:var(--muted);font-size:.75rem;transition:transform .15s ease}.gantt-row.open .gantt-caret{transform:rotate(90deg);color:var(--primary)}.gantt-dates{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-top:.2rem;font-size:.74rem;color:var(--muted)}.gantt-dates-aim{color:var(--sky)}.gantt-dates-wd:before{content:"·";margin-right:.5rem}.gantt-people{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.gantt-avatars{display:inline-flex;align-items:center}.gantt-avatar{display:inline-flex;margin-left:-6px;border:2px solid var(--bg);border-radius:50%}.gantt-avatar:first-child{margin-left:0}.gantt-avatar-more{display:inline-flex;align-items:center;justify-content:center;margin-left:-6px;width:26px;height:26px;border-radius:50%;font-size:.74rem;color:var(--muted);background:#ffffff14;border:2px solid var(--bg)}.gantt-roles{display:inline-flex;flex-wrap:wrap;gap:.3rem}.gantt-role-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.74rem;color:var(--muted);padding:.12rem .45rem;border-radius:999px;background:#ffffff0f;border:1px solid var(--border-soft);white-space:nowrap}.gantt-role-chip b{color:var(--text)}.gantt-track{position:relative;height:34px;min-width:0;overflow-x:clip;overflow-y:visible}.gantt-axis{height:26px;overflow:visible}.gantt-clip{position:absolute;top:6px;height:22px;display:inline-flex;align-items:center;font-size:.82rem;line-height:1;color:#c7d2fe;text-shadow:0 0 6px rgba(15,23,42,.9);z-index:1}.gantt-clip-l{left:1px}.gantt-clip-r{right:1px}.gantt-outside{position:absolute;top:0;bottom:0;display:inline-flex;align-items:center;font-size:.82rem;color:var(--muted);white-space:nowrap}.gantt-outside-before{left:.4rem}.gantt-outside-after{right:.4rem}.gantt-month{position:absolute;top:0;height:100%;display:flex;align-items:center;padding-left:.4rem;font-size:.74rem;color:var(--muted);border-left:1px solid var(--border);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}.gantt-month-line{position:absolute;top:0;bottom:0;width:1px;background:var(--border-soft)}.gantt-bar{position:absolute;top:6px;height:22px;border-radius:6px;background:#6366f138;border:1px solid rgba(99,102,241,.45);overflow:hidden;box-sizing:border-box}.gantt-bar-done{position:absolute;left:0;top:0;bottom:0;background:var(--primary);opacity:.85}.gantt-st-behind .gantt-bar-done,.gantt-st-overdue .gantt-bar-done{background:var(--red)}.gantt-st-done .gantt-bar-done{background:var(--green)}.gantt-bar-expect{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--sky);box-shadow:0 0 0 1px #0f172a99}.gantt-bar-label{position:absolute;right:6px;top:0;bottom:0;display:flex;align-items:center;font-size:.74rem;color:var(--text);text-shadow:0 1px 2px rgba(0,0,0,.6)}.gantt-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--gold);opacity:.9}.gantt-today-label{top:0;bottom:0;overflow:visible;z-index:2}.gantt-today-label>span{position:absolute;top:3px;left:5px;padding:.1rem .45rem;border-radius:999px;font-size:.74rem;font-weight:600;line-height:1.2;color:var(--gold);white-space:nowrap;background:var(--bg);border:1px solid rgba(251,191,36,.55)}.gantt-today-label.flip>span{left:auto;right:5px}.gantt-aim{position:absolute;top:2px;bottom:2px;width:0;border-left:2px dotted var(--sky)}.gantt-metrics{display:flex;flex-direction:column;gap:.5rem;min-width:0}.gantt-m-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.gantt-qty{display:inline-flex;align-items:baseline;gap:.35rem;min-width:0}.gantt-qty>b{font-size:1.15rem;font-weight:700;line-height:1}.gantt-qty-of{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.gantt-stat{display:flex;flex-direction:column;gap:.1rem;min-width:0}.gantt-stat-k{font-size:.74rem;color:var(--muted)}.gantt-stat-v{font-size:.95rem;font-weight:600;white-space:nowrap}.gantt-stat-v small{font-size:.74rem;font-weight:500;color:var(--muted)}.gantt-badge{font-size:.72rem;flex:0 0 auto}.gantt-badge-on_track{background:#22c55e29;color:#86efac}.gantt-badge-done{background:#22c55e38;color:#bbf7d0}.gantt-badge-behind{background:#ef444429;color:#fca5a5}.gantt-badge-overdue{background:#ef444447;color:#fecaca}.gantt-badge-not_started{background:#94a3b829;color:var(--muted)}.gantt-badge-no_data{background:#fbbf2429;color:#fde68a}.gantt-legend{display:flex;gap:1.1rem;margin:0;font-size:.82rem;color:var(--text);flex-wrap:wrap}.gantt-legend span{display:inline-flex;align-items:center;gap:.45rem}.gantt-legend b{color:var(--text);font-weight:600}.gantt-legend-main{gap:.35rem 1.35rem;padding:.45rem .8rem;border-radius:10px;background:#1e293b8c;border:1px solid var(--border-soft)}.gantt-lg{display:inline-block;width:18px;height:10px;border-radius:3px;flex:0 0 auto}.gantt-lg-done{background:var(--primary)}.gantt-lg-expect{width:0;height:14px;border-left:3px solid var(--sky);border-radius:0}.gantt-lg-aim{width:0;height:14px;border-left:3px dotted var(--sky);border-radius:0}.gantt-lg-today{width:0;height:14px;border-left:3px solid var(--gold);border-radius:0}.gantt-lg-clip{width:auto;height:auto;font-style:normal;font-size:.82rem;line-height:1;color:#c7d2fe}.burnup-legend{margin-top:.55rem;row-gap:.35rem}.burnup-lg-line{width:18px;height:0;border-top:2px solid #818cf8}.burnup-lg-proj{width:18px;height:0;border-top:2px dashed #818cf8;opacity:.8}.burnup-lg-req{width:18px;height:0;border-top:2px dashed var(--gold)}.burnup-lg-off{width:14px;height:10px;background:#38bdf840}.gantt-detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1.5rem;padding:1rem 1.1rem .9rem;border-radius:12px;cursor:default;border:1px solid rgba(99,102,241,.25)}.gantt-detail-chart{min-width:0}.plog{display:flex;flex-direction:column;min-width:0;font-size:.82rem}.plog-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap}.plog-head strong{font-size:.95rem;font-weight:600}.plog-add{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:.45rem}.plog-add .input{padding:.45rem .6rem;font-size:.82rem}.plog-add .btn-primary{padding:.45rem .8rem;font-size:.82rem}.plog-hint{margin:.4rem 0 0;font-size:.74rem;line-height:1.45;color:var(--muted)}.plog-empty{margin-top:.8rem;padding:.7rem .8rem;border:1px dashed var(--border);border-radius:10px;font-size:.74rem;line-height:1.45;color:var(--muted)}.plog-list{list-style:none;margin:.7rem 0 0;padding:0;max-height:240px;overflow-y:auto}.plog-item{display:grid;grid-template-columns:52px minmax(0,1fr) auto 24px;gap:.5rem;align-items:center;padding:.35rem .4rem;border-top:1px solid var(--border-soft)}.plog-item:first-child{border-top:none}.plog-item:hover{background:#ffffff08}.plog-delta{font-size:.74rem;color:var(--green)}.plog-delta.neg{color:var(--red)}.plog-x{width:24px;height:24px;padding:0;border-radius:6px;line-height:1;background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem}.plog-x:hover{color:var(--red);background:#ef44441f}.gantt-preview{padding:.75rem .9rem;border-radius:10px;margin-bottom:.9rem;display:flex;flex-direction:column;gap:.35rem}.gantt-preview-row{display:grid;grid-template-columns:120px auto 1fr;gap:.6rem;align-items:baseline;font-size:.82rem}.gantt-preview-row>span:first-child{color:var(--muted)}.gantt-preview-row>b{font-size:.95rem}.gantt-preview-row .muted{font-size:.74rem}.gantt-preview-key>b{color:#c7d2fe}.holiday-add{display:grid;grid-template-columns:190px 190px minmax(200px,1fr) auto;gap:.75rem;align-items:end;margin-bottom:.35rem}.holiday-add-f{display:flex;flex-direction:column;gap:.3rem;min-width:0}.holiday-add-f>span{font-size:.78rem;color:var(--muted)}.holiday-add .input{padding:.6rem .75rem;font-size:.95rem;min-height:44px}.holiday-add .btn-primary{height:44px;padding:0 1.1rem}.plog-compact{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border-soft)}.holiday-head{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;margin:.4rem 0 .3rem}.holiday-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column}.holiday-item{display:grid;grid-template-columns:150px 100px minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.55rem .6rem;border-radius:8px;font-size:.9rem}.holiday-item+.holiday-item{border-top:1px solid var(--border-soft)}.holiday-item:hover{background:#ffffff0a}.holiday-wd{font-size:.74rem}.holiday-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.holiday-past summary{cursor:pointer;font-size:.82rem;margin:.4rem 0}@media (max-width: 1100px){.gantt-head,.gantt-legend-row,.gantt-row{grid-template-columns:220px minmax(160px,1fr) 250px;gap:.75rem}}@media (max-width: 980px){.gantt-detail,.plog-add{grid-template-columns:1fr}}@media (max-width: 820px){.gantt-head,.gantt-legend-row{display:none}.gantt-row{grid-template-columns:1fr;grid-template-areas:"info" "track" "metrics";gap:.6rem}.gantt-info{grid-area:info}.gantt-track{grid-area:track}.gantt-metrics{grid-area:metrics}.grid-3,.holiday-add{grid-template-columns:1fr}}.burnup-title{text-align:center;font-weight:600;font-size:.95rem;margin-bottom:.35rem}.burnup-wrap{height:320px;position:relative}.burnup-legend-box{position:absolute;top:10px;left:62px;z-index:1;display:flex;flex-direction:column;gap:.28rem;padding:.5rem .65rem;border-radius:8px;background:#0f172adb;border:1px solid var(--border);font-size:.74rem;color:var(--muted);pointer-events:none}.burnup-legend-box span{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.burnup-legend-box .gantt-lg{flex:0 0 auto}.burnup-lg-line{width:22px;height:0;border-top:2px solid #818cf8}.burnup-lg-req{width:22px;height:0;border-top:2px dashed var(--gold)}.burnup-lg-off{width:16px;height:10px;background:#38bdf847}.burnup-lg-aim{width:0;height:12px;border-left:2px dotted var(--sky)}.burnup-lg-deadline{width:0;height:12px;border-left:2px dashed var(--red)}.gantt-dates-link{margin-top:.15rem;font-size:.74rem;color:var(--sky)}.gantt-dates-link:before{content:"↻ "}.plog-item.ltask{grid-template-columns:52px minmax(0,1fr) auto 0}.ltask-title{min-width:0;padding:0;text-align:left;background:none;border:none;color:var(--text);font:inherit;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ltask-title:hover{color:var(--sky)}.ltask.done .ltask-title{color:var(--muted);text-decoration:line-through}.tpick{border:1px solid var(--border);border-radius:10px;padding:.55rem}.tpick-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}.tpick-head .input{flex:1;padding:.4rem .6rem;font-size:.82rem}.tpick-head .gantt-meta{white-space:nowrap}.tpick-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.tpick-item{display:flex;gap:.5rem;align-items:center;padding:.3rem .4rem;border-radius:6px;font-size:.82rem;cursor:pointer}.tpick-item:hover{background:#ffffff0a}.tpick-item.on{background:#6366f11a}.tpick-item .cbx-box{width:18px;height:18px}.tpick-item .cbx-label{flex:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.tpick-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.burnup-legend-box{position:static;margin-bottom:.4rem}}
