@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif;background:#07090f;color:#e8edf5}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#111829,#07090f 65%)}.page{min-height:100vh;display:grid;place-items:center;padding:24px}.card{width:100%;max-width:420px;padding:28px;border-radius:18px;border:1px solid #1f2738;background:#0f1420;box-shadow:0 20px 60px #00000059}.card.wide{max-width:560px}h1{margin:0;font-size:1.7rem}.subtitle{margin:8px 0 20px;color:#aab8d1;font-size:.95rem}.info-text{margin:0 0 18px;color:#c9d6ee;line-height:1.45}.action-row{display:grid;gap:10px}.link-button{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:600}.primary-link{background:linear-gradient(135deg,#355ea8,#4f7ad0);color:#f2f6ff}.secondary-link{background:#222d40;color:#c9d6ee;border:1px solid #2f3c58}.form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:.92rem;color:#c9d6ee}input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #283146;background:#0a0f1a;color:#f6f8fc;outline:none}input:focus{border-color:#4066b5}textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #283146;background:#0a0f1a;color:#f6f8fc;outline:none;resize:vertical;font:inherit}textarea:focus{border-color:#4066b5}button{font:inherit}.primary,.secondary{width:100%;margin-top:4px;padding:10px 12px;border-radius:10px;border:0;cursor:pointer}.primary{background:linear-gradient(135deg,#355ea8,#4f7ad0);color:#f2f6ff}.secondary{margin-top:12px;background:#222d40;color:#c9d6ee}button:disabled{opacity:.5;cursor:not-allowed}.status{margin:14px 0 0;font-size:.92rem;color:#f5c07a}.status.ok{color:#8fe7af}.small-link{margin:14px 0 0;text-align:center}.small-link a{color:#8fb2ff;text-decoration:none}.small-link a:hover{text-decoration:underline}.app-layout{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.app-layout.sidebar-collapsed{grid-template-columns:84px 1fr}.sidebar{display:flex;flex-direction:column;justify-content:space-between;position:sticky;top:0;align-self:start;height:100vh;padding:24px 16px;border-right:1px solid #1f2738;background:#0f1420}.sidebar.collapsed{padding:24px 10px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-title{margin:0 0 24px;font-size:1.45rem}.sidebar.collapsed .sidebar-title{margin-bottom:16px;font-size:1rem}.sidebar-brand-link{color:inherit;text-decoration:none}.sidebar-collapse-toggle{border:1px solid #2f3c58;background:#182338;color:#e8edf5;border-radius:8px;padding:4px 8px;cursor:pointer}.sidebar-nav{display:grid;gap:8px;border-top:1px solid #1f2738;padding-top:14px}.sidebar-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;background:transparent;color:#c9d6ee;border-radius:10px;padding:10px 12px;cursor:pointer;text-decoration:none}.sidebar-item-icon{width:20px;text-align:center;flex-shrink:0}.sidebar-item-label{white-space:nowrap}.sidebar.collapsed .sidebar-item{justify-content:center;padding:10px}.sidebar-item.active{border-color:#2f3c58;background:#182338;color:#f2f6ff}.sidebar-bottom-nav{display:grid;gap:8px;border-top:1px solid #1f2738;padding-top:14px}.dashboard-content{padding:28px}.dashboard-content h2{margin:0 0 10px;font-size:1.6rem}.app-subtitle{margin-bottom:20px}.tasks-toolbar{display:flex;gap:10px;margin-bottom:16px}.tasks-new-button,.tasks-refresh-button,.table-action,.danger-action{border:1px solid #2f3c58;background:#182338;color:#e8edf5;border-radius:10px;padding:8px 12px;cursor:pointer}.tasks-new-button{background:linear-gradient(135deg,#355ea8,#4f7ad0);border:0}.task-section{margin-top:20px}.task-section.completed{margin-top:28px;padding-top:18px;border-top:1px solid #1f2738}.task-section-title{margin:0 0 10px;font-size:1.1rem}.task-table-wrap{overflow-x:auto;border:1px solid #1f2738;border-radius:12px}.task-table{width:100%;border-collapse:collapse}.task-table th,.task-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #1f2738}.task-table th{color:#aab8d1;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.task-actions-cell{display:flex;gap:8px}.table-action.danger,.danger-action{border-color:#6f2a2a;background:#3a1b1b}.task-completed-row td:first-child{text-decoration:line-through;opacity:.75}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:20px}.modal-card{width:min(520px,100%);background:#0f1420;border:1px solid #1f2738;border-radius:14px;padding:18px}.modal-title{margin:0 0 12px;font-size:1.2rem}.task-create-form{display:grid;gap:12px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions>button{width:100%;margin-top:0;padding:10px 12px}.account-grid,.dashboard-grid{display:grid;gap:16px}.dashboard-hello{margin:0 0 16px;font-size:1.7rem}.dashboard-routine-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.dashboard-routine-item{border:1px solid #2f3c58;background:#182338;border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.dashboard-routine-item.open strong{color:#e8edf5}.dashboard-routine-item.done{border-color:#2f8f57;background:#173124}.dashboard-routine-item.done strong{color:#8fe7af}.dashboard-routine-actions{display:flex;align-items:center;gap:8px}.panel-card{border:1px solid #1f2738;border-radius:14px;padding:16px;background:#0f1420}.panel-title{margin:0 0 12px;font-size:1.05rem}.routine-main-title{font-size:1.45rem;line-height:1.2}.routine-main-description{margin:0 0 12px;color:#aab8d1;white-space:pre-line}.panel-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.account-list{margin:0;display:grid;gap:10px}.account-list dt{font-size:.84rem;color:#aab8d1}.account-list dd{margin:3px 0 0}.account-form{display:grid;gap:12px}.sessions-description{margin:-6px 0 0;color:#aab8d1;font-size:.9rem}.session-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.session-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #1f2738}.session-device-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid #2f3c58;border-radius:8px;color:#c9d6ee}.session-details{min-width:0}.session-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.session-heading strong{overflow-wrap:anywhere}.session-details p,.sessions-empty{margin:4px 0 0;color:#aab8d1;font-size:.86rem}.current-session-badge{padding:3px 7px;border:1px solid #2f8f57;border-radius:999px;color:#8fe7af;font-size:.73rem;white-space:nowrap}.session-revoke-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid #6f2a2a;border-radius:8px;background:#3a1b1b;color:#f2dada;cursor:pointer;white-space:nowrap}.session-revoke-button:disabled,.danger-zone{border-color:#4a2626}.routines-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px}.routine-list{display:flex;flex-direction:column;gap:10px}.routine-list-item{border:1px solid #1f2738;border-radius:12px;padding:10px;background:#111827;min-width:0;overflow:hidden;height:154px;display:flex;flex-direction:column;justify-content:space-between}.routine-list-item.active{border-color:#355ea8}.routine-select{width:100%;min-width:0;background:transparent;border:0;color:inherit;text-align:left;padding:0;display:grid;gap:6px;cursor:pointer}.routine-name,.routine-description{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routine-select span{color:#aab8d1}.day-pills{display:flex;flex-wrap:nowrap;gap:6px;overflow:hidden}.day-pill{border:1px solid #2f3c58;border-radius:999px;padding:2px 8px;font-size:.75rem;color:#c9d6ee}.routine-item-actions{display:flex;gap:8px;margin-top:8px}.routine-selected-name{margin-bottom:12px}.activity-section-title{margin:16px 0 10px;font-size:.98rem;color:#c9d6ee}.heatmap-title{margin-top:20px}.activity-toolbar{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px;margin-bottom:12px}.activity-toolbar select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #283146;background:#0a0f1a;color:#f6f8fc;outline:none}.weekday-fieldset{margin:0;border:1px solid #283146;border-radius:10px;padding:10px}.weekday-fieldset legend{padding:0 6px;font-size:.9rem;color:#c9d6ee}.weekday-grid{display:grid;grid-template-columns:repeat(4,minmax(56px,1fr));gap:8px}.weekday-option{display:flex;align-items:center;gap:6px;font-size:.9rem}.weekday-option input{width:auto}.routine-description-input{min-height:200px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}.heatmap-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:12px}.heatmap-controls-left{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px}.heatmap-view-toggle{display:inline-flex;gap:8px;padding:4px;border:1px solid #283146;border-radius:12px;background:#0b101b}.heatmap-view-toggle .table-action{margin-top:0;border:0;background:transparent}.heatmap-view-toggle .table-action.active{background:linear-gradient(135deg,#355ea8,#4f7ad0);color:#f2f6ff}.heatmap-navigation{display:inline-flex;align-items:center;gap:8px}.heatmap-period-label{min-width:140px;text-align:center;font-weight:600;color:#f2f6ff}.heatmap-card,.month-calendar-card{border:1px solid #1f2738;border-radius:12px;background:#0b101b;padding:12px}.month-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:8px}.month-calendar-weekdays span{text-align:center;font-size:.78rem;color:#aab8d1;font-weight:600}.month-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.month-calendar-cell{min-height:34px;border-radius:8px;border:1px solid #152033;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600;color:#d9e2f5}.month-calendar-cell.blank{border-color:transparent;background:transparent;color:transparent}.month-calendar-cell.none{background:#0d1422}.month-calendar-cell.open{background:#2e3954}.month-calendar-cell.done{background:#2f8f57}.heatmap-month-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;margin-bottom:8px}.heatmap-axis-spacer{width:44px}.heatmap-month-track{display:grid;min-height:18px;align-items:end;width:max-content}.heatmap-month-label{grid-row:1;font-size:.74rem;color:#aab8d1;padding-left:2px;white-space:nowrap}.heatmap-graph{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px}.heatmap-weekday-axis{display:grid;grid-template-rows:repeat(7,minmax(12px,1fr));gap:4px;padding-top:1px}.heatmap-weekday-axis span{display:flex;align-items:center;height:12px;font-size:.74rem;color:#aab8d1}.heatmap-grid{display:grid;grid-template-rows:repeat(7,minmax(12px,1fr));grid-auto-flow:column;gap:4px;overflow-x:auto;padding-bottom:2px;width:max-content}.week-day-card{border:1px solid #1f2738;border-radius:12px;padding:10px;display:grid;gap:6px;background:#111827}.week-day-card.done{border-color:#2e6a45;background:#10251a}.week-day-card.open{border-color:#2f3c58}.week-day-card.off{opacity:.7}.week-day-name{margin:0;font-weight:600}.week-day-date,.week-day-status{margin:0;font-size:.82rem;color:#aab8d1}.heatmap-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(14px,1fr));gap:4px;padding:10px;border:1px solid #1f2738;border-radius:12px;background:#0b101b}.heatmap-cell{width:100%;aspect-ratio:1 / 1;border-radius:3px;border:1px solid #152033}.heatmap-cell.blank{border-color:transparent;background:transparent}.heatmap-cell.none{background:#0d1422}.heatmap-cell.open{background:#2e3954}.heatmap-cell.done{background:#2f8f57}.heatmap-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.82rem;color:#aab8d1}.heatmap-legend span{display:inline-flex;align-items:center;gap:6px}.heatmap-legend em{display:inline-block;width:12px;height:12px}.heatmap-actions{display:flex;gap:8px;margin-top:10px}.calendar-toolbar{display:flex;justify-content:center;align-items:center;margin-bottom:20px}.calendar-controls{display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid #1f2738;border-radius:10px;background:#0f1420}.calendar-month-label{min-width:180px;text-align:center;font-weight:600;font-size:1rem}.calendar-container{border:1px solid #1f2738;border-radius:14px;padding:16px;background:#0f1420;width:100%}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.calendar-weekday-label{text-align:center;font-weight:600;font-size:.85rem;color:#aab8d1;padding:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-cell{border:1px solid #1f2738;border-radius:10px;padding:8px;background:#111827;display:flex;flex-direction:column;overflow:hidden;min-height:140px;max-height:160px}.calendar-cell.out-month{background:#0a0f1a;opacity:.4}.calendar-cell-date{font-weight:600;font-size:.9rem;margin-bottom:6px;color:#c9d6ee}.calendar-cell-content{flex:1;background:transparent;border:0;padding:0;text-align:left;cursor:pointer;overflow:hidden;display:flex;align-items:flex-start}.calendar-items-list{list-style:none;margin:0;padding:0;width:100%;font-size:.8rem;display:flex;flex-direction:column;gap:4px}.calendar-item{width:100%;padding:6px 8px;border-radius:6px;color:#f2f6ff;font-weight:500;overflow:hidden;border:1px solid;display:flex;align-items:center;background:#2e3954;border-color:#3f5078}.calendar-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item.task,.calendar-item.routine{background:#2e3954;border-color:#3f5078;color:#fff}.calendar-item.completed{background:#2f8f57;border-color:#3ba76a;opacity:1}.calendar-item.completed span{text-decoration:line-through;opacity:.8}.calendar-item.more{font-weight:600;background:#1f2738;border-color:#2f3c58;color:#aab8d1}.calendar-detail-list{display:grid;gap:10px;margin-bottom:16px}.calendar-detail-item{display:grid;grid-template-columns:60px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #1f2738;border-radius:8px;background:#111827}.calendar-detail-type{font-weight:600;font-size:.75rem;color:#aab8d1;text-transform:uppercase}.calendar-detail-name{color:#c9d6ee;word-break:break-word}.calendar-detail-name.strikethrough{text-decoration:line-through;opacity:.7}.calendar-detail-status{font-size:.8rem;color:#8fe7af;white-space:nowrap}.calendar-detail-item.task .calendar-detail-type,.calendar-detail-item.routine .calendar-detail-type{color:#8fb2ff}@media (max-width: 900px){.app-layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #1f2738;gap:16px}.sidebar-nav,.sidebar-bottom-nav{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.dashboard-content{padding:18px}.task-actions-cell{flex-direction:column}.routines-grid,.activity-toolbar{grid-template-columns:1fr}.heatmap-toolbar{align-items:stretch}.heatmap-controls-left{width:100%;align-items:stretch}.heatmap-navigation{justify-content:space-between}.heatmap-period-label{min-width:0;flex:1}.week-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.heatmap-actions{flex-direction:column}.weekday-grid{grid-template-columns:repeat(3,minmax(56px,1fr))}.heatmap-month-row,.heatmap-graph{grid-template-columns:34px minmax(0,1fr)}.heatmap-axis-spacer{width:34px}.month-calendar-cell{min-height:30px}.calendar-controls{flex-wrap:wrap}.calendar-month-label{min-width:100%;order:2}.calendar-cell{min-height:120px;max-height:140px}.calendar-item{font-size:.75rem;padding:4px 6px}.calendar-detail-item{grid-template-columns:1fr;gap:4px}.calendar-detail-status{display:none}}:root{color-scheme:dark;--bg: #080a0e;--surface: #10141b;--surface-raised: #171c25;--surface-soft: #1b222d;--line: #252d3a;--line-strong: #354153;--text: #f1f4f9;--text-secondary: #c2cbd8;--muted: #8994a4;--accent: #78a9ff;--accent-strong: #5f94f4;--accent-ink: #08111f;--mint: #83c9a8;--amber: #f3be74;--coral: #f1877d;--radius: 11px;--shadow-panel: 0 18px 48px rgba(0, 0, 0, .19);background:var(--bg);color:var(--text);font-family:DM Sans Variable,DM Sans,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;background:radial-gradient(900px circle at 88% -18%,rgba(91,145,239,.11),transparent 50%),var(--bg);color:var(--text);font-size:14px;line-height:1.55}::selection{color:var(--accent-ink);background:var(--accent)}h1,h2,h3,h4,h5,h6{color:var(--text);font-family:Space Grotesk Variable,Space Grotesk,sans-serif;font-weight:600;letter-spacing:0}a{color:var(--accent);text-underline-offset:3px}button,input,textarea,select{font:inherit}button{color:inherit;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.48;cursor:not-allowed;transform:none}.page{padding:32px 20px;background:radial-gradient(720px circle at 50% 0%,rgba(91,145,239,.08),transparent 58%),var(--bg)}.card{max-width:440px;padding:34px;border:1px solid var(--line);border-radius:14px;background:#10141bf7;box-shadow:var(--shadow-panel)}.card.wide{max-width:580px}.card h1{font-size:1.8rem;line-height:1.18}.subtitle{margin:10px 0 24px;color:var(--muted)}.info-text,.routine-main-description{color:var(--text-secondary);line-height:1.65}.form,.account-form,.task-create-form{gap:16px}label{gap:7px;color:var(--text-secondary);font-size:.88rem;font-weight:550}input:not([type=checkbox]),textarea,select,.activity-toolbar select{min-height:42px;border:1px solid var(--line-strong);border-radius:8px;background:#0d1211;color:var(--text);box-shadow:inset 0 1px #ffffff06;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}input:not([type=checkbox]),textarea,select{padding:10px 12px}input::placeholder,textarea::placeholder{color:#67746d}input:not([type=checkbox]):hover,textarea:hover,select:hover,.activity-toolbar select:hover{border-color:#4a5a51}input:not([type=checkbox]):focus,textarea:focus,select:focus,.activity-toolbar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #78a9ff26;outline:0}input[type=checkbox]{accent-color:var(--accent-strong)}textarea{resize:vertical}.primary,.tasks-new-button,.primary-link{border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:0 5px 18px #598be82e}.primary:hover,.tasks-new-button:hover,.primary-link:hover{border-color:#9ac0ff;background:#9ac0ff;transform:translateY(-1px)}.secondary,.secondary-link,.tasks-refresh-button,.table-action,.sidebar-collapse-toggle{border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-soft);color:var(--text-secondary);font-weight:600}.secondary:hover,.secondary-link:hover,.tasks-refresh-button:hover,.table-action:hover,.sidebar-collapse-toggle:hover{border-color:#52627a;background:#252e3b;color:var(--text)}.primary,.secondary{min-height:42px;padding:10px 14px}.secondary{margin-top:10px}.link-button{min-height:42px;border-radius:8px}.status{margin:14px 0;padding:10px 13px;border:1px solid rgba(243,190,116,.26);border-radius:8px;background:#f3be7414;color:var(--amber);font-size:.9rem}.status.ok{border-color:#83c9a838;background:#83c9a80f;color:var(--mint)}.small-link{color:var(--muted)}.small-link a{color:var(--accent)}.app-layout,.app-layout.sidebar-collapsed{grid-template-columns:252px minmax(0,1fr);background:transparent}.app-layout.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{z-index:2;padding:22px 13px 16px;border-right:1px solid var(--line);background:#0c0f15f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar.collapsed{padding:22px 9px 16px}.sidebar-header{min-height:42px;gap:6px;margin:0 2px 28px}.sidebar-title,.sidebar.collapsed .sidebar-title{margin:0;font-size:1rem;line-height:1}.sidebar-brand-link{display:inline-flex;align-items:center;min-width:0;gap:10px;color:var(--text);text-decoration:none}.sidebar-brand-mark{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border:1px solid rgba(120,169,255,.42);border-radius:10px;background:#78a9ff21;color:var(--accent)}.sidebar-brand-name{overflow:hidden;font-family:Space Grotesk Variable,sans-serif;font-size:.94rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.sidebar-brand-initials{font-family:Space Grotesk Variable,sans-serif;font-size:.78rem;font-weight:700}.sidebar-collapse-toggle{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;padding:0;background:transparent;color:var(--muted)}.sidebar-nav,.sidebar-bottom-nav{gap:4px;border-color:#222c29}.sidebar-nav{padding-top:12px}.sidebar-item{min-height:39px;gap:11px;padding:8px 10px;border-radius:8px;color:#a5b1a9;font-size:.9rem;font-weight:550;transition:background-color .14s ease,color .14s ease}.sidebar-item:hover{background:#ffffff0b;color:var(--text)}.sidebar-item-icon{display:grid;width:20px;height:20px;place-items:center;color:#849188}.sidebar-item.active{border-color:#78a9ff2e;background:#78a9ff1c;color:var(--accent)}.sidebar-item.active .sidebar-item-icon{color:var(--accent)}.sidebar.collapsed .sidebar-header{flex-direction:column;gap:14px;margin-bottom:22px}.sidebar.collapsed .sidebar-brand-link{flex-direction:column;gap:6px}.sidebar.collapsed .sidebar-item{justify-content:center;padding:9px}.dashboard-content{width:100%;max-width:1560px;margin:0 auto;padding:34px clamp(24px,4vw,58px) 56px}.dashboard-content>h2{margin:0 0 8px;font-size:1.55rem;line-height:1.3}.app-subtitle{margin:0 0 24px;color:var(--muted)}.dashboard-hello{margin:8px 0 24px;font-size:clamp(1.75rem,2.4vw,2.35rem);line-height:1.15}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}.panel-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#141922fa,#0e1117fa);box-shadow:var(--shadow-panel)}.panel-title{margin:0 0 16px;font-size:1.05rem;line-height:1.35}.task-section{margin-top:18px}.task-section-title,.activity-section-title{margin:0 0 11px;color:var(--text-secondary);font-size:.88rem;font-weight:650}.task-section.completed{margin-top:26px;padding-top:20px;border-color:var(--line)}.tasks-toolbar{align-items:center;gap:8px;margin:0 0 20px}.tasks-new-button,.tasks-refresh-button,.table-action,.danger-action{min-height:36px;padding:7px 11px;border-radius:7px;font-size:.86rem}.tasks-new-button{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.tasks-refresh-button{margin-left:auto}.task-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#0b0f0e80}.task-table{min-width:510px;border-collapse:separate;border-spacing:0}.task-table th,.task-table td{padding:11px 13px;border-bottom:1px solid #222c29}.task-table tr:last-child td{border-bottom:0}.task-table th{background:#ffffff06;color:var(--muted);font-size:.72rem;font-weight:650;letter-spacing:.07em}.task-table tbody tr:hover{background:#ffffff06}.task-actions-cell{align-items:center;gap:6px}.table-action{background:#1b2421;color:var(--text-secondary)}.table-action.danger,.danger-action{border-color:#f1877d47;background:#f1877d17;color:var(--coral)}.table-action.danger:hover,.danger-action:hover{border-color:#f1877d85;background:#f1877d29}.task-completed-row td:first-child{color:var(--muted)}.dashboard-routine-list{gap:7px}.dashboard-routine-item{min-height:46px;padding:10px 12px;border-color:var(--line);border-radius:8px;background:#151a23}.dashboard-routine-item.done,.week-day-card.done{border-color:#83c9a845;background:#83c9a80e}.dashboard-routine-item.done strong{color:var(--mint)}.danger-zone{border-color:#f1877d47;background:linear-gradient(145deg,#301b1957,#111716f5)}.account-list{gap:16px}.account-list dt{color:var(--muted);font-size:.78rem;font-weight:600}.account-list dd{margin-top:4px;color:var(--text)}.routines-grid{grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:14px;align-items:start}.routine-list{gap:8px}.routine-list-item{height:auto;min-height:126px;padding:12px;border-color:var(--line);border-radius:9px;background:#0b0f0e66}.routine-list-item:hover{border-color:var(--line-strong);background:#ffffff06}.routine-list-item.active{border-color:#78a9ff80;background:#78a9ff11;box-shadow:inset 2px 0 var(--accent)}.routine-select strong{color:var(--text);font-size:.94rem}.routine-select span{color:var(--muted);font-size:.84rem}.day-pills{gap:5px}.day-pill{padding:2px 7px;border-color:var(--line-strong);border-radius:5px;color:var(--text-secondary);font-size:.68rem;font-weight:600}.routine-main-title{font-size:1.45rem}.routine-main-description{color:var(--muted)}.activity-toolbar{gap:8px}.weekday-fieldset{border-color:var(--line);border-radius:8px}.weekday-fieldset legend,.weekday-option{color:var(--text-secondary)}.week-grid{gap:7px}.week-day-card{min-width:0;border-color:var(--line);border-radius:9px;background:#151a23}.week-day-card.open{border-color:#f3be744d}.week-day-card.off{background:#111615}.week-day-date,.week-day-status{color:var(--muted)}.heatmap-view-toggle,.heatmap-card,.month-calendar-card,.heatmap-wrap{border-color:var(--line);border-radius:9px;background:#10141b}.heatmap-view-toggle{padding:3px}.heatmap-view-toggle .table-action.active{border-radius:6px;background:var(--accent);color:var(--accent-ink)}.heatmap-period-label{color:var(--text)}.month-calendar-cell,.heatmap-cell{border-color:#2a3443;border-radius:4px}.month-calendar-cell.none,.heatmap-cell.none{background:#171d27}.month-calendar-cell.open,.heatmap-cell.open{border-color:#f3be7475;background:#f3be7447}.month-calendar-cell.done,.heatmap-cell.done{border-color:#83c9a866;background:#83c9a86b;color:#0c1813}.heatmap-cell.blank,.month-calendar-cell.blank{border-color:transparent}.heatmap-legend,.month-calendar-weekdays span,.heatmap-month-label,.heatmap-weekday-axis span{color:var(--muted)}.calendar-toolbar{justify-content:flex-start;margin-bottom:14px}.calendar-controls{justify-content:space-between;gap:8px;padding:7px;border-color:var(--line);border-radius:9px;background:var(--surface)}.calendar-month-label{min-width:160px;font-family:Space Grotesk Variable,sans-serif;font-size:1.05rem}.calendar-container{overflow-x:auto;padding:12px;border-color:var(--line);border-radius:10px;background:#10141bd6}.calendar-weekdays,.calendar-grid{gap:5px;min-width:700px}.calendar-weekday-label{padding:6px;color:var(--muted);font-size:.74rem;font-weight:650}.calendar-cell{min-height:118px;max-height:144px;padding:7px;border-color:#28313f;border-radius:7px;background:#151a23}.calendar-cell:hover{border-color:#4a5d79}.calendar-cell.out-month{background:#101514;opacity:.55}.calendar-cell-date{color:var(--text-secondary);font-size:.78rem}.calendar-item,.calendar-item.task,.calendar-item.routine{border-color:#f3be744d;background:#f3be741c;color:#f3d3a4;font-size:.72rem}.calendar-item.completed{border-color:#83c9a83d;background:#83c9a813;color:var(--mint)}.calendar-item.more{border-color:var(--line-strong);background:var(--surface-soft);color:var(--text-secondary)}.calendar-detail-item{border-color:var(--line);border-radius:8px;background:#151a23}.calendar-detail-type,.calendar-detail-name{color:var(--text-secondary)}.calendar-detail-status{color:var(--mint)}.calendar-detail-item.task .calendar-detail-type,.calendar-detail-item.routine .calendar-detail-type{color:var(--accent)}.modal-overlay{z-index:10;background:#040706c2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{max-height:min(88vh,760px);overflow-y:auto;padding:24px;border-color:var(--line-strong);border-radius:12px;background:#151a23;box-shadow:0 30px 100px #00000085}.modal-title{margin-bottom:18px;font-size:1.35rem}.modal-actions{gap:8px}@media (max-width: 1100px){.app-layout,.app-layout.sidebar-collapsed{grid-template-columns:220px minmax(0,1fr)}.app-layout.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.routines-grid{grid-template-columns:minmax(220px,270px) minmax(0,1fr)}.week-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}}@media (max-width: 900px){.app-layout,.app-layout.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar,.sidebar.collapsed{position:static;height:auto;padding:14px 18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-header,.sidebar.collapsed .sidebar-header{flex-direction:row;justify-content:space-between;margin:0 0 12px}.sidebar.collapsed .sidebar-brand-link{flex-direction:row}.sidebar-nav,.sidebar-bottom-nav{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sidebar.collapsed .sidebar-item{justify-content:flex-start;padding:8px 10px}.dashboard-content{padding:28px 24px 44px}.routines-grid{grid-template-columns:minmax(0,1fr)}.routine-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.routine-list-item{min-height:124px}.calendar-toolbar{justify-content:stretch}.calendar-controls{width:100%}}@media (max-width: 640px){.page{padding:18px 14px}.card{padding:25px 21px;border-radius:12px}.card h1{font-size:1.6rem}.sidebar,.sidebar.collapsed{padding:12px}.sidebar-nav,.sidebar-bottom-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-item{min-height:38px;padding:7px 8px;font-size:.82rem}.dashboard-content{padding:24px 14px 36px}.dashboard-content>h2{font-size:1.35rem}.dashboard-hello{margin:6px 0 18px;font-size:1.8rem}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.panel-card{padding:16px}.tasks-toolbar{flex-wrap:wrap}.tasks-refresh-button{margin-left:auto}.task-actions-cell{flex-direction:row;flex-wrap:wrap}.routine-list,.activity-toolbar{grid-template-columns:minmax(0,1fr)}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.heatmap-card,.month-calendar-card{padding:8px}.heatmap-controls-left{gap:8px}.heatmap-navigation{width:100%}.heatmap-period-label{font-size:.88rem}.calendar-container{padding:8px}.calendar-controls{gap:6px;padding:6px}.calendar-month-label{min-width:100%;order:2;font-size:.94rem}.modal-overlay{align-items:end;padding:10px}.modal-card{max-height:92vh;padding:19px}.modal-actions{grid-template-columns:minmax(0,1fr)}}:root{--bg: #070809;--surface: #0d0f12;--surface-raised: #13161b;--surface-soft: #191d23;--line: #22262d;--line-strong: #343b46;--text: #f0f1f3;--text-secondary: #b8bdc6;--muted: #7f8792;--accent: #6ea4ff;--accent-strong: #5d91ed;--accent-ink: #08111f;--radius: 7px;--shadow-panel: 0 16px 38px rgba(0, 0, 0, .28)}body{background:radial-gradient(760px circle at 90% -20%,rgba(91,145,239,.055),transparent 52%),var(--bg)}.page{background:radial-gradient(620px circle at 50% 0%,rgba(91,145,239,.045),transparent 60%),var(--bg)}.app-layout,.app-layout.sidebar-collapsed,.sidebar{background-color:#0b0c0f}.sidebar{border-right-color:#202329;-webkit-backdrop-filter:none;backdrop-filter:none}.panel-card{border-radius:7px;background:#0e1013;box-shadow:none}.card,.modal-card{border-radius:8px;background:#101216}.sidebar-brand-mark{border-radius:7px;background:#6ea4ff14}.sidebar-item,.sidebar-collapse-toggle,.table-action,.tasks-new-button,.tasks-refresh-button,.primary,.secondary,.link-button,.day-pill,.routine-list-item,.week-day-card,.calendar-cell,.calendar-detail-item,.heatmap-card,.month-calendar-card,.heatmap-wrap,.calendar-controls,.weekday-fieldset,input:not([type=checkbox]),textarea,select,.activity-toolbar select{border-radius:6px}.primary,.tasks-new-button,.primary-link{box-shadow:none}.primary:hover,.tasks-new-button:hover,.primary-link:hover{transform:none}.sidebar-item.active{border-left:2px solid var(--accent);border-radius:4px;background:#6ea4ff13}.routine-list-item.active{border-color:#6ea4ff66;border-radius:6px;background:#6ea4ff0b}.routine-modal-error{margin:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.start-page{background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),#070809;background-size:44px 44px}.start-page-card{position:relative;width:min(100%,460px);padding:40px 36px 34px;border-top:2px solid var(--accent);background:#0d0f12fa;text-align:center}.start-page-card h1{margin-top:0;font-size:2rem}.start-page-card .subtitle{margin:9px 0 28px;color:#969eaa;font-size:.98rem}.start-page-card .action-row{grid-template-columns:minmax(0,1fr);gap:10px}.start-page-card .action-row.single-action{grid-template-columns:minmax(0,1fr)}.start-page-card .link-button{min-height:42px;padding:9px 13px;border-radius:6px;font-size:.9rem}.start-page-card .primary-link{border:1px solid #78a9ff;background:#78a9ff;color:#08111f}.start-page-card .primary-link:hover{border-color:#98bcff;background:#98bcff}.start-page-card .secondary-link{border-color:#343b46;background:#14171c;color:#d0d5de}.start-page-card .secondary-link:hover{border-color:#52627a;background:#1a1f27;color:#f0f1f3}@media (max-width: 480px){.start-page-card{padding:32px 22px 25px}.start-page-card h1{font-size:1.75rem}}
