:root{--navy: #0b2545;--paper: #f4f6f9;--line: #e3e8ef;--ink: #16283f;--muted: #6b7a8d;--unsorted: #6b7a8d;--known: #2e7d4f;--unknown: #b7791f;--moved: #7b4bb3}@media (min-width: 1600px){html{font-size:20px}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;color:inherit;border-radius:.4rem;padding:.35rem .6rem}input,textarea{font:inherit;font-size:max(16px,1rem);width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:.5rem}.primary{background:var(--navy);color:#fff;border:none;padding:.7rem}.link{border:none;background:none;color:#fff;opacity:.8}.muted{color:var(--muted);font-size:.9rem}.error{color:#8c2f26}.banner{margin:0;padding:.6rem 1rem;background:#fbe9e7;cursor:pointer}.center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1rem}.signin{max-width:22rem;margin:0 auto}.signin button{width:100%}.app{display:flex;flex-direction:column;height:100dvh}header{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--navy);color:#fff}header h1{font-size:1.15rem;margin:0;white-space:nowrap}header input{max-width:26rem;margin-left:auto}.tabs{display:none}.board{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;padding:.75rem}.col{overflow-y:auto;background:#e9edf2;border-radius:.6rem;padding:0 .5rem .5rem;border-top:.3rem solid var(--c)}.col.over{outline:3px dashed var(--c)}.col h2{position:sticky;top:0;margin:0;padding:.6rem .25rem;font-size:1rem;background:#e9edf2;color:var(--c)}.col h2 span,.tabs span{color:var(--muted);font-weight:400}.unsorted{--c: var(--unsorted)}.known{--c: var(--known)}.unknown{--c: var(--unknown)}.moved{--c: var(--moved)}.card{background:#fff;border-radius:.5rem;padding:.6rem .7rem;margin-bottom:.5rem;box-shadow:0 1px 2px #00000014;cursor:pointer}.name{font-weight:600;margin:0}.assigned{margin-top:.3rem;font-size:.9rem;color:var(--unknown);font-weight:600}.notes{margin-top:.3rem;font-size:.85rem;color:var(--muted);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card.done{opacity:.45;background:#eef0f3;box-shadow:none}.card.done .name{text-decoration:line-through}.check{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.9rem;font-weight:600;color:var(--moved);cursor:pointer}.check input{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--moved)}.moves{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.moves button{color:var(--c);border-color:currentColor;font-size:.85rem}.moves button.active{background:var(--c);color:#fff}dialog{border:none;border-radius:.8rem;width:min(32rem,calc(100vw - 2rem));padding:0}.sheet{padding:1.25rem}dialog::backdrop{background:#0b254580}dialog label{display:block;margin-top:1rem;font-size:.85rem;font-weight:600;color:var(--muted)}dialog label input,dialog label textarea{margin-top:.3rem;color:var(--ink);font-weight:400}dialog .primary{width:100%;margin-top:1rem}@media (max-width: 899px){.app{height:auto}.top{position:sticky;top:0;z-index:1;background:var(--paper)}header{flex-wrap:wrap}header input{order:3;max-width:none}.tabs{display:flex;gap:.35rem;padding:.5rem .75rem}.tabs button{flex:1;padding:.5rem .2rem;border-bottom:.25rem solid var(--c)}.tabs button.active{background:var(--c);color:#fff}.tabs button.active span{color:#fff}.board{display:block}.col{display:none;background:none;border:none;padding:0}.col.active{display:block}.col h2{display:none}.card .moves button{padding:.5rem .75rem}}
