:root{--t-surface: oklch(15.5% .006 60);--t-card: oklch(23% .007 60);--t-border: oklch(36% .008 60);--t-border-strong: oklch(53% .008 60);--t-text: oklch(93% .005 80);--t-text-muted: oklch(68% .008 70);--t-onfill: oklch(15.5% .006 60);--t-urgent: oklch(63% .21 18);--t-soon: oklch(80% .16 72);--t-done: oklch(86% .21 150);--t-wait: oklch(70% .23 320);--t-focus: oklch(80% .135 205);--t-label-blue: oklch(72% .06 255);--t-label-pink: oklch(80% .055 350);--t-label-sand: oklch(82% .04 95);--t-label-brown: oklch(60% .05 55);--t-label-slate: oklch(54% 0 0);--t-label-white: oklch(94% .004 90);--t-neutral: var(--t-text);--t-muted: var(--t-text-muted)}:root{color-scheme:dark;background:var(--t-surface);color:var(--t-text)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--t-surface);color:var(--t-text);font-family:Geist Variable,system-ui,sans-serif}button,input{color:inherit;background:var(--t-card);border:1px solid var(--t-border-strong);border-radius:8px;font:inherit}button{min-width:44px;min-height:44px;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--t-focus);outline-offset:2px}input{min-height:44px;padding:0 10px}h1,h2{margin:0}.glyph{display:inline-block;width:16px;height:16px;flex:none}.glyph svg{display:block;width:100%;height:100%}.glyph-legend{display:flex;gap:14px;align-items:center;padding:8px 16px}.task-card{position:relative;display:flex;width:280px;background:var(--t-card);border-radius:10px;overflow:hidden;color:var(--t-text);border:1px solid var(--t-border)}.priority-strip{width:4px;flex:none;align-self:stretch}.priority-strip-0{background:var(--t-urgent)}.priority-strip-1{background:var(--t-soon)}.priority-strip-3{background:repeating-linear-gradient(180deg,var(--t-muted) 0 6px,transparent 6px 10px)}.task-card-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:10px 12px 10px 11px}.task-head{display:flex;align-items:center;gap:6px;min-width:0;color:var(--t-muted);font-size:11px;line-height:16px;letter-spacing:.06em;text-transform:uppercase}.priority-code{display:inline-flex;align-items:center;gap:2px;color:var(--t-text);font-weight:600;letter-spacing:0}.priority-code svg{width:12px;height:12px;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.priority-0 svg{stroke:var(--t-urgent)}.priority-1 svg{stroke:var(--t-soon)}.priority-3,.priority-3 svg{color:var(--t-muted);stroke:var(--t-muted)}.task-title{font-size:15px;line-height:20px;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}.task-status-cancelled .task-title{color:var(--t-muted);text-decoration:line-through}.priority-strip-3+.task-card-content .task-title{opacity:.7}.task-labels{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}.label{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px 0 8px;border:1px solid var(--t-border-strong);border-radius:999px}.label-dot{width:6px;height:6px;border-radius:50%}.label-blue{background:var(--t-label-blue)}.label-pink{background:var(--t-label-pink)}.label-sand{background:var(--t-label-sand)}.label-brown{background:var(--t-label-brown)}.label-slate{background:var(--t-label-slate)}.label-white{background:var(--t-label-white)}.task-meta{display:flex;align-items:center;gap:10px;min-height:24px;color:var(--t-muted);font-size:12px;font-variant-numeric:tabular-nums}.meta-spacer{flex:1}.due{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 7px;border-radius:6px;font-weight:600}.due-later{border:1px solid var(--t-text);color:var(--t-text)}.due-soon{background:var(--t-soon);color:var(--t-onfill)}.due-overdue{background:var(--t-urgent);color:var(--t-onfill)}.avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:10px;font-weight:700}.avatar-filled{color:var(--t-onfill);background:var(--t-text)}.avatar-outlined{border:1.5px solid var(--t-text);color:var(--t-text)}.avatar-none{border:1.5px dashed var(--t-muted)}.waiting-for{color:var(--t-text);font-size:12px;line-height:16px}.waiting-for span{color:var(--t-muted)}.mobile-shell{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 4px}.mobile-header h1{font-size:22px}.filter-label{font-size:0}.filter-label input{width:145px;font-size:16px}.mobile-board{display:flex;overflow-x:auto;gap:12px;padding:8px 24px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}.mobile-column{width:calc(100vw - 48px);flex:none;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}.mobile-column h2,.desktop-column h2{display:flex;align-items:center;gap:8px;min-height:44px;font-size:15px}.mobile-column h2 button,.desktop-column h2 button{margin-left:auto}.mobile-column .task-card{width:100%}.mobile-list{padding:8px 12px}.mobile-list-row{min-height:72px;padding:10px 4px;border-bottom:1px solid var(--t-border)}.mobile-list-row>div{display:flex;align-items:center;gap:8px;min-height:26px}.mobile-list-row>div:last-child{padding-left:24px;color:var(--t-muted);font-size:12px}.list-title{flex:1}.mobile-nav{position:fixed;z-index:3;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--t-card);border-top:1px solid var(--t-border)}.mobile-nav button{border:0;background:transparent;font-size:12px}.mobile-nav button[aria-pressed=true]{border:1px solid var(--t-focus)}.create-button{position:fixed;z-index:4;width:56px;height:56px;border-radius:50%;right:18px;bottom:calc(70px + env(safe-area-inset-bottom));background:var(--t-text);color:var(--t-onfill);font-size:28px}.desktop-shell{min-height:100vh;padding:18px}.desktop-header{display:flex;align-items:center;gap:10px}.desktop-header h1{margin-right:16px}.desktop-header label{margin-left:auto}.desktop-board{display:flex;align-items:flex-start;gap:14px;overflow-x:auto;padding-top:10px}.desktop-column{width:280px;flex:none;display:flex;flex-direction:column;gap:10px}.loading{padding:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.col-head-wait{color:var(--t-wait)}.show-cancelled-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--t-muted);min-height:44px}.show-cancelled-toggle input{width:auto;min-width:0;min-height:0}.desktop-column.drag-target{outline:2px solid var(--t-focus);outline-offset:4px;border-radius:10px}.card-wrap.dragging{opacity:.4}.card-wrap.grabbed{outline:2px solid var(--t-focus);outline-offset:2px;border-radius:10px}.drop-line{height:2px;margin:2px 0;background:var(--t-focus);border-radius:2px}.column-empty{color:var(--t-muted);font-size:13px;padding:8px 2px;min-height:40px}.empty-filter{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:32px 4px;color:var(--t-muted)}.list-table{width:100%;border-collapse:collapse;border:1px solid var(--t-border);border-radius:10px;overflow:hidden}.list-table th,.list-table td{padding:8px 10px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--t-border)}.list-table thead th{color:var(--t-muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--t-border-strong)}.list-table tbody tr{cursor:pointer}.list-table tbody tr:focus-visible{outline:2px solid var(--t-focus);outline-offset:-2px}.list-table tbody tr:hover{background:var(--t-card)}.list-table .col-title{width:100%}.list-table .col-labels{display:flex;flex-wrap:wrap;gap:6px}.list-row.task-status-cancelled .list-title-cell{color:var(--t-muted);text-decoration:line-through}.legend-overlay{position:fixed;inset:0;z-index:9;display:grid;place-items:center;background:color-mix(in srgb,var(--t-surface) 70%,transparent)}.legend-panel{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow-y:auto;background:var(--t-card);border:1px solid var(--t-border-strong);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:16px}.legend-head{display:flex;align-items:center;justify-content:space-between}.legend-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.legend-list li{display:flex;align-items:center;gap:10px;font-size:13px}.legend-list-inline{flex-direction:row;flex-wrap:wrap;gap:10px}.legend-text{margin:4px 0 0;font-size:13px;color:var(--t-muted)}.legend-swatch-blank{display:inline-flex;width:28px;color:var(--t-muted);font-weight:600}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:320px;background:var(--t-card);border:1px solid var(--t-border);border-radius:12px;padding:24px}.login-form h1{font-size:24px;text-align:center}.login-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--t-muted)}.login-error{color:var(--t-urgent);font-size:13px;margin:0}.toasts{position:fixed;z-index:10;left:50%;bottom:20px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;background:var(--t-card);border:1px solid var(--t-border-strong);border-radius:10px;padding:10px 12px;font-size:14px}.toast>span{flex:1}.toast button{min-width:auto;min-height:32px;height:32px;padding:0 10px}.quick-create{display:flex;flex-direction:column;gap:6px;padding:10px 0}.quick-create-input{width:100%;resize:none;overflow:hidden;font:inherit}.quick-multi{text-align:left;background:none;border:1px dashed var(--t-border-strong);border-radius:8px;padding:6px 10px;min-height:auto}.quick-create-preview{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--t-muted)}.quick-chips{display:flex;flex-wrap:wrap;gap:6px}.quick-chips .chip{border:1px solid var(--t-border-strong);border-radius:999px;padding:2px 8px;color:var(--t-text)}.quick-create-error{color:var(--t-urgent);font-size:13px;margin:0}.saving-indicator{color:var(--t-muted);font-size:12px}.user-menu{position:relative}.user-menu-pop{position:absolute;right:0;top:48px;z-index:6;background:var(--t-card);border:1px solid var(--t-border-strong);border-radius:10px;padding:6px}.card-wrap{position:relative;cursor:pointer;display:flex;flex-direction:column;gap:4px}.card-wrap:focus-visible{outline:2px solid var(--t-focus);outline-offset:2px;border-radius:10px}.card-status{width:100%}.task-panel{position:fixed;z-index:8;top:0;right:0;height:100dvh;width:min(480px,100vw);overflow-y:auto;background:var(--t-card);border-left:1px solid var(--t-border-strong);padding:16px;display:flex;flex-direction:column;gap:12px}.task-panel-head{display:flex;align-items:center;gap:8px}.task-panel-number{font-weight:700;margin-right:auto}.task-panel .field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--t-muted)}.task-panel .field input,.task-panel .field select,.task-panel .field textarea{color:var(--t-text)}.task-panel textarea{background:var(--t-card);border:1px solid var(--t-border-strong);border-radius:8px;padding:8px 10px;font:inherit;resize:vertical}.task-due{flex-direction:row;gap:10px}.task-labels-edit{border:1px solid var(--t-border);border-radius:8px;padding:8px}.label-toggle{flex-direction:row;align-items:center;gap:6px;color:var(--t-text)}.checklist-item{display:flex;align-items:center;gap:8px}.checklist-item span{flex:1}.comment{padding:6px 0;border-bottom:1px solid var(--t-border);font-size:14px;color:var(--t-text)}.history-row{font-size:12px;color:var(--t-muted)}@media(max-width:639px){.task-panel{width:100vw;border-left:0}.task-panel .label-toggle,.task-panel .checklist-item{min-height:44px}.task-panel .label-toggle input[type=checkbox],.task-panel .checklist-item input[type=checkbox]{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;flex:none}.task-panel .checklist-item button{flex:none}.user-menu>button{min-width:44px;min-height:44px}}
