:root{--color-bg: #0f1117;--color-surface: #1a1d27;--color-surface-hover: #21263a;--color-border: #2a2f45;--color-text-primary: #e2e8f0;--color-text-secondary: #8892a4;--color-text-muted: #4a5568;--color-p1: #ef4444;--color-p2: #f97316;--color-p3: #eab308;--color-p4: #6b7280;--color-accent: #6366f1;--color-accent-hover: #818cf8;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .4);--shadow-elevated: 0 4px 16px rgba(0, 0, 0, .5);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;color:var(--color-text-primary)}button{cursor:pointer;font-family:inherit;font-size:var(--font-size-sm)}input,textarea,select{font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}.kanban-board{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);overflow-x:auto;min-height:calc(100vh - 120px);align-items:flex-start}.kanban-col{flex:0 0 280px;min-width:280px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:calc(100vh - 140px)}.kanban-col-header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.kanban-col-title{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.kanban-col-count{font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-bg);border-radius:999px;padding:1px 7px}.kanban-col-cards{padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-sm);overflow-y:auto;flex:1}.kanban-card-wrapper{border-radius:var(--radius-md);border-left:4px solid transparent;background:var(--color-surface);box-shadow:0 2px 4px #00000059,0 1px 2px #0003;transition:box-shadow .15s ease,transform .1s ease;-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab}.kanban-card-wrapper:active{box-shadow:0 6px 20px #00000080;transform:scale(1.02);cursor:grabbing}.kanban-card-wrapper.drop-above{box-shadow:0 -3px 0 0 var(--color-accent),0 2px 4px #00000059}.kanban-card-wrapper.drop-below{box-shadow:0 3px 0 0 var(--color-accent),0 2px 4px #00000059}.priority-p1{border-left-color:var(--color-p1)}.priority-p2{border-left-color:var(--color-p2)}.priority-p3{border-left-color:var(--color-p3)}.priority-p4{border-left-color:var(--color-p4)}.task-card{padding:12px 14px;min-height:48px;display:flex;align-items:center;gap:10px}.task-drag-handle{color:var(--color-text-muted);font-size:1rem;flex-shrink:0;line-height:1}.task-title{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-primary);line-height:1.4;word-break:break-word}.fab{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);z-index:100;width:52px;height:52px;border-radius:50%;background:var(--color-accent);color:#fff;border:none;font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-elevated);transition:background .15s ease,transform .1s ease}.fab:hover{background:var(--color-accent-hover);transform:scale(1.07)}.view-toggle{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md)}.view-toggle button{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-weight:500;transition:background .15s,color .15s}.view-toggle button[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.view-toggle button:hover:not([aria-pressed=true]){background:var(--color-surface);color:var(--color-text-primary)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200}.drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--color-surface);border-left:1px solid var(--color-border);z-index:201;display:flex;flex-direction:column;overflow-y:auto;transform:translate(0);animation:drawer-slide-in .2s ease}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.drawer-close{background:transparent;border:none;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;padding:var(--spacing-xs);border-radius:var(--radius-sm)}.drawer-close:hover{color:var(--color-text-primary);background:var(--color-surface-hover)}.drawer-body{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md);flex:1}.drawer-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.drawer-field label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.drawer-field input,.drawer-field textarea,.drawer-field select{width:100%;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary)}.drawer-field textarea{resize:vertical;min-height:80px}.drawer-delete{margin-top:auto;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-p1);color:var(--color-p1);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:background .15s}.drawer-delete:hover{background:var(--color-p1);color:#fff}
