:root{--ink:#20211f;--muted:#5f675f;--paper:#f2efe7;--panel:#ffffffd9;--line:#cbc5b7;--brand:#2f748c;--cloud:#e8eef0;--danger:#ad4747;--sans:"Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", "Consolas", monospace}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);font:16px/1.45 var(--sans);background:radial-gradient(circle at 12% 18%,#b3d6dc99,#0000 30%),radial-gradient(circle at 88% 9%,#ffd7ac99,#0000 25%),linear-gradient(#f8f5ed,#ece7d9);margin:0}#root{min-height:100svh}h1,h2,p{margin:0}h1,h2{color:var(--ink);line-height:1.1}h1{font-size:clamp(2.1rem,4vw,3.1rem)}h2{font-size:clamp(1.1rem,2.2vw,1.45rem)}.vault-shell{gap:1rem;width:min(1120px,100% - 2rem);margin:1rem auto 2rem;display:grid}.hero{border:1px solid var(--line);background:linear-gradient(130deg,#fff8ebd9,#ddeff1d9);border-radius:20px;padding:1.4rem 1.6rem;box-shadow:0 20px 35px #2d2a1e14}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--muted);margin:0;font-size:.76rem;font-weight:700}.hero h1{margin:.35rem 0 .5rem}.panel{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:1rem}.panel h2{margin:0 0 1rem}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:.6rem .65rem}textarea{resize:vertical}button{background:var(--brand);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:10px;padding:.65rem .9rem;font-weight:700}.ghost{color:var(--ink);border-color:var(--line);background:#fff}.danger{background:var(--danger)}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:.9rem;display:flex}.toolbar>*{min-height:40px}.toolbar input[type=search]{flex:280px}.tabs{border-bottom:2px solid var(--line);gap:.5rem;margin-bottom:.55rem;padding:.15rem .1rem .5rem;display:flex;overflow-x:auto}.tab{white-space:nowrap;color:var(--ink);border:1px solid var(--line);background:#efe8d6;border-bottom:none;border-radius:12px 12px 0 0;padding:.5rem .95rem .58rem;transform:translateY(2px)}.tab.active{color:var(--ink);border-color:var(--line);background:#fff;transform:translateY(3px);box-shadow:0 -2px #fff}.import-pill{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:.65rem .9rem;font-weight:700;display:inline-flex}.import-pill input{display:none}.entry-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.category-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem;padding-top:.8rem;display:flex}.category-head h3{color:var(--ink);margin:0;font-size:1rem}.category-count{text-align:center;background:var(--cloud);border-radius:999px;min-width:2rem;padding:.15rem .55rem;font-size:.84rem;font-weight:700}.entry-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.9rem;animation:.32s rise}.entry-card.completed{background:#edf4ed}.entry-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.entry-head strong{color:var(--ink);font-size:1.05rem}.name-check{align-items:center;gap:.5rem;display:inline-flex}.name-check input{width:18px;height:18px}.entry-card.completed .name-check strong{color:var(--muted);text-decoration:line-through}.file-pill{background:var(--cloud);font-family:var(--mono);border-radius:999px;margin:.4rem 0;padding:.22rem .5rem;font-size:.84rem;display:inline-flex}.chip-row{flex-wrap:wrap;gap:.45rem;margin-top:.45rem;display:flex}.chip{background:var(--cloud);text-transform:uppercase;border-radius:999px;align-items:center;padding:.18rem .55rem;font-size:.75rem;display:inline-flex}.member-dropdown{margin-top:.45rem}.member-dropdown summary{cursor:pointer;color:var(--ink);font-weight:600}.member-dropdown ul{margin:.4rem 0 0;padding-left:1rem}.solo-pill{background:#2f748c29;border-radius:999px;margin-top:.45rem;padding:.15rem .5rem;font-size:.78rem;font-weight:700;display:inline-flex}.chip.open{background:#f7ae5433}.chip.closed{background:#58c17d33}.actions{gap:.5rem;margin-top:.9rem;display:flex}.empty-state{color:var(--muted);margin:1rem 0 0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=860px){.tab{padding-inline:.8rem}}
