:root{
  --paper:#f6f1e7;--card:#fffdf8;--ink:#23201b;--mute:#6f675b;--line:#e3dac8;
  --accent:#d2461e;--accent-ink:#fff;--blue:#2f5fa7;--green:#2f7d4f;--amber:#b7791f;--red:#b3261e;
  --shadow:0 1px 2px rgba(60,40,10,.08),0 6px 18px rgba(60,40,10,.06);--r:14px;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#17140f;--card:#211d17;--ink:#f1eadb;--mute:#a79d8a;--line:#383025;
  --accent:#ef6a40;--blue:#7aa6e8;--green:#6cc08b;--amber:#e3b04b;--red:#ff8a80;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.3);}}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;font:15px/1.5 Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
h1,h2,h3{font-family:Fraunces,Georgia,serif;margin:0;letter-spacing:-.01em}
a{color:var(--blue)}
.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:999px;cursor:pointer;box-shadow:var(--shadow)}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.small{padding:4px 10px;font-size:13px;box-shadow:none}
.btn.danger{color:var(--red)}
.btn:disabled{opacity:.55;cursor:wait}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;width:100%}
textarea{resize:vertical;min-height:90px}
input:focus,select:focus,textarea:focus,.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

#gate{min-height:100vh;display:grid;place-items:center;padding:20px}
#gate-form{background:var(--card);padding:32px;border-radius:var(--r);box-shadow:var(--shadow);width:min(360px,100%);display:grid;gap:12px;text-align:center}
.err{color:var(--red);min-height:1.2em;margin:0}

#app{max-width:1280px;margin:0 auto;padding:20px 18px 80px}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.brand{display:flex;align-items:baseline;gap:10px}
.brand h1{font-size:28px}
.mark{color:var(--accent);font-size:24px}
.sub{color:var(--mute);font-size:14px}
.top-actions{display:flex;gap:8px}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}
.stat b{display:block;font:700 26px Fraunces,serif}
.stat span{color:var(--mute);font-size:13px}

.due{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--r);padding:12px 16px;margin-bottom:10px}
.due h2{font-size:17px;margin-bottom:6px}
.due ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.due li{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;cursor:pointer}
.due li:hover .nm{text-decoration:underline}
.nm{font-weight:600}
.when{font-size:13px;color:var(--mute)}
.when.over{color:var(--red);font-weight:600}.when.soon{color:var(--amber);font-weight:600}
.scan-note{color:var(--mute);font-size:13px;margin:0 0 10px;min-height:1em}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px}
.tabs button{font:inherit;font-weight:600;background:none;border:none;color:var(--mute);padding:10px 14px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}
.pill{background:var(--accent);color:var(--accent-ink);border-radius:999px;font-size:12px;padding:1px 7px}
.pill:empty{display:none}
.filters{display:grid;grid-template-columns:minmax(180px,2fr) 1fr 1.2fr 1fr 1fr;gap:8px;margin-bottom:14px}
@media(max-width:720px){.filters{grid-template-columns:1fr 1fr}.filters #q{grid-column:1/-1}}

.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:12px;overflow-x:auto;padding-bottom:12px;align-items:start}
.col{background:color-mix(in srgb,var(--line) 35%,transparent);border-radius:var(--r);padding:10px;min-height:120px}
.col h3{font-size:15px;display:flex;justify-content:space-between;margin-bottom:8px}
.col h3 span{color:var(--mute);font:500 13px Inter}
.col.over{outline:2px dashed var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow)}
.card:hover{border-color:var(--ink)}
.card[draggable=true]{cursor:grab}
.card .org{font-weight:700}
.card .ttl{color:var(--mute);font-size:13.5px;margin:2px 0 6px}
.tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tag{font-size:12px;border-radius:999px;padding:1px 8px;background:color-mix(in srgb,var(--line) 70%,transparent);color:var(--mute)}
.tag.fit{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:600}
.tag.ext{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}
.tag.ok{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}

.list{display:grid;gap:8px}
.row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;cursor:pointer}
.row:hover{border-color:var(--ink)}
.row .ttl{color:var(--mute);font-size:14px}
@media(max-width:720px){.row{grid-template-columns:1fr auto}.row .ttl{grid-column:1/-1;order:3}}
.inbox-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:8px;box-shadow:var(--shadow)}
.inbox-card .actions{display:flex;gap:8px;flex-wrap:wrap}
.empty{color:var(--mute);text-align:center;padding:40px 10px}

dialog{border:none;border-radius:var(--r);padding:0;width:min(720px,calc(100vw - 24px));max-height:92vh;background:var(--card);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(20,15,5,.5)}
#dlg-form{padding:22px;display:grid;gap:12px;overflow:auto;max-height:92vh}
.dhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.dhead h2{font-size:22px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}
label{display:grid;gap:4px;font-size:13px;color:var(--mute);font-weight:600}
.facts{display:grid;gap:8px;font-size:14px}
.facts dt{font-size:12px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.facts dd{margin:0 0 4px}
.dfoot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;z-index:99}
#toast.show{opacity:1;transform:translateX(-50%)}
#dlg-form>*,.grid2>*,.facts dd{min-width:0;overflow-wrap:anywhere}
#dlg-form{grid-template-columns:minmax(0,1fr)}
.dhead .btn{flex-shrink:0;white-space:nowrap}
