:root{
  --canvas:#0c1619;--surface:#101c20;--line:#ffffff0b;--line-2:#ffffff14;
  --ink:#e2e8e4;--soft:#b7c4c0;--muted:#83979a;--dim:#5f7376;
  --accent:#8fd3c4;--live:#64efdd;--done:#9fd889;--wait:#e8c47c;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--canvas);color:var(--ink)}
svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em;color:var(--soft)}

.app{display:grid;grid-template-columns:188px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;padding:26px 18px;border-right:1px solid var(--line)}
.brand{font-size:19px;font-weight:600;padding:0 10px 26px}.brand i{color:var(--accent);font-style:italic}
.rail nav{display:grid;gap:2px}
.nav-item{display:flex;justify-content:space-between;padding:8px 10px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:14px}
.nav-item:hover{color:var(--ink)}
.nav-item.active{color:var(--ink);background:#ffffff08}
.nav-item span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

.page{min-width:0;padding:30px 36px 60px;max-width:1320px}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.top h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em}
.top-actions{display:flex;align-items:center;gap:10px}
.search{display:flex;align-items:center;gap:8px;height:36px;width:220px;padding:0 11px;border-radius:10px;border:1px solid var(--line-2);color:var(--dim)}
.search input{border:0;background:none;outline:none;width:100%;color:var(--ink)}
.search:focus-within{border-color:#8fd3c455}
.primary{height:36px;padding:0 14px;border:0;border-radius:10px;background:#c9ddd3;color:#132822;font-weight:600;font-size:13.5px}
.primary:hover{background:#d8e9e0}
.ghost{height:36px;padding:0 14px;border-radius:10px;border:0;background:none;color:var(--muted)}
.ghost:hover{color:var(--ink)}
.icon-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;border:0;background:none;color:var(--muted)}
.icon-btn:hover{color:var(--ink);background:#ffffff08}

.projects{display:flex;gap:22px;margin:26px 0 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.projects button{position:relative;border:0;background:none;padding:0 0 11px;color:var(--muted);font-size:13.5px;white-space:nowrap}
.projects button small{margin-left:6px;color:var(--dim);font-size:12px;font-variant-numeric:tabular-nums}
.projects button:hover{color:var(--soft)}
.projects button.on{color:var(--ink)}
.projects button.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1.5px;background:var(--ink);border-radius:2px}
.scopes{display:flex;gap:4px;margin:14px 0 26px}
.scopes button{border:0;background:none;padding:5px 10px;border-radius:8px;color:var(--muted);font-size:12.5px}
.scopes button:hover{color:var(--soft)}
.scopes button.on{background:#ffffff0a;color:var(--ink)}

.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}
.column-head{display:flex;align-items:baseline;gap:8px;padding:0 2px 12px;font-size:12.5px;color:var(--muted)}
.column-head b{font-weight:600;color:var(--soft)}
.column-head span{font-variant-numeric:tabular-nums;color:var(--dim)}
.column.drop .cards{outline:1px dashed #8fd3c455;outline-offset:6px;border-radius:12px}
.cards{display:grid;gap:8px;min-height:48px}
.empty{padding:14px 2px;font-size:12.5px;color:var(--dim)}

.card{display:grid;gap:9px;padding:13px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);cursor:pointer;transition:border-color .15s,background .15s}
.card:hover{border-color:var(--line-2)}
.card:focus-visible{outline:2px solid #8fd3c480;outline-offset:2px}
.card.dragging{opacity:.4}
.card h3{margin:0;font-size:14px;font-weight:500;line-height:1.4;color:var(--ink)}
.card.note h3{color:var(--soft);font-weight:450}
.card .line{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:var(--muted)}
.card .line .target{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .line .state{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:6px;color:var(--dim);font-variant-numeric:tabular-nums}
.card .progress{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--dim)}
.card .progress .bar{flex:1;height:2px;background:#ffffff0d;border-radius:2px;overflow:hidden}
.card .progress .bar i{display:block;height:100%;background:var(--accent)}
.card .by{margin-top:-3px;font-size:11.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .result{font-size:12.5px;line-height:1.45;color:var(--muted)}
.sep{color:var(--dim)}
.dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--dim)}
.dot.live{background:var(--live);box-shadow:0 0 0 3px #64efdd1f;animation:pulse 1.6s ease-in-out infinite}
.dot.wait{background:var(--wait)}
.dot.done{background:var(--done)}
.state.live{color:var(--live)}
.state.wait{color:var(--wait)}
@keyframes pulse{50%{box-shadow:0 0 0 5px #64efdd00}}
.mark{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:10px;flex:none}
.mark.claude{color:#d9896e;background:#d977571a}
.mark.codex{color:#9cc2ee;background:#9cc7ff17}
.mark.user{color:#dfe7e3;background:#ffffff14;font-weight:600}
.mark.project{color:var(--muted);background:#ffffff0a}
.mark.project svg{width:10px;height:10px}

.footnote{margin-top:48px;max-width:620px;font-size:12.5px;line-height:1.6;color:var(--dim)}

.drawer{position:fixed;inset:0;display:flex;justify-content:flex-end;background:#0006;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.drawer.open{opacity:1;pointer-events:auto}
.drawer-panel{position:relative;width:min(460px,100%);height:100%;overflow-y:auto;background:#0f1a1e;border-left:1px solid var(--line-2);padding:18px 26px 110px;transform:translateX(18px);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.drawer.open .drawer-panel{transform:none}
.drawer-panel header{display:flex;align-items:center;justify-content:space-between}
.drawer-status{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.drawer-panel h2{margin:16px 0 10px;font-size:19px;line-height:1.35;font-weight:560}
.desc{font-size:14px;line-height:1.6;color:var(--soft);white-space:pre-wrap}
.meta{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px 14px;margin:22px 0 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px}
.meta dt{color:var(--dim)}
.meta dd{margin:0;display:grid;gap:3px;min-width:0}
.meta .who{display:flex;align-items:center;gap:7px}
.meta .sub{font-size:12px;color:var(--dim)}
.meta a{color:var(--soft);text-decoration:none;border-bottom:1px solid #ffffff22}
.section-title{margin:24px 0 10px;font-size:12px;font-weight:500;color:var(--dim)}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.checklist li{display:flex;gap:10px;font-size:13.5px;line-height:1.45;color:var(--soft)}
.checklist .box{flex:none;width:14px;height:14px;margin-top:3px;border-radius:4px;border:1.5px solid #ffffff2a;display:grid;place-items:center}
.checklist li.done{color:var(--dim);text-decoration:line-through}
.checklist li.done .box{border-color:var(--done);background:var(--done);color:#1d3316}
.checklist li.done .box svg{width:9px;height:9px;stroke-width:3.4}
.checklist li.active .box{border-color:var(--live)}
.result-block{font-size:13.5px;line-height:1.55;color:var(--soft)}
.history{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.history li{display:flex;gap:10px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.history time{flex:none;width:48px;color:var(--dim);font-variant-numeric:tabular-nums}
.drawer-actions{position:fixed;bottom:0;right:0;width:min(460px,100%);display:flex;justify-content:flex-end;gap:6px;padding:14px 26px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#0f1a1e 35%)}

.modal{position:fixed;inset:0;display:grid;place-items:center;background:#0009;z-index:30;padding:16px}
.modal-panel{width:min(540px,100%);display:grid;gap:12px;padding:18px 18px 14px;border-radius:16px;background:#101d21;border:1px solid var(--line-2);box-shadow:0 30px 60px -30px #000}
.title-input{border:0;background:none;outline:none;font-size:17px;font-weight:560;padding:4px 2px}
.modal-panel textarea{border:0;background:none;outline:none;resize:vertical;min-height:70px;font-size:14px;line-height:1.55;color:var(--soft);padding:2px}
.assign{border:0;border-top:1px solid var(--line);margin:0;padding:12px 0 0;display:grid;gap:10px}
.assign legend{padding:12px 0 0;font-size:12px;color:var(--dim);float:left}
.assign-options{clear:both;display:flex;flex-wrap:wrap;gap:4px}
.assign-options button{border:0;background:none;padding:6px 11px;border-radius:8px;color:var(--muted);font-size:13px}
.assign-options button:hover:not(:disabled){color:var(--soft)}
.assign-options button.on{background:#ffffff0c;color:var(--ink)}
.assign-options button:disabled{opacity:.45;cursor:default}
.assign-options button small{margin-left:5px;font-size:10.5px;color:var(--dim)}
.assign-detail{display:flex;gap:8px;flex-wrap:wrap;min-height:36px}
.assign-detail select{height:36px;border:1px solid var(--line-2);background:#0c171a;border-radius:9px;padding:0 10px;min-width:180px;outline:none}
.assign-detail p{margin:0;align-self:center;font-size:12.5px;color:var(--dim)}
.modal-panel footer{display:flex;align-items:center;gap:6px;padding-top:6px}
.modal-panel .spacer{flex:1}
.check-line{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}

.mobile-tabs{display:none}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .rail{display:none}
  .page{padding:20px 16px 50px}
  .top{flex-wrap:wrap}
  .top-actions{width:100%}
  .search{flex:1;width:auto}
  .projects{margin-top:18px;gap:18px}
  .scopes{margin:10px 0 12px;overflow-x:auto;scrollbar-width:none}
  .scopes button{white-space:nowrap}
  .mobile-tabs{display:flex;gap:18px;margin-bottom:12px;position:sticky;top:0;z-index:5;padding:10px 0 8px;background:var(--canvas)}
  .mobile-tabs button{border:0;background:none;padding:0;color:var(--muted);font-size:14px}
  .mobile-tabs button small{margin-left:5px;color:var(--dim);font-size:12px}
  .mobile-tabs button.on{color:var(--ink);font-weight:560}
  .board{grid-template-columns:repeat(3,100%);gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .column{scroll-snap-align:start;padding:0 1px}
  .column-head{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
