:root{--bg:#0e0f12;--panel:#16181d;--panel-2:#1d2027;--border:#2a2e37;--text:#e7e9ee;--muted:#9aa0ab;--muted-2:#868d9b;--text-dimmed:var(--muted);--accent:#4f8cff;--accent-weak:#1b2a48;--implement:#35c37e;--skipped:#b6791f;--resolved:#8a93a6;--danger:#ef5350;--radius:10px;--radius-sm:7px;--shadow:0 6px 24px rgba(0,0,0,.35);--btn-primary-bg:#f4f5f7;--btn-primary-bg-hover:#e4e6ea;--btn-primary-text:#16181d;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}.app-header{display:flex;align-items:center;gap:10px;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:10}.app-header .brand{font-weight:700;letter-spacing:-.01em}.app-header .brand .dot{color:var(--accent)}.app-header .sub{color:var(--muted-2);font-size:12px}.container{max-width:1180px;margin:0 auto;padding:24px 22px 80px}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted)}.pill.open{color:var(--accent);border-color:var(--accent-weak);background:var(--accent-weak)}.pill.implement{color:var(--implement)}.pill.skipped{color:var(--skipped)}.pill.resolved{color:var(--resolved)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--text);transition:background .12s,border-color .12s}.btn:hover{background:#262a33}.btn.primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text);font-weight:600}.btn.primary:hover{background:var(--btn-primary-bg-hover);border-color:var(--btn-primary-bg-hover)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#4a2422}.btn:disabled{opacity:.5;cursor:not-allowed}.kbd{display:inline-block;padding:1px 6px;border-radius:5px;background:var(--bg);color:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.kbd,.segmented{border:1px solid var(--border)}.segmented{display:inline-flex;border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)}.segmented button{padding:6px 12px;background:transparent;border:none;color:var(--muted);border-right:1px solid var(--border)}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--accent-weak);color:var(--text)}.segmented button:hover:not(.active){background:var(--panel-2)}.segmented.sm button{padding:4px 9px;font-size:12px;color:var(--muted-2)}.list-title{font-size:20px;font-weight:700;margin:0 0 4px}.list-sub{color:var(--muted);margin:0 0 22px}.project-row{position:relative;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:10px;transition:border-color .12s,background .12s}.project-row:focus-within,.project-row:hover{border-color:#363b45;background:var(--panel-2)}.project-row-link{position:absolute;inset:0;z-index:0;border-radius:var(--radius);cursor:pointer}.project-row-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-row .pencil,.project-row .raised{position:relative;z-index:1}.project-name-line{display:flex;align-items:center;gap:8px}.project-name{font-size:16px;font-weight:600}.project-base{color:var(--muted-2);font-size:12.5px;margin-top:2px}.pencil{background:transparent;border:none;color:var(--muted-2);padding:2px 4px;border-radius:5px;opacity:0;transition:opacity .12s}.project-row:hover .pencil{opacity:1}.pencil:hover{color:var(--text);background:var(--panel-2)}.name-input{font-size:16px;font-weight:600;background:var(--bg);border:1px solid var(--accent);border-radius:6px;color:var(--text);padding:3px 8px;min-width:220px}.counts{display:flex;align-items:center;text-align:right;font-feature-settings:"tnum"}.count-inline{font-size:12.5px;font-weight:400}.count-item{color:inherit;text-decoration:none}.count-item .count-num{font-weight:600}.count-item.open{color:var(--accent)}.count-item.implement{color:var(--implement)}.count-item.skipped{color:var(--skipped)}.count-item.zero{color:var(--muted-2)}a.count-item:hover{text-decoration:underline}.count-sep{color:var(--muted-2)}.unsorted-section{margin-top:34px;padding-top:22px;border-top:1px solid var(--border)}.unsorted-title{font-size:15px;font-weight:700;color:var(--muted);margin:0 0 4px}.claim-btn{font-size:12.5px;font-weight:600;color:var(--accent);background:var(--accent-weak);border:1px solid var(--accent-weak);border-radius:var(--radius-sm);padding:5px 12px;cursor:pointer;transition:border-color .12s,background .12s}.claim-btn:hover{border-color:var(--accent)}.claim-btn:disabled{opacity:.6;cursor:default}.decided-counts{color:var(--muted-2);font-size:12.5px}.decided-counts .clickable{color:var(--muted);cursor:pointer}.decided-counts .clickable:hover{color:var(--text);text-decoration:underline}.last-activity{color:var(--muted-2);font-size:12px}.skeleton{background:linear-gradient(90deg,var(--panel) 25%,var(--panel-2) 37%,var(--panel) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:6px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-row{height:76px;margin-bottom:10px;border-radius:var(--radius)}.fullview{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px 20px;gap:14px}.fullview h2{margin:0;font-size:22px}.fullview p{margin:0;color:var(--muted);max-width:460px}.empty-project{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:32px;padding:18vh 20px 64px}.empty-project-hero{text-align:center;max-width:520px;display:flex;flex-direction:column;gap:10px}.empty-project-hero h1{margin:0;font-size:24px;font-weight:600}.empty-project-hero p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.handoff-cluster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;max-width:620px}@media (max-width:640px){.handoff-cluster{grid-template-columns:1fr;max-width:380px}}.handoff-card{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);text-align:left}.handoff-card-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);color:var(--text);margin-bottom:2px}.handoff-card-title{font-size:15px;font-weight:600}.handoff-card-sub{font-size:13px;line-height:1.45;color:var(--muted)}.handoff-card-action{margin-top:auto;padding-top:12px}.handoff-card-action .btn,.handoff-card-action .invite-wrap{width:100%}.context-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 0 14px;border-bottom:1px solid var(--border);margin-bottom:0}.context-bar .spacer{flex:1}.context-bar .progress{font-weight:600}.pid-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 6px 5px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px}.pid-chip-label{white-space:nowrap}.pid-chip-frag,.pid-chip-label{font-size:12px;color:var(--muted-2)}.pid-chip-frag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pid-chip-value{position:absolute;width:1px;height:1px;padding:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.pid-chip-copy{padding:4px 10px;font-size:12px}.back-link,.group-label{color:var(--muted);font-size:13px}.group-label{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;margin-bottom:14px}.review-shell{height:100dvh;display:grid;grid-template-rows:auto 1fr;overflow:hidden;padding:0 22px;max-width:1440px;margin:0 auto}.review-topbar{padding-top:14px}.review-panes{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:22px;min-height:0;padding-bottom:18px}.rail-pane{min-height:0;gap:12px}.rail-controls,.rail-pane{display:flex;flex-direction:column}.rail-controls{gap:8px;flex-shrink:0}.focus-pane{display:flex;flex-direction:column;min-height:0;gap:16px;overflow:hidden}@media (max-width:900px){.review-shell{height:auto;overflow:visible}.review-panes{grid-template-columns:1fr;min-height:0}.focus-pane{overflow:visible}}.review-card{flex:1;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.review-card,.screenshot-stage{min-height:0;display:flex;overflow:hidden}.screenshot-stage{position:relative;background:transparent;flex:1;padding:20px;align-items:center;justify-content:center}@media (max-width:900px){.screenshot-stage{flex:none;min-height:320px;max-height:70vh}}.screenshot-stage.zoomable{cursor:zoom-in}.screenshot-wrap{position:relative;max-width:100%;max-height:100%;min-height:0;line-height:0;overflow:visible}.screenshot-wrap img{display:block;width:100%;height:100%;max-width:100%;max-height:100%}.pin{width:22px;height:22px;border-radius:50%;background:transparent;border:3px solid rgba(120,165,255,.95);box-shadow:0 0 0 1.5px rgba(0,0,0,.6),0 0 10px 2px rgba(79,140,255,.5);transform:translate(-50%,-50%);pointer-events:none;z-index:3}.pin,.pin:before{position:absolute}.pin:before{content:"";inset:50%;width:2px;height:2px;margin:-1px 0 0 -1px;border-radius:50%;background:rgba(120,165,255,.95)}.element-box{position:absolute;border-radius:3px;pointer-events:none;z-index:2;background:transparent;outline:1.5px solid rgba(0,0,0,.55);border:2px solid rgba(120,165,255,.95);box-shadow:0 0 0 1px rgba(120,165,255,.6),0 0 14px 3px rgba(79,140,255,.55),0 0 0 1.5px rgba(0,0,0,.35);animation:box-settle .22s ease-out 1}@keyframes box-settle{0%{box-shadow:0 0 0 1px rgba(120,165,255,0),0 0 14px 3px rgba(79,140,255,0),0 0 0 1.5px transparent;opacity:.3}to{opacity:1}}@media (prefers-reduced-motion:reduce){.element-box,.skeleton{animation:none}.skeleton{background-position:0 0}.spinner,.toast{animation:none}}.no-image{padding:40px 24px;text-align:center;color:var(--muted)}.no-image .glyph{font-size:28px;opacity:.5}.zoom-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:100;display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:30px}.zoom-overlay .zoom-inner{position:relative;line-height:0;max-width:100%;max-height:90vh}.zoom-overlay img{display:block;width:100%;height:100%;max-width:100%;max-height:90vh;border-radius:6px}.decision-dock{display:flex;flex-direction:column;gap:14px;flex-shrink:0}.meta-block{flex-shrink:0;background:transparent;border-top:1px solid var(--border);padding:16px}.comment-body{margin:0;font-size:16px;line-height:1.55;font-weight:400;color:var(--text);white-space:pre-wrap;word-break:break-word}.meta-byline{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--muted)}.meta-byline .who{color:var(--text);font-weight:500}.meta-byline .dot,.meta-byline .when{color:var(--muted-2)}.meta-byline .when{font-variant-numeric:tabular-nums}.meta-details{border-top:1px solid var(--border);margin-top:14px;padding-top:4px}.meta-details>summary{list-style:none;cursor:pointer;font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;padding:8px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.meta-details>summary::-webkit-details-marker{display:none}.meta-details>summary:before{content:"› ";display:inline-block;transition:transform .12s ease}.meta-details[open]>summary:before{transform:rotate(90deg)}.meta-details>summary:hover,.meta-details[open]>summary{color:var(--muted)}.meta-row{display:flex;gap:10px;font-size:12.5px;margin-bottom:8px}.meta-row:last-child{margin-bottom:0}.meta-row .k{color:var(--muted-2);min-width:74px;flex-shrink:0}.meta-row .v{color:var(--text);word-break:break-word}.decision-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.decision-label{font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em}.keys-wrap{position:relative}.keys-toggle{width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted-2);font-size:12px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.keys-toggle:hover,.keys-toggle[aria-expanded=true]{color:var(--muted);border-color:var(--muted-2)}.decision-row{display:flex;gap:12px;align-items:stretch}.decision-field{flex:1;min-width:0;min-height:80px;resize:vertical;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 12px;font:inherit;line-height:1.5}.decision-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.decision-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;width:190px;align-items:stretch;justify-content:flex-start}@media (max-width:1100px){.decision-row{flex-direction:column}.decision-actions{width:auto;flex-direction:row}}.decision-secondary{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:8px}.decision-hint{position:absolute;top:28px;right:0;z-index:5;width:250px;border:1px solid var(--border);color:var(--muted-2);font-size:12px;line-height:1.7;box-shadow:var(--shadow)}.decided-banner,.decision-hint{background:var(--panel-2);border-radius:var(--radius-sm);padding:10px 12px}.decided-banner{border:1px solid var(--border);font-size:13px;margin-bottom:12px}.decided-banner.implement{border-color:#1f4636}.decided-banner.skipped{border-color:#4a3a1a}.decided-banner.resolved{border-color:#3a3f49}.comment-rail{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:2px}.rail-empty{color:var(--muted-2);font-size:13px;padding:12px}.crow{display:block;text-align:left;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;transition:background .12s,border-color .12s}.crow:hover{background:var(--panel);border-color:var(--border)}.crow.active{background:var(--accent-weak);border-color:transparent}.crow.active .crow-text{color:var(--accent);font-weight:600}.crow.decided .crow-meta,.crow.decided .crow-meta .who,.crow.decided .crow-text{color:var(--text-dimmed)}.crow-text{font-size:13px;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.crow-meta{margin-top:3px;font-size:11.5px;color:var(--muted-2);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow-meta .who{color:var(--muted)}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow);z-index:60;animation:toast-in .16s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.toast .undo-btn{background:transparent;border:none;color:var(--accent);font-weight:600;padding:0}.toast .undo-btn:hover{text-decoration:underline}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.export-wrap{position:relative;display:inline-flex}.export-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:340px;max-width:min(340px,90vw);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:toast-in .14s ease}.export-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.export-all{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}.export-count{font-size:12px;white-space:nowrap}.export-list{max-height:320px;overflow-y:auto;padding:4px 0}.export-row{display:flex;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;font-size:13px}.export-row:hover{background:var(--panel)}.export-row-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.export-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}.export-note{padding:0 14px 12px;font-size:12px;line-height:1.4}.export-note .soon{color:var(--muted);font-style:italic}.invite-wrap{position:relative;display:inline-flex}.invite-btn{background:none;border:none;padding:0;color:var(--muted-2);font-size:12px}.invite-btn:hover{color:var(--text);text-decoration:underline}.invite-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:340px;max-width:min(340px,90vw);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:toast-in .14s ease}.invite-head{padding:14px;border-bottom:1px solid var(--border)}.invite-title{font-size:14px;font-weight:600;color:var(--text)}.invite-sub{margin-top:4px;line-height:1.5}.invite-sub,.invite-ws{font-size:12px;color:var(--muted)}.invite-ws{margin-top:8px}.invite-ws strong{color:var(--text);font-weight:600}.invite-code-block{padding:14px}.invite-code-label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.invite-code-row{display:flex;gap:8px}.invite-code-field{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text)}.invite-code-field:focus{outline:none;border-color:var(--accent)}.invite-steps{border-top:1px solid var(--border);padding:12px 14px}.invite-steps summary{font-size:13px;color:var(--muted);cursor:pointer}.invite-steps summary:hover{color:var(--text)}.invite-steps ol{margin:10px 0 2px;padding-left:18px;display:flex;flex-direction:column;gap:6px}.invite-steps li{font-size:13px;line-height:1.4;color:var(--text)}.invite-foot{display:flex;justify-content:flex-end;padding:12px 14px;border-top:1px solid var(--border)}.invite-empty{padding:14px}.invite-empty-title{font-size:13px;font-weight:600;color:var(--text)}.invite-empty p{margin-top:4px;font-size:12px;line-height:1.5;color:var(--muted)}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 26px 26px}.login-brand{font-weight:700;letter-spacing:-.01em;font-size:18px;margin-bottom:18px}.login-brand .dot{color:var(--accent)}.login-title{font-size:18px;font-weight:600;margin:0 0 6px}.login-sub{color:var(--muted);font-size:13px;margin:0 0 18px}.login-notice{color:var(--muted);font-size:12.5px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;margin:0 0 14px}.login-form{display:flex;flex-direction:column;gap:10px}.login-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit}.login-input:focus{outline:none;border-color:var(--accent)}.login-submit{width:100%}.login-back{margin-top:14px}.app-header .header-spacer{flex:1}.app-header .signout-btn{background:none;border:none;padding:0;color:var(--muted-2);font-size:12px}.app-header .signout-btn:hover{color:var(--text);text-decoration:underline}