:root{color-scheme:dark;--safe-bottom:0px;--bg:#090b12;--panel:#111522;--panel2:#171c2c;--line:#272e42;--text:#f5f7ff;--muted:#929bb2;--accent:#7c8cff;--accent2:#55d6be;--warn:#ffbd66;--danger:#ff6b7b;--ok:#65d68b;--shadow:0 18px 50px rgba(0,0,0,.28);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
@media (display-mode:standalone){:root{--safe-bottom:24px}}
html.pwa-standalone{--safe-bottom:24px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%;max-width:100%;background:var(--bg);color:var(--text);overflow-x:hidden}html{touch-action:pan-y}body{overscroll-behavior-y:none;overscroll-behavior-x:none;-webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app-shell,main{touch-action:pan-y}.app-shell{overflow-x:clip}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}input,textarea,select,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{min-height:100dvh;padding-bottom:calc(84px + var(--safe-bottom))}.topbar{position:sticky;top:0;z-index:10;background:rgba(9,11,18,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.05);padding:calc(26px + env(safe-area-inset-top)) 18px 14px}.brand{display:flex;justify-content:space-between;align-items:end;gap:16px}.brand h1{margin:0;font-size:22px;letter-spacing:-.03em}.maker{font-size:10px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-top:3px}.build{font-size:11px;color:var(--muted)}main{max-width:760px;margin:0 auto;padding:22px 16px 30px}.hero{padding:8px 2px 18px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent2);font-weight:750}.hero h2{font-size:30px;line-height:1.08;letter-spacing:-.04em;margin:8px 0}.hero p{color:var(--muted);margin:0;line-height:1.5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 20px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}.stat strong{font-size:22px;display:block}.stat span{font-size:11px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.section-head h3{margin:0;font-size:15px}.text-btn,.ghost-btn,.primary-btn,.danger-btn{border:0;border-radius:12px;padding:11px 14px;font-weight:700}.text-btn{background:transparent;color:var(--accent)}.ghost-btn{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.primary-btn{background:var(--accent);color:#080a12}.danger-btn{background:rgba(255,107,123,.13);color:#ff8996;border:1px solid rgba(255,107,123,.3)}.wide{width:100%}.project-list{display:grid;gap:12px}.project-card{width:100%;text-align:left;background:linear-gradient(160deg,var(--panel),#0e111c);border:1px solid var(--line);border-radius:20px;padding:17px;color:var(--text);box-shadow:var(--shadow)}.project-card:active{transform:scale(.995)}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.project-card h4{margin:2px 0 5px;font-size:18px}.meta{font-size:11px;color:var(--muted)}.badge{font-size:10px;font-weight:800;border-radius:999px;padding:6px 9px;background:#1a2031;color:#b8c0d7;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.badge.blocked{background:rgba(255,107,123,.12);color:#ff8996}.badge.needs_attention{background:rgba(255,189,102,.12);color:#ffd08e}.badge.waiting{background:rgba(124,140,255,.13);color:#a9b3ff}.badge.clear{background:rgba(101,214,139,.10);color:#8ee2aa}.summary{font-size:14px;line-height:1.45;margin:14px 0 10px}.next-line{border-top:1px solid var(--line);padding-top:10px;color:var(--text);font-size:13px}.next-line span{color:var(--muted)}.checkpoint-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.checkpoint{font-size:10px;color:#c3cae0;background:#0c0f18;border:1px solid var(--line);border-radius:999px;padding:5px 8px}.empty{border:1px dashed var(--line);border-radius:20px;padding:28px;text-align:center;color:var(--muted)}.bottom-nav{position:fixed;z-index:20;left:0;right:0;bottom:0;background:rgba(10,12,20,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px 10px calc(8px + var(--safe-bottom));display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.nav-btn{background:transparent;border:0;color:var(--muted);padding:9px 4px;border-radius:12px;font-size:11px;font-weight:700}.nav-btn span{display:block;font-size:19px;margin-bottom:2px}.nav-btn.active{color:var(--text);background:var(--panel2)}.detail-head{display:flex;gap:12px;align-items:center;margin-bottom:18px}.back{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.detail-head h2{margin:0;font-size:24px}.detail-grid{display:grid;gap:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px}.panel h3{margin:0 0 12px;font-size:14px}.state-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.state-item{background:#0c0f18;border-radius:13px;padding:11px}.state-item span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.state-item strong{font-size:13px}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.need{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.need:first-of-type{border-top:0}.need-title{font-size:14px}.need-meta{font-size:10px;color:var(--muted);margin-top:4px}.need-actions{display:flex;gap:6px}.mini{border:1px solid var(--line);background:#0d1019;color:var(--muted);padding:6px 8px;border-radius:9px;font-size:11px}.history{display:grid;gap:0}.history-item{position:relative;padding:0 0 18px 20px;border-left:1px solid var(--line)}.history-item:before{content:"";position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.history-item:last-child{padding-bottom:2px}.history-kind{font-size:11px;color:var(--accent2);font-weight:800}.history-summary{font-size:13px;margin-top:4px;line-height:1.4}.history-time{font-size:10px;color:var(--muted);margin-top:5px}.modal-backdrop{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:flex-end;justify-content:center;padding-top:50px}.sheet{width:min(760px,100%);max-height:92dvh;overflow:auto;background:#111522;border:1px solid var(--line);border-radius:24px 24px 0 0;padding:18px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -20px 70px rgba(0,0,0,.45)}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sheet-head h2{font-size:20px;margin:0}.close{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#0d1019;color:var(--text)}label{display:block;font-size:11px;color:var(--muted);margin:13px 0 6px}input,select,textarea{width:100%;background:#0b0e17;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px}textarea{min-height:80px;resize:vertical}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line);background:#0c0f18;color:#bcc4da;border-radius:999px;padding:8px 10px;font-size:11px}.chip.selected{border-color:var(--accent);background:rgba(124,140,255,.14);color:#d6dcff}.form-actions{display:flex;gap:9px;margin-top:18px}.form-actions>*{flex:1}.notice{font-size:12px;color:var(--muted);line-height:1.45;background:#0c0f18;border-radius:12px;padding:11px;margin:10px 0}.attention-box{border:1px solid rgba(255,189,102,.22);background:rgba(255,189,102,.06);border-radius:16px;padding:13px;margin-bottom:15px}.attention-box strong{font-size:13px}.attention-box p{margin:4px 0 0;font-size:12px;color:var(--muted)}.settings-list{display:grid;gap:10px}.settings-item{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px}.settings-item h3{margin:0 0 5px;font-size:14px}.settings-item p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.4}@media(min-width:720px){.bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:520px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0}.stats{grid-template-columns:repeat(3,150px)}.detail-grid.two{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* =========================================================
   Nivareq Pulse Build 1 R6 — theme registry + iOS lower-shell correction
   The accepted .topbar geometry rule above is intentionally unchanged.
   Night preserves the Foundation palette; Day/OLED override color only.
   ========================================================= */
html[data-theme="night"]{color-scheme:dark}
html[data-theme="day"]{color-scheme:light;--bg:#f4f6fb;--panel:#ffffff;--panel2:#eef1f7;--line:#d9deea;--text:#151927;--muted:#697288;--accent:#5369e8;--accent2:#128a78;--warn:#a96500;--danger:#c83d54;--ok:#23834b;--shadow:0 16px 42px rgba(35,44,68,.10)}
html[data-theme="oled"]{color-scheme:dark;--bg:#000000;--panel:#050505;--panel2:#0b0b0b;--line:#252525;--text:#ffffff;--muted:#9a9a9a;--accent:#8491ff;--accent2:#59e0c7;--warn:#ffc36c;--danger:#ff7181;--ok:#68dc91;--shadow:none}

html[data-theme="day"] .topbar{background:rgba(244,246,251,.96);border-bottom-color:rgba(21,25,39,.08)}
html[data-theme="oled"] .topbar{background:#000;border-bottom-color:#1d1d1d;backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-theme="day"] .bottom-nav{background:rgba(255,255,255,.97)}
html[data-theme="oled"] .bottom-nav{background:#000;backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-theme="day"] .project-card{background:linear-gradient(160deg,#fff,#f7f8fc)}
html[data-theme="oled"] .project-card{background:#050505}
html[data-theme="day"] .state-item,
html[data-theme="day"] .checkpoint,
html[data-theme="day"] .chip,
html[data-theme="day"] .mini,
html[data-theme="day"] .notice{background:#f5f7fb}
html[data-theme="oled"] .state-item,
html[data-theme="oled"] .checkpoint,
html[data-theme="oled"] .chip,
html[data-theme="oled"] .mini,
html[data-theme="oled"] .notice{background:#000}
html[data-theme="day"] input,
html[data-theme="day"] select,
html[data-theme="day"] textarea{background:#fff;color:var(--text)}
html[data-theme="oled"] input,
html[data-theme="oled"] select,
html[data-theme="oled"] textarea{background:#000;color:#fff}
html[data-theme="day"] .sheet{background:#fff}
html[data-theme="oled"] .sheet{background:#050505}
html[data-theme="day"] .close{background:#f4f6fb;color:var(--text)}
html[data-theme="oled"] .close{background:#000;color:#fff}

.theme-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.theme-choice{border:1px solid var(--line);border-radius:13px;background:var(--panel2);color:var(--text);padding:10px 8px;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}
.theme-choice.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.theme-dot{width:12px;height:12px;border-radius:50%;border:1px solid var(--line);display:inline-block}
.theme-dot.day{background:#fff}.theme-dot.night{background:#111522}.theme-dot.oled{background:#000;border-color:#555}
.danger-zone{border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}
.danger-notice{border:1px solid color-mix(in srgb,var(--danger) 32%,var(--line))}
.toast{position:fixed;z-index:90;left:50%;bottom:105px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 14px;border-radius:12px;font-weight:800;font-size:12px;box-shadow:0 10px 35px rgba(0,0,0,.35);max-width:calc(100vw - 32px);text-align:center}

/* iOS installed-PWA lower-shell correction.
   R5 proved the grid model stable across cold launch and view changes, but 100dvh
   left the whole web layer above the physical bottom edge on the target iOS PWA.
   Standalone mode therefore keeps the same header / scrollable main / nav grid
   while using 100vh for the physical shell height. The accepted topbar rule is
   intentionally untouched. */
@media (display-mode:standalone){
  html,body{height:100%;min-height:100%;overflow:hidden}
  html.pwa-standalone,html.pwa-standalone body{height:100vh;min-height:100vh;overflow:hidden}
  html.pwa-standalone .app-shell{height:100vh;min-height:0;padding-bottom:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
  html.pwa-standalone main{width:100%;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding-bottom:30px}
  html.pwa-standalone .bottom-nav{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:100%;padding:8px max(10px,env(safe-area-inset-left,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-right,0px));border-radius:0;border-left:0;border-right:0;border-bottom:0}
}

/* =========================================================
   Nivareq Pulse Build 2 R1 — Project Usability & Handoff
   Additive component styles only. Accepted Build 1 R6 top/header and lower
   standalone shell geometry above remain unchanged.
   ========================================================= */
.section-head.compact{margin:0 0 8px}
.edited-marker{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent2) 12%,transparent);color:var(--accent2);font-size:9px;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.history-detail{margin-top:4px;white-space:pre-wrap}
.history-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.danger-mini{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}
.disclosure{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.disclosure summary{color:var(--muted);font-size:11px;font-weight:750;cursor:pointer}
.completed-list{margin-top:7px}
.choice-list,.preview-list,.removed-list{display:grid;gap:8px}
.choice-row,.preview-row{width:100%;text-align:left;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:12px;padding:11px 12px;font-size:12px;line-height:1.4}
.removed-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--panel2)}
.original-box{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--panel2)}
textarea[data-autogrow]{resize:none;overflow-y:auto;min-height:46px;max-height:260px;line-height:1.42}
.copy-box,.brief-box,.prompt-box{min-height:150px;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}
.prompt-box{min-height:260px}
.guide h3{font-size:13px;margin:18px 0 5px}.guide h3:first-child{margin-top:0}.guide p{color:var(--muted);font-size:12px;line-height:1.5;margin:0}
html[data-theme="day"] .choice-row,html[data-theme="day"] .preview-row,html[data-theme="day"] .removed-row,html[data-theme="day"] .original-box{background:#f5f7fb}
html[data-theme="oled"] .choice-row,html[data-theme="oled"] .preview-row,html[data-theme="oled"] .removed-row,html[data-theme="oled"] .original-box{background:#000}
