:root{--sp-bg:var(--eom-accent-blue);--sp-panel:var(--eom-header-bg);--sp-line:var(--eom-accent-cyan);--sp-accent:var(--eom-primary);--sp-ok:var(--eom-success);--sp-danger:var(--eom-danger)}
.sp-readiness{align-items:center;border:1px solid var(--eom-border-strong);border-radius:16px;display:flex;gap:18px;justify-content:space-between;margin-bottom:16px;padding:15px 18px}.sp-readiness.is-ready{background:var(--eom-success-bg);border-color:var(--eom-success-border)}.sp-readiness.is-blocked{background:var(--eom-warning-bg);border-color:var(--eom-warning-border)}.sp-readiness strong{display:block;font-size:1rem}.sp-readiness p{color:var(--eom-text-muted);margin:4px 0 0}.sp-workspace-grid{display:grid;gap:16px;grid-template-columns:minmax(310px,.72fr) minmax(0,1.28fr)}.sp-deck-list{min-width:0}.sp-deck-card{align-items:center;background:var(--eom-surface-1);border:1px solid var(--eom-border);border-radius:15px;color:inherit;display:flex;gap:16px;justify-content:space-between;margin-top:10px;padding:15px 17px;text-decoration:none;transition:.15s ease}.sp-deck-card:hover{border-color:var(--eom-info-border);box-shadow:0 8px 24px var(--eom-success-tint);transform:translateY(-1px)}.sp-deck-card h3{font-size:1.08rem;margin:7px 0 3px}.sp-deck-card p{color:var(--eom-text-muted);margin:0}.sp-deck-actions{align-items:center;background:var(--eom-surface-1);border:1px solid var(--eom-border);border-radius:16px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:13px}.sp-deck-actions form{align-items:center;display:flex;flex-wrap:wrap;gap:9px;margin:0}.sp-inline-duration{align-items:center;display:flex;gap:7px;margin:0}.sp-inline-duration input{max-width:110px}.sp-approved{align-items:center;background:var(--eom-success-bg);border:1px solid var(--eom-success-border);border-radius:14px;display:grid;gap:5px;padding:18px}.sp-approved strong{font-size:1.7rem}.sp-approved small{color:var(--eom-success-text)}.danger-zone{border-top:1px solid var(--eom-border);margin-top:24px;padding-top:16px}.sp-editor-shell{height:calc(100vh - 150px);margin:-4px auto 0;max-width:1600px}.sp-editor-toolbar{align-items:center;background:var(--eom-header-bg);border-radius:14px 14px 0 0;color:var(--eom-text-inverse);display:flex;justify-content:space-between;padding:10px 14px}.sp-editor-toolbar strong,.sp-editor-toolbar span{display:block}.sp-editor-toolbar span{color:var(--eom-border-strong);font-size:.8rem}.sp-onlyoffice-editor{background:var(--eom-surface-2);height:calc(100% - 62px);min-height:580px}.sp-preview-layout{align-items:stretch;display:grid;gap:12px;grid-template-columns:160px minmax(0,1fr);margin-bottom:16px;min-height:620px}.sp-preview-sidebar{background:var(--eom-header-bg);border-radius:16px;overflow:auto;padding:10px}.sp-thumbnails{display:grid;gap:9px}.sp-thumbnails button{background:var(--eom-accent-blue);border:2px solid transparent;border-radius:9px;color:var(--eom-text-inverse);cursor:pointer;padding:6px;position:relative}.sp-thumbnails button.active{border-color:var(--eom-accent-blue)}.sp-thumbnails canvas{display:block;height:auto;width:100%}.sp-thumbnails span{background:var(--eom-overlay-strong);border-radius:5px;bottom:8px;font-size:.72rem;padding:2px 6px;position:absolute;right:8px}.sp-preview-main{background:var(--eom-accent-blue);border-radius:16px;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;padding:12px}.sp-preview-stage{align-items:center;display:flex;justify-content:center;min-height:540px;overflow:hidden;position:relative}.sp-preview-stage canvas{box-shadow:0 14px 55px var(--eom-overlay);max-height:100%;max-width:100%}.sp-preview-overlay{align-items:center;background:linear-gradient(90deg,var(--eom-overlay-strong),var(--eom-overlay));bottom:24px;color:var(--eom-text-inverse);display:flex;gap:20px;justify-content:space-between;left:24px;padding:12px 16px;position:absolute;right:24px}.sp-preview-overlay span{font-size:1.2rem;font-weight:900}.sp-preview-overlay strong{font-size:1rem}.sp-preview-controls{align-items:center;color:var(--eom-text-inverse);display:flex;gap:14px;justify-content:center;padding-top:12px}.sp-cue-editor{display:grid;gap:8px;margin-bottom:14px}.sp-cue-editor article{align-items:center;background:var(--eom-surface-2);border:1px solid var(--eom-border);border-radius:11px;display:grid;gap:8px;grid-template-columns:38px minmax(180px,1.2fr) 130px 110px minmax(180px,1fr);padding:9px}.sp-cue-editor article>strong{align-items:center;background:var(--eom-accent-cyan);border-radius:50%;color:var(--eom-text-inverse);display:flex;height:30px;justify-content:center;width:30px}.sp-approval-card{align-items:center;background:var(--eom-success-bg);border-color:var(--eom-success-border);display:flex;gap:18px;justify-content:space-between}.sp-approval-card h2,.sp-approval-card p{margin:0}.sp-controller-heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:14px}.sp-controller-heading h1{margin:0}.sp-controller-grid{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) 360px}.sp-controller-preview{background:var(--eom-accent-blue);border-radius:18px;display:grid;gap:14px;grid-template-columns:1.25fr .75fr;padding:14px}.sp-controller-preview>div{min-width:0}.sp-controller-preview span{color:var(--eom-text-disabled);display:block;font-size:.75rem;font-weight:900;letter-spacing:.08em;margin-bottom:7px}.sp-controller-preview canvas{background:var(--eom-fixed-dark-bg);border:1px solid var(--eom-info-border);border-radius:9px;display:block;height:auto;max-width:100%;width:100%}.sp-controller-panel{background:var(--eom-surface-1);border:1px solid var(--eom-border);border-radius:18px;display:grid;gap:12px;padding:14px;position:sticky;top:90px}.sp-controller-time{background:var(--eom-header-bg);border-radius:14px;color:var(--eom-text-inverse);padding:15px;text-align:center}.sp-controller-time span,.sp-controller-time small{color:var(--eom-text-disabled);display:block}.sp-controller-time strong{display:block;font:900 3.2rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;margin:8px 0}.sp-controller-time strong.is-over{color:var(--eom-danger-text)}.sp-controller-cue{background:var(--eom-info-bg);border:1px solid var(--eom-info-border);border-radius:12px;padding:12px}.sp-controller-cue strong,.sp-controller-cue span{display:block}.sp-controller-cue span{color:var(--eom-primary-active);font-weight:800;margin-top:5px}.sp-go-controls,.sp-timer-controls,.sp-output-controls{display:grid;gap:8px}.sp-go-controls{grid-template-columns:1fr 1.6fr}.sp-go-controls button{min-height:62px}.sp-timer-controls{grid-template-columns:repeat(3,1fr)}.sp-output-controls{grid-template-columns:1fr 1fr}.sp-slide-jump{align-items:end;display:grid;gap:7px;grid-template-columns:1fr 90px}.sp-slide-jump label{grid-column:1/-1}.sp-slide-jump input{margin:0}.sp-stage-display,.sp-display-body{background:var(--eom-fixed-dark-bg);height:100%;margin:0;overflow:hidden;width:100%}.sp-stage-display{align-items:center;display:flex;justify-content:center;position:relative}.sp-stage-display canvas{display:block;max-height:100%;max-width:100%}.sp-stage-blackout{background:var(--eom-fixed-dark-bg);inset:0;position:absolute;z-index:20}.sp-stage-overlay{align-items:center;background:linear-gradient(90deg,var(--eom-overlay-strong),var(--eom-overlay));bottom:3.2vh;color:var(--eom-text-inverse);display:flex;gap:3vw;justify-content:space-between;left:3vw;min-height:8vh;padding:1.4vh 1.8vw;position:absolute;right:3vw;z-index:10}.sp-stage-time span,.sp-stage-progress span{color:var(--eom-text-muted);display:block;font:800 clamp(12px,1.2vw,22px)/1.2 system-ui,sans-serif;letter-spacing:.08em}.sp-stage-time strong{display:block;font:950 clamp(38px,6.2vw,110px)/.9 ui-monospace,SFMono-Regular,Consolas,monospace;margin-top:.4vh}.sp-stage-time strong.is-over{color:var(--eom-accent-red)}.sp-stage-progress{text-align:right}.sp-stage-progress strong{display:block;font:900 clamp(18px,2.2vw,42px)/1.2 system-ui,sans-serif;margin-top:.5vh;max-width:58vw}.sp-stage-message{align-items:center;background:var(--eom-primary-active);border-radius:1.2vw;color:var(--eom-text-inverse);display:flex;font:950 clamp(24px,4vw,76px)/1.18 system-ui,sans-serif;inset:18% 7% auto;justify-content:center;min-height:24%;padding:3vh 4vw;position:absolute;text-align:center;z-index:15}.sp-stage-message.level-warn{background:var(--eom-warning-text)}.sp-stage-message.level-danger{background:var(--eom-danger)}.sp-stage-message.level-go{background:var(--eom-success)}.sp-fullscreen-button{background:var(--eom-overlay);border:1px solid var(--eom-on-dark-border);bottom:12px;color:var(--eom-text-inverse);opacity:.25;position:absolute;right:12px;z-index:30}.sp-fullscreen-button:hover{opacity:1}.sp-connection-state{background:var(--eom-overlay-strong);border-radius:999px;color:var(--eom-danger-text);font:700 12px system-ui,sans-serif;left:12px;padding:5px 9px;position:absolute;top:12px;z-index:30}.sp-connection-state.ok{color:var(--eom-success-text)}
@media(max-width:900px){.sp-workspace-grid,.sp-controller-grid{grid-template-columns:1fr}.sp-controller-panel{position:static}.sp-preview-layout{grid-template-columns:1fr}.sp-preview-sidebar{max-height:170px}.sp-thumbnails{display:flex;overflow:auto}.sp-thumbnails button{flex:0 0 130px}.sp-cue-editor article{grid-template-columns:36px 1fr 110px}.sp-cue-editor article input:last-child{grid-column:2/-1}.sp-approval-card{align-items:stretch;display:grid}.sp-controller-preview{grid-template-columns:1fr}.sp-preview-stage{min-height:430px}.sp-editor-shell{height:calc(100vh - 120px)}}
@media(max-width:620px){.sp-readiness,.sp-controller-heading{align-items:stretch;display:grid}.sp-deck-actions{align-items:stretch;display:grid}.sp-deck-actions form{display:grid}.sp-cue-editor article{grid-template-columns:34px 1fr}.sp-cue-editor article>*:not(strong){grid-column:2}.sp-preview-stage{min-height:320px}.sp-controller-time strong{font-size:2.6rem}}


#spControlLink{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:900;letter-spacing:.04em;background:var(--eom-info-bg);color:var(--eom-info-text)}
#spControlLink.is-online{background:var(--eom-success-bg);color:var(--eom-success-text);box-shadow:inset 0 0 0 1px var(--eom-accent-green)}
#spControlLink.is-offline{background:var(--eom-warning-bg);color:var(--eom-danger-text);box-shadow:inset 0 0 0 1px var(--eom-accent-orange)}
.sp-license-note{border-left:4px solid var(--eom-warning);background:var(--eom-warning-bg);padding:12px 14px;border-radius:10px;color:var(--eom-warning-text)}

/* v18.17.3 EOM native prompt editor / lyric workflow */
.lp-public-editor{border:1px solid var(--eom-info-border);border-radius:15px;margin-top:16px;overflow:hidden;background:var(--eom-info-bg)}
.lp-public-editor>summary{align-items:center;cursor:pointer;display:flex;gap:12px;justify-content:space-between;list-style:none;padding:14px 16px}
.lp-public-editor>summary::-webkit-details-marker{display:none}.lp-public-editor>summary span:first-child{display:grid;gap:3px}.lp-public-editor>summary small{color:var(--eom-text-muted);font-weight:500}
.lp-public-editor-body{border-top:1px solid var(--eom-info-border);padding:16px}.lp-editor-columns{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr)}
.lp-stage-preview{aspect-ratio:16/9;background:var(--eom-accent-blue);border:8px solid var(--eom-header-bg);border-radius:16px;box-shadow:0 12px 32px var(--eom-success-tint);color:var(--eom-text-inverse);display:flex;flex-direction:column;justify-content:center;min-height:260px;overflow:hidden;padding:7%;position:relative;text-align:center}
.lp-stage-preview-large{min-height:520px}.lp-stage-section{color:var(--eom-info-text);font-size:clamp(.9rem,1.6vw,1.35rem);font-weight:900;letter-spacing:.08em;margin-bottom:3%}.lp-stage-lines{display:flex;flex-direction:column;font-size:clamp(1.45rem,3vw,3.2rem);font-weight:850;gap:.28em;line-height:1.3}.lp-stage-page{bottom:3%;color:var(--eom-text-disabled);font-size:.78rem;position:absolute;right:3%}
.lp-entry-summary{align-items:center;background:var(--eom-info-bg);border:1px solid var(--eom-info-border);border-radius:13px;display:flex;gap:12px;justify-content:space-between;margin:14px 0;padding:12px}.lp-entry-summary>div{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lp-entry-summary small{color:var(--eom-text-muted)}
.lp-review-layout{display:grid;gap:16px;grid-template-columns:260px minmax(0,1fr);margin-bottom:18px}.lp-review-thumbs{display:grid;gap:8px;max-height:70vh;overflow:auto}.lp-review-thumbs button{background:var(--eom-surface-1);border:1px solid var(--eom-info-border);border-radius:12px;color:var(--eom-info-text);display:grid;gap:4px;padding:10px;text-align:left}.lp-review-thumbs button.active{border-color:var(--eom-info-border);box-shadow:0 0 0 3px var(--eom-primary-tint-18)}.lp-review-thumbs span{color:var(--eom-text-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-source-text{background:var(--eom-surface-2);border:1px solid var(--eom-border);border-radius:12px;line-height:1.8;max-height:560px;overflow:auto;padding:16px;white-space:pre-wrap}
.sp-native-page{--sp-bg:var(--eom-accent-blue);--sp-fg:var(--eom-surface-1);--sp-accent:var(--eom-accent-cyan);--sp-font:64px;align-items:center;aspect-ratio:16/9;background:var(--sp-bg);color:var(--sp-fg);display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:6%;position:relative;text-align:center;width:100%}.sp-native-page[data-vertical="top"]{justify-content:flex-start}.sp-native-page[data-vertical="bottom"]{justify-content:flex-end}.sp-native-title{color:var(--sp-accent);font-size:clamp(16px,2.2vw,34px);font-weight:900;letter-spacing:.06em;margin-bottom:3%;max-width:100%;overflow-wrap:anywhere}.sp-native-body{display:flex;flex-direction:column;font-size:var(--sp-font);font-weight:850;gap:.18em;line-height:1.25;max-width:100%;overflow-wrap:anywhere}.sp-native-body span{display:block}.sp-native-page-large{min-height:540px;border-radius:18px;box-shadow:0 18px 42px var(--eom-success-tint)}
.sp-native-editor{display:grid;gap:14px;grid-template-columns:230px minmax(0,1fr) 300px}.sp-native-editor>aside,.sp-native-editor>section{background:var(--eom-surface-1);border:1px solid var(--eom-info-border);border-radius:16px;padding:14px}.sp-native-page-list{display:grid;gap:7px;max-height:70vh;overflow:auto}.sp-native-page-list button{background:var(--eom-surface-1);border:1px solid var(--eom-border);border-radius:10px;color:var(--eom-info-text);display:grid;gap:3px;padding:9px;text-align:left}.sp-native-page-list button.active{background:var(--eom-info-bg);border-color:var(--eom-info-border)}.sp-native-page-list span{color:var(--eom-text-muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-native-properties{align-content:start;display:grid;gap:8px}.sp-native-properties label{margin-top:4px}.sp-native-properties .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.sp-native-preview-layout{display:grid;gap:16px;grid-template-columns:240px minmax(0,1fr);margin-bottom:18px}.sp-preview-overlay{align-items:center;background:var(--eom-overlay-strong);bottom:0;color:var(--eom-text-inverse);display:flex;font-size:.88rem;gap:18px;justify-content:space-between;left:0;padding:12px 16px;position:absolute;right:0}.sp-controller-native{border-radius:10px;min-height:210px}.sp-stage-display .sp-native-page{height:100vh;width:100vw}.sp-display-body{background:var(--eom-fixed-dark-bg);margin:0;overflow:hidden}.sp-stage-display{height:100vh;position:relative;width:100vw}.sp-stage-display>.sp-native-page{position:absolute;inset:0}.sp-workspace-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr)}
@media(max-width:980px){.lp-editor-columns,.lp-review-layout,.sp-native-editor,.sp-native-preview-layout,.sp-workspace-grid{grid-template-columns:1fr}.sp-native-editor>aside:first-child{order:2}.sp-native-editor>section{order:1}.sp-native-editor>.sp-native-properties{order:3}.lp-stage-preview-large,.sp-native-page-large{min-height:360px}.sp-native-body{font-size:clamp(28px,7vw,58px)}}
@media(max-width:640px){.lp-public-editor-body{padding:12px}.lp-stage-preview{min-height:210px}.lp-stage-lines{font-size:clamp(1.15rem,6vw,2rem)}.sp-native-page{padding:5%}.sp-native-body{font-size:clamp(25px,8vw,48px)}}

/* v18.17.3 — EOM native lyric prompt */
.sp-native-stage{align-items:stretch;display:flex;height:100%;justify-content:stretch;width:100%}
.sp-native-page{--sp-bg:var(--eom-accent-blue);--sp-fg:var(--eom-surface-1);--sp-accent:var(--eom-accent-cyan);align-items:center;aspect-ratio:16/9;background:var(--sp-bg);box-sizing:border-box;color:var(--sp-fg);display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:5.5%;position:relative;text-align:center;width:100%}
.sp-native-heading{color:var(--sp-accent);font-size:clamp(17px,2.2vw,36px);font-weight:900;letter-spacing:.05em;line-height:1.25;margin-bottom:3%;max-width:100%;overflow-wrap:anywhere}
.sp-native-lines{display:flex;flex-direction:column;font-size:clamp(30px,4.7vw,82px);font-weight:850;gap:.16em;line-height:1.22;max-width:100%;overflow-wrap:anywhere}
.sp-native-lines>div{max-width:100%}
.sp-native-page.is-compact{border-radius:10px;min-height:0;padding:5%}
.sp-native-page.is-compact .sp-native-heading{font-size:clamp(12px,1.4vw,22px);margin-bottom:2%}
.sp-native-page.is-compact .sp-native-lines{font-size:clamp(16px,2.5vw,38px)}
.sp-native-page-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.sp-native-page-grid>article{background:var(--eom-accent-blue);border-radius:14px;box-shadow:0 8px 24px var(--eom-success-tint);overflow:hidden;padding:8px}
.sp-flow{display:grid;gap:12px;list-style:none;margin:0;padding:0}.sp-flow li{align-items:start;background:var(--eom-info-bg);border:1px solid var(--eom-info-border);border-radius:13px;display:grid;gap:3px;padding:13px}.sp-flow span{color:var(--eom-text-muted);font-size:.84rem}
.sp-summary-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.sp-summary-grid article{background:var(--eom-surface-1);border:1px solid var(--eom-info-border);border-radius:15px;padding:15px}.sp-summary-grid strong{display:block;font-size:1.8rem}.sp-summary-grid span{color:var(--eom-text-muted);font-size:.84rem}
.sp-admin-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);margin-bottom:16px}.sp-event-switch{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(250px,1fr) auto}.sp-deck-list{display:grid;gap:10px}.sp-deck-list>a{align-items:center;background:var(--eom-surface-1);border:1px solid var(--eom-info-border);border-radius:15px;color:inherit;display:flex;gap:14px;justify-content:space-between;padding:15px;text-decoration:none}.sp-deck-list h3{margin:7px 0 4px}.sp-deck-list p,.sp-deck-list small{color:var(--eom-text-muted);margin:0}
.sp-review-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}.sp-review-grid>aside{display:grid;gap:16px}.sp-cue-editor{display:grid;gap:8px}.sp-cue-editor article{align-items:center;background:var(--eom-surface-2);border:1px solid var(--eom-border);border-radius:11px;display:grid;gap:8px;grid-template-columns:38px minmax(170px,1fr) 120px minmax(160px,1fr);padding:9px}.sp-cue-editor article>strong{align-items:center;background:var(--eom-accent-cyan);border-radius:50%;color:var(--eom-text-inverse);display:flex;height:30px;justify-content:center;width:30px}
@media(max-width:900px){.sp-native-page-grid,.sp-summary-grid{grid-template-columns:1fr}.sp-admin-grid,.sp-review-grid,.sp-event-switch{grid-template-columns:1fr}.sp-cue-editor article{grid-template-columns:34px 1fr}.sp-cue-editor article input{grid-column:2}.sp-native-lines{font-size:clamp(26px,7vw,58px)}}

/* v18.17.5 — stage display synchronization and readable live layout */
.sp-stage-message[hidden],.sp-stage-overlay[hidden],.sp-stage-blackout[hidden]{display:none!important}
.sp-control-frame{align-items:stretch;aspect-ratio:16/9;background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:12px;display:flex;justify-content:stretch;overflow:hidden;position:relative;width:100%}
.sp-control-frame>.sp-native-page{aspect-ratio:auto;height:100%;min-height:0;width:100%}
.sp-control-frame .sp-native-heading{font-size:clamp(10px,1.05vw,18px);margin-bottom:2%}
.sp-control-frame .sp-native-lines{font-size:clamp(14px,1.9vw,29px);line-height:1.18}
.sp-control-frame .sp-native-page.sp-density-compact .sp-native-lines{font-size:clamp(13px,1.7vw,26px)}
.sp-control-frame .sp-native-page.sp-density-tight .sp-native-lines{font-size:clamp(12px,1.5vw,23px)}
.sp-control-frame .sp-native-page.sp-density-dense .sp-native-lines{font-size:clamp(10px,1.25vw,19px);gap:.08em}
.sp-control-end{align-items:center;color:var(--eom-text-muted);display:flex;font:900 clamp(24px,4vw,58px)/1 system-ui,sans-serif;height:100%;justify-content:center;letter-spacing:.12em;width:100%}
.sp-controller-preview>div>span{align-items:center;display:flex;justify-content:space-between}.sp-controller-preview>div>span b{color:var(--eom-info-text);font-size:.72rem;letter-spacing:0}
.sp-link-status{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}.sp-link-status small{border-radius:999px;padding:4px 9px}
#spDisplayLink{background:var(--eom-info-bg);color:var(--eom-text-muted)}#spDisplayLink.is-connected{background:var(--eom-success-bg);color:var(--eom-success-text);box-shadow:inset 0 0 0 1px var(--eom-accent-green)}
.sp-stage-page-counter{background:var(--eom-overlay);border-radius:999px;color:var(--eom-border-strong);font:800 clamp(11px,1vw,18px)/1 system-ui,sans-serif;padding:.55em .8em;position:absolute;right:2vw;top:2vh;z-index:12}
.sp-stage-display .sp-native-page{padding:5vh 6vw 8vh}
.sp-overlay-visible .sp-stage-display .sp-native-page{padding-bottom:17vh}
.sp-stage-display .sp-native-page.sp-density-compact .sp-native-lines{font-size:clamp(27px,4vw,70px)}
.sp-stage-display .sp-native-page.sp-density-tight .sp-native-lines{font-size:clamp(24px,3.5vw,61px)}
.sp-stage-display .sp-native-page.sp-density-dense .sp-native-lines{font-size:clamp(21px,3vw,52px);gap:.09em}
.sp-stage-overlay{bottom:2vh;gap:2vw;left:2vw;min-height:0;padding:1vh 1.25vw;right:2vw}
.sp-stage-time strong{font-size:clamp(32px,4.4vw,76px);margin-top:.15vh}
.sp-stage-progress strong{font-size:clamp(17px,1.7vw,30px);max-width:62vw}
.sp-stage-message{inset:16% 8% auto;min-height:18%;padding:2.2vh 3vw}
.sp-stage-message:empty{display:none!important}
.sp-native-stage{min-height:0;overflow:hidden}
@media(max-width:1100px){.sp-controller-grid{grid-template-columns:minmax(0,1fr) 330px}.sp-controller-preview{grid-template-columns:1fr 1fr}.sp-control-frame .sp-native-lines{font-size:clamp(12px,2.1vw,24px)}}
@media(max-width:900px){.sp-controller-grid{grid-template-columns:1fr}.sp-controller-preview{grid-template-columns:1fr 1fr}.sp-control-frame .sp-native-lines{font-size:clamp(14px,3vw,28px)}}
@media(max-width:640px){.sp-controller-preview{grid-template-columns:1fr}.sp-control-frame .sp-native-lines{font-size:clamp(13px,5vw,26px)}}

/* v18.17.5 final — native lyric editing, low-light console, transient instructions */
.sp-native-page{align-items:stretch;text-align:left;padding:5vh 7vw 8vh}
.sp-native-heading{margin-left:0;margin-right:0;text-align:left;width:100%}
.sp-native-lines{align-items:stretch;display:flex;margin:0 auto;max-width:100%;width:100%}
.sp-native-line{box-sizing:border-box;min-width:0;overflow-wrap:anywhere;white-space:normal;width:100%}
.sp-native-line span{display:inline!important}
.sp-native-page.is-compact{align-items:stretch;text-align:left}
.sp-native-page.is-compact .sp-native-lines{width:100%}

.sp-rich-workbench{display:grid;gap:12px;margin-top:10px}
.sp-rich-preview{background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:16px;min-height:130px;padding:10px}
.sp-rich-preview:empty{align-items:center;color:var(--eom-text-muted);display:flex;justify-content:center}.sp-rich-preview:empty::before{content:'歌詞を入力すると、ここへ本番表示が出ます。'}
.sp-rich-preview-head{align-items:center;color:var(--eom-info-text);display:flex;gap:10px;justify-content:space-between;margin:0 2px 9px}.sp-rich-preview-head span{color:var(--eom-text-disabled);font-size:.78rem}
.sp-rich-toolbar{align-items:center;background:var(--eom-header-bg);border:1px solid var(--eom-info-border);border-radius:13px;display:flex;flex-wrap:wrap;gap:6px;padding:9px}.sp-rich-toolbar>span{color:var(--eom-border-strong);font-size:.75rem;font-weight:850;margin-right:2px}.sp-rich-toolbar button{background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:8px;color:var(--eom-text-inverse);font-size:.72rem;min-height:34px;padding:6px 9px}.sp-rich-toolbar button[data-sp-color]::before{background:var(--swatch);border:1px solid var(--eom-surface-translucent);border-radius:50%;content:'';display:inline-block;height:10px;margin-right:5px;vertical-align:-1px;width:10px}.sp-rich-toolbar button:hover{background:var(--eom-accent-blue)}.sp-rich-custom-color{align-items:center;color:var(--eom-info-text);display:inline-flex;font-size:.72rem;gap:5px;margin:0}.sp-rich-custom-color input{height:34px;margin:0;padding:2px;width:42px}
.sp-rich-surface{background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:14px;color:var(--eom-text-inverse);font:800 1.05rem/1.65 system-ui,sans-serif;min-height:280px;outline:none;padding:18px;white-space:pre-wrap}.sp-rich-surface:focus{border-color:var(--eom-info-border);box-shadow:0 0 0 3px var(--eom-primary-tint-18)}.sp-rich-surface>div{min-height:1.65em}.sp-rich-page-break{border-top:1px dashed var(--eom-info-border);color:var(--eom-info-text);font-size:.78rem;font-weight:700;margin:12px 0 8px;padding-top:7px;text-align:center!important}
.sp-live-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-live-preview-grid .sp-native-lines{font-size:clamp(13px,1.7vw,27px)}

body.sp-console-dark{background:var(--eom-accent-cyan)!important;color:var(--eom-info-text)}body.sp-console-dark main{background:var(--eom-accent-cyan)!important;max-width:none!important;padding:14px 18px 28px}body.sp-console-dark .nx-page-locator,body.sp-console-dark .nx-event-shell,body.sp-console-dark .nx-context-flow{display:none!important}
body.sp-console-dark .sp-controller-heading{background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:16px;margin:0 0 12px;padding:14px 16px}body.sp-console-dark .sp-controller-heading h1{color:var(--eom-info-text)}body.sp-console-dark .sp-controller-heading p{color:var(--eom-info-text)}body.sp-console-dark .sp-controller-head-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
body.sp-console-dark .sp-controller-panel{background:var(--eom-accent-blue);border-color:var(--eom-info-border);box-shadow:0 18px 50px var(--eom-overlay)}body.sp-console-dark .sp-controller-cue{background:var(--eom-accent-cyan);border-color:var(--eom-info-border)}body.sp-console-dark .sp-controller-cue strong{color:var(--eom-info-text)}body.sp-console-dark .sp-controller-cue span{color:var(--eom-info-text)}body.sp-console-dark label{color:var(--eom-border-strong)}body.sp-console-dark textarea,body.sp-console-dark input,body.sp-console-dark select{background:var(--eom-accent-blue);border-color:var(--eom-info-border);color:var(--eom-info-text)}body.sp-console-dark button.secondary,body.sp-console-dark .btn.secondary{background:var(--eom-accent-cyan);border-color:var(--eom-info-border);color:var(--eom-info-text)!important}body.sp-console-dark .sp-controller-preview{box-shadow:inset 0 0 0 1px var(--eom-accent-cyan)}body.sp-console-dark .sp-control-frame{filter:brightness(.58)}
.sp-friendly-status,.sp-transport-warning{border-radius:999px;font-size:.74rem;font-weight:850;padding:6px 9px}.sp-friendly-status{background:var(--eom-accent-orange);color:var(--eom-warning-text)}.sp-friendly-status.is-connected{background:var(--eom-accent-green);color:var(--eom-success-text)}.sp-transport-warning{background:var(--eom-accent-orange);color:var(--eom-warning-text)}.sp-transport-warning[hidden]{display:none!important}
.sp-message-control{border-top:1px solid var(--eom-info-border);display:grid;gap:7px;padding-top:10px}.sp-message-control>div{display:grid;gap:7px;grid-template-columns:1fr 1fr auto auto}.sp-message-control textarea{margin:0}.sp-message-control button[aria-busy="true"]{cursor:wait;opacity:.6}
.sp-connection-state[hidden]{display:none!important}.sp-connection-state{bottom:12px;left:12px;top:auto}
.sp-stage-display .sp-native-stage[hidden]{display:none!important}.sp-stage-blackout{background:var(--eom-fixed-dark-bg);inset:0;position:absolute;z-index:50}.sp-stage-overlay,.sp-stage-message,.sp-stage-page-counter{z-index:20}.sp-fullscreen-button{opacity:.08;z-index:60}.sp-fullscreen-button:hover{opacity:.8}
.sp-stage-message{box-shadow:0 0 0 9999px var(--eom-shadow-color)}
.sp-stage-message.level-info{background:var(--eom-accent-cyan)}.sp-stage-message.level-warn{background:var(--eom-accent-orange)}.sp-stage-message.level-danger{background:var(--eom-accent-red)}.sp-stage-message.level-go{background:var(--eom-accent-green)}
.sp-latest-source{border-left:4px solid var(--eom-success)}.sp-latest-source>p strong{font-size:1.4rem}
.pb-approved-prompts .sp-rich-preview,.pb-lyrics-editor .sp-rich-preview{margin-bottom:2px}

@media(max-width:900px){.sp-live-preview-grid{grid-template-columns:1fr}.sp-message-control>div{grid-template-columns:1fr 1fr}.sp-message-control button{min-height:44px}body.sp-console-dark main{padding:10px}}
@media(max-width:620px){.sp-rich-toolbar button{font-size:.68rem;padding:6px}.sp-rich-surface{min-height:230px;padding:13px}.sp-message-control>div{grid-template-columns:1fr}.sp-controller-head-actions{justify-content:flex-start!important}}

/* v18.17.5 final: transient stage instruction banner; do not cover the lyrics. */
.sp-stage-message{top:4vh!important;bottom:auto!important;left:5vw!important;right:5vw!important;inset:auto 5vw auto!important;min-height:0!important;max-height:18vh;overflow:hidden;padding:1.35vh 2.2vw!important;border-radius:1vw!important;font-size:clamp(22px,3.15vw,60px)!important;line-height:1.12!important;box-shadow:0 8px 32px var(--eom-overlay)!important}
.sp-stage-message[hidden],.sp-stage-message:empty{display:none!important}


/* v18.17.13 — stable embedded preview, immutable used-prompt library, mobile remote */
.sp-rich-preview .sp-native-page,.sp-library-preview-grid .sp-native-page{padding:5% 6% 7%!important;min-width:0}
.sp-rich-preview .sp-native-heading,.sp-library-preview-grid .sp-native-heading{font-size:clamp(10px,1.25vw,18px);margin-bottom:3%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-rich-preview .sp-native-lines,.sp-library-preview-grid .sp-native-lines{font-size:clamp(12px,1.45vw,24px);gap:.12em;line-height:1.18;min-width:0}
.sp-rich-preview .sp-native-page-grid>article,.sp-library-preview-grid>article{min-width:0;position:relative}
.sp-preview-overflow-warning{background:var(--eom-accent-red);border-radius:999px;bottom:12px;color:var(--eom-text-inverse);font-size:.68rem;font-weight:900;padding:4px 8px;position:absolute;right:12px;z-index:3}.sp-preview-overflow-warning[hidden]{display:none!important}
.sp-native-page-grid>article.has-overflow{box-shadow:0 0 0 2px var(--eom-warning) inset,0 8px 24px var(--eom-success-tint)}
.sp-duration-input{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.sp-duration-input label{align-items:center;display:flex;gap:5px;margin:0}.sp-duration-input input{margin:0;max-width:105px}.sp-duration-input.is-cue{flex-wrap:nowrap}.sp-duration-input.is-cue input{max-width:78px}
.sp-library-page{max-width:1500px}.sp-library-search>div{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.sp-library-list{display:grid;gap:16px}.sp-library-record{display:grid;gap:14px}.sp-library-record-head{align-items:start;display:flex;gap:20px;justify-content:space-between}.sp-library-record-head h2{margin:7px 0 4px}.sp-library-record-head p{color:var(--eom-text-muted);margin:0}.sp-library-record-head dl{display:flex;flex-wrap:wrap;gap:14px;margin:0}.sp-library-record-head dl div{background:var(--eom-surface-2);border-radius:10px;min-width:100px;padding:8px 10px}.sp-library-record-head dt{color:var(--eom-text-muted);font-size:.7rem}.sp-library-record-head dd{font-weight:850;margin:3px 0 0}.sp-library-record details{border:1px solid var(--eom-border);border-radius:12px;padding:10px}.sp-library-record summary{cursor:pointer;font-weight:850}.sp-library-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.sp-library-clone{align-items:end;border-top:1px solid var(--eom-info-border);display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;padding-top:14px}.sp-library-clone label{margin:0}
.sp-remote-body{background:var(--eom-accent-blue);color:var(--eom-info-text);margin:0;min-height:100dvh;overscroll-behavior:none}.sp-remote-body *{box-sizing:border-box}.sp-remote-topbar{align-items:center;background:var(--eom-accent-blue);border-bottom:1px solid var(--eom-info-border);display:flex;gap:16px;justify-content:space-between;padding:10px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));position:sticky;top:0;z-index:40}.sp-remote-topbar p{color:var(--eom-info-text);font-size:.74rem;margin:0}.sp-remote-topbar h1{color:var(--eom-info-text);font-size:clamp(1rem,2vw,1.35rem);margin:2px 0 0}.sp-remote-top-actions{align-items:center;display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.sp-remote-link,.sp-remote-body button{align-items:center;background:var(--eom-accent-cyan);border:1px solid var(--eom-info-border);border-radius:10px;color:var(--eom-info-text);cursor:pointer;display:inline-flex;font:800 .82rem/1 system-ui,sans-serif;justify-content:center;min-height:38px;padding:9px 12px;text-decoration:none}.sp-remote-link.secondary,.sp-remote-body button.secondary{background:var(--eom-accent-cyan);border-color:var(--eom-info-border)}.sp-remote-body button.ok{background:var(--eom-accent-green);border-color:var(--eom-success-border)}.sp-remote-body button.danger{background:var(--eom-accent-red);border-color:var(--eom-danger-border)}.sp-remote-body button:disabled{cursor:not-allowed;opacity:.45}.sp-remote-shell{display:grid;gap:14px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);margin:0 auto;max-width:1800px;padding:14px}.sp-remote-preview{align-content:start;background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:16px;display:grid;gap:12px;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);padding:12px;touch-action:pan-y}.sp-remote-preview article{min-width:0}.sp-remote-preview-label{align-items:center;color:var(--eom-info-text);display:flex;font-size:.72rem;font-weight:900;justify-content:space-between;letter-spacing:.08em;margin-bottom:7px}.sp-remote-preview-label b{color:var(--eom-info-text);letter-spacing:0}.sp-remote-preview .sp-control-frame{background:var(--eom-fixed-dark-bg);border-color:var(--eom-info-border);box-shadow:0 12px 38px var(--eom-overlay)}.sp-remote-preview .sp-native-page{padding:5% 6% 7%!important}.sp-remote-preview .sp-native-lines{font-size:clamp(12px,1.7vw,28px)}.sp-remote-panel{align-content:start;background:var(--eom-accent-blue);border:1px solid var(--eom-info-border);border-radius:16px;display:grid;gap:10px;padding:12px}.sp-remote-timer{background:var(--eom-accent-cyan);border:1px solid var(--eom-info-border);border-radius:14px;display:grid;gap:5px;padding:13px;text-align:center}.sp-remote-timer>span{color:var(--eom-info-text);font-size:.76rem;font-weight:800}.sp-remote-timer>strong{font:950 clamp(2.5rem,5vw,4.6rem)/1 ui-monospace,SFMono-Regular,Consolas,monospace}.sp-remote-timer>strong.is-over{color:var(--eom-danger-text)}.sp-remote-timer small{color:var(--eom-info-text);font-weight:800}.sp-remote-timer b{color:var(--eom-info-text);font-size:.78rem}.sp-remote-transport{display:grid;gap:9px;grid-template-columns:.8fr 1.6fr}.sp-remote-transport button{min-height:72px;font-size:1.05rem}.sp-remote-transport .sp-remote-go{font-size:1.25rem}.sp-remote-secondary-controls{display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}.sp-remote-details{background:var(--eom-accent-cyan);border:1px solid var(--eom-info-border);border-radius:12px;padding:10px}.sp-remote-details summary{cursor:pointer;font-weight:850}.sp-remote-details[open] summary{margin-bottom:10px}.sp-remote-body input,.sp-remote-body textarea,.sp-remote-body select{background:var(--eom-accent-cyan);border:1px solid var(--eom-info-border);border-radius:9px;color:var(--eom-info-text);margin:0;padding:9px;width:100%}.sp-remote-body .sp-slide-jump{grid-template-columns:minmax(0,1fr) 90px}.sp-remote-qr{align-items:center;display:grid;gap:14px;grid-template-columns:190px minmax(0,1fr)}.sp-remote-qr #spRemoteQr{background:var(--eom-surface-1);border-radius:10px;padding:5px;width:max-content}.sp-remote-qr p{margin:0 0 7px}.sp-remote-end{width:100%}
@media(max-width:1050px){.sp-remote-shell{grid-template-columns:1fr}.sp-remote-panel{position:static}.sp-library-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.sp-rich-preview .sp-native-page-grid,.sp-library-preview-grid{grid-template-columns:1fr}.sp-library-record-head{display:grid}.sp-library-clone{grid-template-columns:1fr}.sp-library-search>div{grid-template-columns:1fr}.sp-remote-topbar{align-items:flex-start;display:grid}.sp-remote-top-actions{justify-content:flex-start}.sp-remote-top-actions .sp-remote-link.secondary{display:none}.sp-remote-shell{padding:8px 8px calc(112px + env(safe-area-inset-bottom))}.sp-remote-preview{grid-template-columns:1fr}.sp-remote-preview article:nth-child(2) .sp-control-frame{max-height:34vw}.sp-remote-panel{display:contents}.sp-remote-timer,.sp-remote-details,.sp-remote-secondary-controls,.sp-remote-end{margin:0}.sp-remote-transport{background:var(--eom-overlay-strong);bottom:0;left:0;padding:9px max(9px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));position:fixed;right:0;z-index:50}.sp-remote-transport button{min-height:76px}.sp-remote-secondary-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-remote-qr{grid-template-columns:1fr}.sp-remote-qr #spRemoteQr{margin:auto}.sp-duration-input.is-cue{flex-wrap:wrap}}


/* v18.17.14 — cross-device display heartbeat and non-overlapping stage instruction */
.sp-stage-display{--sp-instruction-height:clamp(64px,11vh,132px)}
.sp-stage-message{align-items:center!important;border-radius:0!important;bottom:auto!important;box-shadow:0 8px 28px var(--eom-overlay)!important;display:flex;height:var(--sp-instruction-height)!important;inset:0 0 auto!important;justify-content:center;left:0!important;max-height:var(--sp-instruction-height)!important;min-height:var(--sp-instruction-height)!important;overflow:hidden;padding:1.1vh 3vw!important;position:absolute!important;right:0!important;text-align:center;top:0!important;width:100%!important;z-index:45!important}
.sp-stage-display.has-stage-message .sp-native-stage{height:calc(100vh - var(--sp-instruction-height));margin-top:var(--sp-instruction-height)}
.sp-stage-display.has-stage-message .sp-native-page{height:calc(100vh - var(--sp-instruction-height))}
.sp-stage-display.has-stage-message .sp-stage-overlay{bottom:1.6vh}
.sp-friendly-status{border:1px solid var(--eom-danger-border);border-radius:999px;color:var(--eom-danger-text);font-size:.74rem;font-weight:900;padding:7px 10px;white-space:nowrap}.sp-friendly-status.is-connected{border-color:var(--eom-success-border);color:var(--eom-success-text)}
@media(max-width:720px){.sp-stage-display{--sp-instruction-height:clamp(58px,10vh,100px)}.sp-stage-message{font-size:clamp(18px,5.5vw,32px)!important;padding:.8vh 4vw!important}}


/* v18.17.16 — same-network-only prompt remote + audit compatibility fix */
.sp-remote-gate-notice{background:var(--eom-accent-red);border-bottom:1px solid var(--eom-danger-border);color:var(--eom-danger-text);font-size:.84rem;font-weight:900;padding:9px 14px;position:sticky;text-align:center;top:0;z-index:39}
.sp-remote-gate-notice[hidden]{display:none!important}
.sp-remote-body button:disabled{filter:saturate(.35);opacity:.36}
@media(max-width:720px){.sp-remote-gate-notice{top:0}.sp-remote-topbar{position:relative}}

/* v18.17.18 — reliable display presence, desktop controller and Wi-Fi remote separation */
.sp-remote-gate-notice{align-items:center;display:flex;gap:12px;justify-content:center;position:relative!important;top:auto!important;z-index:35}
.sp-remote-gate-notice>span:first-child{min-width:0}
.sp-remote-gate-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:7px}
.sp-remote-gate-actions a,.sp-remote-gate-actions button{background:var(--eom-danger-bg);border:1px solid var(--eom-danger-border);border-radius:8px;color:var(--eom-danger-text);font-size:.76rem;font-weight:900;min-height:32px;padding:6px 9px;text-decoration:none}
.sp-connection-diagnostic{background:var(--eom-accent-blue);border-bottom:1px solid var(--eom-info-border);color:var(--eom-info-text);font:750 .7rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;padding:6px 14px;text-align:center}
.sp-connection-diagnostic.is-connected{color:var(--eom-success-text)}
.sp-controller-mode .sp-remote-topbar{position:relative}
.sp-remote-mode .sp-remote-topbar{position:relative}
.sp-remote-mode .sp-remote-shell{max-width:1180px}
.sp-remote-mode .sp-remote-qr{display:none}
.sp-stage-display.has-stage-message .sp-native-stage{align-items:stretch;overflow:hidden}
.sp-stage-display.has-stage-message .sp-native-page{max-height:calc(100vh - var(--sp-instruction-height));overflow:hidden}
@media(max-width:720px){.sp-remote-gate-notice{align-items:stretch;display:grid;text-align:left}.sp-remote-gate-actions{justify-content:flex-start}.sp-connection-diagnostic{text-align:left}.sp-remote-mode .sp-remote-top-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.sp-remote-mode .sp-friendly-status{overflow:hidden;text-overflow:ellipsis}.sp-remote-mode .sp-remote-shell{padding-top:8px}}

/* Stage Prompt fixed-output token bridge.
 * The display/controller body receives eom-field-dark, while canvas surfaces
 * remain intentionally black for projection fidelity.
 */
:root{
  --sp-bg:var(--eom-fixed-dark-bg);
  --sp-panel:var(--eom-header-bg);
  --sp-line:var(--eom-border);
  --sp-accent:var(--eom-primary);
  --sp-ok:var(--eom-success);
  --sp-danger:var(--eom-danger)
}
.sp-thumbnails button{background:var(--eom-surface-3)}
.sp-preview-main,.sp-controller-preview,.lp-stage-preview,.sp-native-page-grid>article,.sp-rich-surface{background:var(--eom-fixed-dark-bg)}
.sp-native-page{--sp-bg:var(--eom-fixed-dark-bg);--sp-fg:var(--eom-text-inverse);--sp-accent:var(--eom-accent-cyan)}
.sp-deck-card:hover,.lp-stage-preview,.sp-native-page-large,.sp-native-page-grid>article{box-shadow:var(--eom-shadow)}
.sp-stage-message.level-warn{background:var(--eom-warning)}
.sp-connection-state{color:var(--eom-accent-red)}
.sp-connection-state.ok{color:var(--eom-accent-green)}

/* EOM stage prompt layout repair 2026-07-20 */

/* 編集画面のプレビューだけ1列 */
.sp-rich-preview .sp-native-page-grid {
    grid-template-columns: minmax(0, 1fr);
}

.sp-rich-preview .sp-native-page-grid > article {
    width: 100%;
    max-width: 960px;
    margin-inline: auto;
}

/* 編集プレビューの文字 */
.sp-rich-preview .sp-native-lines {
    font-size: clamp(16px, 2.4vw, 32px);
    line-height: 1.22;
}

/* 本番送出画面 */
body.sp-display-body .sp-native-page,
.sp-stage-display .sp-native-page {
    aspect-ratio: auto;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
}

/* 本番文字サイズ */
.sp-stage-display .sp-native-lines {
    font-size: clamp(34px, 5vw, 88px);
    line-height: 1.2;
}

.sp-stage-display .sp-native-page.sp-density-compact .sp-native-lines {
    font-size: clamp(30px, 4.4vw, 78px);
}

.sp-stage-display .sp-native-page.sp-density-tight .sp-native-lines {
    font-size: clamp(27px, 3.9vw, 68px);
}

.sp-stage-display .sp-native-page.sp-density-dense .sp-native-lines {
    font-size: clamp(23px, 3.35vw, 58px);
    gap: .09em;
}

.sp-stage-display .sp-native-page {
    padding: clamp(28px, 5vh, 72px)
             clamp(32px, 6vw, 120px)
             clamp(42px, 8vh, 110px);
}

/* EOM stage prompt semantic pagination 2026-07-20 */

/*
 * 空行を段落間の1行として描画する。
 */
.sp-native-line:empty::before {
    content: "\00a0";
}

/*
 * 入力された行は維持しつつ、
 * 画面に収まらない長い行だけ自然に折り返す。
 */
.sp-native-line {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
}

/*
 * 編集プレビューは段階的な文字サイズのみ使用。
 * JavaScriptの1px刻み縮小は行わない。
 */
.sp-rich-preview .sp-density-normal .sp-native-lines {
    font-size: 28px;
}

.sp-rich-preview .sp-density-compact .sp-native-lines {
    font-size: 25px;
}

.sp-rich-preview .sp-density-tight .sp-native-lines {
    font-size: 23px;
}

.sp-rich-preview .sp-density-dense .sp-native-lines {
    font-size: 21px;
}

.sp-rich-preview .sp-native-lines {
    line-height: 1.22;
    gap: .12em;
}

@media (max-width: 720px) {
    .sp-rich-preview .sp-density-normal .sp-native-lines {
        font-size: 22px;
    }

    .sp-rich-preview .sp-density-compact .sp-native-lines {
        font-size: 20px;
    }

    .sp-rich-preview .sp-density-tight .sp-native-lines,
    .sp-rich-preview .sp-density-dense .sp-native-lines {
        font-size: 18px;
    }
}
