:root{--font-sans:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Consolas, monospace;--fs-title:1.5rem;--fs-h2:1.25rem;--fs-h3:1rem;--fs-body:.9rem;--fs-sm:.8rem;--fs-label:.72rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--tracking-tight:-.01em;--tracking-wide:.02em;--tracking-label:.08em;--bg:#000;--surface-1:#16161b;--surface-2:#1c1c22;--surface-3:#24242c;--surface-input:#0f0f13;--surface-panel:#101014;--border:#2a2a31;--border-strong:#35353d;--border-hover:#4b4b55;--text:#f4f5f7;--text-muted:#a0a4ac;--text-dim:#7c8088;--text-faint:#63666d;--accent:#6d6df0;--accent-strong:#8484f5;--accent-contrast:#fff;--accent-ring:#6d6df080;--danger:#ff8a80;--danger-solid:#b3261e;--danger-solid-hover:#cf2a20;--danger-bg:#3a1614;--primary:#f4f5f7;--primary-hover:#fff;--primary-contrast:#000;--radius-sm:.6rem;--radius-md:.9rem;--radius-lg:1.25rem;--radius-pill:999px;--shadow-1:0 6px 18px #00000073;--shadow-2:0 12px 30px #0009;--shadow-modal:0 18px 50px #0009;--shadow-panel:-12px 0 40px #00000080;--dur-fast:.15s;--dur:.2s;--dur-slow:.22s;--ease:cubic-bezier(.2, .8, .2, 1);font-family:var(--font-sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100dvh;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior:none}.board{background:var(--bg);width:100%;min-height:100dvh;color:var(--text);flex-direction:column;padding:1.25rem;display:flex;position:relative;overflow:hidden}.space-dots__canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.board__header,.board__error,.board__canvas{z-index:1;position:relative}.board__header h1{font-size:var(--fs-title);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0}.board__status,.board__error{font-size:var(--fs-body)}.board__status{color:var(--text-muted)}.board__error{color:var(--danger)}:where(button,input,select,textarea,a):focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent-ring);border-color:var(--accent);outline:none}.phase-tabs{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.phase-tab{appearance:none;border:1px solid var(--border);background:var(--surface-1);color:var(--text-muted);border-radius:var(--radius-pill);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);padding:.4rem .85rem}.phase-tab:hover{border-color:var(--border-hover);color:var(--text)}.phase-tab--active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);font-weight:var(--fw-semibold)}.phase-tab-group{align-items:center;gap:.25rem;display:inline-flex}.phase-tab__action{appearance:none;border:1px solid var(--border);background:var(--surface-1);width:1.75rem;height:1.75rem;color:var(--text-muted);border-radius:var(--radius-pill);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.phase-tab__action:hover{border-color:var(--border-hover);color:var(--text)}.phase-tab__action--danger:hover{border-color:var(--danger);color:var(--danger)}.phase-tab--add{color:var(--text-muted);border-style:dashed}.phase-tab--add:hover{color:var(--text);border-color:var(--border-hover)}.board__canvas{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:70dvh;margin-top:1rem;position:relative;overflow:auto}.bucket{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:9rem;max-width:14rem;box-shadow:var(--shadow-1);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;will-change:transform;transition:box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);padding:.85rem 1rem;position:absolute}.bucket:hover{border-color:var(--border-hover)}.bucket--dragging{cursor:grabbing;border-color:var(--accent);box-shadow:var(--shadow-2)}.bucket--colored{border-color:color-mix(in srgb, var(--bucket-color) 45%, var(--border));background:color-mix(in srgb, var(--bucket-color) 9%, var(--surface-1))}.bucket--colored:before{content:"";background:var(--bucket-color);border-radius:var(--radius-lg) 0 0 var(--radius-lg);width:4px;position:absolute;top:0;bottom:0;left:0}.bucket--virtual{border-style:dashed;border-color:var(--border-strong);box-shadow:none;cursor:default;touch-action:auto;will-change:auto;background:0 0;top:1rem;left:1rem}.bucket--virtual:hover{border-color:var(--border-hover)}.bucket--virtual .bucket__name{color:var(--text-muted)}.bucket__header{flex-direction:column;gap:.15rem;margin-bottom:.6rem;display:flex}.bucket__name{font-size:var(--fs-h3);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0}.bucket__count{color:var(--text-muted);font-size:.75rem}.bucket__empty{font-size:var(--fs-sm);color:var(--text-faint);margin:0;font-style:italic}.bucket__departments{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.dept-chip{appearance:none;font:inherit;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);align-items:center;gap:.4rem;padding:.28rem .55rem;font-size:.78rem;display:inline-flex}.dept-chip:hover{border-color:var(--border-hover);background:#2d2d36}.dept-chip--colored{background:color-mix(in srgb, var(--chip-color) 14%, var(--surface-3));border-color:color-mix(in srgb, var(--chip-color) 45%, var(--border-strong))}.dept-chip--colored:hover{background:color-mix(in srgb, var(--chip-color) 24%, var(--surface-3));border-color:color-mix(in srgb, var(--chip-color) 65%, var(--border-strong))}.dept-chip__dot{background:var(--chip-color);border-radius:50%;flex:none;width:.5rem;height:.5rem}.dept-panel{z-index:50;background:var(--surface-panel);border-left:1px solid var(--border);width:100%;max-width:22rem;height:100dvh;box-shadow:var(--shadow-panel);color:var(--text);animation:panel-in var(--dur) var(--ease);padding:1.25rem;position:fixed;top:0;right:0;overflow-y:auto}.dept-panel__header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.dept-panel__title{font-size:var(--fs-h2);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0}.dept-panel__close{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.6rem;line-height:1}.dept-panel__close:hover{color:var(--text)}.dept-panel__section{margin-bottom:1.5rem}.dept-panel__heading{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);margin:0 0 .6rem}.dept-panel__empty{font-size:var(--fs-sm);color:var(--text-faint);margin:0;font-style:italic}.dept-panel__list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.handler,.task{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:row;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;display:flex}.handler__body,.task__body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.task__check{width:1.05rem;height:1.05rem;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:.15rem}.handler__name,.task__title{font-weight:var(--fw-semibold);font-size:var(--fs-body)}.handler__type{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.handler__contact,.task__description{font-size:var(--fs-sm);color:var(--text-muted)}.task--done .task__title{color:var(--text-dim);text-decoration:line-through}.board__titlebar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.btn{appearance:none;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);border:1px solid #0000;padding:.45rem .9rem}.btn:disabled{opacity:.55;cursor:default}.btn--sm{padding:.3rem .65rem;font-size:.78rem}.btn--primary{background:var(--primary);color:var(--primary-contrast);font-weight:var(--fw-semibold)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--ghost{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.btn--ghost:hover:not(:disabled){border-color:var(--border-hover)}.btn--danger{background:var(--danger-solid);color:#fff;font-weight:var(--fw-semibold)}.btn--danger:hover:not(:disabled){background:var(--danger-solid-hover)}.bucket__heading{justify-content:space-between;align-items:flex-start;gap:.4rem;display:flex}.bucket__actions,.item__actions{flex-shrink:0;gap:.15rem;display:flex}.bucket__action,.item__action{appearance:none;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;padding:.15rem .3rem;font-size:.95rem;line-height:1}.bucket__action:hover,.item__action:hover{background:var(--surface-3);color:var(--text)}.bucket__action--danger:hover,.item__action--danger:hover{background:var(--danger-bg);color:var(--danger)}.dept-panel__section-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.dept-panel__section-head .dept-panel__heading{margin:0}.modal__backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--dur-fast) var(--ease);background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:26rem;max-height:90dvh;box-shadow:var(--shadow-modal);color:var(--text);animation:modal-in var(--dur-fast) var(--ease);overflow-y:auto}.modal__header{justify-content:space-between;align-items:center;padding:1rem 1.15rem .75rem;display:flex}.modal__title{font-size:1.1rem;font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0}.modal__close{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.5rem;line-height:1}.modal__close:hover{color:var(--text)}.modal__body{padding:0 1.15rem 1.15rem}.modal__message{font-size:var(--fs-body);color:var(--text-muted);margin:0 0 1rem}.modal__error{font-size:var(--fs-sm);color:var(--danger);margin:0 0 .85rem}.modal__actions{justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}.form{flex-direction:column;gap:.9rem;display:flex}.form__field{border:none;flex-direction:column;gap:.35rem;margin:0;padding:0;display:flex}.form__fieldset{min-width:0}.form__label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:0}.form__input{appearance:none;font:inherit;font-size:var(--fs-body);background:var(--surface-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--text);transition:border-color var(--dur-fast) var(--ease);padding:.55rem .65rem}.form__input:focus{border-color:var(--accent);outline:none}.form__textarea{resize:vertical;min-height:3.5rem}.form__hint{font-size:var(--fs-sm);color:var(--text-faint);margin:0;font-style:italic}.form__checks{background:var(--surface-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);flex-direction:column;gap:.4rem;max-height:11rem;padding:.55rem .65rem;display:flex;overflow-y:auto}.form__check{cursor:pointer;align-items:center;gap:.5rem;font-size:.88rem;display:flex}.form__check input{width:1rem;height:1rem;accent-color:var(--accent)}.swatches{flex-wrap:wrap;gap:.5rem;display:flex}.swatch{appearance:none;border:2px solid var(--border-strong);background:var(--swatch);cursor:pointer;width:1.75rem;height:1.75rem;transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);border-radius:50%;padding:0}.swatch:hover{transform:scale(1.1)}.swatch--selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface-1), 0 0 0 4px var(--swatch,var(--text-muted))}.swatch--none{background:var(--surface-input);position:relative;overflow:hidden}.swatch--none:after{content:"";background:var(--danger);width:2px;height:140%;position:absolute;top:-20%;left:50%;transform:translate(-50%)rotate(45deg)}.dept-panel__backdrop{display:none}@keyframes panel-in{0%{transform:translate(100%)}to{transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes modal-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.bucket--dragging{transition:box-shadow var(--dur-fast) var(--ease)}@media (width<=640px){.board{padding:1rem}.dept-panel{border-left:none;max-width:100%}.dept-panel__backdrop{z-index:45;animation:fade-in var(--dur-fast) var(--ease);background:#0000008c;display:block;position:fixed;inset:0}.modal__backdrop{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92dvh;animation:sheet-up var(--dur-slow) var(--ease)}.bucket__action,.item__action{padding:.4rem .55rem;font-size:1.15rem}.dept-chip{font-size:var(--fs-sm);padding:.42rem .7rem}.btn--sm{padding:.45rem .8rem}.task__check{width:1.25rem;height:1.25rem}}@media (prefers-reduced-motion:reduce){.dept-panel,.dept-panel__backdrop,.modal,.modal__backdrop{animation:none}*{transition-duration:.01ms!important}}
