:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f1f8;--canvas:#f4f1f8;--card:#fff;--card-2:#f7f5fb;--text:#1e1330;--text-2:#4a3d5c;--muted:#786a8a;--muted-2:#a99fbb;--border:#e7e2ee;--border-strong:#d3cbe0;--primary:#14b8a6;--primary-2:#2dd4bf;--primary-hover:#0d9488;--primary-rgb:20, 184, 166;--primary-soft:color-mix(in srgb, var(--primary) 14%, var(--card));--primary-ring:#14b8a64d;--on-primary:#04211e;--success:#10b981;--success-soft:color-mix(in srgb, var(--success) 12%, var(--card));--success-text:#047857;--warning:#f59e0b;--warning-soft:color-mix(in srgb, var(--warning) 14%, var(--card));--warning-text:#b45309;--danger:#ef4444;--danger-soft:color-mix(in srgb, var(--danger) 12%, var(--card));--orange:#f97316;--info:#0ea5e9;--info-soft:color-mix(in srgb, var(--info) 12%, var(--card));--hover:#1e13300d;--ghost-bg:#1e13300d;--ghost-bg-hover:#1e133017;--shadow-sm:0 1px 2px #1e13300f;--shadow:0 1px 3px #1e13300f, 0 6px 18px #1e133014;--shadow-lg:0 10px 30px #1e13301a, 0 20px 50px #1e13301f;--radius:14px;--radius-sm:10px;--radius-xs:8px;--radius-pill:999px;--font-brand:"Michroma", "Segoe UI", system-ui, sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#211530;--canvas:#211530;--card:#2b1a39;--card-2:#342046;--text:#f8fafc;--text-2:#cbb8d8;--muted:#9d8bb0;--muted-2:#6f6086;--border:#422f55;--border-strong:#543c6b;--primary:#14b8a6;--primary-2:#2dd4bf;--primary-hover:#2dd4bf;--primary-rgb:20, 184, 166;--primary-soft:color-mix(in srgb, var(--primary) 22%, var(--card));--primary-ring:#14b8a666;--on-primary:#04211e;--success:#34d399;--success-soft:color-mix(in srgb, var(--success) 16%, var(--card));--success-text:#6ee7b7;--warning:#fbbf24;--warning-soft:color-mix(in srgb, var(--warning) 16%, var(--card));--warning-text:#fcd34d;--danger:#f87171;--danger-soft:color-mix(in srgb, var(--danger) 18%, var(--card));--orange:#fb923c;--info:#38bdf8;--info-soft:color-mix(in srgb, var(--info) 16%, var(--card));--hover:#ffffff0d;--ghost-bg:#ffffff0f;--ghost-bg-hover:#ffffff1a;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #0006, 0 6px 18px #00000080;--shadow-lg:0 10px 30px #0000008c, 0 20px 50px #00000080}*{box-sizing:border-box;margin:0;padding:0}html,body{color:var(--text);background:var(--bg);font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;font-family:ui-sans-serif,-apple-system,Segoe UI Variable,Segoe UI,Inter,system-ui,sans-serif}body{padding:1.25rem 1rem 2rem}.page{flex-direction:column;gap:16px;max-width:1400px;margin:0 auto;display:flex}.hero{border-radius:var(--radius);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:22px 24px;position:relative;overflow:hidden}.hero-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{background:0 0;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-text h1{font-family:var(--font-brand);letter-spacing:.14em;text-transform:uppercase;font-size:17px;font-weight:400;line-height:1.1}.brand-text p{color:var(--muted);margin-top:2px;font-size:13px}.hero-actions{align-items:center;gap:8px;display:flex}.btn{cursor:pointer;border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:13.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--primary-ring);outline:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{background:var(--ghost-bg);color:var(--text-2)}.btn-ghost:hover{background:var(--ghost-bg-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-soft-danger{background:var(--danger-soft);color:var(--danger)}.btn-soft-danger:hover{background:color-mix(in srgb, var(--danger) 15%, transparent)}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px;transition:border-color .15s;position:relative;overflow:hidden}.stat:hover{border-color:var(--border-strong)}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11.5px;font-weight:600}.stat-value{letter-spacing:-.02em;margin-top:4px;font-size:26px;font-weight:700}.stat-meta{color:var(--muted);margin-top:2px;font-size:12px}.stat-bar{background:#0f172a0f;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.stat-bar-fill{border-radius:2px;height:100%}.stat.indigo .stat-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary-2))}.stat.amber .stat-bar-fill{background:linear-gradient(90deg,#f59e0b,#f97316)}.stat.emerald .stat-bar-fill{background:linear-gradient(90deg,#10b981,#34d399)}.stat.rose .stat-bar-fill{background:linear-gradient(90deg,#f43f5e,#fb7185)}.tabs{background:var(--ghost-bg);border:1px solid var(--border);border-radius:var(--radius-pill);gap:4px;width:fit-content;padding:4px;display:inline-flex}.tab{cursor:pointer;color:var(--muted);border-radius:var(--radius-pill);background:0 0;border:none;align-items:center;gap:8px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.tab:hover{color:var(--text)}.tab.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.tab svg{width:14px;height:14px}.tab .badge{min-width:22px;height:18px;color:var(--text-2);border-radius:var(--radius-pill);background:#0f172a0f;place-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-grid}.tab.active .badge{background:var(--primary);color:var(--on-primary)}.tab-today .today-glyph{color:#f59e0b;font-size:14px;line-height:1}.tab-today.active{color:var(--warning-text);box-shadow:var(--shadow-sm), inset 0 0 0 1px color-mix(in srgb, var(--warning) 40%, transparent);background:#fffbeb}.tab-today.active .badge{color:#fff;background:#f59e0b}.tab-today.active .today-glyph{color:#d97706}.today-toggle{cursor:pointer;color:var(--border-strong);background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:14px;line-height:1;transition:color .12s,background .12s,transform .12s}.today-toggle:hover{color:#f59e0b;background:#f59e0b1a}.today-toggle.on{color:#d97706;text-shadow:0 0 8px #f59e0b8c}.today-toggle.on:hover{color:var(--warning-text);background:#f59e0b2e}.today-toggle:active{transform:scale(.92)}tr.task-row.on-today td:first-child{box-shadow:inset 4px 0 #f59e0b}tr.task-row.critical-row.on-today td:first-child{box-shadow:inset 4px 0 #ef4444,inset 8px 0 #f59e0b}tr.task-row.selected.on-today td:first-child{box-shadow:inset 4px 0 0 var(--primary), inset 8px 0 0 #f59e0b}tr.task-row.selected.critical-row.on-today td:first-child{box-shadow:inset 4px 0 0 var(--primary), inset 8px 0 0 var(--danger), inset 12px 0 0 #f59e0b}.today-banner{border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 8%, var(--card));border:1px solid color-mix(in srgb, var(--warning) 32%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.today-banner-left{align-items:center;gap:14px;display:flex}.today-banner-icon{background:var(--warning);color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.today-banner-text h2{letter-spacing:-.01em;color:var(--warning-text);font-size:18px;font-weight:700}.today-banner-text p{color:var(--warning-text);margin-top:2px;font-size:13px}.today-banner-stats{flex-wrap:wrap;gap:14px;display:flex}.today-stat{background:color-mix(in srgb, var(--card) 75%, transparent);border-radius:var(--radius-sm);text-align:center;border:1px solid #fde68acc;min-width:90px;padding:8px 14px}.today-stat-value{color:var(--warning-text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:18px;font-weight:800}.today-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--warning-text);margin-top:1px;font-size:10.5px;font-weight:700}.today-banner-actions{gap:8px;display:flex}.today-clear-btn{background:var(--card);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent);color:var(--warning-text);border-radius:var(--radius-sm);cursor:pointer;padding:7px 13px;font-family:inherit;font-size:12.5px;font-weight:700;transition:all .15s}.today-clear-btn:hover{color:var(--warning-text);background:#fef3c7;border-color:#f59e0b}.today-empty{text-align:center;background:var(--card);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);padding:40px 24px}.today-empty .big{margin-bottom:8px;font-size:36px}.today-empty h3{color:var(--text);margin-bottom:6px;font-size:16px;font-weight:700}.today-empty p{color:var(--muted);max-width:460px;margin:0 auto;font-size:13.5px}.toolbar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 14px;display:flex}.toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-size:11px;font-weight:700}.pill-btn{border:1px solid var(--border);background:var(--card);color:var(--text-2);border-radius:var(--radius-pill);cursor:pointer;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.pill-btn:hover{border-color:var(--border-strong);background:var(--hover);color:var(--text)}.pill-btn.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.select{appearance:none;background:var(--card) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 10px center;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background-size:12px;min-width:140px;padding:7px 32px 7px 12px;font-family:inherit;font-size:13px}.select:hover{border-color:var(--border-strong)}.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.filters-card{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.filter-group{flex-direction:column;gap:4px;display:flex}.filter-group label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-size:10.5px;font-weight:700}.search-row{align-items:center;gap:8px;width:100%;display:flex}.search-wrap{flex:1;min-width:220px;position:relative}.search-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--card);padding:10px 36px 10px 38px;font-family:inherit;font-size:13.5px;transition:all .15s}.search-input::placeholder{color:var(--muted-2)}.search-input:hover{border-color:var(--border-strong)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.search-icon{width:16px;height:16px;color:var(--muted-2);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-clear{width:22px;height:22px;color:var(--muted);cursor:pointer;background:#0f172a0f;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:11px;transition:all .15s;display:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-wrap.has-value .search-clear{display:inline-flex}.search-clear:hover{color:var(--text);background:#0f172a1a}.search-kbd{background:var(--card);border:1px solid var(--border);color:var(--muted);box-shadow:0 1px 0 var(--ghost-bg);border-radius:5px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.search-match-meta{color:var(--muted);white-space:nowrap;font-size:12px}mark.match{color:inherit;background:#fef08a;border-radius:3px;padding:0 2px}.critical-card{border-radius:var(--radius);background:linear-gradient(180deg, #fff5f5, color-mix(in srgb, var(--danger) 15%, transparent));border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);box-shadow:var(--shadow-sm);padding:14px 16px 14px 22px;position:relative}.critical-card:before{content:"";border-radius:var(--radius) 0 0 var(--radius);background:linear-gradient(#ef4444,#b91c1c);width:6px;position:absolute;top:0;bottom:0;left:0}.critical-card h3{color:var(--danger);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.critical-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.critical-item{color:#7f1d1d;padding:4px 0;font-size:13.5px}.critical-item strong{color:var(--danger);font-weight:700}.add-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px;display:none}.add-form.show{display:block}.add-form h3{margin-bottom:12px;font-size:15px;font-weight:700}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.form-group{flex-direction:column;gap:4px;display:flex}.form-group label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:700}.form-group input,.form-group select{border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;color:var(--text);background:var(--card);padding:9px 12px;font-family:inherit;font-size:13.5px;transition:all .15s}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.form-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.ac{position:relative}.ac-list{z-index:60;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-xs);box-shadow:var(--shadow);max-height:210px;margin-top:4px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.ac-list.show{display:block}.ac-item{color:var(--text);cursor:pointer;padding:9px 12px;font-size:14px}.ac-item:hover{background:var(--hover)}.ac-item:active{background:var(--primary-soft)}.table-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table-header{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--card), var(--card-2));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.table-title{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.task-count{color:var(--muted);font-size:12px}.table-scroll{overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--card-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}tbody td{border-bottom:1px solid var(--card-2);vertical-align:middle;padding:12px}tbody tr:last-child td{border-bottom:none}tr.task-row{transition:filter .15s,transform .1s}tr.task-row:hover{filter:brightness(.97)}tr.task-row.critical-row td:first-child{box-shadow:inset 4px 0 #ef4444}tr.task-row.completed-row{color:var(--muted);background:var(--card-2)!important}tr.task-row.completed-row td.editable,tr.task-row.completed-row .task-name{-webkit-text-decoration:line-through #0f172a40;text-decoration:line-through #0f172a40}.editable{cursor:pointer;border-radius:6px;padding:4px 6px;transition:background .12s}.editable:hover{background:rgba(var(--primary-rgb),.1)}.task-name{color:var(--text);font-weight:600}.desc{color:var(--muted);font-size:12.5px}.client-chip{color:var(--text-2);border-radius:var(--radius-pill);letter-spacing:.02em;cursor:pointer;background:#0f172a0f;align-items:center;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.client-chip:hover{background:rgba(var(--primary-rgb),.12);color:var(--primary-hover)}.pill{border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.01em;border:1px solid #0000;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.pill:before{content:"";border-radius:50%;width:6px;height:6px}.pill.status-active{background:var(--info-soft);color:#075985;border-color:#bae6fd}.pill.status-active:before{background:var(--info)}.pill.status-waiting{background:var(--warning-soft);color:var(--warning-text);border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.pill.status-waiting:before{background:var(--warning)}.pill.status-done{background:var(--success-soft);color:var(--success-text);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.pill.status-done:before{background:var(--success)}.pill.priority-critical{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.pill.priority-critical:before{background:var(--danger)}.pill.priority-high{background:color-mix(in srgb, var(--orange) 15%, transparent);color:var(--orange);border-color:color-mix(in srgb, var(--orange) 35%, transparent)}.pill.priority-high:before{background:#f97316}.pill.priority-medium{background:color-mix(in srgb, var(--muted) 16%, transparent);color:var(--text-2);border-color:color-mix(in srgb, var(--muted) 30%, transparent)}.pill.priority-medium:before{background:var(--primary)}.pill.priority-low{background:var(--ghost-bg);color:var(--text-2);border-color:var(--border)}.pill.priority-low:before{background:var(--muted-2)}.progress-cell{cursor:pointer;font-variant-numeric:tabular-nums;color:var(--text);display:inline-block}.progress-num{align-items:baseline;gap:1px;display:inline-flex}.progress-num .pct{color:var(--muted);margin-left:1px;font-size:10.5px;font-weight:600}.task-progress{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.task-progress-track{background:rgba(var(--primary-rgb), .14);border-radius:3px;width:72px;height:6px;overflow:hidden}.task-progress-fill{background:linear-gradient(90deg, var(--primary), var(--primary-2));border-radius:3px;height:100%;transition:width .3s}.task-progress-pct{color:var(--text-2);font-variant-numeric:tabular-nums;min-width:34px;font-size:12.5px;font-weight:600}.task-progress.full .task-progress-pct{color:var(--primary-hover);font-weight:700}.task-progress.empty .task-progress-pct{color:var(--muted)}.progress-cell:hover .task-progress-track{background:rgba(var(--primary-rgb), .22)}.date-input{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--card);color:var(--text);width:100%;min-width:130px;padding:6px 8px;font-family:inherit;font-size:12.5px}.date-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.hours-cell{font-variant-numeric:tabular-nums;font-weight:600}.due-cell{flex-direction:column;gap:4px;min-width:130px;display:flex}.due-pill{border-radius:var(--radius-pill);letter-spacing:.01em;border:1px solid #0000;align-items:center;gap:5px;width:fit-content;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.due-pill:before{content:"";border-radius:50%;width:6px;height:6px}.due-pill.overdue{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent);animation:2s ease-in-out infinite pulse-red}.due-pill.overdue:before{background:var(--danger)}.due-pill.today{color:var(--warning-text);border-color:color-mix(in srgb, var(--warning) 40%, transparent);background:#fef3c7}.due-pill.today:before{background:var(--warning)}.due-pill.soon{background:color-mix(in srgb, var(--orange) 15%, transparent);color:var(--orange);border-color:color-mix(in srgb, var(--orange) 35%, transparent)}.due-pill.soon:before{background:#f97316}.due-pill.upcoming{background:var(--info-soft);color:#075985;border-color:#bae6fd}.due-pill.upcoming:before{background:var(--info)}.due-pill.future{background:var(--ghost-bg);color:var(--text-2);border-color:var(--border)}.due-pill.future:before{background:var(--muted-2)}.due-pill.none{color:var(--muted-2);border-color:var(--border);background:0 0;border-style:dashed}.due-pill.none:before{background:var(--muted-2);opacity:.5}@keyframes pulse-red{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 4px #ef44442e}}.tabs-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.view-toggle{background:var(--ghost-bg);border:1px solid var(--border);border-radius:var(--radius-pill);gap:4px;padding:4px;display:inline-flex}.view-toggle button{color:var(--muted);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.view-toggle svg{width:14px;height:14px}tr.group-header td{background:linear-gradient(180deg, var(--canvas), color-mix(in srgb, var(--muted) 8%, transparent));border-top:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 14px}tr.group-header:hover td{background:linear-gradient(180deg, color-mix(in srgb, var(--muted) 8%, transparent), color-mix(in srgb, var(--muted) 16%, transparent))}.group-row-content{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.group-chevron{width:18px;height:18px;color:var(--muted);flex-shrink:0;transition:transform .18s}tr.group-header.collapsed .group-chevron{transform:rotate(-90deg)}.group-name{color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;font-size:14px;font-weight:800;display:inline-flex}.group-count{background:var(--primary);min-width:22px;height:20px;color:var(--on-primary);border-radius:var(--radius-pill);place-items:center;padding:0 7px;font-size:11px;font-weight:700;display:inline-grid}.group-meta-row{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:inline-flex}.group-meta-badge{border-radius:var(--radius-pill);background:var(--ghost-bg);color:var(--text-2);border:1px solid var(--border);align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.group-meta-badge.danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.group-meta-badge.warn{background:var(--warning-soft);color:var(--warning-text);border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.group-meta-badge .dot{opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.project-group-titles{flex-direction:column;gap:1px;min-width:0;display:flex}.project-group-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-group-client{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px;font-weight:700}.project-priority-badge{border-radius:var(--radius-pill);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:800;transition:filter .12s,box-shadow .12s;display:inline-flex;position:relative}.project-priority-badge:hover{filter:brightness(.95);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.18)}.project-priority-badge:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:7px;height:7px}.project-priority-badge.priority-critical{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.project-priority-badge.priority-high{background:color-mix(in srgb, var(--orange) 15%, transparent);color:var(--orange);border-color:color-mix(in srgb, var(--orange) 35%, transparent)}.project-priority-badge.priority-medium{background:color-mix(in srgb, var(--muted) 16%, transparent);color:var(--text-2);border-color:color-mix(in srgb, var(--muted) 30%, transparent)}.project-priority-badge.priority-low{background:var(--ghost-bg);color:var(--text-2);border-color:var(--border)}.project-priority-badge .project-priority-label{pointer-events:none}.project-priority-select{opacity:0;cursor:pointer;appearance:none;background:0 0;border:none;width:100%;height:100%;font-family:inherit;position:absolute;inset:0}tr.group-header.project-group td:first-child{position:relative}tr.group-header.project-group td:first-child:before{content:"";border-radius:0 2px 2px 0;width:4px;position:absolute;top:0;bottom:0;left:0}tr.group-header.project-group:has(.priority-critical) td:first-child:before{background:var(--danger)}tr.group-header.project-group:has(.priority-high) td:first-child:before{background:#f97316}tr.group-header.project-group:has(.priority-medium) td:first-child:before{background:var(--primary)}tr.group-header.project-group:has(.priority-low) td:first-child:before{background:var(--muted-2)}.project-chip{border-radius:var(--radius-pill);letter-spacing:.02em;color:var(--text-2);background:rgba(var(--primary-rgb),.08);border:1px solid rgba(var(--primary-rgb),.18);cursor:pointer;align-items:center;gap:4px;padding:1px 8px;font-size:10.5px;font-weight:700;transition:background .12s;display:inline-flex}.project-chip:hover{background:rgba(var(--primary-rgb),.16);color:var(--primary-hover)}.project-chip:before{content:"";background:var(--primary);opacity:.75;border-radius:50%;width:5px;height:5px}.project-chip.empty{color:var(--muted-2);background:0 0;border-style:dashed}.project-chip.empty:before{background:var(--muted-2)}.ring{flex-shrink:0;width:36px;height:36px}.ring-track{fill:none;stroke:var(--ghost-bg-hover);stroke-width:4px}.ring-fill{fill:none;stroke:url(#ringGradient);stroke-width:4px;stroke-linecap:round;transform-origin:50%;transition:stroke-dasharray .4s;transform:rotate(-90deg)}.ring-text{fill:var(--text);text-anchor:middle;dominant-baseline:central;font-size:10px;font-weight:800}tr.task-row.row-hidden{display:none}.task-cell{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.subtask-trigger{border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:4px;padding:2px 8px 2px 6px;font-family:inherit;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.subtask-trigger:hover,.subtask-trigger.has-subs{background:var(--primary-soft);color:var(--primary-hover);border-color:color-mix(in srgb, var(--muted) 30%, transparent)}.subtask-trigger.complete-subs{background:var(--success-soft);color:var(--success-text);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.subtask-trigger .chev{width:10px;height:10px;transition:transform .18s}.subtask-trigger.expanded .chev{transform:rotate(90deg)}.subtask-trigger.no-subs{color:var(--muted-2);border-style:dashed;font-weight:600}.subtask-trigger.no-subs:hover{color:var(--primary-hover);border-style:solid}tr.subtasks-row td{border-bottom:1px solid color-mix(in srgb, var(--muted) 16%, transparent);background:linear-gradient(#f5f3ff,#faf5ff);padding:0}tr.subtasks-row.row-hidden{display:none}.subtasks-panel{flex-direction:column;gap:10px;padding:14px 18px 14px 60px;animation:.18s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.subtasks-progress{align-items:center;gap:12px;display:flex}.subtasks-progress-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:130px;font-size:11px;font-weight:700}.subtasks-progress-bar{background:rgba(var(--primary-rgb), .12);border-radius:3px;flex:1;max-width:300px;height:6px;overflow:hidden}.subtasks-progress-fill{background:linear-gradient(90deg, var(--primary), #10b981);border-radius:3px;height:100%;transition:width .3s}.subtasks-list{flex-direction:column;gap:2px;list-style:none;display:flex}.subtask-item{border-radius:var(--radius-xs);align-items:center;gap:10px;padding:6px 10px;transition:background .12s;display:flex;position:relative}.subtask-item:hover{background:rgba(var(--primary-rgb), .08)}.subtask-item .checkbox.checkbox-sm{width:18px;height:18px}.subtask-item .checkbox.checkbox-sm .box{border-width:1.6px;border-radius:5px}.subtask-item .checkbox.checkbox-sm .check{font-size:11px}.subtask-name{color:var(--text);cursor:pointer;border-radius:4px;flex:1;padding:2px 4px;font-size:13px}.subtask-name:hover{background:#fff9}.subtask-item.subtask-done .subtask-name{color:var(--muted);-webkit-text-decoration:line-through #0f172a59;text-decoration:line-through #0f172a59}.subtask-delete{opacity:0;width:22px;height:22px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:5px;font-size:11px;transition:all .15s}.subtask-item:hover .subtask-delete{opacity:1}.subtask-delete:hover{background:var(--danger-soft);color:var(--danger)}.subtask-add{align-items:center;gap:8px;display:flex}.subtask-input{border:1px dashed var(--border-strong);border-radius:var(--radius-xs);color:var(--text);background:#fff9;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.subtask-input::placeholder{color:var(--muted-2)}.subtask-input:focus{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 3px var(--primary-ring);border-style:solid;outline:none}.subtasks-hint{color:var(--muted-2);margin-top:2px;font-size:11px;font-style:italic}tr.task-row.completed-row+tr.subtasks-row td{background:var(--card-2)}th.select-head,td.select-cell{width:36px;padding-left:12px;padding-right:4px}.select-checkbox{cursor:pointer;vertical-align:middle;width:18px;height:18px;display:inline-block;position:relative}.select-checkbox input{opacity:0;cursor:pointer;position:absolute;inset:0}.select-checkbox .box{border:1.6px solid var(--border-strong);background:var(--card);border-radius:5px;place-items:center;transition:all .15s;display:grid;position:absolute;inset:0}.select-checkbox:hover .box{border-color:var(--primary)}.select-checkbox input:checked~.box,.select-checkbox.indeterminate .box{background:var(--primary);border-color:var(--primary-hover)}.select-checkbox .check{color:#fff;opacity:0;font-size:11px;font-weight:800;line-height:1;transition:opacity .12s}.select-checkbox input:checked~.box .check{opacity:1}.select-checkbox .dash{color:#fff;opacity:0;pointer-events:none;place-items:center;font-size:14px;font-weight:800;line-height:1;display:grid;position:absolute;inset:0}.select-checkbox.indeterminate .dash{opacity:1}td.select-cell .select-checkbox{opacity:.25;transition:opacity .15s}tr.task-row:hover td.select-cell .select-checkbox,tr.task-row.selected td.select-cell .select-checkbox,tbody.has-selection td.select-cell .select-checkbox{opacity:1}th.select-head .select-checkbox{opacity:.5}th.select-head .select-checkbox:hover,tbody.has-selection~* .select-checkbox,tbody.has-selection th .select-checkbox{opacity:1}tr.task-row.selected td:first-child{box-shadow:inset 4px 0 0 var(--primary)}tr.task-row.selected.critical-row td:first-child{box-shadow:inset 4px 0 0 var(--primary), inset 8px 0 0 var(--danger)}tr.task-row.selected td{background:rgba(var(--primary-rgb), .06)!important}tr.task-row.selected.completed-row td{background:rgba(var(--primary-rgb), .1)!important}.bulk-bar{z-index:900;color:#fff;background:#0f172a;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:10px 12px;animation:.2s slideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0f172a40,0 2px 8px #0f172a26}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.bulk-count{border-radius:var(--radius-pill);background:#ffffff1a;align-items:center;gap:8px;padding:4px 12px 4px 6px;font-size:12.5px;font-weight:700;display:inline-flex}.bulk-count-num{background:var(--primary);border-radius:var(--radius-pill);place-items:center;min-width:22px;height:22px;padding:0 7px;font-size:11.5px;font-weight:800;display:inline-grid}.bulk-divider{background:#ffffff1f;width:1px;height:22px;margin:0 2px}.bulk-btn{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.bulk-btn:hover{background:#ffffff29}.bulk-btn.primary{background:var(--primary)}.bulk-btn.primary:hover{background:var(--primary-hover)}.bulk-btn.danger{color:color-mix(in srgb, var(--danger) 35%, transparent);background:#ef44442e}.bulk-btn.danger:hover{background:var(--danger);color:#fff}.bulk-select{appearance:none;color:#fff;cursor:pointer;background:#ffffff14 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") right 10px center/11px no-repeat;border:none;border-radius:8px;min-width:130px;padding:7px 30px 7px 12px;font-family:inherit;font-size:12.5px;font-weight:600}.bulk-select:hover{background-color:#ffffff29}.bulk-select:focus{box-shadow:0 0 0 2px rgba(var(--primary-rgb),.6);outline:none}.bulk-select option{color:#fff;background:#0f172a}.bulk-close{width:28px;height:28px;color:color-mix(in srgb, var(--card) 75%, transparent);cursor:pointer;background:0 0;border:none;border-radius:7px;font-size:14px;transition:all .15s}.bulk-close:hover{color:#fff;background:#ffffff1f}body.has-bulk-bar{padding-bottom:90px}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=900px){.analytics-grid{grid-template-columns:1fr}}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.chart-card.span-2{grid-column:span 2}@media (width<=900px){.chart-card.span-2{grid-column:auto}}.chart-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 8px;display:flex}.chart-card-title{align-items:baseline;gap:8px;display:flex}.chart-card-title h3{color:var(--text);font-size:14px;font-weight:700}.chart-card-title .sub{color:var(--muted);font-size:12px;font-weight:500}.chart-card-body{flex:1;min-height:280px;padding:8px 14px 18px;position:relative}.chart-card-body canvas{max-width:100%}.chart-empty{pointer-events:none;color:var(--muted);text-align:center;place-items:center;padding:16px;font-size:13px;display:grid;position:absolute;inset:0}.chart-empty .ico{opacity:.6;margin-bottom:6px;font-size:28px;display:block}.chart-card-footer{border-top:1px solid var(--border);background:var(--card-2);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px 18px;font-size:12px;display:flex}.chart-card-footer strong{color:var(--text);font-weight:700}.complete-cell{text-align:center;min-width:110px;padding:4px 8px}.complete-btn{border:1.5px solid color-mix(in srgb, var(--success) 35%, transparent);background:var(--card);color:#059669;border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.01em;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.complete-btn:hover{background:#ecfdf5;border-color:#6ee7b7}.complete-btn .ico{color:#059669;background:#ecfdf5;border-radius:50%;place-items:center;width:14px;height:14px;font-size:10px;line-height:1;transition:all .15s;display:inline-grid}.complete-btn:hover .ico{color:#fff;background:#059669}.complete-btn.completed{color:#fff;background:#10b981;border-color:#0000}.complete-btn.completed:hover{background:#059669}.complete-btn.completed .ico{color:#fff;background:#ffffff40}.complete-btn.completed:hover .ico{background:#ffffff59}.complete-btn.completed .label-undo,.complete-btn.completed:hover .label-done{display:none}.complete-btn.completed:hover .label-undo{display:inline}.checkbox{cursor:pointer;width:22px;height:22px;display:inline-block;position:relative}.checkbox input{opacity:0;cursor:pointer;position:absolute;inset:0}.checkbox .box{border:1.8px solid var(--border-strong);background:var(--card);border-radius:7px;place-items:center;transition:all .15s;display:grid;position:absolute;inset:0}.checkbox:hover .box{border-color:var(--primary)}.checkbox input:checked~.box{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669}.checkbox .check{color:#fff;opacity:0;font-size:14px;font-weight:800;line-height:1;transition:all .15s;transform:scale(.6)}.checkbox input:checked~.box .check{opacity:1;transform:scale(1)}.icon-btn{cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border:none;border-radius:8px;place-items:center;padding:6px;font-size:14px;transition:all .15s;display:inline-grid}.icon-btn:hover{background:var(--danger-soft);color:var(--danger)}.completed-meta{color:var(--muted-2);font-size:11px}.restore-btn{background:var(--primary-soft);color:var(--primary-hover);border:1px solid color-mix(in srgb, var(--muted) 30%, transparent);border-radius:var(--radius-pill);cursor:pointer;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:700;transition:all .15s}.restore-btn:hover{background:color-mix(in srgb, var(--muted) 16%, transparent)}.empty-row td{text-align:center;color:var(--muted);padding:48px 24px!important}.empty-emoji{margin-bottom:8px;font-size:32px;display:block}.empty-msg{color:var(--text-2);font-size:14px;font-weight:600}.empty-sub{color:var(--muted);margin-top:4px;font-size:12.5px}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.22s both overlayIn;display:none;position:fixed;inset:0}.modal-overlay.show{display:flex}.modal{background:var(--card);min-width:380px;max-width:480px;box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:16px;padding:22px;animation:.26s cubic-bezier(.2,.9,.25,1) both modalPop}@keyframes overlayIn{0%{opacity:0;-webkit-backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(4px)}}@keyframes modalPop{0%{opacity:0;transform:scale(.94)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal{animation-duration:1ms}}.modal h3{margin-bottom:12px;font-size:16px;font-weight:700}.modal input,.modal select{border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;color:var(--text);background:var(--card);margin-bottom:14px;padding:10px 12px;font-family:inherit;font-size:14px}.modal input:focus,.modal select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.modal-buttons{justify-content:flex-end;gap:8px;display:flex}.settings-btn{background:var(--ghost-bg);color:var(--text-2);border:1px solid var(--border);padding:9px 12px}.settings-btn:hover{background:var(--ghost-bg-hover);border-color:var(--border-strong)}.settings-btn.tt-on{background:var(--success-soft);color:var(--success-text);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.settings-btn.tt-on:hover{background:#d1fae5}.modal.modal-wide{min-width:460px;max-width:540px}.modal-section{margin-bottom:14px}.modal-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:800}.modal-help{color:var(--muted);margin-top:4px;margin-bottom:12px;font-size:12px;line-height:1.4}.modal-help code{background:#0f172a0f;border-radius:3px;padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.modal-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.modal-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:700;display:block}.modal-result{border-radius:var(--radius-xs);margin-top:8px;padding:8px 12px;font-size:12.5px;font-weight:600}.modal-result.ok{background:var(--success-soft);color:var(--success-text);border:1px solid color-mix(in srgb, var(--success) 35%, transparent)}.modal-result.err{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent)}.modal-task-name{color:var(--text);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--muted) 30%, transparent);border-radius:var(--radius-xs);margin-bottom:14px;padding:10px 12px;font-size:14px;font-weight:700}.modal-task-name .sub{color:var(--muted);margin-top:2px;font-size:11px;font-weight:600;display:block}.tt-disabled-note{color:var(--muted);background:var(--ghost-bg);border-radius:var(--radius-xs);margin-bottom:10px;padding:8px 10px;font-size:11.5px}.tt-disabled-note a{color:var(--primary);cursor:pointer;font-weight:700;text-decoration:underline}.cal-wrap{margin-top:4px}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-nav{align-items:center;gap:8px;display:flex}.cal-title{color:var(--text);margin-left:6px;font-size:17px;font-weight:800}.cal-toolbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cal-period-stat{color:var(--muted);font-size:12.5px}.cal-period-stat strong{color:var(--text)}.cal-view-toggle{flex:none}.cal-grid{gap:6px;display:grid}.cal-month{grid-template-columns:repeat(7,1fr)}.cal-dow-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;padding:4px 0;font-size:11px;font-weight:700}.cal-cell{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;gap:4px;min-height:74px;padding:6px 8px;transition:border-color .12s,background .12s;display:flex}.cal-cell:hover{border-color:var(--border-strong);background:var(--card-2)}.cal-cell.is-out{opacity:.4}.cal-cell.is-today{border-color:var(--primary)}.cal-cell.is-selected{box-shadow:0 0 0 2px var(--primary-ring);border-color:var(--primary);background:var(--primary-soft)}.cal-cell-num{color:var(--text-2);font-size:13px;font-weight:700}.cal-cell.is-today .cal-cell-num{color:var(--primary)}.cal-cell-meta{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.cal-hours{color:var(--on-primary);background:var(--primary);border-radius:var(--radius-pill);padding:1px 6px;font-size:11px;font-weight:800}.cal-done{color:var(--success-text);background:var(--success-soft);border-radius:var(--radius-pill);padding:1px 6px;font-size:11px;font-weight:700}.cal-week{grid-template-columns:repeat(7,1fr)}.cal-wcell{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;gap:6px;min-height:150px;padding:8px;display:flex}.cal-wcell:hover{border-color:var(--border-strong)}.cal-wcell.is-today{border-color:var(--primary)}.cal-wcell.is-selected{box-shadow:0 0 0 2px var(--primary-ring);border-color:var(--primary)}.cal-wcell-head{justify-content:space-between;align-items:baseline;display:flex}.cal-dow{text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.cal-dnum{color:var(--text);font-size:15px;font-weight:800}.cal-wcell-body{flex-direction:column;flex:1;gap:4px;display:flex;overflow:hidden}.cal-chip{white-space:nowrap;text-overflow:ellipsis;background:var(--ghost-bg);color:var(--text-2);border-radius:6px;padding:2px 6px;font-size:10.5px;font-weight:600;overflow:hidden}.cal-chip.task{background:var(--primary-soft);color:var(--primary-hover)}.cal-chip.activity{background:var(--info-soft);color:var(--info)}.cal-chip.done{background:var(--success-soft);color:var(--success-text)}.cal-chip.more{color:var(--muted);background:0 0;padding-left:2px}.cal-wcell-foot{color:var(--primary);text-align:right;margin-top:auto;font-size:11px;font-weight:800}.cal-day{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-top:18px;padding:16px}.cal-day-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.cal-day-head h3{font-size:16px;font-weight:800}.cal-day-head p{color:var(--muted);margin-top:2px;font-size:12.5px}.cal-day-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.cal-day-cols.with-outlook{grid-template-columns:1fr 1fr 1fr}@media (width<=980px){.cal-day-cols.with-outlook{grid-template-columns:1fr 1fr}}@media (width<=760px){.cal-day-cols,.cal-day-cols.with-outlook{grid-template-columns:1fr}}.cal-col-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:10px;font-size:11px;font-weight:800}.cal-oevent{border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-sm);background:var(--card-2);align-items:flex-start;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex}.cal-oevent.is-free{border-left-color:var(--muted-2);opacity:.75}.cal-oevent-time{width:58px;color:var(--info);flex:none;font-size:12px;font-weight:700;line-height:1.2}.cal-oevent-main{flex:1;min-width:0}.cal-oevent-title{color:var(--text);font-size:13px;font-weight:600}.cal-oevent-open{color:var(--info);margin-left:4px;font-weight:700;text-decoration:none}.cal-osync{color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.cal-osync.ok{color:var(--info);border-color:color-mix(in srgb, var(--info) 35%, transparent)}.cal-osync.err{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.cal-osync-btn{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:13px;line-height:1}.cal-osync-btn:hover{color:var(--text)}.cal-empty{color:var(--muted);padding:10px 0;font-size:13px}.cal-empty a{color:var(--primary);cursor:pointer;font-weight:700;text-decoration:underline}.cal-entry{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-2);align-items:flex-start;gap:10px;margin-bottom:8px;padding:9px 10px;display:flex}.cal-entry-time{width:58px;color:var(--primary);flex:none;font-size:14px;font-weight:800;line-height:1.1}.cal-entry-time span{color:var(--muted);margin-top:2px;font-size:9.5px;font-weight:600;display:block}.cal-entry-main{flex:1;min-width:0}.cal-entry-title{color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.cal-entry-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:5px;flex:none;padding:1px 5px;font-size:9px;font-weight:800}.cal-entry-tag.task{background:var(--primary-soft);color:var(--primary-hover)}.cal-entry-tag.activity{background:var(--info-soft);color:var(--info)}.cal-entry-sub{color:var(--muted);margin-top:2px;font-size:11.5px}.cal-entry-notes{color:var(--text-2);margin-top:4px;font-size:12px}.cal-entry-actions{flex:none;gap:4px;display:flex}.cal-entry .icon-btn{background:var(--ghost-bg);border:1px solid var(--border);cursor:pointer;width:26px;height:26px;color:var(--muted);border-radius:6px;font-size:12px;line-height:1}.cal-entry .icon-btn:hover{background:var(--ghost-bg-hover);color:var(--text)}.cal-entry .icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.cal-done-list{flex-direction:column;gap:8px;display:flex}.cal-done-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-2);align-items:center;gap:10px;padding:8px 10px;display:flex}.cal-done-item>div{flex:1;min-width:0}.cal-done-check{color:var(--success-text);flex:none;font-weight:800}.cal-done-task{color:var(--text);font-size:13px;font-weight:700}.cal-done-sub{color:var(--muted);font-size:11.5px}.cal-done-log{background:var(--ghost-bg);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;flex:none;padding:4px 10px;font-size:11px;font-weight:700}.cal-done-log:hover{background:var(--primary-soft);color:var(--primary-hover);border-color:var(--primary)}.cal-seg{background:var(--ghost-bg);border:1px solid var(--border);border-radius:var(--radius-pill);gap:2px;margin-bottom:14px;padding:3px;display:inline-flex}.cal-seg button{border-radius:var(--radius-pill);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:700}.cal-seg button.active{background:var(--primary);color:var(--on-primary)}.cal-seg.sm{margin-bottom:0}.cal-seg.sm button{padding:5px 10px;font-size:11.5px}.cal-checkbox{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px;font-weight:600;display:flex}.cal-checkbox input{width:auto!important;margin:0!important}html[data-theme=dark] .cal-chip.task,html[data-theme=dark] .cal-chip.activity,html[data-theme=dark] .cal-entry-tag.task,html[data-theme=dark] .cal-entry-tag.activity{color:var(--text)}html[data-theme=dark] .cal-entry-sub,html[data-theme=dark] .cal-done-sub,html[data-theme=dark] .cal-entry-time span,html[data-theme=dark] .cal-period-stat,html[data-theme=dark] .cal-col-title,html[data-theme=dark] .cal-dow,html[data-theme=dark] .cal-dow-head{color:var(--text-2)}@media (width<=720px){.cal-cell{min-height:58px;padding:4px 5px}.cal-wcell{min-height:120px}.cal-toolbar{gap:8px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=720px){.hero{padding:16px}.brand-text h1{font-size:18px}.stat-value{font-size:22px}}#tk-login{z-index:9999;background:radial-gradient(1200px 600px at 50% -10%, rgba(var(--primary-rgb),.18), transparent 60%), linear-gradient(180deg, var(--canvas), color-mix(in srgb, var(--muted) 8%, transparent));justify-content:center;align-items:center;padding:1rem;display:none;position:fixed;inset:0}.tk-login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:28px 24px}.tk-login-brand{font-family:var(--font-brand);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;font-size:16px;font-weight:400;display:flex}.tk-login-mark{background:0 0;border-radius:10px;place-items:center;width:34px;height:34px;display:grid;overflow:hidden}.tk-login-mark img{object-fit:contain;width:100%;height:100%;display:block}.tk-login-sub{color:var(--muted);margin:10px 0 18px;font-size:13.5px}#tk-login-form{flex-direction:column;gap:10px;display:flex}#tk-login-form input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-2);color:var(--text);outline:none;padding:11px 13px;font-family:inherit;font-size:14px}#tk-login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.tk-login-actions{gap:8px;margin-top:4px;display:flex}.tk-btn{cursor:pointer;border-radius:var(--radius-sm);border:1px solid #0000;padding:10px 14px;font-family:inherit;font-size:13.5px;font-weight:600;transition:all .15s}.tk-btn-primary{background:var(--primary);color:var(--on-primary);flex:1}.tk-btn-primary:hover{background:var(--primary-hover)}.tk-btn-ghost{background:var(--ghost-bg);color:var(--text-2)}.tk-btn-ghost:hover{background:var(--ghost-bg-hover)}.tk-login-msg{min-height:16px;color:var(--muted);margin-top:4px;font-size:12.5px}.tk-login-msg.err{color:var(--danger)}.tk-login-msg.ok{color:var(--success)}#tk-bar{z-index:9000;border-radius:var(--radius-pill);box-shadow:var(--shadow);background:#0d9488;border:1px solid #0a7268;align-items:center;gap:10px;padding:7px 8px 7px 14px;font-size:12.5px;display:none;position:fixed;bottom:14px;right:14px}.tk-status{color:#ffffffd1;min-width:0}.tk-status.err{color:#fecaca}.tk-user{color:#fff;font-weight:700}.tk-signout{cursor:pointer;color:#fff;border-radius:var(--radius-pill);background:#ffffff29;border:1px solid #ffffff4d;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600}.tk-signout:hover{background:#ffffff42}html[data-theme=dark] #tk-bar{background:#14b8a6;border-color:#2dd4bf}#tk-theme-toggle{z-index:9000;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);width:40px;height:40px;color:var(--text-2);box-shadow:var(--shadow-sm);cursor:pointer;place-items:center;font-size:18px;line-height:1;transition:color .15s,border-color .15s;display:grid;position:fixed;bottom:14px;left:14px}#tk-theme-toggle:hover{color:var(--primary);border-color:var(--primary)}#tk-theme-toggle:focus-visible{box-shadow:0 0 0 3px var(--primary-ring);outline:none}#toast-stack{z-index:11000;pointer-events:none;flex-direction:column;gap:10px;width:min(440px,100vw - 24px);display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--card);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--muted-2);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);opacity:0;align-items:center;gap:10px;padding:11px 12px 11px 13px;font-size:13px;transition:opacity .22s,transform .22s;display:flex;transform:translateY(-10px)}.toast.toast-in{opacity:1;transform:translateY(0)}.toast.toast-out{opacity:0;transform:translateY(-10px)}.toast-ico{color:#fff;background:var(--muted-2);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;font-weight:800;display:grid}.toast-success{border-left-color:var(--success)}.toast-success .toast-ico{background:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error .toast-ico{background:var(--danger)}.toast-info{border-left-color:var(--primary)}.toast-info .toast-ico{background:var(--primary)}.toast-msg{flex:auto;min-width:0}.toast-action{font:inherit;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:var(--radius-pill);cursor:pointer;flex:none;padding:5px 12px;font-size:12.5px;font-weight:700}.toast-action:hover{background:color-mix(in srgb, var(--primary) 20%, transparent)}.toast-close{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 4px;font-size:12px;line-height:1}.toast-close:hover{color:var(--text)}@media (width<=760px){#toast-stack{width:auto;top:12px;left:10px;right:10px;transform:none}body{padding:12px 10px calc(20px + env(safe-area-inset-bottom))}.page{gap:12px}.hero{padding:16px}.hero-row{gap:12px}.hero-actions{width:100%}.hero-actions .btn{flex:1;justify-content:center}.brand{gap:11px}.brand-mark{width:38px;height:38px}.brand-text h1{letter-spacing:.1em;font-size:14px}.brand-text p{font-size:11.5px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:12px 13px}.stat-value{font-size:21px}.tabs-row{flex-direction:column;align-items:stretch;gap:10px}.tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -10px;padding:0 10px;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none}.view-toggle{width:100%}.view-toggle button{flex:1;justify-content:center}.search-kbd{display:none}.toolbar>div:last-child{flex-direction:column;align-items:stretch!important;gap:12px!important}.toolbar-section{flex-wrap:wrap;width:100%;margin-left:0!important}.toolbar-section .select{flex:auto;min-width:0}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}.today-banner{flex-direction:column;align-items:stretch;gap:12px}.today-banner-stats{justify-content:space-between;gap:8px}.today-stat{flex:1}.table-header{flex-direction:column;align-items:stretch;gap:8px}.table-scroll{padding:12px;overflow-x:visible}table,thead,tbody,tr,td{width:100%;display:block}thead{display:none}tr.group-header td{padding:0}tr.group-header .group-row-content{flex-wrap:wrap}tr.group-header .group-meta-row{width:100%}tr.task-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);flex-direction:column;margin-bottom:10px;padding:10px 12px;display:flex;position:relative}tr.task-row.completed-row{opacity:.72}tr.task-row>td{text-align:right;border:none;border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}tr.task-row>td[data-label]:before{content:attr(data-label);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);flex:none;font-size:10.5px;font-weight:700}.cell-task{order:1}.cell-client{order:2}.cell-priority{order:3}.cell-status{order:4}.cell-due{order:5}.cell-hours{order:6}.cell-progress{order:7}.cell-desc{order:8}.cell-completed{order:9}.complete-cell{order:10}.select-cell{display:none}tr.task-row>td.cell-task{text-align:left;border-top:none;padding:2px 34px 8px 0}.cell-task .task-cell{flex-wrap:wrap;gap:8px}.cell-task .task-name{font-size:16px;font-weight:700}tr.task-row>td.cell-desc{text-align:left}.cell-desc .desc{white-space:normal}.cell-progress .progress-cell{flex:1}.cell-progress .task-progress{width:100%}.cell-progress .task-progress-track{flex:1;width:auto}.cell-due .due-cell{flex-wrap:wrap;justify-content:flex-end;gap:6px}tr.task-row>td.cell-completed.completed-meta{display:none}.complete-cell{border-top:1px solid var(--border);padding-top:12px!important}.complete-cell .complete-btn{justify-content:center;width:100%;padding:11px}.cell-delete{justify-content:flex-end;width:auto;position:absolute;top:9px;right:40px;border-top:none!important;padding:0!important}tr.task-row:not(.expanded){flex-flow:wrap;align-items:center;gap:5px 8px}tr.task-row:not(.expanded)>td{border-top:none;justify-content:flex-start;width:auto;padding:0}tr.task-row:not(.expanded)>td[data-label]:before{display:none}tr.task-row:not(.expanded)>td.cell-task{flex:1 0 100%;padding:0 26px 0 0}tr.task-row:not(.expanded) .subtask-trigger{display:none}tr.task-row:not(.expanded) .cell-task .task-cell{flex-wrap:nowrap;gap:6px;min-width:0}tr.task-row:not(.expanded) .cell-task .task-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:14.5px;overflow:hidden}tr.task-row:not(.expanded) .cell-task .project-chip{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:42%;overflow:hidden}tr.task-row:not(.expanded)>td.cell-desc,tr.task-row:not(.expanded)>td.cell-hours,tr.task-row:not(.expanded)>td.cell-progress,tr.task-row:not(.expanded)>td.cell-status,tr.task-row:not(.expanded)>td.cell-completed,tr.task-row:not(.expanded)>td.complete-cell,tr.task-row:not(.expanded)>td.cell-delete{display:none}tr.task-row:not(.expanded) .due-cell{gap:0}tr.task-row:not(.expanded) .due-cell .date-input{display:none}tr.task-row:not(.expanded) .client-chip,tr.task-row:not(.expanded) .pill,tr.task-row:not(.expanded) .due-pill{font-size:11px}tr.task-row.expanded>td.cell-delete{border-top:1px solid var(--border);order:11;justify-content:space-between;width:100%;position:static;padding-top:8px!important}tr.task-row.expanded>td.cell-delete:before{content:"Delete";text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:700}tr.task-row.expanded .cell-delete .icon-btn{color:var(--danger)}tr.task-row:after{content:"";border-right:2px solid var(--muted-2);border-bottom:2px solid var(--muted-2);pointer-events:none;width:7px;height:7px;transition:transform .2s;position:absolute;top:15px;right:14px;transform:rotate(45deg)}tr.task-row.expanded:after{top:18px;transform:rotate(-135deg)}tr.subtasks-row{margin:-8px 0 12px;display:block}tr.subtasks-row td{padding:0}tr.empty-row td{padding:30px 16px}.modal{width:100%;min-width:0;max-width:100%;padding:18px}.modal-buttons{flex-direction:column-reverse}.modal-buttons button{width:100%}.bulk-bar{max-width:none;animation:none;bottom:12px;left:10px;right:10px;transform:none}#tk-bar{bottom:10px;right:10px}#tk-theme-toggle{bottom:10px;left:10px}}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--card);border-right:1px solid var(--border);flex-direction:column;flex:0 0 244px;gap:2px;width:244px;height:100vh;padding:14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:11px;padding:6px 8px 14px;display:flex}.sidebar-brand .mark{border-radius:9px;place-items:center;width:34px;height:34px;display:grid;overflow:hidden}.sidebar-brand .mark img{object-fit:contain;width:100%;height:100%}.sidebar-brand .word{font-family:var(--font-brand);letter-spacing:.13em;text-transform:uppercase;font-size:14px}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 12px 4px;font-size:10.5px;font-weight:700}.nav-item{width:100%;color:var(--text-2);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;padding:9px 12px;font-size:14px;font-weight:600;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary-hover)}.nav-item .ico{flex:none;width:18px;height:18px}.nav-item .count{background:var(--ghost-bg);color:var(--text-2);border-radius:var(--radius-pill);margin-left:auto;padding:1px 8px;font-size:11px;font-weight:700}.nav-item.active .count{background:color-mix(in srgb, var(--primary) 22%, transparent);color:var(--primary-hover)}.sidebar-spacer{flex:auto}.main{flex-direction:column;flex:auto;min-width:0;display:flex}.content{width:100%;max-width:1180px;margin:0 auto;padding:20px 24px 48px}.topbar{display:none}.hamburger{border:1px solid var(--border);background:var(--card);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.hamburger svg{width:20px;height:20px}.drawer-backdrop{display:none}@media (width<=900px){.app-shell{flex-direction:column}.topbar{background:var(--card);border-bottom:1px solid var(--border);z-index:60;align-items:center;gap:12px;padding:9px 12px;display:flex;position:sticky;top:0}.topbar .word{font-family:var(--font-brand);letter-spacing:.13em;text-transform:uppercase;font-size:13px}.topbar .mark{border-radius:8px;width:30px;height:30px;overflow:hidden}.topbar .mark img{object-fit:contain;width:100%;height:100%}.topbar-spacer{flex:auto}.sidebar{z-index:1200;width:270px;height:100%;box-shadow:var(--shadow-lg);flex-basis:270px;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.drawer-backdrop{z-index:1100;cursor:default;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;border:none;padding:0;animation:.18s fadeIn;display:block;position:fixed;inset:0}.content{padding:14px 12px 90px}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.stats-strip{flex-wrap:wrap;gap:10px;margin:2px 0 18px;display:flex}.sstat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:2px;min-width:82px;padding:8px 14px;display:flex}.sstat-num{letter-spacing:-.02em;font-size:20px;font-weight:700;line-height:1.1}.sstat-num small{color:var(--muted);font-size:13px;font-weight:600}.sstat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:700}.sstat.danger .sstat-num{color:var(--danger)}.tasklist-toolbar{align-items:center;gap:12px;margin-bottom:14px;display:flex}.tasklist-toolbar .search-wrap{flex:1;align-items:center;display:flex;position:relative}.tasklist-toolbar .search-icon{width:17px;height:17px;color:var(--muted);pointer-events:none;position:absolute;left:12px}.tasklist-toolbar .search-input{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--card);width:100%;color:var(--text);font:inherit;outline:none;padding:10px 14px 10px 36px;font-size:14px}.tasklist-toolbar .search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.tasklist-count{color:var(--muted);white-space:nowrap;font-size:12.5px;font-weight:600}.tasklist-empty{text-align:center;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 16px}.tasklist{flex-direction:column;gap:10px;display:flex}.tcard{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.tcard.done{opacity:.72}.tcard-headrow{align-items:center;padding-left:12px;display:flex}.tcard-head{cursor:pointer;text-align:left;min-width:0;font:inherit;color:var(--text);background:0 0;border:none;flex:auto;align-items:center;gap:11px;padding:12px 14px 10px 4px;display:flex}.today-star{color:var(--muted-2);cursor:pointer;background:0 0;border:none;flex:none;padding:6px 2px;font-size:17px;line-height:1}.today-star.on{color:#f59e0b}.tcard-edit{margin:12px 0 4px}.tcard-edit .ac-input,.tcard-edit input,.tcard-edit select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-2);width:100%;color:var(--text);font:inherit;outline:none;padding:9px 11px;font-size:13.5px}.tcard-edit .ac-input:focus,.tcard-edit input:focus,.tcard-edit select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.tcard-main{flex:auto;min-width:0}.tcard-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.tcard.done .tcard-title{color:var(--muted);text-decoration:line-through}.tcard-sub{align-items:center;gap:6px;min-width:0;margin-top:3px;font-size:12.5px;display:flex}.tcard-client{color:var(--primary-hover);white-space:nowrap;font-weight:700}.tcard-sep{color:var(--muted-2)}.tcard-project{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tcard-project.empty{color:var(--muted-2);font-style:italic}.tcard-subcount{color:var(--muted);background:var(--ghost-bg);border-radius:var(--radius-pill);margin-left:4px;padding:0 7px;font-size:11px;font-weight:700}.tcard-meta{flex:none;align-items:center;gap:8px;display:flex}.tcard-chev{width:18px;height:18px;color:var(--muted);transition:transform .2s}.tcard.expanded .tcard-chev{transform:rotate(180deg)}.tcard-progress{align-items:center;gap:10px;padding:0 14px 12px;display:flex}.tcard-progress .task-progress-track{flex:1;height:6px}.tcard-pct{color:var(--text-2);font-variant-numeric:tabular-nums;text-align:right;min-width:34px;font-size:12px;font-weight:600}.tcard-body{border-top:1px solid var(--border);padding:0 14px 14px}.tcard-desc{color:var(--text-2);margin:12px 0;font-size:13.5px}.tcard-fields{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;font-size:13px;display:flex}.tcard-subs{flex-direction:column;gap:4px;margin:10px 0;padding:0;list-style:none;display:flex}.tcard-subs li{align-items:center;gap:8px;font-size:13.5px;display:flex}.tcard-subs li.subdone .subname{color:var(--muted);text-decoration:line-through}.tcard-subs .subname{flex:1}.tcard-subs .subdel{color:var(--muted-2);cursor:pointer;background:0 0;border:none;font-size:12px}.tcard-subadd input{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--card-2);width:100%;color:var(--text);font:inherit;outline:none;padding:8px 11px;font-size:13px}.tcard-subadd input:focus{border-style:solid;border-color:var(--primary)}.tcard-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}@media (width<=560px){.tcard-meta .pill{display:none}}.content-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.content-header h1{letter-spacing:-.02em;font-size:22px;font-weight:700}.content-header-right{align-items:center;gap:10px;font-size:12.5px;display:flex}.sync-ind{color:var(--muted)}.sync-ind.err{color:var(--danger)}.acct{color:var(--text-2);font-weight:600}@media (width<=560px){.content-header .acct{display:none}}.tasklist-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.tasklist-controls .ctl{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.tasklist-controls .select{font-size:13px}.group{margin-bottom:18px}.group-head{flex-wrap:wrap;align-items:center;gap:10px;padding:6px 4px 10px;display:flex}.group-name{letter-spacing:-.01em;align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.group-count{color:var(--text-2);background:var(--ghost-bg);border-radius:var(--radius-pill);padding:1px 8px;font-size:11px;font-weight:700}.group-client{color:var(--muted);font-size:12px;font-weight:600}.group-badge{border-radius:var(--radius-pill);padding:2px 9px;font-size:11px;font-weight:700}.group-badge.danger{background:var(--danger-soft);color:var(--danger)}.group-prog{color:var(--primary-hover);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px;font-weight:700}.cal-cell,.cal-wcell{font:inherit;text-align:left;width:100%}.te-push{color:var(--text-2);align-items:center;gap:8px;margin-top:4px;font-size:13px;display:inline-flex}.te-push input{width:auto;margin:0}.tcard-editbar{background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 25%, transparent);border-radius:var(--radius-sm);justify-content:flex-end;align-items:center;gap:8px;margin:4px 0 12px;padding:9px 12px;display:flex}.tcard-editbar-note{color:var(--primary-hover);margin-right:auto;font-size:12.5px;font-weight:700}@media (width<=600px){.modal-overlay{align-items:flex-start;padding:10px;overflow-y:auto}.modal,.modal.modal-wide{width:100%;min-width:0;max-width:100%;padding:16px}.modal .form-grid{grid-template-columns:1fr}.modal-buttons{flex-wrap:wrap}}.plan-section{border-top:1px solid var(--border);margin:14px 0 4px;padding-top:12px}.plan-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.plan-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.plan-total{color:var(--primary-hover);font-size:12.5px;font-weight:700}.plan-days{flex-wrap:wrap;gap:6px;display:flex}.plan-day{font:inherit;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--card);color:var(--text-2);cursor:pointer;padding:5px 11px;font-size:12.5px;font-weight:600}.plan-day.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.plan-rows{flex-direction:column;gap:6px;margin-top:10px;display:flex}.plan-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.plan-row-day{flex:none;width:34px;font-weight:700}.plan-hrs,.plan-start{border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--card-2);color:var(--text);font:inherit;padding:6px 8px}.plan-hrs{width:66px}.plan-unit{color:var(--muted);font-size:12.5px}.plan-del{color:var(--muted-2);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:13px}.cal-day-cols.cols-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=900px){.cal-day-cols.cols-3{grid-template-columns:1fr}}.cal-chip.plan{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary-hover);border:1px dashed color-mix(in srgb, var(--primary) 40%, transparent)}.cal-plan{color:var(--primary-hover);font-weight:700}.cal-plan-entry{border-left:3px dashed color-mix(in srgb, var(--primary) 45%, transparent)}.wcell-plan{color:var(--primary-hover);margin-right:6px}.cal-grid.cal-week,.cal-grid.cal-month{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-wcell,.cal-cell,.cal-wcell-body{min-width:0}.cal-chip{max-width:100%}@media (width<=700px){.cal-grid.cal-week,.cal-grid.cal-month{gap:4px}.cal-wcell{min-height:100px;padding:6px 5px}.cal-cell{padding:4px}.cal-chip{padding:2px 4px;font-size:9px}}
