:root{--ink:#17201b;--muted:#5c675f;--line:#d8ded7;--paper:#f7f8f4;--panel:#ffffff;--green:#21764b;--teal:#0f7a78;--red:#b73a3a;--gold:#b8841a;--blue:#315f9f;--shadow:0 18px 55px rgba(28,38,33,0.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh}.drawer-backdrop,.drawer-close,.mobile-drawer-actions,.mobile-header{display:none}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:28px;padding:26px;background:#eef2ec;border-right:1px solid var(--line)}.brand-block{display:flex;gap:14px;align-items:flex-start}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:var(--ink);color:white;font-weight:800}.eyebrow{margin:0 0 5px;color:var(--teal);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:1.32rem}h1,h2{margin:0;line-height:1.15}h2{font-size:clamp(1.32rem,2vw,2rem)}h3{margin:0;font-size:1.12rem;line-height:1.25}.icon-button,.primary-action,.primary-button,.secondary-button{border:0;border-radius:8px;min-height:44px;font-weight:800}.primary-action{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 14px;background:var(--green);color:white;box-shadow:var(--shadow);text-decoration:none}.primary-button{padding:12px 18px;background:var(--ink);color:white}.icon-button,.secondary-button{padding:12px 16px;background:#e4eae3;color:var(--ink)}.icon-button{width:46px;padding:0}.nav-stack{display:grid;grid-gap:7px;gap:7px}.nav-stack a{padding:11px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:750}.nav-stack a.active,.nav-stack a:hover{background:white;color:var(--ink)}.privacy-note{margin-top:auto;display:grid;grid-gap:6px;gap:6px;padding:14px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.62);color:var(--muted);font-size:.88rem}.privacy-note a{color:var(--teal);font-weight:800}.sign-out-form{margin-top:0}.quiet-link{width:100%;border:0;background:transparent;color:var(--muted);font-size:.88rem;font-weight:750;text-align:left;text-decoration:underline;text-underline-offset:3px}.quiet-link:hover{color:var(--ink)}.secondary-link{display:grid;place-items:center;min-height:42px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-weight:800;text-decoration:none}.sidebar-button{width:100%}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(100%,460px);display:grid;grid-gap:18px;gap:18px;padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.login-panel p{margin:8px 0 0;color:var(--muted)}.login-action{display:grid;grid-gap:10px;gap:10px}.auth-error{padding:12px 14px;border:1px solid rgba(183,58,58,.28);border-radius:8px;background:rgba(183,58,58,.08);color:var(--red)!important;font-weight:750}main{display:grid;grid-gap:20px;gap:20px;padding:24px}.desktop-action-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px}.desktop-action-bar .primary-button,.desktop-action-bar .secondary-button{display:grid;place-items:center;min-height:42px;text-decoration:none}.content-band,.interview-panel,.stage-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(118px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.summary-metrics .metric{min-width:0;padding:12px;border-radius:8px;background:#f1f4ef}.summary-metrics span{display:block;color:var(--muted);font-size:.78rem;font-weight:750}.summary-metrics strong{display:block;margin-top:4px;font-size:1.05rem}.split-band{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);grid-gap:20px;gap:20px;align-items:start}.content-band,.interview-panel,.stage-panel{padding:20px}.flow-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.source-badge{padding:8px 12px;border-radius:999px;background:#edf7f3;color:var(--teal);font-size:.84rem;font-weight:800}.source-badge.sample{background:#f8f1de;color:var(--gold)}.source-badge a{color:inherit}.cash-input{display:flex;align-items:center;gap:6px;margin-top:4px}.cash-input input{height:34px;max-width:84px;padding:0 10px}.section-heading{margin-bottom:16px}.question-card{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fbfcf9}.question-block{display:grid;grid-gap:10px;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.question-block:last-child{padding-bottom:0;border-bottom:0}.question-block p{margin:0;color:var(--muted)}.step-indicator{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:.86rem;font-weight:800}progress{width:100%;height:10px;border:0;border-radius:999px;overflow:hidden}progress::-webkit-progress-bar{background:#e3e9e0}progress::-webkit-progress-value{background:var(--teal)}.question-control{display:grid;grid-gap:12px;gap:12px}.range-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;grid-gap:12px;gap:12px;align-items:center}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}input,select{height:44px;padding:0 12px}input[type=range]{padding:0;accent-color:var(--teal)}textarea{padding:12px;resize:vertical}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.segmented button{min-height:42px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--muted);font-weight:800}.segmented button.selected{border-color:var(--ink);background:var(--ink);color:white}.coach-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.toggle{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:white;font-weight:800}.toggle input{width:18px;height:18px;accent-color:var(--teal)}.recommendation{margin-top:16px;padding:16px;border-left:5px solid var(--teal);border-radius:8px;background:#edf7f3}.recommendation p:last-child{margin-bottom:0;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px}td,th{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:.78rem;text-transform:uppercase}.positive{color:var(--green)}.hot-score,.negative{color:var(--red)}.sequence-list{display:grid;grid-gap:10px;gap:10px;margin:0;padding:0;list-style:none}.sequence-list li{display:grid;grid-template-columns:30px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:white}.sequence-list .dot{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#e4eae3;font-weight:900}.sequence-list li.done .dot{background:var(--green);color:white}.sequence-list li.current .dot{background:var(--gold);color:white}.sequence-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px}.sequence-toggle small{display:block;margin-top:3px;color:var(--muted);font-size:.84rem;font-weight:500}.sequence-toggle input{flex-shrink:0;width:18px;height:18px;accent-color:var(--teal)}.sequence-toggle input:disabled{opacity:.4}.stage-ladder{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.stage-step{display:flex;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted)}.stage-step.allowed{border-color:rgba(33,118,75,.4);background:#edf7f3;color:var(--ink)}.playbook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.playbook-rule{padding:13px;border:1px solid var(--line);border-radius:8px;background:white}.playbook-rule strong{display:block;margin-bottom:6px}.playbook-rule span{color:var(--muted);font-size:.9rem}.interview-panel,.journal-form{display:grid;grid-gap:12px;gap:12px}label{font-weight:800}.checkpoint-form{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfcf9}.confirm-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px}.confirm-row label{display:grid;grid-gap:6px;gap:6px}.confirm-row input{max-width:140px}.journal-list{display:grid;grid-gap:10px;gap:10px;align-content:start}.journal-entry{padding:13px;border:1px solid var(--line);border-radius:8px;background:#fbfcf9}.journal-entry strong{display:block;margin-bottom:5px}.journal-entry p{margin:0;color:var(--muted)}.import-page{max-width:1180px;margin:0 auto}.import-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 4px}.import-hero h1{margin:0;font-size:clamp(2rem,5vw,4rem)}.import-hero p:not(.eyebrow){max-width:720px;color:var(--muted)}.file-drop{display:grid;place-items:center;min-height:130px;border:1px dashed var(--teal);border-radius:8px;background:#edf7f3;color:var(--ink);font-weight:800}.file-drop input{position:absolute;width:1px;height:1px;opacity:0}.no-shadow{box-shadow:none}.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.form-message{color:var(--muted);font-weight:800}.import-summary{margin-bottom:16px}.help-button{position:fixed;right:22px;bottom:22px;z-index:50;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:999px;background:var(--ink);color:white;box-shadow:var(--shadow);font-size:1.2rem;font-weight:900}.onboarding-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:rgba(23,32,27,.46)}.onboarding-panel{width:min(720px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:22px;border:1px solid var(--line);border-radius:8px;background:white;box-shadow:var(--shadow)}.onboarding-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.onboarding-description{margin:12px 0 18px;color:var(--muted)}.onboarding-steps{display:grid;grid-gap:10px;gap:10px}.onboarding-step{display:grid;grid-template-columns:34px minmax(0,1fr);grid-gap:12px;gap:12px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fbfcf9}.onboarding-step>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#e4eae3;font-weight:900}.onboarding-step p{margin:6px 0 0;color:var(--muted)}.onboarding-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media (max-width:980px){.app-shell{display:block;padding-top:68px}.mobile-header{position:fixed;z-index:40;top:0;right:0;left:0;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:12px 16px;background:rgba(247,248,244,.96);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:900;text-decoration:none}.mobile-brand .brand-mark{width:38px;height:38px;font-size:.82rem}.menu-button{display:grid;grid-gap:5px;gap:5px;place-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:white}.menu-button span{display:block;width:20px;height:2px;border-radius:999px;background:var(--ink)}.drawer-backdrop{position:fixed;z-index:45;inset:0;display:block;border:0;background:rgba(23,32,27,.42)}.sidebar{position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(86vw,340px);height:100dvh;overflow-y:auto;transform:translateX(-105%);transition:transform .18s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.drawer-close{display:grid;flex:0 0 auto}.desktop-action-bar{display:none}.mobile-drawer-actions{display:grid;grid-gap:8px;gap:8px}.import-hero,.nav-stack,.split-band{grid-template-columns:1fr}.import-hero,.split-band{flex-direction:column;align-items:stretch}}@media (max-width:620px){main{padding:16px}.sidebar{padding:18px}.mapping-grid,.playbook-grid,.segmented,.summary-metrics,.toggle-grid{grid-template-columns:1fr}.coach-actions{justify-content:stretch}.coach-actions button,.onboarding-actions button{flex:1 1}.onboarding-actions{flex-direction:column-reverse}}