:root{color-scheme:light;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-danger: #dc2626;--color-danger-bg: #fee2e2;--color-success: #16a34a;--color-warning: #f59e0b;--app-bg: #f3f4f6;--surface: #ffffff;--surface-muted: #f9fafb;--border: #d1d5db;--border-subtle: #e5e7eb;--text: #111827;--text-muted: #6b7280;--text-subtle: #374151;--input-bg: #ffffff;--input-focus-ring: rgba(59, 130, 246, .2);--scrollbar-track: #f1f5f9;--footer-bg: #f3f4f6;--btn-secondary-bg: #e5e7eb;--btn-secondary-fg: #374151;--btn-secondary-hover-bg: #d1d5db;--btn-small-bg: #f3f4f6;--btn-small-hover-bg: #e5e7eb;--priority-high-bg: rgba(239, 68, 68, .15);--priority-high-fg: #ef4444;--priority-urgent-bg: rgba(239, 68, 68, .25);--priority-urgent-fg: #dc2626;--priority-medium-bg: rgba(234, 179, 8, .15);--priority-medium-fg: #ca8a04;--priority-low-bg: rgba(107, 114, 128, .15);--priority-low-fg: #92a1b8;--priority-none-bg: rgba(107, 114, 128, .08);--priority-none-fg: #6b7280;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 18px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .2s ease}:root[data-theme=dark]{color-scheme:dark;--app-bg: #111827;--surface: #1f2937;--surface-muted: #0f172a;--border: #374151;--border-subtle: #334155;--text: #e5e7eb;--text-muted: #9ca3af;--text-subtle: #cbd5e1;--input-bg: #111827;--scrollbar-track: #0b1220;--footer-bg: #0f172a;--btn-secondary-bg: #334155;--btn-secondary-fg: #e5e7eb;--btn-secondary-hover-bg: #475569;--btn-small-bg: #111827;--btn-small-hover-bg: #1f2937;--color-danger-bg: rgba(220, 38, 38, .15);--priority-high-fg: #f87171;--priority-urgent-fg: #ef4444;--priority-medium-fg: #fbbf24;--priority-low-fg: #9ca3af;--priority-none-fg: #9ca3af}html,body{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;margin:0;padding:10px;background-color:var(--app-bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.controls{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:10px;margin-bottom:10px;position:relative}.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;color:var(--text);margin-right:auto}.board-search{flex:1 1 320px;display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--input-bg);border:1px solid var(--border);border-radius:8px}.board-search svg{width:16px;height:16px;stroke:var(--text-muted);stroke-width:2}.board-search input{flex:1 1 auto;min-width:0;border:none;background:transparent;color:var(--text);font-size:14px;font-family:inherit}.board-search input::placeholder{color:var(--text-muted)}.board-search input:focus{outline:none}.board-search:focus-within{box-shadow:0 0 0 3px var(--input-focus-ring)}.brand-icon{width:24px;height:24px;color:var(--color-primary);stroke-width:2.5}.controls-actions{display:none;position:absolute;top:100%;right:10px;flex-direction:column;background:var(--surface);padding:8px;border:1px solid var(--border);box-shadow:0 4px 12px #00000026;border-radius:8px;z-index:200;min-width:220px;gap:4px;animation:menu-appear .15s ease-out}.controls-actions.show{display:flex}.controls-actions .control-btn{width:100%;justify-content:flex-start;background:none;color:var(--text);padding:10px 12px}.controls-actions .control-btn:hover{background-color:var(--surface-muted)}@keyframes menu-appear{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.control-select{padding:8px 12px;background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:5px;font-size:14px;font-family:inherit;cursor:pointer;max-width:220px}.control-select:focus{outline:none;box-shadow:0 0 0 3px var(--input-focus-ring)}#desktop-menu-btn{display:flex}.board-container,.container{display:flex;gap:.5rem;flex:1 1 auto;align-items:stretch;overflow-x:auto;overflow-y:hidden;min-height:0}.footer{margin-top:auto;padding:16px;background-color:var(--footer-bg);border-top:1px solid var(--border-subtle);text-align:center;font-size:13px;color:var(--text-muted);line-height:.9}.footer p{margin:0}.footer-version{margin-left:10px;opacity:.85;font-size:12px;white-space:nowrap}.btn{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;transition:background-color var(--transition-normal),transform var(--transition-fast)}.btn:active{transform:scale(.98)}.btn-primary{background-color:var(--color-primary);color:#fff;align-items:center}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--btn-secondary-bg);color:var(--btn-secondary-fg)}.btn-secondary:hover{background-color:var(--btn-secondary-hover-bg)}.btn-small{padding:6px 12px;border:none;border-radius:3px;font-size:12px;cursor:pointer;background-color:var(--btn-small-bg);color:var(--btn-secondary-fg);transition:all var(--transition-normal);display:inline-flex;align-items:center;gap:4px}.btn-small:hover{background-color:var(--btn-small-hover-bg)}.btn-small svg{width:14px;height:14px;stroke:currentColor;stroke-width:2}.btn-danger{color:var(--color-danger)}.btn-danger:hover{background-color:var(--color-danger-bg)}.control-btn{padding:8px 16px;background-color:var(--color-primary);color:#fff;border:none;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:14px;transition:background-color var(--transition-normal)}.control-btn:hover{background-color:var(--color-primary-hover)}.control-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2}.show-more-btn{width:100%;padding:12px 16px;margin-top:8px;background-color:var(--btn-secondary-bg);color:var(--btn-secondary-fg);border:1px dashed var(--border-color);border-radius:4px;cursor:pointer;font-size:14px;font-family:inherit;transition:all var(--transition-normal);text-align:center}.show-more-btn:hover{background-color:var(--btn-secondary-hover-bg);border-color:var(--color-primary)}.show-more-btn:active{transform:scale(.98)}.icon-btn,.add-task-btn-icon,.column-menu-btn,.column-collapse-btn,.column-drag-handle,.delete-task-btn{background:none;border:none;cursor:pointer;padding:4px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;opacity:.6;transition:opacity var(--transition-normal),background-color var(--transition-normal)}.icon-btn:hover,.add-task-btn-icon:hover,.column-menu-btn:hover,.column-drag-handle:hover,.delete-task-btn:hover{opacity:1}.icon-btn svg,.add-task-btn-icon svg,.column-menu-btn svg,.column-collapse-btn svg,.column-drag-handle svg,.delete-task-btn svg{width:16px;height:16px;stroke-width:2}.task-column.is-collapsed{flex:0 0 40px;width:40px;min-width:40px;padding:8px 2px;margin:10px 4px}.task-column.is-collapsed .column-header{flex-direction:column;gap:8px;margin-bottom:0;padding-bottom:0;border-bottom:none}.task-column.is-collapsed .column-collapse-btn,.task-column.is-collapsed .column-drag-handle{opacity:.85;padding:2px}.task-column.is-collapsed .column-collapse-btn svg,.task-column.is-collapsed .column-drag-handle svg{width:16px;height:16px}.task-column.is-collapsed .column-header h2{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;font-weight:600;text-align:center;flex:0 0 auto}.add-task-btn-icon:hover{background-color:#3b82f61f}.add-task-btn-icon svg{stroke:var(--color-primary)}.delete-task-btn:hover{background-color:var(--color-danger-bg)}.delete-task-btn svg{stroke:var(--color-danger)}.column-drag-handle{opacity:.5;cursor:grab}.column-drag-handle:active{cursor:grabbing}.column-drag-handle svg{stroke:var(--text-muted)}.column-menu-btn:hover{background-color:color-mix(in srgb,var(--column-accent) 12%,transparent)}.column-menu-btn svg{stroke:var(--text-muted)}.task-column{--column-accent: #3b82f6;--column-accent-hover: color-mix(in srgb, var(--column-accent) 80%, #000000);--column-bg-tint: color-mix(in srgb, var(--column-accent) 8%, transparent);--task-bg-tint: color-mix(in srgb, var(--column-accent) 7%, transparent);--task-border-tint: color-mix(in srgb, var(--column-accent) 22%, transparent);--task-hover-border-tint: color-mix(in srgb, var(--column-accent) 45%, transparent);--task-hover-shadow: color-mix(in srgb, var(--column-accent) 18%, transparent);position:relative;overflow:hidden;border:1px solid var(--border);border-radius:8px;margin:10px;padding:12px;flex:1;min-width:280px;background-color:var(--surface);display:flex;flex-direction:column;min-height:0;transition:border-color var(--transition-normal),background-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.task-column:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--column-accent);opacity:.9}.task-column:hover{border-color:color-mix(in srgb,var(--column-accent),var(--border) 35%);background-color:color-mix(in srgb,var(--surface),var(--column-bg-tint) 100%);box-shadow:var(--shadow-lg);transform:translateY(-1px)}#board-container>.task-column:nth-child(3n+1){--column-accent: #3b82f6}#board-container>.task-column:nth-child(3n+2){--column-accent: #f59e0b}#board-container>.task-column:nth-child(3n+3){--column-accent: #16a34a}.column-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);cursor:grab;-webkit-user-select:none;user-select:none}.column-header *{cursor:inherit}.column-header button,.column-header a{cursor:pointer}.column-header:active,body.dragging-column .column-header,body.dragging-column .column-header *{cursor:grabbing}.column-header h2{margin:0;flex:1;font-size:20px;font-weight:600;text-align:center}.task-counter{display:inline-flex;align-items:center;justify-content:center;background-color:var(--surface-muted);color:var(--text-muted);border-radius:50%;width:26px;height:26px;font-size:12px;font-weight:700;flex-shrink:0}.column-actions{display:flex;gap:4px;align-items:center}.column-menu-wrapper{position:relative;display:inline-flex}.column-menu{position:absolute;top:calc(100% + 6px);right:0;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);z-index:20}.column-menu.hidden{display:none}.column-menu-item{background:none;border:none;cursor:pointer;padding:6px 8px;display:flex;align-items:center;gap:6px;border-radius:6px;font-size:13px;color:var(--text);transition:background-color var(--transition-normal)}.column-menu-item:hover{background-color:var(--surface-muted)}.column-menu-item svg{width:16px;height:16px;stroke:var(--text);stroke-width:2}.column-menu-item.danger{color:var(--color-danger)}.column-menu-item.danger svg{stroke:var(--color-danger)}.column-menu-submenu-wrapper{position:relative}.column-menu-item.has-submenu{justify-content:flex-start;flex-direction:row-reverse}.submenu-chevron{margin-right:2px;opacity:.6}.submenu-chevron svg{width:14px;height:14px}.column-submenu{position:absolute;top:0;right:100%;margin-right:4px;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);z-index:100;min-width:120px}.column-submenu.hidden{display:none}@media(max-width:600px){.column-submenu{position:static;margin-left:0;margin-top:4px;box-shadow:none;border:none;background:var(--surface-muted);border-radius:6px;padding:4px}.column-submenu .column-menu-item{padding-left:16px;font-size:12px}}.tasks{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.tasks.expanded{max-height:none}.tasks::-webkit-scrollbar{width:6px}.tasks::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:3px}.tasks::-webkit-scrollbar-thumb{background:var(--column-accent);border-radius:3px}.tasks::-webkit-scrollbar-thumb:hover{background:var(--column-accent-hover)}.task{position:relative;overflow:hidden;background-color:color-mix(in srgb,var(--surface-muted),var(--task-bg-tint) 100%);border:1px solid color-mix(in srgb,var(--border-subtle),var(--task-border-tint) 100%);border-radius:8px;padding:12px 12px 12px 16px;cursor:grab;display:flex;flex-direction:column;gap:8px;flex:0 0 auto;min-height:84px;transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}@media(min-width:601px){body{height:100dvh;overflow:hidden}}.task:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--column-accent);opacity:.9}.task:hover{transform:translateY(-2px);border-color:var(--task-hover-border-tint);box-shadow:0 8px 16px var(--task-hover-shadow)}.task:active{cursor:grabbing}.task-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.task-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.task-priority-header{cursor:pointer;-webkit-user-select:none;user-select:none}.task-title{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--transition-fast)}.task-title:hover{color:var(--column-accent)}.task-description{font-size:13px;color:var(--text-muted);line-height:1.45;cursor:pointer;word-wrap:break-word;overflow-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;max-height:2.9em}.task-description:hover{color:var(--text-subtle)}.task-footer{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-muted)}.task-footer-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.task-change-date,.task-age,.task-date{white-space:nowrap}.task-date.countdown-urgent{color:var(--color-danger);font-weight:600}.task-date.countdown-warning{color:var(--color-warning);font-weight:600}.task-date.countdown-normal,.task-date.countdown-none{color:var(--text-muted)}.task-priority,.notification-banner-item .priority-badge,.notification-item-priority{border-radius:4px;font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.03em;white-space:nowrap}.task-priority{padding:3px 8px}.notification-banner-item .priority-badge,.notification-item-priority{padding:2px 6px}.priority-high{background-color:var(--priority-high-bg);color:var(--priority-high-fg)}.priority-urgent{background-color:var(--priority-urgent-bg);color:var(--priority-urgent-fg)}.priority-medium{background-color:var(--priority-medium-bg);color:var(--priority-medium-fg)}.priority-low{background-color:var(--priority-low-bg);color:var(--priority-low-fg)}.priority-none{background-color:var(--priority-none-bg);color:var(--priority-none-fg)}.task-text{flex:1;min-width:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.task-text:hover{color:var(--column-accent)}fieldset.form-group{border:none;padding:0;margin:0 0 16px}fieldset.form-group legend{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--text-subtle);padding:0}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--text-subtle)}.form-group input[type=text],.form-group input[type=date],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box;background-color:var(--input-bg);color:var(--text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group textarea{resize:vertical;min-height:60px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--input-focus-ring)}.color-picker-row{display:flex;align-items:stretch;gap:8px}.color-picker-row input[type=color]{flex:1 1 0%;width:auto;min-width:0}.color-hex-display{font-family:monospace;font-size:.85rem;color:var(--text-secondary);width:6em;flex:0 0 6em;padding:0 6px;border:1px solid var(--border);border-radius:6px;background-color:var(--input-bg);text-align:center}.color-hex-display:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--input-focus-ring);color:var(--text)}.color-hex-display.invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef444426}.form-group input[type=color]{width:100%;height:40px;padding:4px;border:1px solid var(--border);border-radius:6px;cursor:pointer;background-color:var(--input-bg)}.form-group input[type=color]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--input-focus-ring)}.form-group.error input[type=text],.form-group.error textarea{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc26261a}.form-group.error label{color:var(--color-danger)}.form-group.error-message{font-size:12px;color:var(--color-danger);margin-top:4px;display:none}.form-group.error .error-message{display:block}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}#boards-modal .form-actions{justify-content:flex-start}.modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}#dialog-modal{z-index:2000}.modal.hidden{display:none}.modal-backdrop{position:absolute;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{position:relative;background:var(--surface);padding:24px 24px 0;border-radius:12px;width:90%;max-width:480px;max-height:90vh;overflow-y:auto;overflow-x:hidden;box-shadow:0 20px 40px #0003;animation:modal-appear .2s ease-out}.modal-content .form-actions{position:sticky;bottom:0;z-index:1;background:var(--surface);border-top:1px solid var(--border);margin-top:20px;padding-top:16px;padding-bottom:24px}@keyframes modal-appear{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content h3{margin:0 0 20px;font-size:18px;font-weight:600;color:var(--text)}.modal-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px}.modal-header-row h3{margin:0}.modal-header-actions{display:inline-flex;align-items:center;gap:8px}#task-modal.fullscreen .modal-content{width:100%;height:100%;max-width:none;max-height:none;border-radius:0;display:flex;flex-direction:column;padding:16px 16px 0;margin:0;overflow-y:auto;overflow-x:hidden}.modal-large .modal-content{max-width:600px}@media(min-width:768px){#task-modal .modal-content{max-width:850px}}.task-form-columns{display:flex;flex-direction:column;gap:0}@media(min-width:768px){.task-form-columns{flex-direction:row;gap:24px;align-items:flex-start}.task-form-column-left{flex:1;min-width:0}.task-form-column-right{flex:0 0 320px;min-width:320px}}.help-content{font-size:14px;line-height:1.6;color:var(--text)}.help-content h4{margin:20px 0 10px;font-size:15px;font-weight:600;color:var(--text);border-bottom:2px solid var(--color-primary);padding-bottom:6px}.help-content h4:first-child{margin-top:0}.help-content p{margin:8px 0}.help-content ul{margin:8px 0;padding-left:20px}.help-content li{margin:6px 0}.accordion{margin-bottom:4px}.accordion-header{display:flex;align-items:center;gap:6px;width:100%;padding:8px;border:none;background:none;cursor:pointer;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);transition:color var(--transition-fast)}.accordion-header:hover{color:var(--text)}.accordion-header svg{width:14px;height:14px;flex-shrink:0}.accordion-title{flex:1;text-align:left}.accordion-count{font-size:10px;font-weight:600;color:var(--text-muted);background:var(--surface-muted);border-radius:10px;padding:1px 7px;min-width:20px;text-align:center}.accordion-body{padding:4px 0}.accordion-body.collapsed{display:none}.task-labels{display:flex;gap:4px;flex-wrap:wrap}.task-label{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;color:#fff}.label-item{display:flex;align-items:center;gap:8px;padding:8px;background-color:var(--surface-muted);border-radius:6px;margin-bottom:8px}.label-name{flex:1;font-size:14px;color:var(--text-subtle)}.label-actions{display:flex;gap:4px}.label-checkbox{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-bottom:6px;background-color:var(--surface-muted);border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.label-checkbox:hover{background-color:var(--btn-small-hover-bg)}.label-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px}.label-checkbox input[type=checkbox]:checked+.label-color-swatch,.label-checkbox input[type=checkbox]:checked+.task-label{outline:2px solid var(--color-primary);outline-offset:2px}.active-labels{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;padding:4px 0;margin-bottom:8px}.active-labels .task-label{flex-shrink:0}.active-label-remove{border:none;background:#ffffff40;color:#fff;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;font-size:12px;line-height:1;transition:background-color var(--transition-fast)}.active-label-remove:hover{background:#fff6}.task-label-search-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.task-label-search-row input[type=text]{flex:1;margin-bottom:0}#task-add-label-btn{opacity:.75}#task-add-label-btn:hover{opacity:1;background-color:#3b82f61f}#task-add-label-btn:focus-visible{opacity:1;background-color:#3b82f629;outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-group label{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text)}.checkbox-group input[type=checkbox]{width:16px;height:16px}.labels-empty{padding:8px;font-size:13px;color:var(--text-muted);text-align:center}.labels-empty-button{width:100%;padding:8px;font-size:13px;color:var(--text-muted);text-align:center;background-color:transparent;border:none;cursor:pointer;transition:all .15s ease}.labels-empty-button:hover{color:var(--color-primary);background-color:var(--input-focus-ring);border-radius:6px}.labels-empty-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px}.label-group-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:10px 8px 4px;margin-top:4px;border-bottom:1px solid var(--border)}.label-group-header-picker{padding:8px 8px 2px;margin-top:2px;font-size:10px}#labels-list{overflow-y:auto}#task-labels-selection{max-height:150px;overflow-y:auto;padding:8px;background-color:var(--surface-muted);border-radius:6px;margin-bottom:16px}.notification-banner{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin:0 10px 10px;padding:12px 16px;animation:banner-appear .3s ease-out;display:flex;flex-direction:column;max-height:150px;min-height:40px;overflow:hidden}.notification-banner.hidden{display:none}@keyframes banner-appear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-banner-content{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1 1 auto;min-height:0;overflow:hidden}.notification-banner-icon{flex-shrink:0;color:var(--color-danger);padding-top:4px}.notification-banner-icon svg{width:20px;height:20px;stroke-width:2}.notification-banner-list{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1 1 auto;min-width:0;min-height:0;padding:2px 2px 3px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.notification-banner-close-btn{flex-shrink:0;align-self:flex-start;margin-left:8px;opacity:.65}.notification-banner-close-btn:hover{opacity:1;background-color:var(--surface-muted)}@media(max-width:600px){.notification-banner-close-btn{padding:6px}}@media(min-width:601px){.notification-banner{max-height:180px}.notification-banner-list{flex-direction:row;flex-wrap:nowrap;align-items:center;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;padding-bottom:10px}}.notification-banner-list::-webkit-scrollbar{width:6px}.notification-banner-list::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:3px}.notification-banner-list::-webkit-scrollbar-thumb{background:#ef444466;border-radius:3px}.notification-banner-list::-webkit-scrollbar-thumb:hover{background:#ef444499}.notification-banner-item{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--surface);border:1px solid var(--border-subtle);border-radius:3px;font-size:12px;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);max-width:100%;min-width:0;overflow:hidden;align-self:flex-start;flex:0 0 auto}.notification-banner-item:hover{background-color:var(--surface-muted);border-color:var(--color-danger)}.notification-banner-item .task-title{font-weight:600;color:var(--text);min-width:15ch;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.notification-banner-item .due-date{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0;min-width:16ch;max-width:260px;overflow:hidden;text-overflow:ellipsis}.notification-banner-item .due-date.overdue{color:var(--color-danger);font-weight:600}.notification-banner-item .due-date.due-soon{color:var(--color-warning)}.notification-banner-item .priority-badge{flex-shrink:0}.notification-banner-item.notification-more{font-style:italic;color:var(--text-muted);max-width:500px}.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background-color:var(--color-danger);color:#fff;border-radius:10px;font-size:11px;font-weight:700;margin-left:4px}.notification-badge.hidden{display:none}#notifications-quick-btn{position:relative}#notification-quick-badge{position:absolute;top:-6px;right:-6px;margin-left:0}.notifications-list{overflow-y:auto;margin-bottom:16px}.notifications-controls{margin:0 0 12px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-muted)}.notification-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background-color:var(--surface-muted);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast)}.notification-item:hover{background-color:var(--color-danger-bg);transform:translate(4px)}.notification-item:last-child{margin-bottom:0}.notification-item-content{flex:1;min-width:0}.notification-item-title{font-weight:600;font-size:14px;color:var(--text);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-muted)}.notification-item-meta .overdue{color:var(--color-danger);font-weight:600}.notification-item-meta .due-soon{color:var(--color-warning);font-weight:600}.notification-item-arrow{flex-shrink:0;color:var(--text-muted)}.notification-item-arrow svg{width:16px;height:16px;stroke-width:2}.notifications-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:14px}@media(max-width:600px){.notification-banner{margin:0 8px 8px;padding:10px 12px;max-height:120px}.notification-banner-list{flex:1 1 auto;overflow-y:auto;max-height:100%;min-height:0}.notification-banner-item{width:100%;box-sizing:border-box;flex-shrink:0}.notification-banner-item .task-title{max-width:none;flex:1;min-width:0}.notification-banner-item .due-date{font-size:11px;overflow:hidden;text-overflow:ellipsis;max-width:none}}.task-ghost{opacity:.4;background-color:var(--primary-light)}.task-chosen{box-shadow:0 8px 24px #0003}.task-drag{opacity:1}.task-fallback{opacity:.9;box-shadow:0 12px 32px #0000004d;transform:rotate(2deg);cursor:grabbing}.column-ghost{opacity:.4}.column-chosen{box-shadow:0 8px 32px #00000040}.column-drag{opacity:1}body.dragging .task-column{background-color:#3b82f60a;overflow:visible}body.dragging .tasks{min-height:100px;pointer-events:auto!important}body.dragging .task-column.is-collapsed .tasks{display:flex;min-height:48px;padding:4px 0}body.dragging .task-column.is-collapsed .tasks .task,body.dragging .task-column.is-collapsed .tasks .show-more-btn{display:none}.task-column.is-collapsed.is-drop-hover{border-width:3px;border-style:dashed;border-color:color-mix(in srgb,var(--column-accent) 80%,var(--border) 20%);background-color:color-mix(in srgb,var(--surface) 90%,var(--column-accent) 10%);box-shadow:0 0 0 3px color-mix(in srgb,var(--column-accent) 25%,transparent),0 12px 26px #0000002e;transform:translateY(-1px);transition:border-color .12s ease-out,background-color .12s ease-out,box-shadow .12s ease-out,transform .12s ease-out}body.dragging-column #board-container{cursor:grabbing;-webkit-user-select:none;user-select:none}[data-dragging=true],#dragged-task{opacity:.3}#dragged-column{opacity:.4}.placeholder,.sortable-ghost{list-style:none;width:100%;height:10px;min-height:10px;margin:4px 0;border:none;border-radius:999px;background-color:var(--border);background-color:color-mix(in srgb,var(--column-accent) 35%,var(--border) 65%);opacity:.95}.column-placeholder{width:10px;min-width:10px;flex:0 0 10px;align-self:stretch;margin:10px 6px;border:none;border-radius:999px;background-color:color-mix(in srgb,var(--color-primary) 35%,var(--border) 65%);opacity:.95;pointer-events:none}body.reports-page{padding:0;display:flex;flex-direction:column;height:100dvh;overflow:hidden}body.reports-page .rpt-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex:0 0 auto}body.reports-page .rpt-header-left{display:inline-flex;align-items:center;gap:10px;min-width:0}body.reports-page .rpt-logo{width:22px;height:22px;color:var(--color-primary);stroke-width:2.5;flex:0 0 auto}body.reports-page .rpt-header-titles{display:flex;flex-direction:column;gap:2px;min-width:0}body.reports-page .rpt-title{margin:0;font-size:16px;font-weight:800;color:var(--text);line-height:1.1}body.reports-page .rpt-subtitle{font-size:12px;color:var(--text-muted);line-height:1.1}body.reports-page .rpt-header-right{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}body.reports-page .rpt-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap}body.reports-page .rpt-link:hover{background:var(--btn-secondary-bg)}body.reports-page .rpt-badge{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-weight:800;font-size:12px}body.reports-page .rpt-main{flex:1 1 auto;min-height:0;padding:10px;display:flex;flex-direction:column;gap:10px;overflow:auto}body.reports-page .reports-kpis{border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm);padding:10px;overflow:hidden;display:flex;flex-direction:column;min-height:520px}body.reports-page .rpt-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);margin-bottom:8px;flex:0 0 auto;min-width:0}body.reports-page .rpt-card-title{margin:0;font-size:13px;font-weight:800;color:var(--text);line-height:1.15}body.reports-page .rpt-card-hint{font-size:11px;color:var(--text-muted);margin:2px 0 0;line-height:1.3}body.reports-page .rpt-controls{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}body.reports-page .rpt-control{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);white-space:nowrap}body.reports-page .rpt-control-label{display:none}body.reports-page .rpt-select{padding:6px 8px;background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:12px;font-family:inherit}body.reports-page .rpt-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:0 0 auto}body.reports-page .rpt-kpi{border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-muted);padding:8px;min-width:0}body.reports-page .rpt-kpi-label{font-size:11px;color:var(--text-muted);margin-bottom:4px;line-height:1.1}body.reports-page .rpt-kpi-value{font-size:18px;font-weight:900;color:var(--text);line-height:1}body.reports-page .rpt-spark{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:6px;padding-top:8px}body.reports-page .rpt-spark-title{font-size:11px;color:var(--text-muted);line-height:1.1}body.reports-page .rpt-chart,body.reports-page #reports-leadtime-chart,body.reports-page #reports-chart,body.reports-page #reports-cfd-chart,body.reports-page #reports-completed-spark{width:100%;flex:1 1 auto;min-height:0}@media(max-width:900px){body.reports-page .rpt-main{flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding-bottom:12px}body.reports-page .reports-kpis{min-width:85vw;max-width:85vw;height:100%;margin:0 8px;scroll-snap-align:center;overflow:auto;min-height:0}}body.calendar-page .rpt-main{overflow:auto}@media(max-width:900px){body.calendar-page .rpt-main{flex-direction:column;overflow-x:hidden;overflow-y:auto;scroll-snap-type:none;padding-bottom:10px}body.calendar-page .reports-kpis{min-width:0;max-width:none;height:auto;margin:0;scroll-snap-align:unset;overflow:hidden}}body.calendar-page .rpt-due-month{font-size:12px;font-weight:800;color:var(--text);white-space:nowrap}body.calendar-page .rpt-due-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:8px}body.calendar-page .rpt-due-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:0 0 auto}body.calendar-page .rpt-due-dow{font-size:11px;font-weight:700;color:var(--text-muted);text-align:center;padding:2px 0}body.calendar-page .rpt-due-day{border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-muted);color:var(--text);padding:6px;min-height:44px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:4px}body.calendar-page .rpt-due-day:hover{border-color:var(--border)}body.calendar-page .rpt-due-day[aria-pressed=true]{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--input-focus-ring)}body.calendar-page .rpt-due-day.is-outside{opacity:.5}body.calendar-page .rpt-due-day.is-today{border-style:dashed}body.calendar-page .rpt-due-num{font-size:11px;font-weight:800;color:var(--text)}body.calendar-page .rpt-due-count{align-self:flex-end;padding:2px 8px;border-radius:999px;background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);font-size:12px;font-weight:900;line-height:1.2}body.calendar-page .rpt-due-count.is-overdue{background:var(--color-danger-bg);color:var(--color-danger)}body.calendar-page .rpt-due-list{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-muted);padding:8px}body.calendar-page .rpt-due-list-title{font-size:12px;font-weight:900;color:var(--text);margin:0 0 6px}body.calendar-page .rpt-due-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}body.calendar-page .rpt-due-item{border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface);padding:6px 8px;font-size:12px;color:var(--text)}body.calendar-page .rpt-due-item.is-overdue{border-color:var(--color-danger)}body.calendar-page .rpt-due-tasklink{display:block;color:inherit;text-decoration:none;font-weight:700}body.calendar-page .rpt-due-tasklink.is-overdue{color:var(--color-danger)}body.calendar-page .rpt-due-tasklink:hover{text-decoration:underline}body.calendar-page .rpt-due-tasklink:focus{outline:none}body.calendar-page .rpt-due-tasklink:focus-visible{box-shadow:0 0 0 3px var(--input-focus-ring);border-radius:6px}body.calendar-page .rpt-due-empty{font-size:12px;color:var(--text-muted);padding:6px 0}@media(orientation:landscape)and (max-height:500px){body.reports-page .rpt-header{padding:4px 12px}body.reports-page .rpt-main{padding:6px;gap:6px}body.reports-page .reports-kpis{min-height:320px}body.reports-page .rpt-kpi-grid{gap:4px}body.reports-page .rpt-kpi{padding:6px}body.calendar-page .rpt-due-day{min-height:36px;padding:4px}body.calendar-page .rpt-due-calendar{gap:3px}}@media(max-width:768px){.controls-actions .control-select{width:100%;max-width:100%;min-height:44px;font-size:16px;padding:10px 12px}}@media(max-width:600px){body{height:100dvh;min-height:100dvh;overflow:hidden}.controls{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto auto;gap:8px;padding:8px;flex-wrap:nowrap}.brand{grid-column:1;grid-row:1;margin-right:0;font-size:16px;overflow:hidden}.brand-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}#notifications-quick-btn{grid-column:2;grid-row:1;margin-left:auto}#desktop-menu-btn{grid-column:3;grid-row:1}.board-search{grid-column:1 / -1;grid-row:2;flex:none}.container,.board-container{flex:1 1 auto;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;min-height:0}.footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}body.dragging .board-container,body.dragging .container{scroll-snap-type:none}body.dragging .task-column{scroll-snap-align:unset}.task-column{min-width:85vw;max-width:85vw;margin:0 8px;scroll-snap-align:center;height:calc(100dvh - 180px);display:flex;flex-direction:column;flex:0 0 auto;min-height:0}.tasks{flex:1 1 auto;overflow-y:auto;max-height:none!important;min-height:0}.modal-content{width:100%;height:100%;max-width:none;max-height:none;border-radius:0;display:flex;flex-direction:column;padding:16px 16px 0;margin:0;overflow-y:auto;overflow-x:hidden}.modal-content form,#labels-list{max-height:none!important}.form-actions{padding-bottom:24px}#task-labels-selection{max-height:150px!important;overflow-y:auto}}@media(max-width:920px)and (orientation:landscape)and (max-height:500px){.controls{padding:4px 8px;gap:6px}.board-search{grid-row:1;grid-column:1;max-width:220px}.brand{font-size:14px}.task-column{height:calc(100dvh - 100px)}.footer{padding:6px 16px;font-size:11px;line-height:1}.notification-banner{max-height:80px;padding:6px 10px;margin:0 8px 4px}.modal-content{max-height:100dvh}.form-group{margin-bottom:10px}.form-actions{padding-bottom:12px}}
