:root{--ink:#17333f;--teal:#32b9c1;--dark-teal:#127f88;--muted:#526d74;--line:#d6e6e8;--paper:#f6fbfb}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:16px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
button,input{font:inherit}
a{color:var(--dark-teal)}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.site-header{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px clamp(22px,5vw,76px);border-bottom:1px solid #dbe9ea;background:#fff}
.brand{display:flex;align-items:center;gap:12px;font-size:1.125rem;font-weight:800;letter-spacing:.03em}
.brand-mark{width:43px;height:43px;border-radius:9px}
.header-note{font-size:.875rem;color:#59727a}
.diagnosis-layout{width:min(1220px,calc(100% - 48px));margin:54px auto;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(460px,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.intro-panel{padding:30px 0}
.eyebrow{color:var(--dark-teal);font-size:.8125rem;font-weight:800;letter-spacing:.16em}
.intro-panel h1{max-width:550px;margin:22px 0;font-size:clamp(2.375rem,4vw,3.75rem);line-height:1.23;letter-spacing:-.035em}
.intro-panel>p:not(.eyebrow){max-width:520px;color:#49646d;font-size:1.0625rem;line-height:1.9}
.type-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}
.type-list span{background:#e3f4f5;color:#285561;padding:8px 12px;border-radius:99px;font-size:.8125rem;font-weight:700}
.side-note{margin-top:34px;padding-top:18px;border-top:1px solid #d2e5e7;font-size:.875rem!important}
.question-panel{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 60px #17333f12;padding:clamp(24px,3vw,44px)}
.step-caption{display:flex;justify-content:space-between;gap:12px;color:#53737a;font-size:.8125rem;font-weight:800;letter-spacing:.06em;margin-bottom:15px}
.progress-track{height:8px;background:#e8f3f4;border-radius:999px;overflow:hidden}
.progress-track>div{height:100%;width:0;background:var(--teal);transition:width .2s ease}
.intake-form,.question-content{margin-top:38px}
.intake-form h2,.question-content h2{margin:0;font-size:clamp(1.4375rem,2.3vw,1.9375rem);line-height:1.5}
.intake-form>p:not(.form-note){color:#59727a;font-size:.9375rem;line-height:1.8;margin:10px 0 28px}
.intake-form label,.login-card label,.setup-card label{display:grid;gap:8px;color:#24424c;font-size:.875rem;font-weight:700;margin-bottom:22px}
input:not([type=radio]){width:100%;height:49px;padding:9px 12px;border:1px solid #a9c9cd;border-radius:9px;background:#fff;color:var(--ink);font-size:1rem}
input:not([type=radio]):focus{border-color:var(--dark-teal)}
.input-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;border:0;border-radius:9px;padding:10px 20px;background:var(--dark-teal);color:#fff;font-size:1rem;font-weight:800}
.primary-button:hover:not(:disabled),.booking-link:hover{background:#0c6e77}
.intake-form>.primary-button,.login-card .primary-button,.setup-card .primary-button{width:100%}
.form-note{color:#657b82;font-size:.8125rem;line-height:1.7;margin:16px 0 0}
.question-content h2{margin:12px 0 28px}
.question-hint{margin:-12px 0 22px;color:#59727a;font-size:.875rem}
.answer-options{display:grid;gap:10px}
.answer-option{display:flex;align-items:center;gap:13px;border:1px solid #d7e5e7;border-radius:11px;padding:15px;font-size:.9375rem;line-height:1.5;cursor:pointer}
.answer-option:has(input:checked){border-color:var(--teal);background:#f0fbfb}
.answer-option:hover{border-color:var(--teal)}
.answer-option input{width:18px;height:18px;flex:none;accent-color:var(--dark-teal)}
.question-actions{display:flex;align-items:center;gap:12px;margin-top:18px}
.question-actions .primary-button{flex:1}
.outline-button{min-height:52px;border:1px solid #bad5d8;border-radius:9px;padding:10px 18px;background:#fff;color:var(--ink);font-size:.9375rem;font-weight:700}
.outline-button:hover{background:#f1f9fa}
.error-message{color:#a0263b!important;background:#fff1f2;border:1px solid #f2c4cb;border-radius:8px;padding:10px 12px;font-size:.875rem;line-height:1.6}
.result-content{margin-top:34px}
.result-content h2{margin:14px 0 24px;font-size:clamp(1.5625rem,2.6vw,2.25rem);line-height:1.45;letter-spacing:-.03em}
.result-content h2 span{display:block;color:var(--dark-teal);font-size:1.14em}
.result-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.result-facts>div{background:#eff8f9;border:1px solid #d3e9eb;border-radius:12px;padding:15px}
.result-facts small{display:block;color:#5b7379;font-size:.8125rem;margin-bottom:7px}
.result-facts strong{font-size:1.0625rem}
.result-facts em{color:#5b7379;font-size:.8125rem;font-style:normal}
.affirmation{margin:24px 0;padding:17px 19px;border-left:4px solid var(--teal);background:#f0fbfb;font-size:1rem;font-weight:700;line-height:1.8}
.gap-block{margin-top:27px}
.gap-block h3{font-size:1.125rem;margin:0 0 15px}
.gap-block ol{margin:0;padding-left:29px}
.gap-block li{line-height:1.7;margin-bottom:11px;padding-left:4px}
.gap-block li::marker{color:var(--dark-teal);font-weight:800}
.interview-copy{margin:24px 0 0;font-size:1rem;font-weight:700;line-height:1.8}
.booking-note{margin-top:20px;padding:20px;border:1px solid #cbe9eb;border-radius:12px;background:#f0fbfb}
.booking-note p{margin:0 0 10px;font-size:.9375rem;line-height:1.7}
.booking-note p:last-of-type{margin-bottom:16px}
.booking-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;border-radius:9px;background:var(--dark-teal);color:#fff;font-size:.9375rem;font-weight:800;text-align:center;text-decoration:none}
.method-note{margin-top:20px;color:var(--muted);font-size:.8125rem}
.method-note summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.method-note p{line-height:1.7}
.admin-shell{min-height:100vh;background:var(--paper)}
.admin-header{min-height:74px;display:flex;align-items:center;gap:12px;padding:12px clamp(20px,5vw,70px);background:#fff;border-bottom:1px solid #dbe9ea;font-weight:800}
.admin-header img{width:42px;height:42px;border-radius:8px}
.admin-header a{margin-left:auto;font-size:.875rem;font-weight:500;text-decoration:underline}
.admin-content{max-width:1220px;margin:48px auto;padding:0 24px}
.admin-content h1,.setup-card h1{font-size:clamp(1.75rem,3vw,2.125rem);margin:8px 0 12px}
.admin-subtitle{color:var(--muted);line-height:1.7}
.logout-form{display:flex;justify-content:flex-end}
.logout-form .outline-button{min-height:40px;font-size:.875rem}
.record-count{color:var(--muted);font-size:.875rem;margin-top:28px}
.table-scroll{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #d9e9eb}
.admin-table th,.admin-table td{padding:13px 15px;border-bottom:1px solid #e1edef;text-align:left;vertical-align:top;font-size:.875rem;line-height:1.6}
.admin-table th{color:#46636b;background:#eaf6f7;white-space:nowrap}
.admin-table td{min-width:100px}
.admin-table .company-cell{min-width:200px;font-weight:700}
.admin-table small{display:block;color:#617981;font-size:.75rem;font-weight:400;margin-top:4px}
.answer-details{margin-top:6px;font-size:.75rem;font-weight:400;color:var(--dark-teal)}
.answer-details summary{cursor:pointer;text-decoration:underline}
.answer-details ol{width:min(600px,70vw);padding-left:18px;color:var(--ink)}
.answer-details li{margin:9px 0;line-height:1.5}
.answer-details li strong{display:block;color:var(--dark-teal)}
.admin-empty{background:#fff;border:1px solid #d9e9eb;border-radius:14px;padding:28px;margin-top:32px}
.pagination{display:flex;justify-content:space-between;margin-top:20px}
.pagination a{text-decoration:underline}
.login-card,.setup-card{max-width:560px;margin:0 auto;padding:32px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 44px #17333f0d}
.login-card form,.setup-card form{margin-top:28px}
.setup-page{padding:32px 16px}
.setup-card{max-width:650px}
.setup-card>p{line-height:1.7}
.setup-logo{width:58px;height:58px;border-radius:10px}
@media(max-width:900px){.diagnosis-layout{grid-template-columns:1fr;margin-top:24px}.question-panel{order:0}.intro-panel{order:1;padding:5px 0}.intro-panel h1{font-size:2.125rem;margin:10px 0}.type-list{margin-top:18px}}
@media(max-width:700px){.admin-table,.admin-table tbody{display:block;width:100%;background:transparent;border:0}.admin-table thead{display:none}.admin-table tr{display:grid;grid-template-columns:1fr 1fr;margin:0 0 12px;padding:10px;background:#fff;border:1px solid #d9e9eb;border-radius:12px}.admin-table td,.admin-table .company-cell{min-width:0;padding:8px;border:0}.admin-table .company-cell{grid-column:span 2}.admin-table td::before{content:attr(data-label);display:block;margin-bottom:4px;color:#60777e;font-size:.75rem;font-weight:500}.answer-details ol{width:auto}}
@media(max-width:600px){.site-header{min-height:66px;padding:10px 18px}.brand{font-size:.9375rem}.brand-mark{width:34px;height:34px}.header-note{display:none}.diagnosis-layout{width:calc(100% - 28px);gap:20px}.question-panel{border-radius:18px;padding:22px 18px}.input-row,.result-facts{grid-template-columns:1fr;gap:0}.intro-panel h1{font-size:1.875rem}.intro-panel>p:not(.eyebrow){font-size:.9375rem}.admin-header{font-size:.875rem}.admin-content{margin-top:26px}.login-card,.setup-card{padding:22px 18px}}
