/* Shared NURDIVE surfaces. Layout and all game state remain in the existing modules. */
:root{--nd-bg:#061620;--nd-panel:#102630;--nd-line:#3c5c65;--nd-text:#dce9e7;--nd-muted:#a4bdbe;--nd-accent:#a3d1c6}
body{background:var(--nd-bg)}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel,#battleScreen,.auth-card,.app-shell){font-family:'Noto Sans JP','Yu Gothic UI','Meiryo',sans-serif}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) :focus-visible{outline:3px solid var(--nd-accent);outline-offset:3px}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel){--ink:var(--nd-text);--muted:var(--nd-muted);--line:var(--nd-line);--teal:var(--nd-accent);color:var(--nd-text);color-scheme:dark}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) :is(input,select,textarea){background:#081c25;color:var(--nd-text);border:1px solid var(--nd-line);border-radius:4px;accent-color:var(--nd-accent)}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) :is(input,textarea)::placeholder{color:#8eabad}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) button{border-radius:4px;box-shadow:none;font-family:inherit;min-height:44px}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) .primary-btn{background:#a3d1c6e0;color:#102c30;border:1px solid var(--nd-accent)}
:is(.mypage,.study-dialog,.result-card,.report-card,.how-panel) .secondary-btn{background:#224342b3;color:#d0e5df;border:1px solid #527973}
/* Profile, ranking, friends and account. */
.mypage{background:#03111acf;backdrop-filter:blur(6px)}
.mypage .mypage-shell{background:radial-gradient(ellipse at 0 0,#183b47,transparent 70%),var(--nd-bg);border:1px solid var(--nd-line);border-radius:6px;box-shadow:0 24px 80px #0005;color:var(--nd-text)}
.mypage .mypage-side{background:#091e28d9;border-right:1px solid var(--nd-line)}
.mypage .mypage-main{background:transparent}
.mypage .mypage-home{background:transparent;border:0;padding:0;color:#dce9e7;font:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}
.mypage .mypage-home:hover{color:#a3d1c6}
.mypage .mypage-avatar{background:#234d54;color:#daeee7;border:1px solid #567e81}
.mypage :is(.mypage-identity small,.mypage-kicker,.history-toolbar span,.history-entry small,.history-entry time,.ranking-rule,.ranking-row small,.ranking-personal>small){color:var(--nd-muted)}
.mypage .mypage-nav button{color:var(--nd-muted);font-size:13px;font-weight:500}
.mypage .mypage-nav button.active{background:#a3d1c61a;color:#e4f1ed;border-color:var(--nd-accent)}
.mypage :is(.mypage-close,.mypage-logout){color:var(--nd-muted)}
.mypage :is(.profile-metric,.history-entry,.ranking-row,.ranking-loading,.ranking-notice,.ranking-personal,.friends-own,.admin-answer,.admin-question,.admin-users){background:#112b35b3;border-color:var(--nd-line);border-radius:4px;color:var(--nd-text);box-shadow:none}
.mypage :is(.profile-metric b,.ranking-rank,.ranking-row .challenge-score b,.ranking-personal>strong,.friends-own strong,.friends-group h4 span,.friend-presence.is-online){color:#b4dacf}
.mypage .profile-metric span{color:var(--nd-muted);font-size:10px}
.mypage .category-score div{background:#203c46}.mypage .category-score i{background:#8abdb4}
.mypage .ranking-row.is-me{background:#1c3b40;border-color:#7eaea6;box-shadow:inset 3px 0 #a3d1c6}
.mypage :is(.ranking-tabs,.admin-tabs) button{background:#112b35;color:var(--nd-muted);border-color:var(--nd-line);font-size:12px}
.mypage :is(.ranking-tabs,.admin-tabs) button.active{background:#a3d1c6cc;color:#0e292b;border-color:#a3d1c6}
.mypage :is(.friends-intro,.friends-empty,.friend-identity small,.friend-presence,.history-empty){color:var(--nd-muted)}
.mypage .friend-row{border-color:var(--nd-line)}
.mypage :is(.friends-form button,.friends-toolbar button,.friend-actions button){background:#254744b3;color:#cce5dc;border-color:#527973}
.mypage .danger-zone{background:#30252d;border-color:#835760;border-radius:4px}.mypage .danger-zone p{color:#d6bbc2}.mypage .danger-zone h4{color:#ffc1c7}.mypage .danger-zone button{background:#432a33;color:#ffc1c7;border-color:#a66b78}
.mypage .history-entry>i{background:#482c35;color:#ffc0c5}.mypage .history-entry.ok>i{background:#25443e;color:#bde6d6}
/* Learning map and saved questions. */
.study-dialog{background:#0c212b;border-color:var(--nd-line);border-radius:6px;color:var(--nd-text)}
.study-dialog>header,.study-dialog .study-jump{background:#0c212b;border-color:var(--nd-line)}
.study-dialog :is(h2,h3,.study-map-row b,.study-saved-row p){color:var(--nd-text)}
.study-dialog :is(.study-kicker,small,>p,section>p){color:var(--nd-muted)}
.study-dialog :is(button,#studyClose,.study-jump button,.study-map-row button){background:#254744b3;border:1px solid #527973;color:#cce5dc;border-radius:4px}
.study-dialog :is(.study-map-row,.study-saved-row){background:#112d37b3;border-color:var(--nd-line);border-radius:4px}
.study-dialog .study-saved-row blockquote{background:#1a3740;border-color:#88b8ae;color:#c9dcda;border-radius:3px}
.study-dialog #studySavedSection{border-color:var(--nd-line)}
/* Match entry, lobby and results share the same finish. Reading surfaces stay legible. */
#battleScreen{--match-bg:#061620;--match-surface:#102630;--match-line:#3c5c65;--match-text:#dce9e7;--match-muted:#a4bdbe;--match-accent:#a3d1c6;background:radial-gradient(ellipse at 20% 0,#1b414f,transparent 65%),var(--nd-bg)}
#battleScreen :is(.battle-card,.battle-rules,.battle-lobby,.battle-scoreboard article,.battle-history>details,.battle-question-card,.battle-review,.battle-countdown){border-radius:6px;box-shadow:none}
#battleScreen :is(.battle-card,.battle-rules,.battle-scoreboard article,.battle-countdown){background:#102630cf;border-color:var(--nd-line)}
#battleScreen :is(.battle-primary,.battle-quiet,.battle-choice){border-radius:4px}
#battleScreen .battle-primary{background:#a3d1c6d9;color:#102c30}
#battleScreen .battle-quiet{background:#1b383fb3;border-color:#4d7076}
#battleScreen .social-lobby{background:#102630cf;border-color:var(--nd-line);color:var(--nd-text);border-radius:6px}
#battleScreen .social-lobby :is(.friend-presence,.friend-identity small){color:var(--nd-muted)}
/* Solo chrome; the question and explanation use a calm paper surface. */
.app-shell{background:#0b212b;border-color:var(--nd-line)}
.app-shell .topbar{background:#0a202ad9;border-color:var(--nd-line)}
.app-shell :is(.status-strip,.side-panel,.self-panel){background:#102630;color:var(--nd-text);border-color:var(--nd-line)}
.app-shell :is(.side-panel,.status-strip,.self-panel) :is(.eyebrow,small,dt,.condition-line>span){color:var(--nd-muted)}
.app-shell :is(.condition-line strong,.vitals strong,.case-number strong,.case-meta dd,.self-heading h2){color:#dce9e7}
.app-shell .streak-card{background:#19353e;border-color:var(--nd-line);color:#c7dfd8}
.app-shell .side-panel .text-btn{color:#b9d6cd}
.app-shell .question-panel{background:#f3f6f3;border-radius:4px}
.app-shell :is(.primary-btn,.secondary-btn,.choice,.study-question button,.study-question textarea){border-radius:4px;box-shadow:none}
.app-shell .action-row .primary-btn:not(:disabled){background:#234744;color:#e4f1ec;border-color:#55796f}
.app-shell .action-row .secondary-btn{background:#e1ece7;color:#214842;border-color:#89aaa0}
/* End-of-run, help and reporting surfaces. */
:is(.result-modal,.report-modal){background:#03111acf;backdrop-filter:blur(6px)}
.result-card,.report-card,.game-lounge .how-panel{background:radial-gradient(ellipse at 0 0,#1b3b46,transparent 75%),#0b202a;color:var(--nd-text);border:1px solid var(--nd-line);border-radius:6px;box-shadow:0 24px 80px #0005}
:is(.result-card,.report-card,.how-panel) :is(h2,h3,strong){color:var(--nd-text)}
:is(.result-card,.report-card,.how-panel) :is(.eyebrow,.report-question,.report-note,.usage-notice p,.usage-notice li){color:var(--nd-muted)}
.result-card :is(.result-stats,.result-summary>div){background:#15313a;border-color:var(--nd-line);color:var(--nd-muted);border-radius:4px}
.result-card :is(.result-stats b,.result-summary b){color:#c9e3d7}
.result-card #resultMessage{color:#b8cecc}
.report-card :is(.report-close,.report-status){color:#bddbd2}
.game-lounge .how-panel :is(p,li,li span){color:#b9cece}.game-lounge .how-panel :is(.usage-notice,li){background:transparent;border-color:var(--nd-line)}
.game-lounge .how-panel a{color:#b8e0d6}
.auth-card{background:#102630e8;border-color:var(--nd-line);border-radius:6px}.auth-card input,.auth-card button{border-radius:4px}
@media(max-width:700px){.mypage .mypage-shell{border:0;border-radius:0}.mypage .mypage-side{border-right:0;border-bottom:1px solid var(--nd-line)}.mypage .mypage-home{font-size:18px}.mypage .mypage-nav button{font-size:12px}}
@media(hover:hover){.mypage .mypage-nav button:hover{background:#a3d1c614;color:#e4f1ed}.study-dialog button:hover{background:#31564f}}
/* Empty and detached overlay states use the same surfaces as populated views. */
.mypage .history-empty{background:#112b35b3;border:1px solid var(--nd-line);border-radius:4px;color:var(--nd-muted)}
.mypage .mypage-close{background:#1b383f;border:1px solid #4d7076;color:#dce9e7}
.study-dialog>p,.study-dialog section>p{color:var(--nd-muted)}
.how-panel{background:radial-gradient(ellipse at 0 0,#1b3b46,transparent 75%),#0b202a;color:var(--nd-text);border:1px solid var(--nd-line);border-radius:6px}
.how-panel :is(p,li,li span){color:#b9cece}.how-panel :is(.usage-notice,li){background:transparent;border-color:var(--nd-line)}
.how-panel a{color:#b8e0d6}.how-panel #howClose{background:#1b383f;color:#dce9e7;border:1px solid #4d7076}
