/* Shared dashboard rhythm; feature controls keep their existing behavior. */
:root{--reading-width:1320px;--focus:#d25f25}
body{font-size:14px;line-height:1.65}
.workspace{min-height:calc(100vh - 240px)}
.sidebar>nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.main-content{max-width:var(--reading-width);margin-inline:auto;width:100%;box-sizing:border-box;padding-bottom:52px}
.page-heading{margin-bottom:28px;gap:20px}.page-heading h1{font-size:28px;line-height:1.35;letter-spacing:-.8px}.page-heading p{max-width:760px;line-height:1.8;font-size:13px}
.topbar{min-height:74px}.breadcrumb{min-width:0}.sidebar{border-right:1px solid var(--line)}.sidebar .nav-label{font-size:11px;letter-spacing:.05em;margin-top:23px}.sidebar .nav-item{min-height:40px;font-size:13px}.sidebar .brand{padding-bottom:22px}.sidebar .server-switch{margin-bottom:18px}
.card,.module-card,.stat-card,.guild-card{border-radius:12px}.card{padding:26px}.card h2{line-height:1.4}.card+.card{margin-top:22px}.card p.muted{line-height:1.8}.group{padding:22px}.form-grid{gap:22px}.field>span,.field>label{font-size:13px}.field small{font-size:12px!important;line-height:1.7}.field input:not([type=checkbox]),.field select{min-height:44px}.button{min-height:40px}.button:disabled{opacity:.5;cursor:not-allowed}.settings-tabs{gap:8px}.settings-tabs button{min-height:40px;font-size:13px}.feature-guide summary{font-size:13px}.feature-guide-body{font-size:13px}.settings-note{font-size:12px;line-height:1.85}.save-bar{margin-top:24px;z-index:10}.empty{padding:36px 24px}.record{padding:22px}.record-meta{font-size:12px}.module-card p{line-height:1.8}
.site-footer{box-sizing:border-box;max-width:1120px;margin:0 auto;padding:32px 40px 24px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px 32px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);background:transparent}
body:has(.app-shell)>.site-footer{width:calc(100% - 248px);max-width:var(--reading-width);margin-left:max(248px,calc((100% + 248px - var(--reading-width))/2));padding-inline:40px}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:34px;height:34px;border-radius:10px}.footer-brand strong{font-size:15px;color:var(--ink);font-weight:650}.footer-brand p{font-size:12px;margin:2px 0 0}.site-footer nav{display:flex;gap:12px 22px;flex-wrap:wrap;justify-content:flex-end}.site-footer a{font-size:12px;color:var(--text-soft);text-decoration:none}.site-footer a:hover{color:var(--accent-ink);text-decoration:underline}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px}.site-footer :focus-visible{outline:2px solid var(--focus);outline-offset:5px}
@media(min-width:1600px){body:has(.app-shell)>.site-footer{padding-inline:48px}}
@media(max-width:1000px){.site-footer{grid-template-columns:1fr}.site-footer nav{justify-content:flex-start}.card{padding:22px}}
@media(max-width:800px){body:has(.app-shell)>.site-footer{width:100%;margin-left:0;padding:28px 18px 22px}.site-footer{padding:28px 22px 22px}.page-heading h1{font-size:25px}.main-content{padding-bottom:32px}.topbar{min-height:64px}.card{padding:19px}.group{padding:17px}.footer-bottom{display:grid;gap:5px}.site-footer nav{gap:12px 18px}}
@media(max-width:480px){.field input:not([type=checkbox]),.field select,.field textarea{font-size:16px}.site-footer a{min-height:30px;display:inline-flex;align-items:center}}

/* Stable header order, readable login layout, footer at the end of short pages. */
body{min-height:100vh;display:flex;flex-direction:column}.landing,.app-shell{flex:1;width:100%;box-sizing:border-box}.landing{display:flex;flex-direction:column}.landing>.hero{flex:1;display:grid;align-items:center;padding-block:48px 64px}.public-header>.brand{margin-right:auto}.header-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px}.login-copy h1{font-size:clamp(32px,3.8vw,46px);line-height:1.24;letter-spacing:-1.5px}.login-copy p{font-size:15px;line-height:1.9}.hero-note{font-size:13px;line-height:1.8}.hero-features p{font-size:13px}.site-footer{width:100%}.studio-worker{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.studio-worker .studio-hint{grid-column:1/-1;margin:0}.studio-worker h2{margin:6px 0}.studio-worker p{margin:4px 0}.studio-job progress{width:100%;height:9px;accent-color:var(--accent,#d25f25)}
@media(max-width:700px){.public-header{gap:14px;align-items:flex-start}.public-header>.brand{flex-shrink:0}.header-actions{gap:10px}.landing>.hero{padding-block:32px 44px}.studio-worker{grid-template-columns:1fr}.studio-worker .studio-tools{justify-content:flex-start}}
