:root{--ink:#101410;--paper:#171c18;--paper-2:#1f2620;--text:#eef3ee;--muted:#8b978c;--line:#2c352e;--leaf:#6fce7a;--leaf-dim:#6fce7a24;--gold:#d4b06a;--gold-dim:#d4b06a29;--danger:#e07070;--focus:#6fce7a6b;color:var(--text);background:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Segoe UI,Avenir Next,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(720px 380px at 8% -10%, #6fce7a21, transparent 55%), radial-gradient(640px 360px at 100% 0%, #d4b06a1f, transparent 50%), var(--ink);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button,input,textarea{font-family:inherit}button{cursor:pointer}input,textarea{color:var(--text)}.app{width:min(1080px,100% - 32px);margin:0 auto;padding:28px 0 64px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.mark{flex:none;width:48px;height:48px}h1{letter-spacing:-.03em;margin:0;font-size:1.85rem;font-weight:650}.tag{color:var(--muted);margin:2px 0 0;font-size:.98rem}.tools{flex-wrap:wrap;gap:8px;display:flex}.ghost,.tiny,.solid,.log-btn{color:var(--text);border:1px solid var(--line);background:0 0;border-radius:999px;padding:7px 14px;font-size:.86rem}.ghost:hover,.tiny:hover{background:var(--paper)}.ghost.danger,.tiny.danger{color:var(--danger)}.ghost.warn,.tiny.warn{color:var(--danger);background:#e070701f;border-color:#e0707073}.ghost:disabled,.tiny:disabled,.solid:disabled,.log-btn:disabled{opacity:.4;cursor:not-allowed}.blurb{color:var(--muted);max-width:44rem;margin:14px 0 0;font-size:.92rem}.kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.72rem}.meta{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin:18px 0 0;padding:12px 14px}.meta-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.histo{grid-template-columns:repeat(14,minmax(0,1fr));align-items:end;gap:4px;height:56px;margin-top:10px;display:grid}.histo.mini{height:36px;margin-top:8px}.bar{background:var(--line);border-radius:4px 4px 1px 1px;min-height:3px}.bar.on{background:var(--leaf)}.add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.add input[type=text]{background:var(--paper);border:1px solid var(--line);border-radius:12px;flex:200px;min-width:0;padding:9px 12px;font-size:.95rem}.color-lab{color:var(--muted);align-items:center;gap:8px;font-size:.8rem;display:flex}.color-lab input{border:1px solid var(--line);background:var(--paper);border-radius:8px;width:36px;height:28px;padding:0}.board{grid-template-columns:1fr;gap:12px;margin-top:16px;display:grid}@media (width>=820px){.board{grid-template-columns:1fr 1fr}}.card{--type:var(--leaf);background:var(--paper);border:1px solid var(--line);box-shadow:inset 3px 0 0 var(--type);border-radius:16px;gap:10px;padding:14px;display:grid}.card.sel{box-shadow:inset 3px 0 0 var(--type), inset 0 0 0 1px var(--gold)}.card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-name{align-items:center;gap:8px;min-width:0;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.card h2{margin:0;font-size:1.08rem;font-weight:650}.count{color:var(--muted);white-space:nowrap;font-size:.8rem}.log-btn{background:var(--type,var(--leaf));color:#102014;border-color:#0000;padding:14px 16px;font-size:1.12rem;font-weight:700}.composer{gap:8px;display:grid}.composer input[type=text],.note{background:var(--paper-2);border:1px solid var(--line);color:var(--text);border-radius:10px;width:100%;padding:8px 10px;font-size:.88rem}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.file{position:relative;overflow:hidden}.file input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.thumb{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:44px;height:44px}.proof{border:1px solid var(--line);background:var(--paper-2);width:56px;height:56px;color:var(--muted);border-radius:8px;place-items:center;padding:0;display:grid}.proof.empty span{font-size:1.2rem}.err{color:var(--danger);margin:10px 0 0;font-size:.8rem}.log-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;margin-top:18px;padding:14px 16px}.log-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.log-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.log-list li{background:var(--paper-2);border-radius:12px;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:10px;padding:8px 10px;display:grid}.log-copy{gap:4px;min-width:0;display:grid}.log-copy strong{font-size:.92rem}.log-copy time{color:var(--muted);font-size:.78rem}.empty{color:var(--muted);margin:12px 0 0;font-size:.92rem}.viewer{z-index:20;background:#080a08c7;border:0;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.viewer img{border:1px solid var(--line);border-radius:12px;max-width:min(640px,100%);max-height:80vh}.ghost:focus,.tiny:focus,.log-btn:focus,.add input:focus,.composer input:focus,.note:focus,.file:focus-within,.color-lab input:focus{outline:2px solid var(--focus);outline-offset:1px}
