/* GL-Hearing。試作版の見た目を引き継ぐ。CSP（style-src 'self'）のため、style 属性は使わずすべてここに書く */
:root{
  --bg:#f3f5f8; --surface:#ffffff; --fg:#16202e; --muted:#5b6676; --line:#dbe1ea;
  --accent:#1d4f91; --accent-fg:#ffffff; --accent-soft:#e7eef8;
  --crit:#c0392b; --crit-soft:#fbeae8; --high:#c8701c; --high-soft:#fcf0e2; --mid:#8a7a16; --mid-soft:#f6f2dc;
  --good:#2b7a57; --good-soft:#e3f2ea;
  --font-body:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo","Noto Sans JP",sans-serif;
  --font-num:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0f141b; --surface:#171e28; --fg:#e6ebf2; --muted:#9aa6b5; --line:#2a3442;
  --accent:#7fa8e0; --accent-fg:#0f141b; --accent-soft:#1c2a3d;
  --crit:#ef7366; --crit-soft:#3a1e1c; --high:#f0a050; --high-soft:#3a2a18; --mid:#d6c25a; --mid-soft:#333018;
  --good:#5cc093; --good-soft:#163026; color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#0f141b; --surface:#171e28; --fg:#e6ebf2; --muted:#9aa6b5; --line:#2a3442;
  --accent:#7fa8e0; --accent-fg:#0f141b; --accent-soft:#1c2a3d;
  --crit:#ef7366; --crit-soft:#3a1e1c; --high:#f0a050; --high-soft:#3a2a18; --mid:#d6c25a; --mid-soft:#333018;
  --good:#5cc093; --good-soft:#163026; color-scheme:dark;}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:15px;line-height:1.7}
*{box-sizing:border-box}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.35}
h1{font-size:22px}
h2{font-size:17px}
p{margin:0}
a{color:var(--accent)}
button,select,input{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}

.top{background:var(--surface);border-bottom:1px solid var(--line);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.top-in{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-block:12px}
.brand{display:flex;flex-direction:column;line-height:1.25;color:inherit;text-decoration:none}
.brand b{font-size:16px;letter-spacing:.02em}
.brand small{color:var(--muted);font-size:11.5px;letter-spacing:.08em}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{padding:6px 12px;border-radius:6px;color:var(--muted);text-decoration:none}
.nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:700}
.who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.who form{margin:0}
.role{font-size:11px;padding:2px 8px;border-radius:99px;border:1px solid var(--line)}
.role.admin{border-color:var(--accent);color:var(--accent)}

main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:28px 64px}
.wrap{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px}
.panel.stack{display:flex;flex-direction:column;gap:14px}
.panel.tight{padding:8px 12px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.btn{display:inline-block;border:1px solid var(--line);background:var(--surface);padding:9px 18px;border-radius:8px;text-decoration:none;color:inherit;line-height:1.5}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:700}
.btn.danger{border-color:var(--crit);color:var(--crit)}
.btn.ghost{background:none}
.btn.small{padding:5px 12px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.inline{display:inline;margin:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.err{color:var(--crit);font-size:13.5px}
.notice{background:var(--accent-soft);color:var(--fg);border-radius:8px;padding:12px 14px;font-size:14px}
.notice.warn{background:var(--high-soft)}
.notice.bad{background:var(--crit-soft)}
.eyebrow{font-size:11.5px;letter-spacing:.12em;color:var(--muted)}

/* login */
.login{max-width:520px;margin:24px auto 0;display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;color:var(--muted)}
.field input,.field select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 12px;width:100%}
.field .h{font-size:12.5px;color:var(--muted)}
.code-input{font-family:var(--font-num);font-size:22px;letter-spacing:.3em;text-align:center}
.qr-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px;background:#fff;border-radius:8px;border:1px solid var(--line)}
.qr{width:200px;height:200px}
.qr path{fill:#000}
.secret{font-family:var(--font-num);font-size:14px;color:#16202e;word-break:break-all;text-align:center}
ol.steps-list{margin:0;padding-left:1.4em;font-size:14px}

/* table */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
th{text-align:left;font-weight:500;color:var(--muted);font-size:12.5px;border-bottom:1px solid var(--line);padding:8px 10px;white-space:nowrap}
td{border-bottom:1px solid var(--line);padding:11px 10px;vertical-align:middle}
td.r,th.r{text-align:right}
td.nowrap{white-space:nowrap}
td.empty{text-align:center;padding:32px;color:var(--muted)}
.pill{display:inline-block;font-size:12px;padding:2px 10px;border-radius:99px;white-space:nowrap;font-weight:500}
.pill.ok{background:var(--good-soft);color:var(--good)}
.pill.bad{background:var(--crit-soft);color:var(--crit)}
.pill.warn{background:var(--high-soft);color:var(--high)}
.pill.plain{border:1px solid var(--line);color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;font-size:14px;margin:0}
.dl dt{color:var(--muted)}
.dl dd{margin:0;word-break:break-all}
.actions{display:flex;flex-direction:column;gap:14px}
.action{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.action:first-child{border-top:0;padding-top:0}
.action p{flex:1;min-width:220px;font-size:14px}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.pager{display:flex;gap:8px;align-items:center;justify-content:center}
.temp-pw{font-family:var(--font-num);font-size:24px;letter-spacing:.06em;background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:14px;text-align:center;word-break:break-all;user-select:all}

/* 共通（PR2） */
[hidden]{display:none !important}
.crit{color:var(--crit)}
.sub{margin:4px 0 14px}
.self-start{align-self:flex-start}
.tight-gap{gap:8px}
.danger-text{color:var(--crit)}

/* list */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.stat{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--surface)}
.stat .v{font-family:var(--font-num);font-size:26px;font-weight:600}
.stat .k{font-size:12.5px;color:var(--muted)}
.lv1{background:var(--crit-soft);color:var(--crit)}
.lv2{background:var(--high-soft);color:var(--high)}
.lv3{background:var(--good-soft);color:var(--good)}
tr.draft td{background:var(--bg)}

/* form */
.form-panel{display:flex;flex-direction:column;gap:18px}
.step-title{font-size:20px}
.steps{display:flex;gap:4px}
.steps span{flex:1;height:5px;border-radius:3px;background:var(--line)}
.steps span.done{background:var(--accent)}
.steps span.cur{background:var(--accent);opacity:.55}
fieldset.q{border:0;margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:18px 0;border-top:1px solid var(--line)}
fieldset.q:first-of-type{border-top:0}
.q legend{padding:0;float:left;width:100%}
.q .t{font-weight:500}
.q .h{font-size:13px;color:var(--muted)}
.q.missing .t{color:var(--crit)}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-block;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 16px;min-width:88px;text-align:center;cursor:pointer}
.seg input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:700}
.seg label.u input:checked+span{background:var(--muted);border-color:var(--muted)}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.consent{display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);border-radius:8px;padding:14px}
.consent input{margin-top:5px}
@media (max-width:480px){.seg label{flex:1}.seg span{min-width:0;width:100%;padding:10px 8px}}

/* result */
.res-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:center}
@media (max-width:720px){.res-head{grid-template-columns:minmax(0,1fr)}}
.res-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.radar-box{display:flex;justify-content:center}
.score{display:flex;align-items:baseline;gap:6px}
.score .big{font-family:var(--font-num);font-size:56px;font-weight:600;line-height:1}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.radar{width:100%;max-width:380px}
.radar text{fill:var(--muted);font-size:11px;font-family:var(--font-body)}
.radar .ring{fill:none;stroke:var(--line)}
.radar .axis{stroke:var(--line)}
.radar .area{fill:var(--accent);fill-opacity:.18;stroke:var(--accent);stroke-width:2}
.radar .dot{fill:var(--accent)}
.radar .pct{fill:var(--fg);font-family:var(--font-num);font-size:11px}
.finds{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.find{display:grid;grid-template-columns:6px minmax(0,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.find .bar{background:var(--mid)}
.find.p3 .bar{background:var(--crit)} .find.p2 .bar{background:var(--high)}
.find .body{padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.find .ttl{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-weight:700}
.prio{font-size:11.5px;padding:1px 8px;border-radius:4px;font-weight:700;white-space:nowrap}
.prio.p3{background:var(--crit-soft);color:var(--crit)} .prio.p2{background:var(--high-soft);color:var(--high)} .prio.p1{background:var(--mid-soft);color:var(--mid)}
.find .why{font-size:14px;color:var(--muted)}
.find .act{font-size:14px}
.find .act b{font-weight:700;margin-right:6px}
.top3{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.top3 .c{border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}
.top3 .n{font-family:var(--font-num);color:var(--muted);font-size:13px}
.tabs{display:flex;border-bottom:1px solid var(--line);gap:4px;flex-wrap:wrap}
.tabs a{border-bottom:2px solid transparent;padding:8px 14px;color:var(--muted);text-decoration:none}
.tabs a.on{color:var(--fg);border-bottom-color:var(--accent);font-weight:700}
.memo{display:flex;flex-direction:column;gap:12px}
.svc{border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.svc ul{margin:0;padding-left:1.2em;font-size:14px;color:var(--muted)}
.svc.tips{background:var(--accent-soft);border-color:transparent}
.svc.tips ul{color:var(--fg)}
details{border-top:1px solid var(--line);padding-top:12px}
.panel>details:first-child{border-top:0;padding-top:0}
summary{cursor:pointer;color:var(--muted);font-size:14px}
.ans-list{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;font-size:13.5px;margin-top:12px}
.ans-list .a{text-align:right;white-space:nowrap}
.ans-cat{grid-column:1/-1;font-weight:700;margin-top:10px}
.unk{display:flex;flex-direction:column;gap:6px;font-size:14px}

/* partners */
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) 3.5em;gap:12px;align-items:center}
.bar-svg{display:block;width:100%;height:6px;margin-top:4px}
.bar-bg{fill:var(--line)}
.bar-fg{fill:var(--accent)}

/* 再診断・前回との比較（PR2 レビュー対応） */
.radar .area-prev{fill:var(--muted);fill-opacity:.06;stroke:var(--muted);stroke-opacity:.7;stroke-width:1.5;stroke-dasharray:5 4}
.radar .legend{fill:var(--fg);font-size:11px}
.radar .legend-prev{stroke:var(--muted);stroke-opacity:.7;stroke-width:1.5;stroke-dasharray:5 4}
.radar .legend-now{stroke:var(--accent);stroke-width:2}
.radar{max-width:440px}
.score-change{font-size:15px;font-weight:700}
.source-link{color:var(--muted)}
.prev-answer{font-size:12.5px;color:var(--muted);background:var(--bg);border:1px dashed var(--line);border-radius:6px;padding:2px 10px;justify-self:start}
table.compare{min-width:0}
td.up{color:var(--good);font-weight:700}
td.down{color:var(--crit);font-weight:700}
ul.improved{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
ul.improved li{display:flex;gap:10px;align-items:baseline;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:var(--good-soft)}

/* PDF・メール送信（PR3） */
textarea{font:inherit;color:inherit;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 12px;width:100%;resize:vertical}
.recipients{display:grid;gap:8px}
.recipients input{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 12px;width:100%}
pre.mail-footer,pre.mail-body{white-space:pre-wrap;word-break:break-all;font:inherit;font-size:13.5px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:12px;margin:0}
pre.mail-footer{color:var(--muted)}
ul.recipient-list{margin:0;padding-left:1.2em}
.actions-row{display:flex;gap:8px;flex-wrap:wrap}
.h3{font-size:14.5px;margin-top:6px}
