:root{--surface-page:#f3f7fa;--surface:#fff;--surface-tint:#edf8fc;--text:#123044;--text-muted:#425d6d;--accent:#00a9d6;--accent-text:#007da7;--accent-ink:#092d3f;--border:#ccdce5;--border-strong:#9ab9c9;--success:#237442;--warning-text:#935600;--warning-border:#aa6700;color-scheme:light;font:16px system-ui,sans-serif;background:var(--surface-page);color:var(--text)}
*{box-sizing:border-box}
body{background:var(--surface-page);color:var(--text)}
h1,h2,h3,h4{color:var(--text)}
p,small,.hint{color:var(--text-muted)}
a{color:var(--accent-text)}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
button,input,select,textarea,.file-button{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
button,.file-button{min-height:42px;border-radius:8px}
button:hover,.file-button:hover{background:var(--surface-tint);border-color:var(--accent-text)}
button.primary,button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}
button.primary:hover,button.active:hover{background:#30bce0}
input[type=range],input[type=checkbox]{accent-color:var(--accent-text)}
.appbar{background:var(--surface);border-color:var(--border)}
.brand{color:var(--text)}
.panel,.track-card,.session-card,.library-empty{background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 14px #264c6308}
.steps [aria-current=step]{background:var(--surface-tint);color:var(--accent-text)}
.steps span{background:#e1edf4;color:var(--text-muted)}
.steps [aria-current=step] span{background:var(--accent-text);color:#fff}
.complex{background:var(--surface)}
.complex-accordion[open]{outline-color:var(--border-strong)}
.account-area>a{color:var(--accent-text);font-weight:600;text-decoration:none}
.avatar-button{background:#daf2fa;color:var(--text);border-color:#add8e6}
.account-menu,.account-dialog,.account-card{background:var(--surface);color:var(--text);border-color:var(--border)}
.account-menu p,.account-dialog p,.account-dialog small,.account-card .hint{color:var(--text-muted)}
.account-dialog::backdrop{background:#12304466}
.account-menu button,.account-dialog button{background:var(--surface-tint);color:var(--accent-text);border-color:#add8e6}
.account-menu button:hover,.account-dialog button:hover{background:#d4eff8;border-color:var(--accent-text)}
.account-dialog header button{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.account-menu a,.account-dialog a,.account-card>a,.account-card p a{color:var(--accent-text)}
.account-dialog input,.account-dialog select,.account-card input{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.account-user,.activity-entry,.stats-table-wrap th,.stats-table-wrap td{border-color:var(--border)}
.user-summary small,.activity-entry small,.stats-summary span,.stats-table-wrap td small{color:var(--text-muted)}
.stats-summary>div{background:var(--surface-tint)}
.login-body{background:var(--surface-page);color:var(--text)}
.account-card button,.account-button{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);font-weight:650}
.account-card button:hover,.account-button:hover{background:#30bce0}
.account-card h1{font-size:28px;line-height:1.2}
.account-card> a:first-child{font-weight:750;letter-spacing:.08em;text-decoration:none;color:var(--text)}
.library-tracks-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.track-card.has-track-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0}
.has-track-map .track-details{padding:22px;min-width:0}
.track-map{margin:16px 0;min-width:0;border-left:1px solid var(--border);padding:8px 16px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}
.track-card .track-map img{width:100%;height:174px;aspect-ratio:auto;object-fit:contain;border-radius:0;margin:0}
@media(max-width:650px){.track-card.has-track-map{grid-template-columns:1fr}.track-map{grid-row:1;border-left:0;border-bottom:1px solid var(--border);margin:0;padding:16px}.track-card .track-map img{height:164px}.has-track-map .track-details{padding:20px}}
@media(max-width:650px){.account-menu{max-width:calc(100vw - 32px)}.account-dialog{width:calc(100% - 24px);padding:18px}.account-dialog header{gap:12px;flex-wrap:wrap}.user-summary{min-width:0;width:100%}.account-user{align-items:flex-start}.account-user p{min-width:0}.account-card{padding:24px}.login-body{padding:24px 16px}}

.map-credits{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--border);font-size:13px;line-height:1.5;color:var(--text-muted)}
.map-credits a{color:var(--accent-text);text-underline-offset:2px}
.map-credits{max-width:1400px;margin:0 auto 24px;padding:14px 28px 0}
.position-panel{margin-top:18px}.position-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.position-heading h2{margin:0}.position-badge{font-size:12px;color:var(--warning-text);background:#fff3de;border-radius:20px;padding:4px 9px}.position-map{position:relative;width:min(100%,200px);aspect-ratio:1;margin:8px auto}.position-map img{display:block;width:100%;height:100%;object-fit:contain}.position-map svg{position:absolute;inset:0;width:100%;height:100%}.position-panel p{font-size:14px;line-height:1.5}.position-panel .row button{font-size:14px}.position-panel li{font-size:13px;line-height:1.5;color:var(--text-muted);margin:8px 0}.position-panel summary{color:var(--text-muted)}
.position-panel{position:relative}.position-panel .section-edit{position:absolute;top:10px;right:10px;z-index:1;font-size:12px;padding:5px 9px}.position-panel:has(.section-edit:not([hidden])) .position-map{margin-top:32px}.position-panel #positionactions{margin-top:12px}.position-panel #positionstatus{margin:8px 0}

.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:20px 28px;border-top:1px solid var(--border);font-size:.85rem}.site-footer nav{display:flex;flex-wrap:wrap;gap:18px}.site-footer .map-credits{margin:0;padding:0;border:0}.legal-notice{font-size:.85rem;line-height:1.6}

.session-toolbar{max-width:1400px;margin:12px auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.session-save-state{display:flex;align-items:center;gap:16px}.session-toolbar #savestate{font-size:.85rem;color:var(--text-muted)}.session-toolbar .project-actions{margin:0;width:auto}.session-toolbar strong{overflow-wrap:anywhere;min-width:0}@media(max-width:600px){.session-toolbar{padding:12px 16px;flex-wrap:wrap}.session-save-state{width:100%;justify-content:space-between}.session-toolbar #savestate{order:0;width:auto}}

.account-menu :is(button,a){display:block;width:100%;margin:4px 0;padding:10px 14px;min-height:44px;border:1px solid #add8e6;border-radius:8px;background:var(--surface-tint);color:var(--accent-text);font:inherit;line-height:1.4;text-align:left;text-decoration:none;cursor:pointer}.account-menu :is(button,a):hover{background:#d4eff8;border-color:var(--accent-text)}.account-menu :is(button,a):focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}

.library-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.library-heading>div:first-child{flex:1;min-width:0}.library-heading>.row{display:flex;align-items:center;justify-content:flex-end;gap:16px 24px;flex-wrap:wrap;margin:0;flex-shrink:0}.library-heading>.row>label{display:inline-flex;align-items:center;gap:10px;margin:0}.library-heading #newsession{margin:0}.library-heading>.row select{margin:0}@media(max-width:850px){.library-heading{align-items:flex-start;flex-direction:column;gap:14px}.library-heading>.row{width:100%;justify-content:flex-end;gap:14px}.library-heading>.row>label{flex-wrap:wrap}}
