:root{--toolbar-bg: #ffffff;--toolbar-border: rgba(0,0,0,.08);--board-bg: #ffffff;--label: #b5af9f;--text: #1a1a1a;--text-muted: #888;--modal-bg: #ffffff;--modal-border: #ddd}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--board-bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Helvetica Neue,Arial,sans-serif;font-size:14px;min-height:100vh}input,textarea,button{font-family:inherit;color:inherit}.toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 16px;background:var(--toolbar-bg);position:sticky;top:0;z-index:10}.toolbar:after{content:"";position:absolute;bottom:0;left:32px;right:32px;height:1px;background:var(--toolbar-border)}.toolbar-left{display:flex;align-items:center;gap:8px}.toolbar-center{display:flex;align-items:center;gap:5px;justify-content:center}.toolbar-right{display:flex;align-items:center;gap:8px;justify-content:flex-end}.toolbar h1{font-size:14px;font-weight:600;margin:0 6px 0 0;letter-spacing:-.2px;color:#555}.cf-all{background:transparent;border:1.5px solid #ccc9c3;border-radius:4px;padding:3px 9px;font-size:11px;font-weight:700;color:#999;cursor:pointer;transition:all .1s;letter-spacing:.3px}.cf-all:hover:not(.cf-active){border-color:#999;color:#555}.cf-all.cf-active{background:#333;color:#fff;border-color:#333}.cf-swatch{width:18px;height:18px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .1s,box-shadow .1s;box-shadow:0 1px 3px #00000021;flex-shrink:0}.cf-swatch:hover{transform:scale(1.2);box-shadow:0 2px 6px #0003}.cf-swatch.cf-active{border-color:#333;transform:scale(1.15);box-shadow:0 0 0 1px #333,0 2px 6px #0003}.btn{background:#ffffff8c;border:1px solid #ccc9c3;border-radius:4px;padding:5px 12px;font-size:13px;color:var(--text);cursor:pointer;transition:background .1s,border-color .1s}.btn:hover{background:#ffffffd9;border-color:#999}.btn-primary{background:#333;color:#fff;border-color:#333}.btn-primary:hover{background:#111;border-color:#111}.btn-danger{color:#c02020;border-color:#e4b8b8}.btn-danger:hover{background:#fff5f5;border-color:#c02020}.btn-subtle{color:var(--text-muted);border-color:#ddd}.btn-subtle:hover{color:var(--text)}.board{background:var(--board-bg);min-height:calc(100vh - 42px);padding:0 0 40px;display:flex;flex-direction:column}.board-header-scroll{overflow-x:hidden;padding:20px 24px 0;position:sticky;top:42px;z-index:8;border-bottom:1px solid rgba(0,0,0,.07)}.board-scroll{overflow-x:auto;padding:0 24px;flex:1}.board-inner{display:flex;flex-direction:column;width:max-content;min-width:100%}.header-row,.lane-row{display:grid;gap:0}.col-header{display:flex;align-items:center;gap:4px;padding:6px 16px 10px;background:transparent;border:none;color:var(--label);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px}.col-header .name-input{color:var(--label);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;background:#fff;border-radius:3px;padding:2px 6px;flex:none;field-sizing:content}.col-header .name-input:focus{background:#f5f5f5}.lane-divider{border-top:1px solid rgba(0,0,0,.06);margin:4px 0}.lane-divider-first{border-top:none;margin:0}.lane-row{padding-top:4px}.lane-header{display:flex;align-items:flex-start;gap:4px;padding:12px 8px 12px 0;background:transparent;border:none;color:var(--label);position:sticky;left:0;z-index:20}.lane-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--label)}.handle{display:inline-flex;align-items:center;justify-content:center;color:#0000002e;cursor:grab;-webkit-user-select:none;user-select:none;padding:0 2px;font-size:11px;letter-spacing:-1px;flex-shrink:0;opacity:0;transition:opacity .12s}.col-header:hover .handle,.lane-header:hover .handle{opacity:1}.handle:active{cursor:grabbing}.handle:hover{color:#00000080}.name-input{flex:1;min-width:0;border:none;background:transparent;font:inherit;color:inherit;padding:2px 4px;outline:none;border-radius:3px}.lane-header .name-input{background:#fff;border-radius:3px;padding:2px 6px;flex:none;field-sizing:content}.lane-header .name-input:focus{background:#f5f5f5}.del-btn{background:transparent;border:none;color:#0003;cursor:pointer;font-size:16px;line-height:1;padding:0 4px;flex-shrink:0;border-radius:3px;opacity:0;transition:opacity .12s}.col-header:hover .del-btn,.lane-header:hover .del-btn{opacity:1}.del-btn:hover{color:#c02020;opacity:1}.cell{background:transparent;border:none;padding:8px 16px 16px;min-height:140px;display:flex;flex-direction:column;gap:0;border-radius:6px;transition:box-shadow .12s}.cell-over{box-shadow:inset 0 0 0 2px #0000001f}.cell-cards{display:flex;flex-direction:column;gap:10px;flex:1}.add-card{background:transparent;border:none;color:#00000038;font-size:20px;font-weight:300;line-height:1;cursor:pointer;padding:4px 0;width:28px;text-align:center;margin-top:8px;border-radius:50%;transition:color .1s,background .1s}.add-card:hover{color:#0009;background:#0000000f}.card{position:relative;overflow:hidden;border:none;border-radius:2px;padding:11px 13px 16px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:#fef08a;box-shadow:2px 3px 8px #00000021,0 1px 2px #0000000f;transition:box-shadow .12s,transform .1s}.card:after{content:"";position:absolute;bottom:0;right:0;width:20px;height:20px;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.1) 50%);pointer-events:none}.card:hover{box-shadow:4px 8px 18px #0000002b,0 2px 4px #00000014;filter:brightness(1.02)}.card:active{cursor:grabbing}.card-dragging{cursor:grabbing!important;box-shadow:8px 16px 36px #00000038,0 4px 8px #0000001a;transform:rotate(2deg) scale(1.04)}.card-title{font-weight:600;font-size:13px;line-height:1.35;word-wrap:break-word;color:#000000bf}.card-subtitle{font-size:12px;color:#00000073;margin-top:4px;line-height:1.3;word-wrap:break-word}.col-header-dragging{background:#fff;border-radius:4px;box-shadow:4px 6px 20px #00000029;min-width:180px;opacity:.95}.lane-header-dragging{background:#fff;border-radius:4px;box-shadow:4px 6px 20px #00000029;min-width:160px;opacity:.95}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000047;z-index:100;animation:fadeIn .12s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:8px;overflow:hidden;padding:0;width:min(560px,92vw);max-height:88vh;z-index:101;display:flex;flex-direction:column;box-shadow:0 24px 64px #0003}.modal-stripe{height:6px;flex-shrink:0;transition:background .15s}.modal>input,.modal>.notes-label,.modal>.color-picker,.modal>.notes-view,.modal>textarea,.modal>.modal-buttons{margin:0 20px}.modal>input:first-of-type{margin-top:14px}.modal input,.modal textarea{border:1px solid #e8e8e8;border-radius:4px;padding:8px 10px;background:#fff;color:var(--text);outline:none;transition:border-color .1s;width:100%}.modal input:focus,.modal textarea:focus{border-color:#888}.modal-title{font-size:16px;font-weight:600;margin-top:14px}.modal-subtitle{font-size:13px;color:#666;margin-top:8px}.color-picker{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.color-swatch{width:26px;height:26px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .1s;box-shadow:0 1px 3px #0000001f}.color-swatch:hover{transform:scale(1.18)}.swatch-selected{border-color:#333;transform:scale(1.12)}@keyframes rainbow-unlock-pop{0%{transform:scale(0) rotate(-25deg);opacity:0}55%{transform:scale(1.3) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.rainbow-swatch{position:relative;animation:rainbow-unlock-pop .45s ease-out,rainbow-steps .7s steps(1) infinite}.rainbow-swatch:before{content:"★";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.6);pointer-events:none}.notes-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#aaa;margin-top:14px;margin-bottom:4px}.modal-notes{min-height:180px;resize:vertical;line-height:1.55;font-size:14px;white-space:pre-wrap;width:100%}.notes-view{min-height:180px;max-height:38vh;border:1px solid #e8e8e8;border-radius:4px;padding:8px 10px;line-height:1.55;font-size:14px;white-space:pre-wrap;overflow-y:auto;cursor:text;color:var(--text);background:#fff;transition:border-color .1s;width:100%}.notes-view:hover{border-color:#aaa}.notes-empty{border-style:dashed}.notes-placeholder{color:#bbb;pointer-events:none}.notes-view a{color:#1a6fc4;text-decoration:underline;word-break:break-all}.notes-view a:hover{color:#0e4a88}.modal-buttons{display:flex;gap:8px;justify-content:flex-end;padding:14px 0 16px;margin-top:10px;border-top:1px solid #f0f0f0}.modal-buttons .btn-danger{margin-right:auto}.card-timer-btn{position:absolute;top:7px;right:28px;width:18px;height:18px;border-radius:50%;border:none;background:#00000024;color:#00000080;font-size:7px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:1;transition:background .1s,color .1s;opacity:0}.card:hover .card-timer-btn{opacity:1}.card-timer-btn-active{background:#22c55e!important;color:#fff!important;opacity:1!important}.card-timer-btn:hover{background:#00000047;color:#000c}.card-timer-btn-active:hover{background:#16a34a!important}@keyframes card-pulse{0%,to{box-shadow:0 0 0 2px #22c55e,2px 3px 8px #00000021,0 1px 2px #0000000f}50%{box-shadow:0 0 0 3px #22c55e,0 0 14px #22c55e59,2px 3px 8px #00000021,0 1px 2px #0000000f}}.card-timer-active{animation:card-pulse 1.5s ease-in-out infinite}@keyframes rainbow-steps{0%,13.9%{background-color:#ff3b30}14%,27.9%{background-color:#ff9500}28%,41.9%{background-color:#ffe600}42%,55.9%{background-color:#34c759}56%,69.9%{background-color:#0a84ff}70%,83.9%{background-color:#5e5ce6}84%,to{background-color:#ff2d78}}@keyframes rainbow-glow{0%,13.9%{box-shadow:0 0 0 2px #ff3b30,0 0 16px #ff3b3099,2px 3px 8px #00000021}14%,27.9%{box-shadow:0 0 0 2px #ff9500,0 0 16px #ff950099,2px 3px 8px #00000021}28%,41.9%{box-shadow:0 0 0 2px #ffe600,0 0 16px #ffe60099,2px 3px 8px #00000021}42%,55.9%{box-shadow:0 0 0 2px #34c759,0 0 16px #34c75999,2px 3px 8px #00000021}56%,69.9%{box-shadow:0 0 0 2px #0a84ff,0 0 16px #0a84ff99,2px 3px 8px #00000021}70%,83.9%{box-shadow:0 0 0 2px #5e5ce6,0 0 16px #5e5ce699,2px 3px 8px #00000021}84%,to{box-shadow:0 0 0 2px #ff2d78,0 0 16px #ff2d7899,2px 3px 8px #00000021}}.card-rainbow{animation:rainbow-steps 1.1s steps(1) infinite}.card.card-rainbow,.card-dragging.card-rainbow,.card-timer-active.card-rainbow{animation:rainbow-steps 1.1s steps(1) infinite,rainbow-glow 1.1s steps(1) infinite}.modal-stripe.card-rainbow{animation:rainbow-steps .9s steps(1) infinite}.atb-dot.card-rainbow,.te-dot.card-rainbow{animation:rainbow-steps .7s steps(1) infinite}.settings-modal{width:min(440px,92vw)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0;font-size:14px;font-weight:600;color:#333}.settings-close{background:transparent;border:none;font-size:20px;color:#aaa;cursor:pointer;padding:0 4px;line-height:1;border-radius:3px}.settings-close:hover{color:#333}.settings-body{padding:4px 20px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #f5f5f5}.settings-row:last-child{border-bottom:none}.settings-label{font-size:13px;font-weight:600;color:#1a1a1a}.settings-desc{font-size:12px;color:#999;margin-top:2px}.settings-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid #f0f0f0}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#ddd;border-radius:22px;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:#22c55e}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.active-timer-bar{display:flex;align-items:center;gap:12px;padding:9px 20px;background:#f0fdf4;border-bottom:1px solid #bbf7d0;position:sticky;top:42px;z-index:9}.atb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;animation:card-pulse-dot 1.5s ease-in-out infinite}@keyframes card-pulse-dot{0%,to{box-shadow:0 0 0 2px #22c55e}50%{box-shadow:0 0 0 4px #22c55e4d}}.atb-title{font-size:13px;font-weight:600;color:#166534;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atb-elapsed{font-size:13px;font-variant-numeric:tabular-nums;color:#15803d;font-weight:600;flex-shrink:0;min-width:60px}.atb-note{flex:1;min-width:0;border:1px solid #bbf7d0;border-radius:4px;padding:5px 10px;font-size:13px;color:#166534;outline:none;background:#fff;font-family:inherit}.atb-note:focus{border-color:#22c55e}.atb-note::placeholder{color:#86efac}.atb-stop{flex-shrink:0;background:#22c55e;color:#fff;border-color:#16a34a;font-size:12px;padding:5px 12px}.atb-stop:hover{background:#16a34a!important;border-color:#15803d!important}.time-log{padding:20px 24px 48px;border-top:1px solid rgba(0,0,0,.07)}.time-log-heading{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#bbb;margin-bottom:10px}.time-log-sort-btn{background:transparent;border:1px solid #e0e0e0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.5px;color:#bbb;cursor:pointer;text-transform:none;transition:color .1s,border-color .1s}.time-log-sort-btn:hover{color:#555;border-color:#aaa}.time-entry{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ebebeb;border-radius:6px;padding:10px 14px;margin-bottom:6px;box-shadow:0 1px 3px #0000000d}.te-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.te-title{min-width:100px;max-width:200px;font-size:13px;font-weight:600;color:#1a1a1a;flex-shrink:0}.te-clickable{cursor:pointer;border-radius:3px;padding:1px 3px;margin:-1px -3px}.te-clickable:hover{background:#0000000f}.te-times{display:flex;align-items:center;gap:5px;font-size:12px;color:#666;flex:1;min-width:0;flex-wrap:wrap}.te-date{color:#999;white-space:nowrap}.te-sep{color:#ddd}.te-duration{font-weight:600;color:#555;white-space:nowrap}.te-edit-input{border:1px solid #888;border-radius:3px;padding:2px 6px;font-size:inherit;font-family:inherit;color:inherit;outline:none;background:#fff;max-width:180px}.te-note{width:220px;flex-shrink:0;border:1px solid #e8e8e8;border-radius:4px;padding:5px 8px;font-size:12px;color:#555;outline:none;background:#fafafa;font-family:inherit}.te-note:focus{border-color:#888;background:#fff}.te-note::placeholder{color:#ccc}.te-delete{background:transparent;border:none;color:#0000002e;cursor:pointer;font-size:18px;line-height:1;padding:0 4px;flex-shrink:0;border-radius:3px;transition:color .1s}.te-delete:hover{color:#c02020}@media (max-width: 680px){.toolbar h1{display:none}.board{padding:12px 8px 40px}.cell{padding:6px 8px 12px}}
