:root{--bg:#f6f6f6;--surface:#ffffff;--ink:#1d1c1d;--ink-soft:#454245;--muted:#696769;--faint:#8d8a8e;--hair:rgba(29,28,29,0.10);--hair-soft:rgba(29,28,29,0.06);--accent:#1264a3;--ok:#2bac76;--warn:#b8541a;--shadow:0 1px 0 rgba(0,0,0,0.04),0 1px 4px rgba(0,0,0,0.06)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior:none;position:fixed;inset:0}button{font:inherit;color:inherit}button,input,select,textarea{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:grid;grid-template-rows:auto 1fr;position:fixed;inset:0;height:100dvh;width:100%;padding-bottom:env(safe-area-inset-bottom)}.topbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--hair);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.topbar form{display:flex;flex:1 1;gap:6px;min-width:0}.topbar input{flex:1 1;min-width:0;padding:8px 10px;background:#f4f4f4;border:1px solid var(--hair);border-radius:6px;color:var(--ink)}.topbar input:focus{outline:2px solid rgba(18,100,163,.35);border-color:var(--accent)}.topbar button{padding:8px 12px;background:var(--ink);color:#fff;border:0;border-radius:6px;cursor:pointer;font-weight:600}.topbar button:disabled{opacity:.5;cursor:not-allowed}.topbar button.ghost{background:transparent;color:var(--muted);border:1px solid var(--hair);font-weight:500}.board{grid-template-rows:1fr 1fr 1fr;grid-gap:8px;gap:8px;padding:8px;overflow:hidden}.board,.row{display:grid;min-height:0}.row{background:transparent;grid-template-rows:auto 1fr}.row-header{display:flex;align-items:baseline;gap:8px;padding:4px 6px 6px}.row-header .label{font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.row-header .count{font-size:11px;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row-header .sub{font-size:12px;color:var(--faint);margin-left:auto;white-space:nowrap}.row-scroll{display:flex;gap:8px;padding:2px 6px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;min-height:0}.row-scroll.over{background:rgba(18,100,163,.04);border-radius:8px}.row-empty{flex:0 0 auto;align-self:center;margin:auto;color:var(--faint);font-size:12px;padding:0 12px}.card{flex:0 0 240px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;display:grid;grid-template-rows:auto auto 1fr auto;grid-gap:6px;gap:6px;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:box-shadow .16s ease,transform .16s ease,border-color .16s ease}.card:hover{border-color:rgba(29,28,29,.18);box-shadow:0 1px 0 rgba(0,0,0,.04),0 4px 12px rgba(0,0,0,.08)}.card:active{cursor:-webkit-grabbing;cursor:grabbing}.card.dragging{opacity:.4}.card.overlay{box-shadow:0 12px 28px rgba(0,0,0,.18),0 2px 6px rgba(0,0,0,.08);transform:rotate(1.5deg)}.card .company{font-weight:700;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .title{font-size:13px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .meta{font-size:11px;color:var(--faint)}.card .meta,.card .pills{display:flex;gap:6px;flex-wrap:wrap}.card .pill{font-size:10.5px;color:var(--muted);background:var(--hair-soft);padding:2px 7px;border-radius:999px}.card .pill.ok{color:var(--ok);background:rgba(43,172,118,.08)}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fade-in .16s ease}.sheet{width:100%;max-width:640px;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.22);padding:8px 0 0;max-height:92dvh;display:grid;grid-template-rows:auto auto 1fr auto;animation:slide-up .22s cubic-bezier(.22,1,.36,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(16px);opacity:.6}to{transform:translateY(0);opacity:1}}.sheet-grabber{width:36px;height:4px;border-radius:999px;background:rgba(29,28,29,.18);margin:6px auto 8px}.sheet-header{display:flex;align-items:flex-start;gap:12px;padding:4px 16px 12px;border-bottom:1px solid var(--hair-soft)}.sheet-titles{min-width:0;flex:1 1}.sheet h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.sheet .sheet-role{font-size:14px;color:var(--ink-soft);margin-top:2px;font-weight:500}.sheet .sub{color:var(--muted);font-size:12.5px;margin-top:4px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--hair);background:var(--surface);color:var(--ink-soft);cursor:pointer;flex-shrink:0;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--hair-soft);color:var(--ink)}.icon-btn:active{transform:scale(.96)}.sheet .scroll{overflow-y:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}.sheet .desc{font-size:14px;color:var(--ink-soft);white-space:pre-wrap;margin:0;line-height:1.55}.sheet .section-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:20px 0 6px;font-weight:600}.sheet textarea{width:100%;min-height:84px;border:1px solid var(--hair);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;color:var(--ink);background:#fafafa;resize:vertical;transition:border-color .12s ease,background .12s ease}.sheet textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px rgba(18,100,163,.12)}.sheet-actions{display:flex;gap:8px;align-items:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--hair);box-shadow:0 -4px 16px rgba(0,0,0,.04)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;transition:background .12s ease,transform 80ms ease,border-color .12s ease,box-shadow .12s ease;white-space:nowrap;text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:active{transform:none}.btn-primary{flex:1 1;background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 1px 0 rgba(0,0,0,.05),0 2px 8px rgba(29,28,29,.18)}.btn-primary:hover:not(:disabled){background:#000}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--hair)}.btn-secondary:hover{background:var(--hair-soft)}.btn-ghost-danger{width:44px;padding:0;background:transparent;color:#b91c1c;border-color:transparent}.btn-ghost-danger:hover{background:rgba(185,28,28,.08)}.toast{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:8px 14px;border-radius:999px;font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.25);z-index:60}.toast.err{background:#b91c1c}.toast.ok{background:var(--ink)}@media (min-width:720px){.card{flex-basis:280px}.topbar{padding:12px 16px}.board{padding:12px;gap:10px}}