.live-page { min-height:100vh; }
.live-home-shell { min-height:100vh; }
.live-home-container { max-width:1080px; margin:0 auto; padding:28px 24px 48px; }
.live-kicker { display:inline-flex; margin-bottom:10px; }
.live-auth-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr); gap:20px; align-items:start; }
.live-card-title { margin:0 0 6px; font-size:26px; }
.live-form { display:flex; flex-direction:column; gap:12px; }
.live-form label { color:var(--muted); font-weight:800; font-size:13px; }
.live-form input, .live-form select { width:100%; padding:12px 14px; border:2px solid var(--line); border-radius:12px; background:var(--py-input-bg); color:var(--text); }
.live-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.live-actions .option-card { text-decoration:none; color:inherit; min-height:150px; }
.live-error { display:none; padding:10px 12px; border:2px solid #b44; border-radius:12px; background:rgba(180,68,68,.12); color:var(--text); font-weight:750; }
.live-error.show { display:block; }
.live-status { padding:10px 12px; border:2px solid var(--line); border-radius:12px; background:var(--py-panel-tint); color:var(--muted); }
.live-version { font-weight:900; color:var(--accent); }
.live-token-preview { width:112px; height:112px; border-radius:50%; border:3px solid var(--line); background:var(--py-panel); object-fit:cover; display:none; }
.live-token-preview.show { display:block; }
.live-small { font-size:12px; color:var(--muted); line-height:1.45; }
.live-waiting { text-align:center; padding:26px; }
.live-waiting strong { display:block; font-size:24px; margin-bottom:8px; }
@media(max-width:760px){ .live-auth-grid{grid-template-columns:1fr;} .live-actions{grid-template-columns:1fr;} }

/* PyMaps Live v0.1.10 launch + setup flow */
.live-launch-container{max-width:1120px;padding-top:42px}.live-launch-heading{text-align:center;margin:0 auto 28px}.live-launch-heading h1{margin:0;color:var(--text);font-size:clamp(36px,5vw,58px);letter-spacing:-.035em}.live-launch-heading p{margin:8px 0 0;color:var(--muted);font-size:17px}.live-launch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.live-launch-card{min-height:390px;padding:30px!important;display:flex!important;flex-direction:column;gap:20px;position:relative;overflow:hidden}.live-launch-card>div:nth-child(2){flex:1}.live-launch-card h2{font-size:32px;margin:6px 0 10px;color:var(--text)}.live-launch-card p{color:var(--muted);line-height:1.58;font-size:16px;margin:0}.live-launch-icon{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;font-size:30px;border:2px solid var(--line);background:var(--py-panel-soft)}.live-launch-button{width:100%;min-height:48px;font-weight:900}.live-page-version{text-align:center;color:var(--muted);font-size:12px;margin:24px 0 0}
.live-modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(5,10,18,.68);backdrop-filter:blur(7px);display:grid;place-items:center;padding:22px}.live-modal-overlay[hidden]{display:none}.live-modal{width:min(520px,100%);background:var(--py-panel);border:2px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.38);padding:24px}.live-modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.live-modal-head h2{margin:5px 0 0;font-size:28px}.live-modal-close{width:40px;height:40px;border-radius:12px;padding:0}.live-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.modal-open{overflow:hidden}
.live-brand-link{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}.live-form-page{max-width:920px}.live-setup-card{padding:30px!important}.live-setup-heading{max-width:760px;margin-bottom:24px}.live-setup-heading h1{font-size:38px;margin:6px 0 10px}.live-setup-heading p{margin:0;color:var(--muted);font-size:16px;line-height:1.58}.live-field-grid{display:grid;gap:14px}.live-field-grid.two-up{grid-template-columns:1fr 1fr}.live-field-block{display:flex;flex-direction:column;gap:7px}.live-room-field input{text-transform:uppercase;letter-spacing:.16em;font-weight:900}.live-token-upload-card{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:16px;border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft)}.live-token-upload-copy{display:flex;flex-direction:column;gap:9px}.live-token-preview-wrap{width:118px;height:118px;position:relative;display:grid;place-items:center}.live-token-placeholder{position:absolute;inset:0;border-radius:50%;border:3px dashed var(--line);display:grid;place-items:center;font-size:34px;color:var(--muted)}.live-token-preview.show+.live-token-placeholder{display:none}.live-submit-wide{width:100%;min-height:48px;font-weight:900}
html[data-py-theme-preset] .live-launch-card,html[data-py-theme-preset] .live-setup-card,html[data-py-theme-preset] .live-modal{background-color:var(--py-panel)!important;background-image:var(--py-special-card-art)!important;background-position:right bottom!important;background-repeat:no-repeat!important}
@media(max-width:800px){.live-launch-grid,.live-field-grid.two-up{grid-template-columns:1fr}.live-launch-card{min-height:0}.live-token-upload-card{grid-template-columns:1fr}.live-token-preview-wrap{justify-self:start}.live-modal-actions{grid-template-columns:1fr}}
/* 0.1.10 join flow */
.join-step-card{max-width:620px;margin:0 auto;padding:18px;border:2px solid var(--line);border-radius:18px;background:var(--panel-2)}.join-room-row{display:grid;grid-template-columns:1fr auto;gap:8px}.join-room-row input{font-size:20px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.join-character-step{display:flex;flex-direction:column;gap:14px}.join-room-confirm{display:flex;align-items:center;gap:10px;padding:9px 12px;border:2px solid var(--line);border-radius:14px;background:var(--panel-2)}.join-room-confirm span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.join-room-confirm strong{font-size:16px;letter-spacing:.1em;color:var(--accent)}.join-room-confirm button{margin-left:auto;padding:5px 8px;font-size:10px}.join-advanced{border:2px solid var(--line);border-radius:14px;padding:10px 12px;background:var(--panel-2)}.join-advanced summary{cursor:pointer;font-weight:900}.join-options-grid{margin-top:12px}.join-check-label{display:flex!important;align-items:center;gap:8px}.join-check-label input{width:auto!important}.join-darkvision-fields{display:grid;grid-template-columns:1fr 110px;gap:7px;margin-top:8px}.join-darkvision-fields[hidden]{display:none!important}

/* v0.1.10 Player Token statistics at join */
.join-stats-card{padding:14px;border:2px solid var(--line);border-radius:14px;background:var(--panel-2);display:grid;gap:10px}.join-stats-card>div>strong{font-size:15px}.live-field-grid.three-up{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media(max-width:760px){.live-field-grid.three-up{grid-template-columns:1fr}}

/* v0.1.12 PyRoller profile import / manual VTT profile */
.join-profile-source-card{display:grid;gap:12px;padding:16px;border:2px solid var(--line);border-radius:16px;background:var(--py-panel-tint)}
.join-profile-source-actions{display:flex;gap:10px;flex-wrap:wrap}.join-profile-choice{display:flex;align-items:center;gap:8px;padding:10px 12px;border:2px solid var(--line);border-radius:12px;font-weight:900}.join-profile-choice input{width:auto}
.join-pyroller-import{display:grid;gap:7px;padding:12px;border:1px dashed var(--line);border-radius:12px}.join-pyroller-import[hidden]{display:none}
.join-vtt-profile-details{margin-top:0}.join-profile-grid{margin-top:12px}.join-manual-stat-table{display:grid;gap:6px;margin-top:14px}.join-manual-stat-head,.join-manual-stat-row{display:grid;grid-template-columns:minmax(74px,.7fr) repeat(3,minmax(80px,1fr));gap:8px;align-items:center}.join-manual-stat-head{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:950}.join-manual-stat-row input{min-width:0}.join-skill-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:10px}.join-skill-row{display:grid;grid-template-columns:minmax(130px,1fr) 80px;gap:8px;align-items:center}.join-skill-row label{font-weight:800}.join-profile-text-grid textarea{width:100%;box-sizing:border-box;resize:vertical}
@media(max-width:760px){.join-skill-inputs{grid-template-columns:1fr}.join-manual-stat-head,.join-manual-stat-row{grid-template-columns:62px repeat(3,minmax(62px,1fr))}}

.token-framing{display:grid;gap:10px;margin-top:12px}.token-framing[hidden]{display:none}.token-framing label{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:10px}.token-framing input{width:100%}#tokenPreview{border-radius:50%}

.live-build-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}.live-build-actions .live-launch-button{width:100%;margin:0}
