:root{--ink: #1e2a2f;--ink-2: #51616a;--ink-3: #7e8c93;--paper: #f2f0ea;--surface: #ffffff;--surface-2: #eae8e0;--line: #dfdccd;--line-2: #cfccbd;--brand: #2c6e63;--brand-deep: #1e4a43;--brand-soft: #e3efea;--brand-mint: #9fcec0;--danger: #b3372f;--danger-soft: #f7e4e1;--warn: #96690f;--warn-soft: #f7ecd4;--top: #15282c;--top-text: #eaf2ee;--radius: 10px;--shadow-1: 0 1px 2px rgba(30, 42, 47, .1);--shadow-2: 0 10px 28px rgba(30, 42, 47, .2);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--ink);background:var(--paper);overflow-x:hidden;max-width:100vw}.app{height:100vh;height:100dvh;display:flex;flex-direction:column}h1,h2,h3,p,ul{margin:0}ul{padding:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.modal-open{overflow:hidden}.topbar{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--top);color:var(--top-text);flex:none}.brand{display:flex;align-items:center;gap:9px;flex:none}.wordmark{font-size:19px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.wordmark .ly{color:var(--brand-mint)}.crumbs{display:flex;align-items:baseline;gap:8px;padding-left:16px;margin-left:4px;border-left:1px solid rgba(255,255,255,.16);min-width:0}.crumb-workspace{font-size:12px;color:#a8bdbb;letter-spacing:.02em;white-space:nowrap}.crumb-sep{color:#5e7776;font-size:13px}.crumb-board{font-size:15px;font-weight:650;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{margin-left:auto;display:flex;gap:8px;flex:none}.btn-top{display:inline-flex;align-items:center;gap:6px;background:#ffffff12;color:var(--top-text);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:6px 11px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-top:hover:not(:disabled){background:#ffffff26}.btn-top:disabled{opacity:.45;cursor:default}.filterbar{display:flex;align-items:center;gap:10px;padding:10px 18px;background:#fbfaf6;border-bottom:1px solid var(--line);flex:none;flex-wrap:wrap}.search{flex:1 1 240px;max-width:380px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:7px 10px;color:var(--ink-3);min-width:0}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #2c6e6324}.search input{border:none;outline:none;flex:1;min-width:0;font:inherit;font-size:13px;color:var(--ink);background:transparent}.filter-label{display:flex;align-items:center;gap:7px;white-space:nowrap}.filter-label>span{font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase}.filter-select{font:inherit;font-size:12.5px;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:6px 8px;cursor:pointer;max-width:150px}.filter-select:focus-visible{outline-offset:0;border-color:var(--brand)}.clear-btn{border:1px solid #c9dcd6;background:var(--brand-soft);color:var(--brand-deep);font-weight:650;font-size:12.5px;border-radius:9px;padding:7px 12px;cursor:pointer;white-space:nowrap}.clear-btn:hover{background:#d4e7e0}.filter-meta{margin-left:auto;display:flex;gap:14px;align-items:baseline;color:var(--ink-3);font-size:12px;white-space:nowrap}.filter-meta .today{color:var(--ink-3);font-weight:600}.board-empty{margin:16px 18px 0;padding:26px 18px 24px;background:#fdfcfa;border:1.5px dashed var(--line-2);border-radius:12px;text-align:center;flex:none}.board-empty-icon{width:42px;height:42px;border-radius:12px;background:var(--brand-soft);color:var(--brand-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}.board-empty h2{font-size:16px;margin-bottom:5px}.board-empty p{font-size:13.5px;color:var(--ink-2);margin-bottom:14px}.board{flex:1;min-height:0;display:flex;gap:12px;padding:14px 18px 16px;overflow-x:auto;overflow-y:hidden;align-items:stretch;scrollbar-width:thin;scrollbar-color:#c8c4b4 transparent}.board::-webkit-scrollbar{height:10px}.board::-webkit-scrollbar-thumb{background:#c8c4b4;border-radius:999px}.board::-webkit-scrollbar-track{background:transparent}.column{flex:1 0 264px;min-width:260px;max-width:340px;display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}.col-title{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;color:var(--ink-2);padding:10px 12px 8px}.col-title:focus-visible{outline-offset:-2px}.col-dot{width:9px;height:9px;border-radius:3px;flex:none}.count-chip{background:#fff;border:1px solid var(--line-2);border-radius:999px;font-size:10.5px;font-weight:700;padding:1.5px 7px;color:var(--ink-2);letter-spacing:.01em;white-space:nowrap}.wip-chip{font-size:10px;font-weight:700;border-radius:999px;padding:2px 7px;background:var(--brand-soft);color:var(--brand-deep);border:1px solid #cadfd8;letter-spacing:.03em;white-space:nowrap}.wip-chip.full{background:var(--warn-soft);color:var(--warn);border-color:#e8d9ac}.col-list{flex:1;min-height:52px;overflow-y:auto;padding:2px 8px 6px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:#c9c5b5 transparent}.col-list::-webkit-scrollbar{width:8px}.col-list::-webkit-scrollbar-thumb{background:#c9c5b5;border-radius:999px}.col-list::-webkit-scrollbar-track{background:transparent}.col-empty{margin:4px 2px 8px;font-size:12px;color:var(--ink-3);text-align:center;padding:16px 8px;border:1.5px dashed var(--line-2);border-radius:8px}.drop-placeholder{border:2px dashed var(--brand);background:#2c6e6314;border-radius:9px;flex:none}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 10px 8px;box-shadow:var(--shadow-1);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:box-shadow .15s ease,border-color .15s ease}.card:hover{border-color:#b9b4a2;box-shadow:0 2px 7px #1e2a2f21}.card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.card.overdue{box-shadow:var(--shadow-1),inset 3px 0 0 var(--danger)}.card.lifted{outline:2px solid var(--brand);outline-offset:2px;box-shadow:var(--shadow-2);transform:translateY(-2px) scale(1.015);border-color:var(--brand)}.card.ghost{position:fixed;z-index:1000;pointer-events:none;cursor:grabbing;transform:rotate(2deg) scale(1.03);box-shadow:0 18px 42px #15202452;opacity:.96}.is-pointer-dragging,.is-pointer-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}.card-labels{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.label-chip{font-size:10px;font-weight:700;letter-spacing:.02em;padding:1.5px 7px 2px;border-radius:999px;border:1px solid;white-space:nowrap}.card-title{font-size:13.5px;font-weight:600;color:var(--ink);margin:0 0 7px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.prio{display:inline-flex;flex:none}.meta-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--ink-2);background:#f5f3ec;border:1px solid var(--line);padding:1.5px 7px;border-radius:7px;white-space:nowrap}.meta-chip.due.overdue{color:var(--danger);background:var(--danger-soft);border-color:#ecc8c1;font-weight:700}.overdue-chip{color:#fff;background:var(--danger);border-radius:6px;font-size:9.5px;font-weight:700;padding:2.5px 6px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.meta-spacer{flex:1;min-width:4px}.move-btn{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--ink-3);background:transparent;border:1px solid transparent;border-radius:7px;padding:3px 6px;cursor:pointer;letter-spacing:.02em;white-space:nowrap}.move-btn:hover{color:var(--brand-deep);background:var(--brand-soft);border-color:#cadfd8}.unassigned{display:inline-flex;align-items:center;gap:5px}.unassigned-text{font-size:10.5px;color:var(--ink-3);font-weight:600;white-space:nowrap}.avatar{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;letter-spacing:.02em;flex:none;font-size:9.5px}.avatar-none{background:transparent;border:1.5px dashed #b2b8b3;color:var(--ink-3)}.add-card-btn{display:flex;align-items:center;gap:6px;margin:2px 8px 8px;padding:7px 9px;border-radius:8px;border:none;background:transparent;color:var(--ink-3);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;text-align:left}.add-card-btn:hover{background:#2c6e631a;color:var(--brand-deep)}.composer{margin:2px 8px 8px;background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:8px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:7px;flex:none}.composer textarea{font:inherit;font-size:13.5px;color:var(--ink);resize:none;border:1px solid var(--line-2);border-radius:7px;padding:7px 8px;min-height:52px}.composer textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #2c6e6324}.composer-row{display:flex;gap:6px}.composer-error{font-size:12px;color:var(--danger);font-weight:600}.btn{font:inherit;font-weight:650;border-radius:8px;padding:6px 12px;cursor:pointer;border:1px solid transparent;font-size:12.5px;display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-deep)}.btn.subtle{background:transparent;color:var(--ink-2);border-color:var(--line-2)}.btn.subtle:hover{background:#f1efe8}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:#94261f}.btn.danger-ghost{background:transparent;border-color:#e5c6c0;color:var(--danger)}.btn.danger-ghost:hover{background:var(--danger-soft)}.btn.small{padding:4px 10px;font-size:12px}.foot{display:flex;align-items:center;gap:16px;padding:7px 18px;background:#edebe3;border-top:1px solid var(--line);flex:none;min-height:32px}.foot-notice{font-size:11.5px;color:var(--ink-3)}.foot-hint{margin-left:auto;font-size:11px;color:#a9a693;white-space:nowrap}.toasts{position:fixed;right:16px;bottom:44px;display:flex;flex-direction:column;gap:8px;z-index:1300;max-width:min(380px,calc(100vw - 24px))}.toast{display:flex;align-items:flex-start;gap:10px;background:#22333a;color:#f0f5f2;padding:10px 12px;border-radius:10px;box-shadow:var(--shadow-2);font-size:13px;line-height:1.4;animation:toast-in .18s ease}.toast.warn{background:#5f4715;color:#f9efd6}.toast-icon{display:flex;margin-top:1px;flex:none}.toast-text{flex:1}.toast-x{background:transparent;border:none;color:inherit;opacity:.7;cursor:pointer;padding:2px;display:flex;flex:none}.toast-x:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.dialog-overlay{position:fixed;inset:0;background:#15202475;display:flex;align-items:flex-start;justify-content:center;padding:5vh 14px 14px;z-index:1100;overflow-y:auto}.dialog{width:min(600px,100%);background:#fdfcfa;border-radius:14px;border:1px solid var(--line);box-shadow:0 24px 64px #1520245c;display:flex;flex-direction:column;max-height:min(88vh,100%);max-height:min(88dvh,100%)}.dialog-head{display:flex;align-items:flex-start;gap:10px;padding:16px 18px 10px}.dialog-head-text{min-width:0;flex:1}.dialog-title{font-size:17px;font-weight:700;line-height:1.3;word-break:break-word}.dialog-sub{display:flex;gap:6px;align-items:center;margin-top:5px;flex-wrap:wrap}.badge{font-size:10.5px;font-weight:700;background:var(--brand-soft);color:var(--brand-deep);padding:2px 8px;border-radius:999px;letter-spacing:.02em}.badge.gray{background:#edebe3;color:var(--ink-2)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.icon-btn{background:transparent;border:none;border-radius:8px;padding:6px;cursor:pointer;color:var(--ink-3);display:inline-flex;flex:none}.icon-btn:hover{background:#efece4;color:var(--ink)}.icon-btn.small{padding:3px}.dialog-body{padding:4px 18px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:15px;scrollbar-width:thin}.field-label{display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}.text-input{width:100%;font:inherit;font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:8px;padding:8px 10px}.text-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #2c6e6324}textarea.text-input{resize:vertical;min-height:84px;line-height:1.5}select.text-input{cursor:pointer}.field-error{font-size:12.5px;color:var(--danger);font-weight:600;margin-top:6px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.due-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.due-hint{font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;gap:5px;font-weight:600}.due-hint.overdue{color:var(--danger)}.label-toggles{display:flex;flex-wrap:wrap;gap:6px}.label-toggle{border:1px solid var(--line-2);background:#fff;color:var(--ink-2);border-radius:999px;padding:4px 11px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.label-toggle:hover{border-color:var(--brand);color:var(--brand-deep)}.check-progress{height:6px;background:#eceae2;border-radius:999px;overflow:hidden;margin-bottom:10px}.check-progress-fill{height:100%;background:var(--brand);border-radius:999px;transition:width .2s ease}.check-list{list-style:none;display:flex;flex-direction:column;gap:6px}.check-item{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.check-item input[type=checkbox]{accent-color:var(--brand);width:15px;height:15px;flex:none;cursor:pointer}.check-item.done .check-text{text-decoration:line-through;color:var(--ink-3)}.check-text{flex:1;min-width:0;border:none;border-bottom:1px solid transparent;background:transparent;font:inherit;font-size:13px;color:var(--ink)}.check-text:focus{outline:none;border-bottom-color:var(--brand)}.check-add{display:flex;gap:8px;margin-top:8px}.check-add .text-input{flex:1;min-width:0}.check-add .btn{flex:none}.dialog-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:#f6f4ee;border-radius:0 0 14px 14px;flex-wrap:wrap}.flex-spacer{flex:1}.autosave-hint{font-size:11.5px;color:var(--ink-3);white-space:nowrap}.confirm-box{background:var(--danger-soft);border:1px solid #e8cfc9;border-radius:10px;padding:10px 12px;max-width:100%}.confirm-box p{font-size:12.5px;color:#7c2a24;font-weight:600;display:flex;gap:7px;align-items:flex-start;margin-bottom:8px;line-height:1.45}.confirm-box p svg{flex:none;margin-top:1px}.confirm-row{display:flex;gap:8px}.move-menu{position:fixed;z-index:1200;width:248px;background:#fffdf9;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);padding:6px;transition:opacity .12s ease}.move-menu-title{margin:5px 8px 7px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);word-break:break-word}.move-menu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;font-weight:600;color:var(--ink);padding:8px 10px;border:none;background:transparent;border-radius:8px;cursor:pointer;flex-wrap:wrap}.move-menu button:hover:not([disabled]),.move-menu button:focus-visible:not([disabled]){background:var(--brand-soft)}.move-menu button[disabled]{cursor:default;color:var(--ink-3)}.menu-dot{width:9px;height:9px;border-radius:3px;flex:none}.menu-count{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:600}.menu-full{flex-basis:100%;font-size:10.5px;color:var(--warn);font-weight:700;padding-left:17px}@media(max-width:700px){.topbar{flex-wrap:wrap;row-gap:8px;padding:10px 12px}.crumbs{order:3;flex-basis:100%;border-left:none;padding-left:0;margin-left:0;gap:6px}.topbar-actions{gap:6px}.btn-top{padding:6px 9px;font-size:12px}.filterbar{padding:10px 12px;gap:8px}.search{flex:1 1 100%;max-width:none}.filter-label{flex:1 1 0}.filter-select{max-width:none;width:100%}.filter-meta{display:none}.board{padding:10px 12px 12px;gap:10px}.column{flex:0 0 264px;min-width:264px}.foot{padding:7px 12px}.foot-hint{display:none}.field-grid{grid-template-columns:1fr}.toasts{right:12px;left:12px;bottom:42px;max-width:none}.dialog-overlay{padding:12px 10px 10px}.autosave-hint{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
