:root{--ink:#14202b;--mute:#5d6b78;--line:#dfe5ea;--bg:#f5f7f9;--card:#fff;--acc:#0f6e8c;--acc2:#e3f2f7;
--idea:#8a6fd1;--planned:#3b82c4;--active:#1f9d63;--paused:#c98a12;--done:#7b8794;--crit:#c0392b}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--acc)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;width:100%;background:#fff}
textarea{min-height:5rem;resize:vertical}label{display:block;font-size:.82rem;color:var(--mute);margin:.5rem 0}label>*{margin-top:.2rem;color:var(--ink)}
.brand{display:flex;gap:.6rem;align-items:center}.brand b{display:block;letter-spacing:.04em}.brand small{color:var(--mute)}
.mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--acc);color:#fff;font-weight:700}
.top{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
#tabs{display:flex;gap:.25rem}#tabs button{border:0;background:none;padding:.45rem .8rem;border-radius:6px;color:var(--mute)}#tabs button.on{background:var(--acc2);color:var(--acc);font-weight:600}
.right{display:flex;gap:.6rem;align-items:center}.right input{width:14rem}.right form{margin:0}.who{color:var(--mute);font-size:.9rem}
.primary{background:var(--acc);color:#fff;border:0;border-radius:6px;padding:.5rem .9rem;white-space:nowrap}.ghost{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.45rem .8rem}
.danger{background:#fff;color:var(--crit);border:1px solid #f0c8c3;border-radius:6px;padding:.45rem .8rem}.link{background:none;border:0;color:var(--acc);padding:0;font-size:.9rem;text-decoration:none}
.layout{display:grid;grid-template-columns:1fr 340px;gap:1.2rem;padding:1.2rem;max-width:1400px;margin:auto}@media(max-width:900px){.layout{grid-template-columns:1fr}}
.summary{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.summary>span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;font-size:.85rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;cursor:pointer;display:flex;flex-direction:column;gap:.5rem}
.pcard:hover{border-color:var(--acc)}.pcard h3{margin:0;font-size:1.05rem}.pcard .meta{color:var(--mute);font-size:.82rem}.pcard p{margin:0;color:#33414d;font-size:.9rem}
.pill{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.12rem .5rem;border-radius:999px;color:#fff}
.s-idea{background:var(--idea)}.s-planned{background:var(--planned)}.s-active{background:var(--active)}.s-paused{background:var(--paused)}.s-done{background:var(--done)}
.prio{font-size:.75rem;color:var(--mute)}.prio.critical,.prio.high{color:var(--crit);font-weight:600}
.tags span{font-size:.75rem;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:.05rem .35rem;margin-right:.25rem}
.bar{height:5px;background:var(--bg);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--active)}
.latest{font-size:.82rem;color:var(--mute);border-top:1px dashed var(--line);padding-top:.45rem}
aside h2{font-size:.95rem;margin:.2rem 0 .6rem}.feed{list-style:none;margin:0;padding:0}.feed li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;margin-bottom:.5rem;font-size:.86rem}
.feed b{cursor:pointer;color:var(--acc)}.feed small{display:block;color:var(--mute);margin-top:.2rem}.empty{color:var(--mute);padding:1rem;text-align:center}
dialog{border:0;border-radius:12px;padding:0;width:min(860px,96vw);max-height:92vh;box-shadow:0 20px 60px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(20,32,43,.45)}
.dlg{padding:1.2rem 1.4rem}.dlg h2{margin:.1rem 0 .8rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 1rem}
.actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1rem;align-items:center}.actions .sp{flex:1}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1rem}@media(max-width:700px){.cols,.row,.row3{grid-template-columns:1fr}}
.tasks{list-style:none;padding:0;margin:.4rem 0}.tasks li{display:flex;gap:.5rem;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--bg);font-size:.9rem}
.tasks li select{width:auto;padding:.15rem .3rem;font-size:.8rem}.tasks li .t{flex:1}.tasks li.done .t{text-decoration:line-through;color:var(--mute)}.tasks li .x{border:0;background:none;color:var(--mute)}
.inline{display:flex;gap:.4rem;margin-top:.4rem}.inline input{flex:1;min-width:0}.inline input:first-child{flex:3}.inline select{width:auto}
.err{color:var(--crit);font-size:.88rem;min-height:1.2em}
.login{display:grid;place-items:center;min-height:100vh}.login .card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:2rem;width:min(380px,92vw)}
.login form button{width:100%;margin-top:1rem;background:var(--acc);color:#fff;border:0;border-radius:6px;padding:.6rem}.msg{color:var(--crit);min-height:1.2em;font-size:.9rem}.fine{font-size:.8rem;color:var(--mute)}
.docs .wrap{max-width:900px;margin:2rem auto;padding:0 1rem}.ep{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;margin:.4rem 0}
.ep code.m{display:inline-block;min-width:4.2rem;font-weight:700}.ep small{color:var(--mute)}

.handoff{display:grid;place-items:center;min-height:100vh;padding:2rem 1rem}
.handoff .card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:2rem;width:min(760px,96vw)}
.handoff h1{font-size:1.3rem;margin:.8rem 0 .4rem}
.handoff h2{font-size:1.02rem;margin:1.2rem 0 .4rem}
.handoff pre,.handoff .keybox{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.8rem;overflow:auto;font:13px/1.4 ui-monospace,Menlo,Consolas,monospace}
.handoff .warn{background:#fdecea;border:1px solid #f0c8c3;color:var(--crit);border-radius:8px;padding:.7rem .8rem;margin:1rem 0}
.handoff .ok{background:var(--acc2);border:1px solid #b7d5e0;border-radius:8px;padding:.7rem .8rem;margin:1rem 0}
.handoff table{width:100%;border-collapse:collapse;font-size:.9rem;margin:.4rem 0 1rem}
.handoff td,.handoff th{text-align:left;padding:.3rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}
.handoff ul{padding-left:1.2rem}.handoff li{margin:.25rem 0}
.handoff .actions{justify-content:flex-start;margin-top:1.2rem}
.handoff input[readonly]{font:13px/1.4 ui-monospace,Menlo,Consolas,monospace;background:var(--bg)}

.login h1,.setpw h1{font-size:1.2rem;margin:.8rem 0 .5rem}
.login .ok,.setpw .ok{background:var(--acc2);border:1px solid #b7d5e0;border-radius:8px;padding:.7rem .8rem;margin:1rem 0}
.login .warn,.setpw .warn{background:#fdecea;border:1px solid #f0c8c3;color:var(--crit);border-radius:8px;padding:.7rem .8rem;margin:1rem 0}
.login input[readonly]{background:var(--bg)}
