@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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:light;--font: "Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, monospace;--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f7f8fa;--surface-3: #eef0f3;--border: #e6e8ec;--border-strong: #d3d7de;--text: #16181d;--text-2: #5b6170;--text-3: #9aa1ae;--accent: #6366f1;--accent-hover: #4f52e0;--accent-fg: #ffffff;--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--danger: #e5484d;--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--warning: #e08a00;--success: #12a06f;--status-fresh: #8b93a5;--status-planned: #a855f7;--status-in-progress: #3b82f6;--status-done: #12a06f;--status-abandoned: #a1662f;--dimmed-opacity: .55;--radius-s: 8px;--radius: 12px;--radius-l: 16px;--shadow-1: 0 1px 2px rgb(16 24 40 / .04), 0 1px 3px rgb(16 24 40 / .06);--shadow-2: 0 10px 30px -10px rgb(16 24 40 / .18), 0 2px 6px rgb(16 24 40 / .06);--shadow-3: 0 24px 60px -20px rgb(16 24 40 / .35);--ring: 0 0 0 3px var(--accent-soft);--ease: cubic-bezier(.2, .8, .2, 1);--sidebar-w: 228px;--drawer-w: 470px;--tint-mix: 13%;--tint-text-mix: 68%;--tint-text-base: black}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1015;--surface: #161920;--surface-2: #1b1f28;--surface-3: #232835;--border: #262b36;--border-strong: #363c4a;--text: #e8eaef;--text-2: #a0a7b5;--text-3: #6b7280;--accent: #818cf8;--accent-hover: #939cf9;--accent-fg: #0e1015;--danger: #f0605f;--warning: #f2a93b;--success: #34c48d;--status-fresh: #7c8496;--status-planned: #c084fc;--status-in-progress: #60a5fa;--status-done: #34c48d;--status-abandoned: #c08457;--dimmed-opacity: .48;--shadow-1: 0 1px 2px rgb(0 0 0 / .3);--shadow-2: 0 10px 30px -10px rgb(0 0 0 / .6), 0 2px 6px rgb(0 0 0 / .3);--shadow-3: 0 24px 60px -20px rgb(0 0 0 / .7);--tint-mix: 22%;--tint-text-mix: 72%;--tint-text-base: white}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}h1,h2,h3,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a,.link{color:var(--accent);text-decoration:none}.link{display:inline-flex;align-items:center;gap:4px;font-weight:500}.link:hover{text-decoration:underline}.muted{color:var(--text-2)}.small{font-size:12px}code{font-family:var(--mono);font-size:12px;background:var(--surface-3);padding:1px 5px;border-radius:5px}kbd{font-family:var(--font);font-size:11px;padding:1px 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--text-2)}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:500;white-space:nowrap;transition:background .15s var(--ease),border-color .15s,box-shadow .15s,transform .1s}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 1px 2px #0000001a}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger);border-color:var(--danger);filter:brightness(1.08)}.btn-sm{height:28px;padding:0 10px;font-size:13px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-s);color:var(--text-2);flex:none;transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn-sm{width:26px;height:26px}.icon-btn-danger:hover{background:var(--danger-soft);color:var(--danger)}.input,.select,.textarea{width:100%;min-height:34px;padding:6px 10px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.input:disabled,.select:disabled{opacity:.5;cursor:not-allowed}.input-lg{min-height:44px;font-size:16px;font-weight:500}.textarea{resize:vertical;line-height:1.5}.select{appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239aa1ae' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.select-sm{min-height:28px;padding:2px 26px 2px 8px;font-size:13px}input[type=search]::-webkit-search-cancel-button{display:none}input[type=date],input[type=time],input[type=datetime-local]{font-variant-numeric:tabular-nums}input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}[data-theme=dark] input::-webkit-calendar-picker-indicator{filter:invert(1)}.field-error{color:var(--danger);font-size:12px}.field-note{color:var(--text-3);font-size:12px}.editor-confirm{display:flex;justify-content:flex-end;gap:6px}.placement-row{display:flex;align-items:flex-start;gap:6px}.placement-row>.stack{flex:1;min-width:0}.length-picker{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.length-option{height:26px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;transition:background .12s,border-color .12s,color .12s}.length-option:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.length-option.is-selected{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);color:var(--accent)}.length-option:disabled{opacity:.45;cursor:not-allowed}.length-note{font-size:12.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.stack{display:flex;flex-direction:column;gap:6px}.inline-editors{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.inline-editors .input{width:auto;flex:1 1 130px;min-width:0}.datetime-grid{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px}.datetime-label{font-size:12px;color:var(--text-3)}.datetime-input{display:flex;gap:6px;min-width:0}.datetime-input>.input{flex:1 1 140px;min-width:0}.datetime-input>.datetime-time{flex:none;width:86px;font-variant-numeric:tabular-nums}.color-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--task-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--task-color) 22%,transparent)}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-swatch{width:22px;height:22px;border-radius:50%;background:var(--task-color);border:2px solid transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--task-color) 35%,transparent);transition:transform .12s var(--ease),box-shadow .12s}.color-swatch:hover{transform:scale(1.12)}.color-swatch.is-selected{border-color:var(--surface);box-shadow:0 0 0 2px var(--task-color)}.chip{display:inline-flex;align-items:center;gap:5px;height:24px;max-width:100%;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;background:var(--surface-3);color:var(--text-2);white-space:nowrap;line-height:1}.chip>span{overflow:hidden;text-overflow:ellipsis;min-width:0}.chip>svg{flex:none}.chip-empty{background:transparent;color:var(--text-3);font-weight:400;padding-left:0}.chip-overdue,.chip-today,.chip-soon,.chip-placement{background:color-mix(in srgb,var(--task-color) var(--tint-mix),transparent);color:color-mix(in srgb,var(--task-color) var(--tint-text-mix),var(--tint-text-base))}.chip-overdue{--task-color: var(--danger)}.chip-today{--task-color: var(--warning)}.chip-soon{--task-color: var(--accent)}.chip-parent{cursor:pointer}.chip-parent:hover{background:var(--border);color:var(--text)}.task-key{font-family:var(--mono);font-size:11.5px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.status-fresh{--status: var(--status-fresh)}.status-planned{--status: var(--status-planned)}.status-in-progress{--status: var(--status-in-progress)}.status-done{--status: var(--status-done)}.status-abandoned{--status: var(--status-abandoned)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--status, var(--text-3));flex:none}.chip-status{background:color-mix(in srgb,var(--status) var(--tint-mix),transparent);color:color-mix(in srgb,var(--status) var(--tint-text-mix),var(--tint-text-base));font-weight:600}.status-picker{display:flex;flex-wrap:wrap;gap:6px}.status-option{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.status-option:hover{border-color:var(--border-strong);background:var(--surface-2)}.status-option.is-selected{border-color:color-mix(in srgb,var(--status) 55%,transparent);background:color-mix(in srgb,var(--status) var(--tint-mix),transparent);color:color-mix(in srgb,var(--status) var(--tint-text-mix),var(--tint-text-base))}.label-list{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.chip-label{background:color-mix(in srgb,var(--accent) 10%,var(--surface-3));color:var(--text-2);padding-right:6px}.chip-label.is-clickable{cursor:pointer;border:0;font:inherit;font-weight:500}.chip-label.is-clickable:hover{background:var(--accent-soft);color:var(--accent)}.chip-x{border:0;background:transparent;color:var(--text-3);font-size:15px;line-height:1;padding:0 1px;cursor:pointer;border-radius:3px}.chip-x:hover{color:var(--danger);background:var(--danger-soft)}.labels-editor{display:flex;flex-direction:column;gap:6px}.is-dimmed{opacity:var(--dimmed-opacity)}.is-dimmed .task-title,.is-dimmed .board-card-title{text-decoration:line-through;text-decoration-thickness:1px}.is-dimmed:hover,.is-dimmed:focus-within{opacity:1}.btn-kbd{margin-left:8px;border:0;border-radius:4px;background:#ffffff2e;color:inherit;font-size:10.5px;opacity:.9}.chip-period:not(.chip-overdue){background:color-mix(in srgb,var(--task-color) 8%,var(--surface-3));color:var(--text-2)}.chip.is-clickable:not(.chip-label){border:0;font:inherit;font-size:12px;font-weight:500;cursor:pointer}.chip.is-clickable:not(.chip-label):hover{box-shadow:inset 0 0 0 1px currentColor}.date-box{position:relative;display:inline-flex;align-items:center;min-width:0}.date-box .input{width:100%;min-width:128px;padding-right:32px;font-variant-numeric:tabular-nums}.date-box.is-invalid .input{border-color:var(--danger)}.date-box-btn{position:absolute;right:4px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-3);cursor:pointer}.date-box-btn:hover{background:var(--surface-3);color:var(--text)}.date-box-native{position:absolute;left:0;bottom:0;width:100%;height:0;padding:0;border:0;opacity:0;pointer-events:none}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100%;transition:grid-template-columns .18s var(--ease)}.shell.is-folded{grid-template-columns:56px 1fr}.sidebar.is-folded{align-items:center;padding:18px 8px 16px}.sidebar.is-folded .nav-item{justify-content:center;width:40px;padding:0}.sidebar.is-folded .sidebar-footer{align-items:center;gap:6px}.sidebar-buttons{display:flex;gap:2px}.sidebar{display:flex;flex-direction:column;gap:18px;padding:18px 12px 16px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#a78bfa);color:#fff;box-shadow:0 6px 14px -6px var(--accent),inset 0 1px #ffffff40}.brand-name{font-weight:700;font-size:13px;letter-spacing:.16em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:var(--radius-s);color:var(--text-2);font-weight:500;text-align:left;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.is-active{background:var(--accent-soft);color:var(--accent)}.nav-count{margin-left:auto;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surface-3);color:var(--text-2)}.nav-item.is-active .nav-count{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding:0 4px}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.sidebar-release{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums;cursor:default}.sidebar-account{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.sidebar-user{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--text-2)}.login-page{display:grid;place-items:center;height:100%;padding:24px;background:var(--bg)}.login-card{width:min(360px,100%);padding:28px 28px 30px;border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);box-shadow:var(--shadow-2)}.login-card h1{margin:18px 0;font-size:18px}.login-brand{display:flex;align-items:center;gap:10px}.login-form{gap:14px}.login-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-2)}.login-submit{justify-content:center;margin-top:4px}.login-note{margin:0 0 14px;font-size:13px}.sidebar-hints{display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:var(--text-3)}.sidebar-hints span{display:flex;align-items:center;gap:6px}.shell-main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 28px;border-bottom:1px solid var(--border);flex:none}.topbar-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;letter-spacing:-.01em}.topbar-count{font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:0;cursor:default}.topbar-actions{display:flex;align-items:center;gap:10px}.search{position:relative;display:flex;align-items:center;width:280px}.search>svg{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.search .input{padding-left:32px;padding-right:30px}.search .icon-btn{position:absolute;right:3px}.search-sm{width:100%}.search-sm .input{min-height:30px;font-size:13px;padding-left:30px}.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 28px;border-bottom:1px solid var(--border);flex:none;font-size:12px}.filter-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;font-size:10.5px;font-weight:600}.filter-statuses{display:flex;gap:5px;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s,opacity .12s}.filter-chip:hover{border-color:var(--border-strong);background:var(--surface-2)}.filter-chip.is-on{border-color:color-mix(in srgb,var(--status) 55%,transparent);background:color-mix(in srgb,var(--status) var(--tint-mix),transparent);color:color-mix(in srgb,var(--status) var(--tint-text-mix),var(--tint-text-base))}.filter-chip.is-off{opacity:.4}.filter-label-chip{gap:0;padding:0 4px 0 0}.filter-label-chip.is-on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent)}.filter-label-chip-main{display:inline-flex;align-items:center;gap:4px;height:100%;padding:0 4px 0 9px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.filter-pin{display:grid;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-3);opacity:0;cursor:pointer;transition:opacity .12s}.filter-label-chip:hover .filter-pin,.filter-pin:focus-visible{opacity:1}.filter-pin:hover{background:var(--surface-3);color:var(--text)}.filter-hint{color:var(--text-3);font-style:italic}.filter-labels{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-left:auto;min-width:0}.filter-labels-icon{color:var(--text-3);flex:none}.filter-labels.is-active .filter-labels-icon{color:var(--accent)}.filter-or{color:var(--text-3);font-style:italic}.filter-label-input{width:130px;height:24px;padding:0 8px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text);font-size:12px;transition:border-color .12s,background .12s,width .15s var(--ease)}.filter-label-input::placeholder{color:var(--text-3)}.filter-label-input:hover{border-color:var(--border)}.filter-label-input:focus{outline:none;width:170px;border-color:var(--accent);background:var(--surface);box-shadow:var(--ring)}.filter-active-label{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:500;cursor:pointer}.filter-active-label:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.shell-content{flex:1;min-height:0;overflow:auto;padding:22px 28px 40px;transition:padding-right .22s var(--ease)}@media(min-width:1360px){.shell.has-drawer .shell-content{padding-right:calc(var(--drawer-w) + 28px)}}.view{display:flex;flex-direction:column;gap:16px;min-height:100%}.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sort-control{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px}.sort-control .select{width:auto}.filter-when{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}.filter-when.is-active .filter-labels-icon{color:var(--accent)}.filter-when-chip.is-on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent)}.filter-all.is-on{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.quick-add{display:flex;align-items:center;gap:8px;flex:1 1 320px;max-width:560px;height:40px;padding:0 6px 0 12px;border-radius:var(--radius);border:1px dashed var(--border-strong);background:var(--surface);color:var(--text-3);transition:border-color .15s,box-shadow .15s}.quick-add:focus-within{border-style:solid;border-color:var(--accent);box-shadow:var(--ring)}.quick-add input{flex:1;min-width:0;border:0;background:transparent;outline:none;color:var(--text)}.quick-add input::placeholder{color:var(--text-3)}.quick-add-sm{flex:none;height:30px;max-width:none;padding:0 4px 0 10px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent}.quick-add-sm:hover{color:var(--text-2)}.quick-add-sm:focus-within{border-style:solid;border-color:transparent;border-bottom-color:var(--accent);box-shadow:none}.task-table-scroll{overflow-x:auto}.task-table{min-width:min-content;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.task-row{display:grid;grid-template-columns:var(--columns);align-items:center;gap:12px;min-height:46px;padding:0 10px 0 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.task-row:last-child{border-bottom:0}.task-row:hover{background:var(--surface-2)}.task-row.is-selected{background:var(--accent-soft)}.task-row:focus-visible{outline-offset:-2px}.task-row-head{min-height:38px;cursor:default;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);background:var(--surface-2)}.task-cell{display:flex;align-items:center;min-width:0}.col-sort{display:inline-flex;align-items:center;gap:4px;min-width:0;padding:2px 4px;margin-left:-4px;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.col-sort:hover{background:var(--surface-3);color:var(--text-2)}.col-sort.is-active{color:var(--accent)}.col-sort>span{overflow:hidden;text-overflow:ellipsis}.collapse-toggle{display:grid;place-items:center;width:18px;height:18px;flex:none;border:0;border-radius:4px;background:transparent;color:var(--text-3);cursor:pointer;transition:transform .14s var(--ease),background .12s,color .12s}.collapse-toggle:hover{background:var(--surface-3);color:var(--text)}.collapse-toggle.is-open{transform:rotate(90deg)}.collapse-spacer{width:18px;flex:none}.task-cell-title{font-weight:500}.title-cell{display:flex;align-items:center;gap:8px;min-width:0}.task-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtask-arrow{color:var(--text-3);flex:none}.task-cell-actions{justify-content:flex-end}.row-actions{display:flex;gap:2px;opacity:0;transition:opacity .12s}.task-row:hover .row-actions,.task-row:focus-within .row-actions,.board-card:hover .row-actions,.board-card:focus-within .row-actions{opacity:1}.board-scroll{flex:1;display:flex;flex-direction:column;overflow-x:auto;padding-bottom:4px}.board{flex:1;display:grid;gap:14px;align-items:stretch;min-width:min-content}.board-column{display:flex;flex-direction:column;gap:8px;min-height:160px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);transition:border-color .12s,background .12s,box-shadow .12s}.board-column.is-drop-target{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface-2));box-shadow:var(--ring)}.board-column-head{display:flex;align-items:center;gap:6px;padding:2px 4px 4px;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.board-column-title{flex:1;min-width:0}.board-column-empty{padding:18px 8px;border:1px dashed var(--border);border-radius:var(--radius-s);color:var(--text-3);font-size:12.5px;text-align:center}.board-abandon{padding:12px 8px;border:1px dashed color-mix(in srgb,var(--status) 60%,transparent);border-radius:var(--radius-s);color:color-mix(in srgb,var(--status) var(--tint-text-mix),var(--tint-text-base));font-size:12.5px;font-weight:600;text-align:center}.board-abandon.is-drop-target{border-style:solid;background:color-mix(in srgb,var(--status) var(--tint-mix),transparent)}.board-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--task-color);border-radius:var(--radius-s);background:var(--surface);box-shadow:var(--shadow-1);cursor:grab;transition:box-shadow .15s,border-color .15s,opacity .15s}.board-card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);border-left-color:var(--task-color)}.board-card:active{cursor:grabbing}.board-card.is-selected{border-color:var(--accent);border-left-color:var(--task-color);box-shadow:var(--ring)}.board-card.is-dragging{opacity:.4}.board-card-head{display:flex;align-items:center;gap:8px;min-height:22px}.board-card-head .row-actions{margin:-4px -6px -4px auto}.board-card-parent{display:inline-flex;align-items:center;gap:3px;min-width:0;padding:0;color:var(--text-3);font-size:11.5px}.board-card-parent span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-card-parent:hover{color:var(--accent)}.board-card-title{font-size:13.5px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.board-card-description{color:var(--text-2);font-size:12.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}.board-card-meta,.board-card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.board-card-meta:empty{display:none}.board-card-foot .chip{height:20px;padding:0 4px;background:transparent;color:var(--text-3);font-size:11px}.board-card-dates{display:inline-flex;gap:2px;margin-left:auto}.task-description{color:var(--text-2);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}.task-description.is-empty{color:var(--text-3);font-style:italic}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:64px 24px;color:var(--text-2)}.empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:6px;border-radius:16px;background:var(--surface-3);color:var(--text-3)}.empty-state h3{font-size:16px;font-weight:600;color:var(--text)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.board-column-note{margin:4px;padding:10px;border:1px dashed var(--border-strong);border-radius:var(--radius-s);color:var(--text-3);font-size:12.5px;text-align:center}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:20;display:flex;flex-direction:column;width:var(--drawer-w);max-width:100vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-3);animation:drawer-in .22s var(--ease)}.drawer:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--task-color)}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:0 12px 0 22px;border-bottom:1px solid var(--border);flex:none}.drawer-crumb{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-key{flex:none;padding:2px 6px;border-radius:6px;background:var(--surface-3);color:var(--text-2);font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;transition:background .12s,color .12s}.drawer-key:hover{background:var(--accent-soft);color:var(--accent)}.drawer-crumb .link{max-width:100%}.drawer-actions{display:flex;gap:2px;flex:none}.drawer-body{flex:1;overflow:auto;padding:18px 22px 28px;display:flex;flex-direction:column;gap:24px}.drawer.is-closed .title-input{color:var(--text-2);text-decoration:line-through;text-decoration-thickness:1px}.drawer-title-row{display:flex;align-items:flex-start;gap:10px}.drawer-title-row>.color-dot{margin-top:13px}.title-input{flex:1;min-width:0;margin-left:-8px;padding:4px 8px;font:inherit;font-size:20px;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:inherit;resize:none;overflow:hidden;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;transition:border-color .15s,background .15s,box-shadow .15s}.title-input:hover{background:var(--surface-2)}.title-input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:var(--ring)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-wide{grid-column:1 / -1}.field-label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.drawer-section{display:flex;flex-direction:column;gap:10px}.drawer-group{display:flex;flex-direction:column;gap:14px;padding-top:14px;border-top:1px solid var(--border)}.drawer-group-body{display:flex;flex-direction:column;gap:20px}.group-toggle{color:var(--text-2)}.group-toggle:hover{color:var(--text)}.group-summary{flex:1;min-width:0;overflow:hidden;font-weight:400;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap}.group-summary+.chevron{margin-left:0}.drawer-group .section-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.section-title,.section-toggle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text)}.section-toggle{width:100%;text-align:left}.count{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surface-3);color:var(--text-2)}.chevron{margin-left:auto;color:var(--text-3);transition:transform .15s}.chevron.is-open{transform:rotate(180deg)}.picker{position:relative;display:flex;align-items:center}.picker .input{padding-right:34px}.picker-clear{position:absolute;right:4px}.picker-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:5;max-height:280px;overflow:auto;padding:4px;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);box-shadow:var(--shadow-2)}.picker-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer}.picker-option.is-active{background:var(--accent-soft)}.picker-option-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-option-crumb{color:var(--text-3)}.picker-option-note{flex:none;font-size:11px;color:var(--text-3)}.picker-empty{padding:8px;font-size:12.5px;color:var(--text-3)}.subtask-list{display:flex;flex-direction:column;gap:4px}.subtask-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface-2);text-align:left;transition:background .12s,border-color .12s}.subtask-row:hover{background:var(--surface-3);border-color:var(--border-strong)}.subtask-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.subtask-row.is-closed .subtask-title{color:var(--text-3);text-decoration:line-through;text-decoration-thickness:1px}.subtask-row.is-closed .color-dot{opacity:.5}.subtask-mark{flex:none;color:var(--text-3)}.subtask-mark.is-done{color:var(--success)}.comment-compose{display:flex;flex-direction:column;gap:6px}.comment-compose .textarea{min-height:56px}.comment-compose-actions{display:flex;justify-content:flex-end;gap:6px}.comment-list{display:flex;flex-direction:column;gap:10px}.comment{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-2)}.comment-head{display:flex;align-items:center;gap:6px;min-height:26px;font-size:11.5px;color:var(--text-3)}.comment-edited{font-style:italic}.comment-actions{display:flex;align-items:center;gap:2px;margin-left:auto;opacity:0;transition:opacity .12s}.comment:hover .comment-actions,.comment:focus-within .comment-actions{opacity:1}.comment-text{font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.history-list{display:flex;flex-direction:column;gap:12px;margin-left:6px;padding-left:16px;border-left:2px solid var(--border)}.history-group{position:relative;display:flex;flex-direction:column;gap:4px}.history-group:before{content:"";position:absolute;left:-21px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.history-time{font-size:11.5px;font-weight:500;color:var(--text-3)}.history-entry{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;color:var(--text-2)}.history-field{font-weight:600;color:var(--text)}.history-from{text-decoration:line-through;color:var(--text-3)}.history-arrow{color:var(--text-3)}.history-to{font-weight:500;color:var(--text)}.history-badge{display:inline-flex;align-items:center;gap:3px;padding:0 5px;border-radius:999px;background:var(--surface-3);color:var(--text-3);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.history-comment{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}.history-comment-head{display:flex;align-items:center;gap:6px}.history-comment-head>svg{color:var(--text-3)}.history-comment-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;padding:4px 8px;border-left:2px solid var(--border-strong);border-radius:0 var(--radius-s) var(--radius-s) 0;background:var(--surface-2);color:var(--text);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer}.history-comment-text.is-expanded{display:block;cursor:default}.history-comment-text.is-before{color:var(--text-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--text-3) 60%,transparent)}.history-comment-text.is-deleted{color:var(--text-2);border-left-style:dashed}.history-run-toggle{display:inline-flex;align-items:center;gap:2px;padding:0 6px 0 3px;border-radius:999px;background:var(--surface-3);color:var(--text-3);font-size:11px;font-weight:500}.history-run-toggle:hover{color:var(--text-2)}.history-run-toggle svg{transition:transform .14s var(--ease)}.history-run-toggle svg.is-open{transform:rotate(90deg)}.history-run-steps{flex-basis:100%;display:flex;flex-direction:column;gap:2px;max-height:220px;overflow:auto;padding-left:8px;font-size:12px}.history-run-steps li{display:flex;gap:6px}.history-run-steps time{color:var(--text-3);font-variant-numeric:tabular-nums}.drawer-meta{padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#0a0c1273;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .15s}.modal{width:520px;max-width:100%;max-height:calc(100vh - 40px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-3);animation:pop-in .18s var(--ease)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 0 22px}.modal-head h2{font-size:16px;font-weight:600}.modal-body{padding:16px 22px 22px}.form{display:flex;flex-direction:column;gap:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.form-note{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-s);background:var(--surface-2);font-size:13px;color:var(--text-2)}.form-note svg{flex:none;color:var(--accent)}.form-error{color:var(--danger);font-size:13px}.discard-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:var(--radius-s);background:var(--danger-soft);font-size:13px;animation:pop-in .14s var(--ease)}.discard-bar>span{flex:1;min-width:180px}.checkbox{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer}.checkbox input{margin-top:3px;accent-color:var(--accent)}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 40px))}.toast{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);font-size:13px;animation:toast-in .2s var(--ease)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.toast-main{flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}.toast-main>svg{flex:none;margin-top:1px}.toast-text{min-width:0;display:flex;flex-direction:column;gap:2px}.toast-message{font-weight:500}.toast-detail{overflow:hidden;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap}.toast.is-clickable{transition:border-color .15s}.toast.is-clickable:hover{border-color:var(--accent)}.toast.is-clickable .toast-main{cursor:pointer}.toast-error{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.toast-error .toast-main>svg{color:var(--danger)}.toast-success .toast-main>svg{color:var(--success)}.toast-info .toast-main>svg{color:var(--accent)}.period-picker{flex:1;min-width:0}.period-stepper{display:flex;align-items:center;gap:4px}.period-stepper .input{flex:1;min-width:0}.period-label{flex:1;display:flex;align-items:baseline;gap:8px;min-width:0;padding:0 4px;font-size:13px}.period-label>span{color:var(--text-3);font-size:12px;white-space:nowrap}.period-quick .length-option:not(.is-selected){border-style:dashed}.when-modes{flex-wrap:nowrap;gap:0}.when-modes .length-option{margin-left:-1px;padding:0 9px;border-radius:0}.when-modes .length-option:first-child{margin-left:0;border-radius:999px 0 0 999px}.when-modes .length-option:last-child{border-radius:0 999px 999px 0}.when-modes .length-option.is-selected{position:relative;z-index:1}.calendar-view{height:100%;gap:0}.calendar-layout{display:grid;grid-template-columns:1fr;gap:16px;height:100%;min-height:0}.calendar-main{min-width:0;min-height:0;height:100%}.unplanned{position:relative;display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);transition:border-color .12s,background .12s,box-shadow .12s}.panel-resizer{position:absolute;top:0;right:-12px;bottom:0;z-index:3;width:8px;cursor:col-resize;touch-action:none}.panel-resizer:after{content:"";position:absolute;top:12px;bottom:12px;left:3px;width:2px;border-radius:1px;background:transparent;transition:background .12s}.panel-resizer:hover:after,.panel-resizer:active:after{background:var(--accent)}.unplanned-drop-hint{padding:6px 8px;border-radius:var(--radius-s);background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600;text-align:center}.unplanned-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.unplanned-list{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.unplanned-row{display:flex;align-items:center;gap:6px;padding:7px 10px 7px 4px;border-radius:var(--radius-s);border:1px solid transparent;-webkit-user-select:none;user-select:none}.unplanned-row .grip{color:var(--text-3);flex:none}.unplanned-row .task-title{flex:1;min-width:0;font-size:13px;font-weight:500}.unplanned-item{border-color:var(--border);background:var(--surface-2);cursor:grab;transition:background .12s,border-color .12s,box-shadow .12s}.unplanned-item:hover{border-color:var(--border-strong);background:var(--surface-3)}.unplanned-item:active{cursor:grabbing}.unplanned-context{padding-top:3px;padding-bottom:1px;color:var(--text-3);cursor:pointer}.unplanned-context .task-title{font-weight:500;color:var(--text-3)}.unplanned-context:hover .task-title{color:var(--text-2)}.unplanned-context .color-dot{opacity:.55}.unplanned-row.is-closed{opacity:var(--dimmed-opacity)}.unplanned-row.is-closed:hover{opacity:1}.unplanned-row.is-closed .task-title{text-decoration:line-through;text-decoration-thickness:1px}.unplanned-fold,.unplanned-fold-spacer{flex:none;display:grid;place-items:center;width:16px;height:16px}.unplanned-fold{padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-3);cursor:pointer}.unplanned-fold:hover{background:var(--surface-3);color:var(--text)}.unplanned-fold>svg{transition:transform .14s var(--ease)}.unplanned-fold.is-open>svg{transform:rotate(90deg)}.unplanned-hint{font-size:12px;color:var(--text-3)}.fc-event-dragging.unplanned-item{box-shadow:var(--shadow-2);background:var(--surface);opacity:.95}.calendar-main .fc{--fc-border-color: var(--border);--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--surface-2);--fc-neutral-text-color: var(--text-2);--fc-today-bg-color: color-mix(in srgb, var(--accent) 6%, transparent);--fc-now-indicator-color: var(--danger);--fc-highlight-color: var(--accent-soft);--fc-event-bg-color: var(--accent);--fc-event-border-color: var(--accent);--fc-event-text-color: var(--text);--fc-button-bg-color: var(--surface);--fc-button-border-color: var(--border);--fc-button-text-color: var(--text);--fc-button-hover-bg-color: var(--surface-2);--fc-button-hover-border-color: var(--border-strong);--fc-button-active-bg-color: var(--accent-soft);--fc-button-active-border-color: transparent;--fc-more-link-bg-color: var(--surface-3);--fc-more-link-text-color: var(--text-2);--fc-small-font-size: 12px;font-size:13px;height:100%}.calendar-main .fc .fc-toolbar.fc-header-toolbar{margin-bottom:14px;gap:10px;flex-wrap:wrap}.calendar-main .fc .fc-toolbar-title{font-size:18px;font-weight:600;letter-spacing:-.01em}.calendar-main .fc .fc-button{height:32px;padding:0 12px;border-radius:var(--radius-s);font-size:13px;font-weight:500;text-transform:none;box-shadow:none!important;transition:background .15s,border-color .15s}.calendar-main .fc .fc-button:focus-visible{box-shadow:var(--ring)!important}.calendar-main .fc .fc-button-primary:not(:disabled).fc-button-active{color:var(--accent);font-weight:600}.calendar-main .fc .fc-button-group>.fc-button{margin:0}.calendar-main .fc .fc-button .fc-icon{font-size:1.1em}.calendar-main .fc .fc-view-harness{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.calendar-main .fc-theme-standard .fc-scrollgrid{border:0}.calendar-main .fc-theme-standard td,.calendar-main .fc-theme-standard th{border-color:var(--border)}.calendar-main .fc .fc-col-header-cell{padding:8px 0;background:var(--surface-2)}.calendar-main .fc .fc-col-header-cell-cushion{color:var(--text-2);font-weight:500;text-decoration:none}.kr-dayhead{display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1.1}.kr-dayhead-dow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.kr-dayhead-dom{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:17px;font-weight:600;color:var(--text)}.kr-dayhead.is-today .kr-dayhead-dom{background:var(--accent);color:var(--accent-fg)}.kr-dayhead.is-today .kr-dayhead-dow{color:var(--accent)}.calendar-main .fc .fc-daygrid-day-number{padding:6px 8px;color:var(--text-2);font-weight:500;text-decoration:none}.calendar-main .fc .fc-day-today .fc-daygrid-day-number{color:var(--accent);font-weight:700}.calendar-main .fc .fc-daygrid-day.fc-day-other .fc-daygrid-day-number{color:var(--text-3)}.calendar-main .fc .fc-timegrid-slot{height:2.3em}.calendar-main .fc .fc-timegrid-slot-label-cushion,.calendar-main .fc .fc-timegrid-axis-cushion{color:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}.calendar-main .fc .fc-timegrid-slot-minor{border-top-style:dashed}.calendar-main .fc .fc-timegrid-now-indicator-line{border-width:2px 0 0}.calendar-main .fc .fc-timegrid-now-indicator-arrow{border-color:var(--danger);border-width:5px 0 5px 6px}.calendar-main .fc .fc-daygrid-more-link{font-size:11px;font-weight:500}.calendar-main .fc .fc-daygrid-event{margin:1px 3px}.calendar-main .fc .kr-event{--ev: var(--accent);border:0;border-radius:6px;box-shadow:none;font-size:12px;cursor:pointer}.calendar-main .fc .kr-event .fc-event-main{color:inherit}.calendar-main .fc .kr-event:focus:after,.calendar-main .fc .kr-event.fc-event-selected:after{display:none}.calendar-main .fc .kr-event:focus{box-shadow:none}.calendar-main .fc .kr-event:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-main .fc .kr-dimmed{opacity:var(--dimmed-opacity)}.calendar-main .fc .kr-dimmed:hover{opacity:1}.calendar-main .fc .kr-dimmed .kr-ev-title{text-decoration:line-through;text-decoration-thickness:1px}.calendar-main .fc .kr-placement{background:color-mix(in srgb,var(--ev) var(--tint-mix),var(--surface));color:color-mix(in srgb,var(--ev) var(--tint-text-mix),var(--tint-text-base));border-left:3px solid var(--ev)}.calendar-main .fc .kr-placement:hover{background:color-mix(in srgb,var(--ev) calc(var(--tint-mix) + 8%),var(--surface))}.calendar-main .fc .fc-timegrid-event.kr-placement{padding:3px 6px 2px 5px}.calendar-main .fc .fc-timegrid-event.kr-placement .fc-event-main{padding:0}.calendar-main .fc .fc-daygrid-dot-event.kr-placement{padding:2px 6px}.calendar-main .fc .fc-daygrid-dot-event .fc-daygrid-event-dot{display:none}.calendar-main .fc .kr-deadline{background:transparent;color:color-mix(in srgb,var(--ev) var(--tint-text-mix),var(--tint-text-base));border:0;padding:1px 4px}.calendar-main .fc .kr-deadline:hover{background:color-mix(in srgb,var(--ev) 8%,transparent)}.kr-ev-ring{flex:none;width:10px;height:10px;border:2px solid var(--ev);border-radius:50%}.kr-ev{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.kr-ev-deadline{flex-direction:row;align-items:center;gap:5px}.kr-ev-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kr-ev-time{font-size:11px;opacity:.8;font-variant-numeric:tabular-nums}.kr-ev-parent{font-weight:500;opacity:.65}.kr-ev-deadline .kr-ev-time{margin-left:auto}.fc-timegrid-event .kr-ev-placement{height:100%}.fc-timegrid-event .kr-ev-placement .kr-ev-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.fc-timegrid-event .kr-ev-placement .kr-ev-title{flex:none}.kr-ev-desc{flex:1 1 0;min-height:0;margin-top:2px;overflow:hidden;font-size:11px;line-height:1.35;opacity:.8;white-space:pre-line;overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 10px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 10px),transparent)}.fc-timegrid-event.kr-len-m .kr-ev-placement .kr-ev-title{-webkit-line-clamp:1}.fc-timegrid-event.kr-len-s .kr-ev-placement,.fc-timegrid-event.kr-len-xs .kr-ev-placement{flex-direction:row;align-items:baseline;gap:5px}.fc-timegrid-event.kr-len-s .kr-ev-placement .kr-ev-title,.fc-timegrid-event.kr-len-xs .kr-ev-placement .kr-ev-title{display:block;flex:1;min-width:0;white-space:nowrap}.fc-timegrid-event.kr-len-s .kr-ev-time,.fc-timegrid-event.kr-len-xs .kr-ev-time{flex:none}.calendar-main .fc .fc-timegrid-event.kr-placement.kr-len-s{padding-top:2px;padding-bottom:0}.calendar-main .fc .fc-timegrid-event.kr-placement.kr-len-xs{padding-top:0;padding-bottom:0;font-size:11px;line-height:1.2}.fc-daygrid-dot-event .kr-ev-placement,.fc-daygrid-block-event .kr-ev-placement{flex-direction:row;align-items:center;gap:5px}.calendar-main .fc .fc-event-mirror{opacity:.9;box-shadow:var(--shadow-2)}.calendar-main.is-copying .fc .kr-copy-source{visibility:visible!important}.calendar-main.is-copying .fc .fc-event-mirror{cursor:copy}.calendar-main.is-copying .fc .fc-event-mirror:after{content:"+";position:absolute;top:-7px;right:-7px;z-index:5;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:var(--accent-fg);font-size:13px;font-weight:700;line-height:1;box-shadow:var(--shadow-1)}.calendar-main .fc .kr-dayplan{background:color-mix(in srgb,var(--ev) 9%,var(--surface));color:color-mix(in srgb,var(--ev) var(--tint-text-mix),var(--tint-text-base));border:1px solid color-mix(in srgb,var(--ev) 28%,transparent);padding:1px 5px}.calendar-main .fc .kr-dayplan:hover{background:color-mix(in srgb,var(--ev) 16%,var(--surface))}.kr-ev-day{flex-direction:row;align-items:center;gap:5px}.kr-ev-square{flex:none;width:9px;height:9px;border-radius:2px;background:var(--ev)}.calendar-main .fc .kr-dayplan.kr-overdue .kr-ev-square{background:transparent;border:2px solid var(--danger)}.calendar-main .fc .kr-span{background:color-mix(in srgb,var(--ev) var(--tint-mix),var(--surface));color:color-mix(in srgb,var(--ev) var(--tint-text-mix),var(--tint-text-base));padding:1px 6px}.calendar-main .fc .kr-span.fc-event-start{border-left:3px solid var(--ev)}.calendar-main .fc .kr-span:hover{background:color-mix(in srgb,var(--ev) calc(var(--tint-mix) + 8%),var(--surface))}.calendar-main .fc .kr-span.kr-overdue{box-shadow:inset 0 0 0 1px var(--danger)}.kr-ev-span{flex-direction:row;align-items:center;white-space:nowrap}@keyframes kr-flash{0%,to{box-shadow:0 0 0 0 transparent}30%,70%{box-shadow:0 0 0 3px var(--accent)}}.calendar-main .fc .kr-flash,.unplanned-row.is-flash{animation:kr-flash 1.1s var(--ease) 2}.plan-section{display:flex;flex-direction:column;gap:6px;padding:4px;border:1px dashed transparent;border-radius:var(--radius-s);transition:border-color .12s,background .12s}.plan-section.is-drop-target{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.plan-section-head{display:flex;align-items:baseline;gap:6px;padding:2px 2px 0;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.plan-section-days{flex:1;min-width:0;display:flex;flex-wrap:wrap;height:1lh;overflow:hidden;font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-3)}.plan-section-days:before{content:"​"}.plan-section-days>span{white-space:nowrap}.plan-section-head .count{margin-left:auto}.plan-section.is-past .plan-section-head{color:var(--danger)}.plan-section-head.is-foldable{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px}.plan-section-head.is-foldable:hover{color:var(--text)}.plan-section-head.is-foldable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-fold{flex:none;align-self:center;margin-left:-2px;color:var(--text-3);transition:transform .15s}.plan-fold.is-open{transform:rotate(90deg)}.plan-add{display:grid;place-items:center;align-self:center;width:24px;height:24px;margin:-4px -4px -4px 0;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-3);cursor:pointer;transition:background .12s,color .12s}.plan-add:hover{background:var(--accent-soft);color:var(--accent)}.plan-section-tag{font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-3)}.plan-section-tag.is-now{padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.plan-section-empty{padding:2px 4px 4px;font-size:12px;color:var(--text-3)}.calendar-main .fc-dayGridMonth-view .fc-daygrid-body-unbalanced tbody>tr{height:var(--kr-month-row, auto)}.calendar-main .fc .fc-timegrid-divider{padding:0 0 5px;cursor:row-resize;transition:background .12s}.calendar-main .fc .fc-timegrid-divider:hover,body.is-resizing-rows .calendar-main .fc .fc-timegrid-divider{background:var(--accent-soft)}body.is-resizing-rows{cursor:row-resize;-webkit-user-select:none;user-select:none}.calendar-main .fc .fc-popover-body{overflow-y:auto}.calendar-main .fc .fc-daygrid-week-number{top:0;bottom:0;left:0;width:30px;padding:0;display:flex;background:var(--surface-2);border-right:1px solid var(--border);color:var(--text-3)}.calendar-main .fc .fc-daygrid-body tr>td:first-child .fc-daygrid-day-top,.calendar-main .fc .fc-daygrid-body tr>td:first-child .fc-daygrid-day-events{margin-left:30px}.kr-week{cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:100%;font-size:11px;font-weight:600;color:var(--text-3);border-radius:6px;transition:background .12s,color .12s}.kr-week-count{min-width:18px;padding:1px 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);text-align:center}.kr-week:hover{background:var(--accent-soft);color:var(--accent)}.kr-week.is-drop-target{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-main .fc .fc-timegrid-axis .fc-timegrid-axis-frame{justify-content:center}.calendar-main .fc .fc-timegrid-axis .kr-week{flex-direction:row;width:100%;padding:6px 2px}.buckets-panel .plan-section.is-empty{gap:0}.unplanned-row{flex-wrap:wrap}.unplanned-row .row-meta{flex-basis:100%;padding-left:50px;margin-top:-2px}.calendar-main.is-folded{display:none}.unplanned-head .panel-fold,.unplanned-head .panel-add{margin-left:auto;color:var(--text-3)}.unplanned-head .panel-add+.panel-fold{margin-left:0}.unplanned-head .panel-add:hover{color:var(--accent)}.column-strip{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0;min-height:0;padding:12px 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text-2);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.column-strip:hover{border-color:var(--border-strong);color:var(--text)}.column-strip-label{writing-mode:vertical-rl}.column-strip.is-drop-target{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
