/* Public UI components; physical device and battle artwork keep their own rules. */
.s3-site{--ink:var(--s3-ink);--surface:var(--s3-surface);--line:var(--s3-line);--muted:var(--s3-muted);--green:var(--s3-accent);--danger:var(--s3-danger,#b44536);--lcd:var(--s3-warning,#b3882b)}
.s3-main{padding-top:40px;min-height:65vh}
.s3-main :is(h1){font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-1.5px}
.s3-main :is(h2){font-size:22px;line-height:1.3;letter-spacing:-.5px}
.s3-main :is(h3){font-size:17px;line-height:1.4}
.s3-main :is(p)+p{margin-top:12px}
.s3-main p{line-height:1.65}
.s3-main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){max-width:100%;min-height:44px;padding:11px 12px;border:1px solid var(--s3-line);border-radius:2px;background:var(--s3-surface);color:var(--s3-ink);font:14px/1.4 var(--s3-sans)}
.s3-main textarea{font-family:var(--s3-mono)}
.s3-main label{font-size:12px;color:var(--s3-muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 17px;border:1px solid var(--s3-accent);border-radius:2px;background:var(--s3-accent);color:var(--s3-on-action,#fff)!important;font:500 13px/1.4 var(--s3-sans);cursor:pointer;text-decoration:none}
.button:hover{filter:brightness(1.08)}.button:disabled{opacity:.5;cursor:default}.button-small{padding:8px 13px}.button-outline{background:transparent;color:var(--s3-accent)!important}
.panel{padding:24px;border:1px solid var(--s3-line);border-radius:2px;background:var(--s3-surface)}
.panel h2{margin-bottom:10px}.panel p{color:var(--s3-muted);font-size:14px}
.eyebrow{color:var(--s3-muted);font:10px/1.5 var(--s3-mono);letter-spacing:1.6px;text-transform:uppercase}
.account-form{display:grid;gap:16px;margin:24px 0 18px}.account-form input{display:block;width:100%;margin-top:7px}.account-status{min-height:22px;margin-top:12px;color:var(--s3-muted);font-size:13px}.account-status.error{color:var(--danger)}
.account-switch{min-height:44px;padding:0;background:none;border:0;color:var(--s3-accent);font:inherit;text-decoration:underline;cursor:pointer}
.signed-in{display:grid;gap:15px}.status-row{display:flex;justify-content:space-between;gap:12px;font-size:14px}.status-row strong{color:var(--s3-accent)}
.vault-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);gap:30px}.vault-intro p{margin-top:18px;max-width:620px;color:var(--s3-muted)}
.battle-panel{display:grid;grid-template-columns:1fr minmax(280px,.9fr);gap:26px;margin:26px 0;padding:26px;border:1px solid var(--s3-line);background:var(--s3-surface)}.battle-panel h2{margin:6px 0 12px}.battle-panel p{color:var(--s3-muted);font-size:14px}.battle-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}.battle-controls input{display:block;width:100%;margin-top:6px}.battle-buttons,.battle-controls .account-status{grid-column:1/-1}.battle-buttons{display:flex;flex-wrap:wrap;gap:8px}.battle-buttons .button{flex:1}.battle-controls .account-status button{min-height:44px;margin:2px 4px;padding:5px 9px;border:1px solid var(--s3-accent);background:transparent;color:var(--s3-accent);cursor:pointer}
.workspace-collapsible{border:1px solid var(--s3-line);background:var(--s3-surface);margin-top:18px}.workspace-collapsible>summary{padding:16px 20px;min-height:52px;color:var(--s3-accent);font-size:13px;cursor:pointer}.workspace-collapsible[open]>summary{border-bottom:1px solid var(--s3-line)}.workspace-collapsible>.battle-panel{border:0;margin:0}
@media(max-width:760px){.s3-main{padding-top:28px}.panel{padding:20px}.vault-layout,.battle-panel{grid-template-columns:1fr}.battle-controls{grid-template-columns:1fr}.battle-panel{padding:20px}.button{min-height:44px}}
