/* SLS-PRO R1.4.9 — R2.5.20 Spatial Intelligence Hall Distribution Studio */
:root{--sa2518-navy:#0b1f4b;--sa2518-blue:#1d4ed8;--sa2518-cyan:#0891b2;--sa2518-green:#15803d;--sa2518-amber:#b45309;--sa2518-red:#b91c1c;--sa2518-line:#dbe5f2;--sa2518-soft:#f6f9fe;--sa2518-shadow:0 24px 80px rgba(15,23,42,.18)}
.saR2518Launch{position:relative;overflow:hidden;border:1px solid #bfdbfe!important;background:linear-gradient(135deg,#f8fbff 0%,#eef7ff 55%,#f0fdfa 100%)!important}.saR2518Launch:before{content:"";position:absolute;inset:-80px -80px auto auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(6,182,212,.14),transparent 68%);pointer-events:none}.saR2518LaunchHead{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.saR2518LaunchTitle{display:flex;align-items:center;gap:14px}.saR2518Orb{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#0f2d66,#2563eb);color:#fff;font-size:23px;box-shadow:0 12px 28px rgba(37,99,235,.26)}.saR2518Launch h3{margin:0;color:#0f2d66;font-size:20px}.saR2518LaunchStatus{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.saR2518Chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #c7d7ee;background:#fff;border-radius:999px;padding:6px 10px;color:#334155;font-size:11px;font-weight:900}.saR2518Chip.ok{border-color:#86efac;background:#f0fdf4;color:#166534}.saR2518Chip.warn{border-color:#fde68a;background:#fffbeb;color:#92400e}.saR2518OpenBtn{min-height:50px;padding-inline:24px!important;background:linear-gradient(135deg,#0f2d66,#2563eb)!important;box-shadow:0 12px 28px rgba(37,99,235,.24)}
.saR2518LegacyCompat{display:none!important}body.saR2518ModalOpen{overflow:hidden!important}.saR2518Modal{position:fixed;inset:0;z-index:2147481200;background:rgba(6,18,44,.74);backdrop-filter:blur(9px);display:none;align-items:center;justify-content:center;padding:7px;direction:rtl}.saR2518Modal.open{display:flex}.saR2518Shell{width:min(1740px,99.3vw);height:min(1040px,98.5vh);background:#f7faff;border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:var(--sa2518-shadow);overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.saR2518Top{padding:10px 15px;background:linear-gradient(135deg,#081d48,#123d89);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.saR2518TopTitle{display:flex;align-items:center;gap:10px}.saR2518TopIcon{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-size:19px;border:1px solid rgba(255,255,255,.2)}.saR2518Top h2{margin:0;font-size:18px}.saR2518Top p{margin:2px 0 0;color:#dbeafe;font-size:10px;font-weight:800}.saR2518Close{width:38px;height:38px;border-radius:11px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;font-size:20px;cursor:pointer}.saR2518Close:hover{background:rgba(255,255,255,.2)}
.saR2518Context{padding:7px 12px;background:#fff;border-bottom:1px solid #dce7f5;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.saR2518ContextMain{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.saR2518SlotTabs{display:flex;gap:5px;overflow:auto;padding:1px}.saR2518SlotTab{border:1px solid #cbdaf0;background:#f8fbff;color:#334155;border-radius:10px;padding:7px 9px;font-weight:900;font-size:10px;cursor:pointer;white-space:nowrap}.saR2518SlotTab.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.saR2518SlotTab.done:after{content:" ✓";color:#15803d}.saR2518ViewSwitch{margin-inline-start:auto;display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid #cbdaf0;border-radius:10px;overflow:hidden;background:#f8fbff}.saR2518ViewSwitch button{border:0;background:transparent;padding:6px 10px;color:#475569;font-weight:950;cursor:pointer}.saR2518ViewSwitch button.active{background:#1d4ed8;color:#fff}
.saR2518Body{min-height:0;overflow:hidden;position:relative}.saR2518Catalog,.saR2518Editor{height:100%;overflow:auto;padding:9px 11px 12px}.saR2518Editor{display:none;background:#f7faff}.saR2518Body.editor .saR2518Catalog{display:none}.saR2518Body.editor .saR2518Editor{display:block}
.saR2518Progress{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr)) 112px;gap:6px;margin-bottom:7px}.saR2518Stat{border:1px solid #dce6f3;background:#fff;border-radius:13px;padding:7px 9px}.saR2518Stat span{display:block;color:#64748b;font-size:9px;font-weight:900}.saR2518Stat b{display:block;margin-top:2px;color:#0f2d66;font-size:17px}.saR2518Stat.req{border-color:#93c5fd;background:#eff6ff}.saR2518Stat.ok{border-color:#86efac;background:#f0fdf4}.saR2518Stat.warn{border-color:#fed7aa;background:#fff7ed}.saR2518Stat.cap{border-color:#a5f3fc;background:#ecfeff}.saR2518Stat.slack{border-color:#67e8f9;background:#f0fdfa}.saR2518Stat.danger{border-color:#fecaca;background:#fef2f2}.saR2518Stat.danger b{color:#b91c1c}.saR2518Coverage{border:1px solid #dce6f3;background:#fff;border-radius:13px;padding:5px;display:flex;align-items:center;justify-content:center;gap:7px}.saR2518Coverage>span{font-size:9px;font-weight:900;color:#64748b}.saR2518Ring{--p:0;width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#16a34a calc(var(--p)*1%),#e5e7eb 0);position:relative}.saR2518Ring:after{content:"";position:absolute;width:31px;height:31px;border-radius:50%;background:#fff}.saR2518Ring b{position:relative;z-index:1;font-size:9px;color:#166534}
.saR2518CatalogHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:7px;flex-wrap:wrap}.saR2518CatalogHead h3{margin:0;color:#10285f;font-size:15px}.saR2518Toolbar{display:flex;gap:5px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.saR2518Toolbar button,.saR2518MapPrimary button,.saR2518MapDirect button,.saR2518NumberLine button{border:1px solid #cbdaf0;background:#fff;color:#17365d;border-radius:10px;padding:7px 9px;font-weight:900;font-size:10px;cursor:pointer;white-space:nowrap}.saR2518Toolbar button:hover,.saR2518MapPrimary button:hover,.saR2518MapDirect button:hover{border-color:#60a5fa;background:#eff6ff}.saR2518Toolbar button.active,.saR2518MapPrimary button.active,.saR2518MapDirect button.active{border-color:#2563eb;background:#1d4ed8;color:#fff}.saR2518Toolbar button:disabled,.saR2518MapPrimary button:disabled{opacity:.45;cursor:not-allowed}.saR2518InlineStatus{min-height:24px;display:flex;align-items:center;gap:6px;color:#475569;font-size:10px;font-weight:900}.saR2518MiniSpin{width:14px;height:14px;border:3px solid #c7d7ee;border-top-color:#2563eb;border-radius:50%;animation:saR2518Spin .7s linear infinite}@keyframes saR2518Spin{to{transform:rotate(360deg)}}
.saR2518HallGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:7px}.saR2518HallCard{position:relative;text-align:right;border:1px solid #dbe5f2;background:#fff;border-radius:16px;padding:9px;cursor:pointer;min-height:182px;transition:.14s ease;box-shadow:0 7px 18px rgba(15,23,42,.04)}.saR2518HallCard:hover{transform:translateY(-1px);border-color:#93c5fd;box-shadow:0 11px 25px rgba(30,64,175,.09)}.saR2518HallCard.adopted{border-color:#4ade80;background:linear-gradient(180deg,#f0fdf4,#fff)}.saR2518HallCard.blocked{border-color:#fecaca;background:#fffafa}.saR2518HallCard:disabled{cursor:wait}.saR2518HallCardTop{display:flex;justify-content:space-between;gap:7px;align-items:flex-start}.saR2518HallCard h4{margin:0;color:#10285f;font-size:14px}.saR2518HallCard .saMeta{font-size:9px;color:#64748b;font-weight:850;line-height:1.45;margin-top:2px}.saR2518Check,.saR2518WarnMark{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-weight:1000}.saR2518Check{background:#dcfce7;color:#15803d}.saR2518WarnMark{background:#fff7ed;color:#b45309}.saR2518MiniHall{margin-top:7px;border:1px solid #e2e8f0;border-radius:11px;padding:5px;background:#f8fafc}.saR2518MiniHall>span{display:block;text-align:center;font-size:8px;color:#64748b;font-weight:900;margin-bottom:4px}.saR2518MiniHall>div{display:grid;gap:2px}.saR2518MiniHall i{height:6px;border-radius:2px;background:#dbeafe}.saR2518MiniHall i.on{background:#86efac}.saR2518MiniHall i.bad{background:#fecaca}.saR2518HallMetric{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px}.saR2518HallMetric div{border-radius:9px;background:#f7faff;padding:5px 3px;text-align:center}.saR2518HallMetric span{display:block;font-size:8px;color:#64748b;font-weight:900}.saR2518HallMetric b{display:block;font-size:12px;color:#0f2d66;margin-top:1px}.saR2518PlanLine{margin-top:6px;border-top:1px dashed #dce6f3;padding-top:5px;font-size:9px;font-weight:900;color:#166534;line-height:1.4}.saR2518PlanLine.bad{color:#b91c1c}.saR2518PlanLine.neutral{color:#64748b}
.saR2518EditorHead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.saR2518EditorIdentity{display:flex;align-items:center;gap:8px;min-width:0}.saR2518EditorHead h3{margin:0;color:#10285f;font-size:15px}.saR2518Back{border:1px solid #cbdaf0;background:#fff;color:#10285f;border-radius:10px;padding:7px 9px;font-weight:900;cursor:pointer;white-space:nowrap}.saR2518HallNav{display:flex;gap:4px;overflow-x:auto;max-width:58vw;padding:2px}.saR2518HallNav button{border:1px solid #d7e1ee;background:#fff;border-radius:9px;padding:6px 8px;color:#475569;font-size:9px;font-weight:900;white-space:nowrap;cursor:pointer}.saR2518HallNav button.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.saR2518EditorGrid{display:grid;grid-template-columns:285px minmax(0,1fr);gap:8px;align-items:start}.saR2518Settings{position:sticky;top:0;border:1px solid #dbe5f2;background:#fff;border-radius:16px;padding:9px;box-shadow:0 7px 20px rgba(15,23,42,.045)}.saR2518SettingsTitle{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px}.saR2518SettingsTitle b{color:#10285f;font-size:12px}.saR2518Form{display:grid;gap:6px}.saR2518Field{display:grid;gap:3px}.saR2518Field label{font-size:9px;font-weight:900;color:#334155}.saR2518Input{width:100%;border:1px solid #cbd7e8;border-radius:10px;background:#fff;padding:7px 8px;font:900 12px inherit;outline:none;box-sizing:border-box}.saR2518Input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.saR2518NumberLine{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}.saR2518NumberLine button{background:#eff6ff;color:#1d4ed8}.saR2518Seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.saR2518Seg.two{grid-template-columns:repeat(2,1fr)}.saR2518Seg button{border:1px solid #d7e1ee;background:#f8fbff;border-radius:9px;padding:6px 3px;font-weight:900;font-size:9px;color:#475569;cursor:pointer}.saR2518Seg button.active{background:#eaf2ff;border-color:#60a5fa;color:#1d4ed8}.saR2518Capacity{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.saR2518Capacity div{background:#f8fafc;border:1px solid #edf2f7;border-radius:9px;padding:5px}.saR2518Capacity div.ok{background:#f0fdf4;border-color:#bbf7d0}.saR2518Capacity div.slack{background:#ecfeff;border-color:#a5f3fc}.saR2518Capacity div.danger{background:#fef2f2;border-color:#fecaca}.saR2518Capacity span{display:block;font-size:8px;color:#64748b;font-weight:900}.saR2518Capacity b{display:block;color:#0f2d66;margin-top:1px;font-size:12px}.saR2518Capacity .danger b{color:#b91c1c}.saR2518DraftSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.saR2518DraftSummary span{font-size:7px;text-align:center;background:#f8fafc;border-radius:8px;padding:4px;color:#64748b;font-weight:800}.saR2518DraftSummary b{display:block;color:#0f2d66;font-size:10px}.saR2518EditorActions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}.saR2518Btn{border:0;border-radius:10px;padding:8px 9px;font-weight:950;font-size:10px;cursor:pointer}.saR2518Btn.primary{background:linear-gradient(135deg,#166534,#16a34a);color:#fff}.saR2518Btn.ghost{background:#eef3fb;color:#10285f}.saR2518Btn.danger{background:#fee2e2;color:#991b1b}.saR2518Btn:disabled{opacity:.5;cursor:not-allowed}.saR2518Message{border-radius:9px;padding:6px 7px;font-size:9px;font-weight:850;line-height:1.45}.saR2518Message.ok{border:1px solid #86efac;background:#f0fdf4;color:#166534}.saR2518Message.warn{border:1px solid #fde68a;background:#fffbeb;color:#92400e}.saR2518Message.err{border:1px solid #fecaca;background:#fef2f2;color:#991b1b}
.saR2518PreviewPane{display:grid;gap:5px;min-width:0}.saR2518MapCommand{display:grid;gap:4px;border:1px solid #dbe5f2;background:#fff;border-radius:13px;padding:5px}.saR2518MapPrimary,.saR2518MapDirect{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.saR2518MapDirect{border-top:1px dashed #dbe5f2;padding-top:4px}.saR2518MapDirect>b{font-size:9px;color:#475569;margin-inline-end:3px}.saR2518PreviewTop,.saR2518Legend{display:flex;gap:4px;flex-wrap:wrap}.saR2518Leg{border:1px solid #dbe5f2;background:#fff;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:850}.saR2518Dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:4px;vertical-align:middle}.freeDot{background:#fff;border:1px solid #cbd5e1}.proposedDot{background:#86efac}.existingDot{background:#fdba74}.draftDot{background:#bae6fd}.permanentDot{background:#cbd5e1}
.saR2518MapWrap{border:1px solid #dbe5f2;background:#fff;border-radius:15px;padding:6px;min-height:0;min-width:0}.saR2518MapWrap.fit{overflow:hidden}.saR2518MapWrap.detail{overflow:auto;max-height:62vh}.saR2518Map{width:100%;min-width:0}.saR2518MapWrap.detail .saR2518Map{min-width:900px}.saR2518Screen{height:27px;border-radius:8px;background:linear-gradient(180deg,#111827,#020617);color:#fff;display:grid;place-items:center;font-weight:950;font-size:9px;margin-bottom:4px}.saR2518SeatGrid{display:grid;gap:2px}.saR2518MapRow{display:grid;grid-template-columns:40px minmax(0,1fr);gap:3px;align-items:center}.saR2518MapRow.draft-row-off{background:#f0f9ff;border-radius:6px}.saR2518RowNo{height:var(--saSeatH,24px);border:0;border-radius:6px;background:#eef4ff;color:#1e3a8a;display:grid;place-items:center;font-size:7px;font-weight:950;cursor:pointer}.saR2518SeatLine{display:grid;gap:2px}.saR2518SeatCell{height:var(--saSeatH,24px);min-width:0;border:1px solid #d9e3ef;border-radius:5px;background:#f9fbfe;display:grid;place-items:center;position:relative;overflow:hidden;color:#64748b;font-size:6.5px;font-weight:900;padding:0;cursor:pointer}.saR2518MapWrap.detail .saR2518SeatCell,.saR2518MapWrap.detail .saR2518RowNo,.saR2518MapWrap.detail .saR2518Aisle{height:46px}.saR2518MapWrap.detail .saR2518SeatCell{font-size:8px}.saR2518SeatCell.free{background:#fff}.saR2518SeatCell.proposed{border-color:#4ade80;background:#ecfdf5;color:#166534}.saR2518SeatCell.existing{border-color:#f59e0b;background:#fff7ed;color:#92400e}.saR2518SeatCell.draft-off{border-color:#38bdf8;background:#e0f2fe;color:#0369a1}.saR2518SeatCell.permanent{border-color:#cbd5e1;background:#e2e8f0;color:#64748b;cursor:not-allowed}.saR2518SeatCell.outrow{opacity:.32;background:#f1f5f9}.saR2518SeatCell small{position:absolute;inset:auto 1px 1px 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:6px}.saR2518Aisle{height:var(--saSeatH,24px);border-radius:5px;border:1px dashed #93c5fd;background:#eff6ff;color:#1d4ed8;display:grid;place-items:center;font-size:6px;font-weight:900;writing-mode:vertical-rl}.saR2518Prev{border:1px solid #dbe5f2;background:#fff;border-radius:12px;padding:6px}.saR2518Prev h4{margin:0 0 4px;color:#10285f;font-size:10px}.saR2518PrevRows{display:flex;gap:4px;flex-wrap:wrap}.saR2518PrevTag{border:1px solid #fed7aa;background:#fff7ed;color:#92400e;border-radius:999px;padding:4px 6px;font-size:8px;font-weight:850}
.saR2518Footer{border-top:1px solid #dce7f5;background:#fff;padding:7px 12px;display:flex;align-items:center;justify-content:space-between;gap:9px}.saR2518FooterInfo{font-size:10px;color:#475569;font-weight:850}.saR2518FooterOk{color:#166534}.saR2518FooterErr{color:#991b1b}.saR2518Final{min-width:190px;min-height:39px;background:linear-gradient(135deg,#0f2d66,#2563eb)!important;color:#fff!important}.saR2518Final.ready{background:linear-gradient(135deg,#166534,#16a34a)!important}
@media(max-width:1180px){.saR2518Progress{grid-template-columns:repeat(4,minmax(90px,1fr))}.saR2518Coverage{grid-column:auto}.saR2518EditorGrid{grid-template-columns:250px minmax(0,1fr)}.saR2518HallNav{max-width:52vw}}
@media(max-width:900px){.saR2518Shell{width:100%;height:99vh;border-radius:15px}.saR2518Context{grid-template-columns:1fr}.saR2518Progress{grid-template-columns:repeat(3,1fr)}.saR2518EditorGrid{grid-template-columns:1fr}.saR2518Settings{position:static}.saR2518MapWrap.fit{overflow:auto}.saR2518MapWrap.fit .saR2518Map{min-width:760px}.saR2518Footer{align-items:stretch;flex-direction:column}.saR2518Final{width:100%}.saR2518HallNav{max-width:100%}.saR2518EditorHead{align-items:stretch;flex-direction:column}}
@media(max-height:760px) and (min-width:901px){.saR2518Top{padding-block:7px}.saR2518Top p{display:none}.saR2518Context{padding-block:5px}.saR2518Catalog,.saR2518Editor{padding-block:6px}.saR2518MapPrimary button,.saR2518MapDirect button,.saR2518Toolbar button{padding-block:5px}.saR2518Settings{padding:7px}.saR2518Form{gap:4px}.saR2518Prev{display:none}}


/* R1.4.9 spatial-intelligence analysis surfaces */
.saR2518Chip.ai{border-color:#c4b5fd;background:#f5f3ff;color:#6d28d9}.saR2520ModeSeg{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.saR2520ModeSeg button{border:1px solid #d7e1ee;background:#f8fbff;border-radius:9px;padding:7px 4px;font-weight:950;font-size:8px;color:#475569;cursor:pointer}.saR2520ModeSeg button.active{border-color:#8b5cf6;background:#ede9fe;color:#5b21b6;box-shadow:0 0 0 2px rgba(139,92,246,.08)}.saR2520Hint{font-size:7.5px;color:#64748b;font-weight:800;line-height:1.4}.saR2520Analysis{display:grid;grid-template-columns:110px repeat(5,minmax(88px,1fr));gap:4px}.saR2520Analysis>div{border:1px solid #dbe5f2;background:#fff;border-radius:10px;padding:5px 6px;min-width:0}.saR2520Analysis>div>span{display:block;font-size:7px;color:#64748b;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saR2520Analysis>div>b{display:block;font-size:12px;color:#0f2d66;margin-top:1px}.saR2520Analysis .saR2520Score{background:linear-gradient(135deg,#ede9fe,#eff6ff);border-color:#c4b5fd;display:flex;align-items:center;gap:6px}.saR2520Analysis .saR2520Score>b{font-size:22px;color:#6d28d9}.saR2520Recommendations{display:flex;gap:4px;flex-wrap:wrap;border:1px solid #dbe5f2;background:#fff;border-radius:10px;padding:5px}.saR2520Recommendations span{font-size:7.5px;font-weight:850;color:#475569;background:#f8fafc;border-radius:999px;padding:4px 6px}.saR2520Compare{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.saR2520Compare button{border:1px solid #dbe5f2;background:#fff;border-radius:11px;padding:6px;text-align:right;cursor:pointer;display:grid;gap:2px;color:#334155}.saR2520Compare button:hover,.saR2520Compare button.active{border-color:#8b5cf6;background:#f5f3ff}.saR2520Compare button b{font-size:9px;color:#312e81}.saR2520Compare button span{font-size:8px;font-weight:900}.saR2520Compare button small{font-size:7px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reserveDot{background:#c4b5fd}.saR2518SeatCell.reserved-line{border-color:#a78bfa;background:#f5f3ff;color:#6d28d9}.saR2518SeatCell.reserved-line:hover{background:#ede9fe}.saR2518PlanLine .ai{color:#6d28d9}
@media(max-width:1180px){.saR2520Analysis{grid-template-columns:repeat(4,1fr)}.saR2520Analysis .saR2520Score{grid-column:span 2}.saR2520Compare{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.saR2520ModeSeg{grid-template-columns:1fr}.saR2520Analysis{grid-template-columns:repeat(2,1fr)}.saR2520Compare{grid-template-columns:1fr}}

/* R1.4.9 V2 — decision intelligence additions */
.saR2520ScenarioStrip{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;margin:8px 0;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:rgba(15,23,42,.035);font-size:12px}.saR2520ScenarioStrip>b{margin-inline-end:3px}.saR2520ScenarioStrip>span{padding:5px 7px;border-radius:999px;background:rgba(148,163,184,.12);white-space:nowrap}.saR2520AutoRec{margin:8px 0;padding:9px 11px;border:1px solid rgba(16,185,129,.28);border-radius:12px;background:rgba(16,185,129,.07);font-size:12px;line-height:1.65}.saR2520Compare button span{line-height:1.45}

/* R1.4.10 — Hall Studio Button Authority & Interaction Reliability */
.saR2520ModeHint{margin-top:7px;padding:8px 10px;border:1px solid #dbe5ef;border-radius:10px;background:#f8fafc;font-size:12px;line-height:1.65;color:#475569}
.saR2518ActionState{margin:8px 0;padding:8px 10px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:700;line-height:1.55}
.saR2518ToolGuide{margin:8px 0;padding:8px 10px;border:1px solid #bbf7d0;border-radius:10px;background:#f0fdf4;color:#166534;font-size:12px;font-weight:700;line-height:1.55}
.saR2518ToolGuide.blocked{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.saR2518MapPending,.saR2518PreviewError{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;border-radius:14px;padding:18px;margin-top:8px}
.saR2518MapPending{border:1px dashed #bfdbfe;background:#f8fbff;color:#1d4ed8}
.saR2518PreviewError{border:1px solid #fecaca;background:#fff7f7;color:#991b1b}
.saR2518PreviewError b{font-size:14px}.saR2518PreviewError span{font-size:12px;line-height:1.65;max-width:720px}.saR2518PreviewError small{font-size:11px;color:#7f1d1d}
.saR2518MapCommand.busy{opacity:.82;pointer-events:none}
.saR2518MapDirect button:disabled,.saR2518NumberLine button:disabled,.saR2518Seg button:disabled,.saR2520ModeSeg button:disabled,.saR2520Compare button:disabled,.saR2518Toolbar button:disabled,.saR2518Catalog button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.15)}
.saR2518Input:disabled{opacity:.65;background:#f8fafc;cursor:not-allowed}

/* R1.4.11 — Smart Plan Gallery + automatic/manual hall-count authority */
.saR2521CountAuthority{grid-column:1/-1;border:1px solid rgba(44,111,180,.22);background:linear-gradient(180deg,rgba(236,247,255,.88),rgba(255,255,255,.96));border-radius:14px;padding:10px 12px}
.saR2521CountMode{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0}
.saR2521CountMode button{border:1px solid #c9d7e6;background:#fff;border-radius:10px;padding:8px 12px;font-weight:800;cursor:pointer}
.saR2521CountMode button.active{border-color:#1769aa;background:#eaf5ff;box-shadow:0 0 0 2px rgba(23,105,170,.09)}
.saR2521CountReason{margin-top:6px;font-size:12px;line-height:1.6;color:#486075}
.saR2521Gallery{margin:0 0 12px;border:1px solid rgba(39,104,165,.22);background:linear-gradient(180deg,#f8fcff,#fff);border-radius:16px;padding:12px;box-shadow:0 8px 24px rgba(39,73,111,.07)}
.saR2521Gallery.busy{background:linear-gradient(90deg,#f7fbff,#eef7ff,#f7fbff);background-size:220% 100%;animation:saR2521Pulse 1.5s linear infinite}
.saR2521Gallery.error{border-color:rgba(188,62,62,.28);background:#fff8f8}
@keyframes saR2521Pulse{0%{background-position:0 0}100%{background-position:220% 0}}
.saR2521GalleryHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.saR2521GalleryHead>div{display:flex;flex-direction:column;gap:3px}
.saR2521GalleryHead b{font-size:15px;color:#163c5c}
.saR2521GalleryHead span{font-size:12px;line-height:1.55;color:#557086}
.saR2521GalleryHead>button{border:1px solid #b9cee0;background:#fff;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer;white-space:nowrap}
.saR2521PlanGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.saR2521PlanCard{appearance:none;text-align:right;border:1px solid #d6e1eb;background:#fff;border-radius:13px;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:7px;min-height:176px;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.saR2521PlanCard:hover{transform:translateY(-1px);border-color:#74a8d1;box-shadow:0 8px 20px rgba(40,86,126,.10)}
.saR2521PlanCard.active{border-color:#1875b9;box-shadow:0 0 0 2px rgba(24,117,185,.12),0 8px 20px rgba(40,86,126,.10);background:#f5fbff}
.saR2521PlanCard.recommended{border-color:#d3b059;background:linear-gradient(180deg,#fffdf6,#fff)}
.saR2521PlanCard.recommended.active{border-color:#b88916;box-shadow:0 0 0 2px rgba(184,137,22,.12)}
.saR2521PlanTitle{display:flex;align-items:center;justify-content:space-between;gap:7px;font-weight:900;color:#163c5c}
.saR2521PlanTitle em{font-style:normal;font-size:10px;background:#fff1b9;color:#735300;border-radius:999px;padding:3px 7px}
.saR2521PlanCard>small{color:#60778a;line-height:1.45;min-height:34px}
.saR2521PlanMetrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;font-size:11px;color:#62798b}
.saR2521PlanMetrics span{display:flex;justify-content:space-between;gap:7px;border-bottom:1px dashed #e5edf3;padding-bottom:2px}
.saR2521PlanMetrics b{color:#173d5c}
.saR2521Lines{font-size:10px;color:#506c82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f5f8fb;border-radius:8px;padding:5px 7px}
.saR2521PlanCard>strong{margin-top:auto;color:#1769aa;font-size:12px}
.saR2521Impact{margin-top:9px;border-radius:9px;background:#eef8ff;color:#285d83;padding:7px 10px;font-size:12px;font-weight:700}
@media (max-width:1180px){.saR2521PlanGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.saR2521PlanGrid{grid-template-columns:1fr}.saR2521GalleryHead{flex-direction:column}.saR2521GalleryHead>button{width:100%}}

/* R1.4.12 — Compact Unified Hall Studio Authority
   Goal: ready-plan cards + tools + hall map + settings in one desktop viewport. */
:root{--sa1412-panel:218px;--sa1412-gap:5px;--sa1412-radius:10px}

/* Only the authoritative launcher is allowed to remain visible. */
button[onclick*="createDistribution"],a[onclick*="createDistribution"],[role="button"][onclick*="createDistribution"],button[onclick*="saExamJumpToHallsDirect"],a[onclick*="saExamJumpToHallsDirect"],[data-action="createDistribution"],[data-action="saExamJumpToHallsDirect"]{display:none!important}
#saR2518OpenBtn{display:inline-flex!important;align-items:center;justify-content:center}

/* Shell density. */
.saR2518Shell{width:min(1820px,99.6vw);height:min(1080px,99.4vh);border-radius:16px;grid-template-rows:auto auto minmax(0,1fr) auto}
.saR2518Top{padding:6px 10px}.saR2518TopIcon,.saR2518Close{width:32px;height:32px;border-radius:9px}.saR2518Top h2{font-size:16px}.saR2518Top p{font-size:9px}
.saR2518Context{padding:4px 8px;gap:5px}.saR2518Chip{padding:4px 7px;font-size:9px}.saR2518SlotTab{padding:5px 7px;font-size:9px}.saR2518ViewSwitch button{padding:5px 8px;font-size:9px}
.saR2518Catalog,.saR2518Editor{padding:5px 7px 6px}.saR2518Footer{padding:4px 8px}.saR2518FooterInfo{font-size:9px}.saR2518Final{min-height:32px;min-width:170px}

/* Catalog counters: only total / adopted / remaining. */
.saR2518Progress{grid-template-columns:repeat(3,minmax(95px,150px));gap:5px;margin-bottom:5px;justify-content:start}
.saR2518Stat{border-radius:10px;padding:5px 7px}.saR2518Stat span{font-size:8px}.saR2518Stat b{font-size:14px}
.saR2518Coverage{display:none!important}

/* Compact editor: fixed settings rail + one map workspace. */
.saR2518Editor{overflow:hidden}
.saR2518EditorHead{min-height:28px;margin-bottom:4px}.saR2518EditorHead h3{font-size:13px}.saR2518EditorHead .small{font-size:8px;line-height:1.3}.saR2518Back{padding:5px 7px;font-size:9px}.saR2518HallNav{max-width:63vw}.saR2518HallNav button{padding:4px 6px;font-size:8px}
.saR2518EditorGrid{grid-template-columns:var(--sa1412-panel) minmax(0,1fr);gap:6px;height:calc(100% - 32px);min-height:0;align-items:stretch}
.saR2518Settings{position:static;height:100%;min-height:0;overflow:auto;border-radius:11px;padding:6px;box-shadow:none}
.saR2518SettingsTitle{margin-bottom:5px}.saR2518SettingsTitle b{font-size:11px}
.saR1412CompactForm{gap:4px}.saR2518Field{gap:2px}.saR2518Field label{font-size:8px}.saR2518Input{padding:5px 6px;border-radius:8px;font-size:10px}
.saR2518NumberLine{gap:3px}.saR2518NumberLine button,.saR2518Seg button,.saR2520ModeSeg button{padding:5px 3px;border-radius:7px;font-size:8px}
.saR2521CountAuthority{padding:6px 7px;border-radius:9px}.saR2521CountMode{gap:4px;margin:3px 0}.saR2521CountMode button{padding:5px 7px;border-radius:7px;font-size:8px}.saR2521CountReason{margin-top:2px;font-size:7.5px;line-height:1.35}
.saR1412ModeSeg{grid-template-columns:1fr 1fr}.saR1412InlineFields{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.saR1412QuickState{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.saR1412QuickState span{background:#f7faff;border:1px solid #e6edf5;border-radius:7px;padding:4px;text-align:center;color:#64748b;font-size:7px;font-weight:800}.saR1412QuickState b{display:block;color:#12345e;font-size:9px;margin-top:1px}
.saR2518Message{padding:4px 5px;border-radius:7px;font-size:8px;line-height:1.3}.saR2518EditorActions{gap:4px;margin-top:5px}.saR2518Btn{padding:6px 7px;border-radius:8px;font-size:9px}

/* Plan gallery: tiny cards in one row, directly above the map. */
.saR2518PreviewPane{display:flex;flex-direction:column;gap:4px;height:100%;min-height:0;overflow:hidden}
.saR2521Gallery{margin:0;border-radius:9px;padding:5px 6px;box-shadow:none;flex:0 0 auto}
.saR2521GalleryHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;margin-bottom:4px;min-height:20px}.saR2521GalleryHead>div{display:contents}.saR2521GalleryHead b{font-size:9px;white-space:nowrap}.saR2521GalleryHead span{font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saR2521GalleryHead>button{padding:3px 6px;border-radius:6px;font-size:8px}
.saR2521PlanGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.saR2521PlanCard{border-radius:8px;padding:5px 6px;gap:3px;min-height:74px;box-shadow:none;transform:none!important}
.saR2521PlanCard:hover{box-shadow:0 3px 8px rgba(40,86,126,.09)}.saR2521PlanCard.active{box-shadow:0 0 0 2px rgba(24,117,185,.10)}
.saR2521PlanTitle{gap:3px;font-size:8.5px;line-height:1.2}.saR2521PlanTitle>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saR2521PlanTitle em{font-size:6.5px;padding:2px 4px}
.saR2521PlanCard>small,.saR2521PlanCard>strong,.saR2521Impact{display:none!important}
.saR2521PlanMetrics{grid-template-columns:1fr 1fr;gap:1px 5px;font-size:7px;line-height:1.15}.saR2521PlanMetrics span{padding-bottom:1px}.saR2521PlanMetrics b{font-size:8px}
.saR2521Lines{font-size:6.5px;border-radius:5px;padding:2px 4px;line-height:1.2}

/* Replace the old counter wall with a tiny selected-plan summary. */
.saR2520Analysis,.saR2520Recommendations,.saR2520ScenarioStrip,.saR2520AutoRec,.saR2520Compare,.saR2518PreviewTop,.saR2518Legend{display:none!important}
.saR1412SelectedSummary{display:flex;gap:4px;align-items:center;flex-wrap:wrap;flex:0 0 auto}
.saR1412SelectedSummary>span{border:1px solid #dfe8f1;background:#fff;border-radius:999px;padding:3px 6px;font-size:7.5px;color:#64748b;font-weight:800}.saR1412SelectedSummary b{color:#173d5c}.saR1412PrevBadge{background:#fff7ed!important;border-color:#fed7aa!important;color:#92400e!important}

/* All effective tools remain visible in two compact rows. */
.saR1412ToolDock{border:1px solid #dbe5f2;background:#fff;border-radius:8px;padding:4px;display:grid;gap:3px;flex:0 0 auto}.saR1412ToolDock.busy{opacity:.78;pointer-events:none}
.saR1412ToolRow{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.saR1412ToolRow.direct{border-top:1px dashed #e2e8f0;padding-top:3px}.saR1412ToolRow>b{font-size:7.5px;color:#64748b;margin-inline-end:2px}
.saR1412ToolRow button{border:1px solid #cbdaf0;background:#fff;color:#17365d;border-radius:7px;padding:4px 6px;font-weight:850;font-size:7.5px;cursor:pointer;white-space:nowrap}.saR1412ToolRow button.active{border-color:#2563eb;background:#1d4ed8;color:#fff}.saR1412ToolRow button:disabled{opacity:.42;cursor:not-allowed}
.saR2518ActionState,.saR2518ToolGuide{margin:0;padding:4px 6px;border-radius:7px;font-size:7.5px;line-height:1.3;flex:0 0 auto}.saR2518ToolGuide{display:flex;gap:5px;align-items:center}.saR2518MapPending,.saR2518PreviewError{min-height:70px;padding:9px;margin-top:0;font-size:9px}

/* Full-map stage consumes every remaining pixel. */
.saR1412MapStage{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border:1px solid #dbe5f2;background:#fff;border-radius:10px;padding:4px}
.saR1412MapMeta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:0 2px 3px;color:#64748b;font-size:7px;font-weight:800;flex:0 0 auto}.saR1412MapMeta>span{white-space:nowrap}.saR1412MapMeta .saR2518Dot{width:6px;height:6px}
.saR2518MapWrap{border:0;border-radius:7px;padding:2px;flex:1 1 auto;min-height:0;overflow:hidden!important;display:flex;align-items:center;justify-content:center}
.saR2518MapWrap.fit .saR2518Map{width:100%;max-height:100%;min-width:0}.saR2518Screen{height:20px;border-radius:6px;font-size:7px;margin-bottom:2px}.saR2518SeatGrid{gap:1px}.saR2518MapRow{grid-template-columns:31px minmax(0,1fr);gap:2px}.saR2518RowNo{border-radius:4px;font-size:6px}.saR2518SeatLine{gap:1px}.saR2518SeatCell{border-radius:3px;font-size:5.5px}.saR2518Aisle{border-radius:3px;font-size:5px}.saR2518SeatCell small{display:none!important}

/* The map is the default view when a hall opens and always uses fit mode. */
.saR2518MapWrap.detail{max-height:none}.saR2518MapWrap.detail .saR2518Map{min-width:0}.saR2518MapWrap.detail .saR2518SeatCell,.saR2518MapWrap.detail .saR2518RowNo,.saR2518MapWrap.detail .saR2518Aisle{height:var(--saSeatH,22px)}

@media(max-width:1380px) and (min-width:901px){:root{--sa1412-panel:205px}.saR2521PlanGrid{grid-template-columns:repeat(6,minmax(0,1fr))}.saR2521PlanCard{padding:4px;min-height:69px}.saR2521PlanMetrics{font-size:6.5px}.saR1412ToolRow button{padding:3px 5px;font-size:7px}}
@media(max-height:820px) and (min-width:901px){.saR2518Top{padding-block:4px}.saR2518Top p{display:none}.saR2518Context{padding-block:3px}.saR2518EditorHead .small{display:none}.saR2521PlanCard{min-height:64px}.saR2521Lines{display:none}.saR2518Settings{padding:5px}.saR1412CompactForm{gap:3px}.saR2518Footer{padding-block:3px}}
@media(max-width:900px){.saR2518Editor{overflow:auto}.saR2518EditorGrid{height:auto;grid-template-columns:1fr}.saR2518Settings{height:auto}.saR2518PreviewPane{height:auto;overflow:visible}.saR2521PlanGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.saR1412MapStage{min-height:500px}.saR2518MapWrap{overflow:auto!important}}

/* R1.4.14 — Full-Fit + Stable Actions
   - Measured viewport fit: all hall rows visible on first open.
   - Pure local +/- zoom without server calls.
   - Prominent hall accept/close controls.
   - Development badge moved into the modal header.
   - Stale map stays visible while a new Preview is being rebuilt; hard errors render only after recovery is exhausted. */
.saR2518Top{position:relative}
.saR1414DevMark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.28);background:rgba(127,29,29,.92);color:#fff;border-radius:999px;padding:3px 9px;font-size:7.5px;font-weight:950;letter-spacing:.06em;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.saR1414DevBadgeSuppressed{display:none!important}

/* Larger primary actions: these are the final hall decisions, not secondary utility buttons. */
.saR1414PrimaryActions{position:sticky;bottom:-1px;z-index:6;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr)!important;gap:7px!important;margin-top:6px!important;padding:6px 0 1px;background:linear-gradient(180deg,rgba(255,255,255,.72),#fff 35%);border-top:1px solid #e2e8f0}
.saR1414PrimaryActions .saR2518Btn{min-height:42px!important;border-radius:10px!important;font-size:10.5px!important;display:inline-flex;align-items:center;justify-content:center;gap:5px;box-shadow:none}
.saR1414PrimaryActions .saR1414Adopt{min-height:46px!important;font-size:11.5px!important;background:linear-gradient(135deg,#15803d,#16a34a)!important;box-shadow:0 6px 14px rgba(22,163,74,.18)!important}
.saR1414PrimaryActions .saR1414Adopt:not(:disabled):hover{filter:brightness(1.03);transform:translateY(-1px)}
.saR1414PrimaryActions .saR1414CloseHall{border:1px solid #cbd5e1!important;background:#f8fafc!important;color:#334155!important}
.saR1414PrimaryActions .saR1414CloseHall.danger{border-color:#fecaca!important;background:#fff1f2!important;color:#9f1239!important}
.saR1414PrimaryActions .saR2518Btn:disabled{box-shadow:none!important;transform:none!important}

/* Local map zoom controls stay tiny and always visible once any map exists. */
.saR1414ZoomGroup{display:inline-flex;align-items:center;gap:2px;padding:1px;border:1px solid #dbe5f2;border-radius:7px;background:#f8fbff}
.saR1414ZoomGroup button{min-width:24px;padding-inline:5px!important}
.saR1414ZoomGroup button:nth-child(2){min-width:60px}

/* The map stage must never vertically center an oversized map: top alignment prevents the last rows being clipped. */
.saR2518MapWrap{position:relative!important;align-items:flex-start!important;justify-content:center!important;overscroll-behavior:contain}
.saR2518MapWrap.fit{overflow:hidden!important}
.saR2518MapWrap.fit .saR2518Map{width:100%;max-width:100%;min-width:0!important;margin-inline:0!important}
.saR2518MapWrap.zoomed{overflow:auto!important;align-items:flex-start!important;justify-content:flex-start!important;scrollbar-width:thin}
.saR2518MapWrap.zoomed .saR2518Map{max-width:none!important;min-width:0!important;flex:0 0 auto}
.saR2518Map{transform-origin:top center;box-sizing:border-box}
.saR2518MapRow,.saR2518SeatLine,.saR2518SeatCell,.saR2518RowNo,.saR2518Aisle{min-height:0!important}

/* Keep the last row visible even on shorter laptop viewports. */
.saR1412MapStage{padding:3px!important}
.saR1412MapMeta{padding-bottom:2px!important;min-height:11px}
.saR2518Screen{height:18px!important;margin-bottom:1px!important}
.saR2518SeatGrid{gap:1px!important}
.saR2518MapRow{gap:1px!important}
.saR2518SeatLine{gap:1px!important}

/* No red error flash while a recoverable request is in flight. The old valid map remains visible with a small non-blocking status chip. */
.saR1414MapUpdating{position:absolute;z-index:5;left:5px;top:5px;display:flex;align-items:center;gap:5px;border:1px solid #bfdbfe;background:rgba(239,246,255,.94);color:#1e40af;border-radius:999px;padding:4px 7px;font-size:7.5px;font-weight:900;pointer-events:none;box-shadow:0 2px 8px rgba(30,64,175,.08)}
.saR1414MapUpdating .saR2518MiniSpin{width:10px;height:10px;border-width:2px}
.saR1412SelectedSummary.updating{opacity:.82}
.saR1414UpdatingChip{border-color:#bfdbfe!important;background:#eff6ff!important;color:#1d4ed8!important}
.saR2518PreviewError{border:1px solid #fecaca!important;background:#fff7f7!important}

/* Slightly reclaim vertical space without hiding any tools or plan cards. */
.saR2521Gallery{padding-block:4px!important}
.saR2521PlanCard{min-height:61px!important;padding-block:4px!important}
.saR1412ToolDock{padding:3px!important;gap:2px!important}
.saR1412ToolRow{gap:2px!important}
.saR1412ToolRow button{padding-block:3px!important}
.saR1412SelectedSummary>span{padding-block:2px!important}

@media(max-height:760px) and (min-width:901px){
  .saR2521PlanCard{min-height:56px!important}
  .saR2521PlanMetrics{font-size:6.3px!important}
  .saR1412ToolRow button{font-size:6.6px!important;padding:2px 4px!important}
  .saR1414PrimaryActions .saR2518Btn{min-height:38px!important}
  .saR1414PrimaryActions .saR1414Adopt{min-height:42px!important}
}
@media(max-width:900px){
  .saR1414DevMark{display:none}
  .saR1414PrimaryActions{position:static}
  .saR2518MapWrap.zoomed{overflow:auto!important}
}

/* R1.4.16 — Classic / Advance Dual-Mode Hall Studio
   Classic = direct sequential allocation at exact 2/0/full-hall defaults.
   Advance = full existing editor, deterministic selected-hall capacity target, explicit manual Apply. */
.saR1416CatalogTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%}
.saR1416ModeSwitch{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid #cbd8e6;border-radius:10px;background:#f8fbff;direction:ltr;white-space:nowrap}
.saR1416ModeSwitch button{border:0!important;background:transparent!important;color:#526b80!important;border-radius:8px!important;padding:6px 10px!important;font-size:9px!important;font-weight:900!important;box-shadow:none!important}
.saR1416ModeSwitch button.active{background:#143d77!important;color:#fff!important;box-shadow:0 2px 7px rgba(20,61,119,.18)!important}
.saR1416ClassicPolicy{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px}
.saR1416ClassicPolicy b,.saR1416ClassicPolicy span{border:1px solid #dbe5ef;border-radius:999px;background:#fff;padding:3px 7px;font-size:8px;color:#526b80;font-weight:850}
.saR1416ClassicPolicy b{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.saR1416ClassicCard .saR2518PlanLine.classic{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:900}
.saR1416ClassicCard:not(.blocked):not(.adopted){box-shadow:inset 0 0 0 1px rgba(37,99,235,.03)}
.saR1416ClassicCard:not(.blocked):not(.adopted):hover{border-color:#3b82f6;box-shadow:0 5px 14px rgba(37,99,235,.10)}
.saR1416ClassicCard.adopted{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#fff)}
.saR1416ClassicCard.busy{opacity:.72}

.saR1416ManualStepper{display:grid;grid-template-columns:34px 30px minmax(48px,1fr) 30px 34px;gap:3px;align-items:center}
.saR1416ManualStepper button{border:1px solid #cbdaf0;background:#fff;color:#17365d;border-radius:7px;padding:5px 2px;font-size:7.5px;font-weight:900;cursor:pointer}
.saR1416ManualStepper .apply{grid-column:1/-1;background:#143d77;color:#fff;border-color:#143d77;font-size:8.5px;padding:6px}
.saR1416ManualStepper .saR2518Input{text-align:center;font-weight:900;min-width:0}
.saR1416ManualPending{margin-top:3px;border:1px dashed #bfdbfe;background:#f8fbff;color:#3b6386;border-radius:7px;padding:4px 5px;font-size:7px;line-height:1.35}
.saR1416FullHallHint{display:block;color:#64748b;font-size:6.8px;line-height:1.25;margin-top:2px}

@media(max-width:900px){
  .saR1416CatalogTitle{flex-direction:column}
  .saR1416ModeSwitch{width:100%}.saR1416ModeSwitch button{flex:1}
  .saR1416ManualStepper{grid-template-columns:40px 36px minmax(60px,1fr) 36px 40px}
}

/* R1.4.17 — Fast Preview + Classic Card Preview UX
   - normal editor changes use direct authoritative Preview first; gallery only on explicit request/recovery.
   - one clear blue refresh banner replaces tiny scattered update spinners.
   - Classic distributed cards expose Preview + Cancel as separate actions.
   - Classic/Advance switch is a professional segmented control anchored on the right.
*/
.saR1417CatalogTop{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;direction:ltr}
.saR1417CatalogHeading{grid-column:1;direction:rtl;text-align:right;min-width:0}
.saR1417CatalogHeading h3{margin:0;color:#10285f;font-size:16px;font-weight:950}
.saR1417CatalogHeading .small{margin-top:3px;color:#64748b;font-size:9px;font-weight:800;line-height:1.45}
.saR1417ModeSwitch{grid-column:2;grid-row:1;justify-self:end;display:grid;grid-template-columns:1fr 1fr;min-width:290px;padding:4px;border:1px solid #cbdaf0;border-radius:14px;background:linear-gradient(180deg,#fff,#f5f9ff);box-shadow:0 5px 16px rgba(15,46,94,.07);direction:ltr}
.saR1417ModeSwitch button{min-height:38px;border:1px solid transparent!important;background:transparent!important;color:#526b80!important;border-radius:10px!important;padding:7px 13px!important;font-size:10px!important;font-weight:950!important;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:.15s ease;white-space:nowrap}
.saR1417ModeSwitch button .icon{font-size:14px;line-height:1}
.saR1417ModeSwitch button:hover:not(:disabled){background:#edf5ff!important;color:#1d4ed8!important}
.saR1417ModeSwitch button.active{border-color:#2563eb!important;background:linear-gradient(135deg,#1748a6,#2563eb)!important;color:#fff!important;box-shadow:0 5px 13px rgba(37,99,235,.20)!important}
.saR1417ModeSwitch button:disabled{opacity:.55;cursor:wait}
.saR1417CatalogUtility{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;direction:rtl}
.saR1417CatalogTools{margin:0}
.saR1417CatalogBusy{margin-inline-start:auto;display:inline-flex;align-items:center;gap:7px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:5px 10px;font-size:8.5px;font-weight:950;white-space:nowrap}
.saR1417TinySpin{width:13px;height:13px;display:inline-block;flex:0 0 auto;border:2.5px solid rgba(37,99,235,.20);border-top-color:#2563eb;border-radius:50%;animation:saR2518Spin .65s linear infinite}
/* The old policy/reference chips are intentionally removed from the R1.4.17 catalog. */
.saR1416ClassicPolicy{display:none!important}

/* Classic cards are containers now, so no nested-button invalid HTML and no accidental cancel on card click. */
article.saR2518HallCard.saR1416ClassicCard{cursor:default}
article.saR2518HallCard.saR1416ClassicCard:hover{transform:none}
.saR1417ClassicActions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;padding-top:7px;border-top:1px dashed #dce6f3}
.saR1417ClassicActions.single{grid-template-columns:1fr}
.saR1417ClassicActions button{min-height:34px;border-radius:10px;border:1px solid #cbdaf0;background:#fff;color:#17365d;font-size:9px;font-weight:950;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:.14s ease}
.saR1417ClassicActions button:hover:not(:disabled){transform:translateY(-1px);border-color:#60a5fa;background:#eff6ff}
.saR1417ClassicActions .direct{border-color:#2563eb;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;box-shadow:0 5px 12px rgba(37,99,235,.16)}
.saR1417ClassicActions .preview{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}
.saR1417ClassicActions .cancel{border-color:#fecaca;background:#fff7f7;color:#b91c1c}
.saR1417ClassicActions button:disabled{opacity:.52;cursor:wait;transform:none}

/* Clear, centered refresh authority. It does not cover the map and is visually stronger than the previous 10px corner spinner. */
.saR1417RefreshBanner{width:min(430px,72%);margin:5px auto 6px;display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:8px 15px;border:1px solid #1d4ed8;border-radius:13px;background:linear-gradient(135deg,#1748a6,#2384f6);color:#fff;box-shadow:0 9px 22px rgba(37,99,235,.22);direction:rtl;pointer-events:none}
.saR1417RefreshBanner>div{display:grid;gap:1px;text-align:right}
.saR1417RefreshBanner b{font-size:11px;font-weight:950;line-height:1.35}
.saR1417RefreshBanner small{font-size:7.5px;font-weight:750;color:#dbeafe;line-height:1.35}
.saR1417BigSpin{width:25px;height:25px;display:inline-block;flex:0 0 25px;border:4px solid rgba(255,255,255,.30);border-top-color:#fff;border-right-color:#fff;border-radius:50%;animation:saR2518Spin .7s linear infinite;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}
.saR1417MapPending{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:#1d4ed8;background:linear-gradient(180deg,#f8fbff,#eef6ff);border:1px dashed #93c5fd;border-radius:11px}
.saR1417MapPending .saR1417BigSpin{border-color:rgba(37,99,235,.16);border-top-color:#2563eb;border-right-color:#2563eb}
/* suppress the obsolete tiny corner spinner if any cached markup survives for one render */
.saR1414MapUpdating{display:none!important}

/* Classic map preview is deliberately read-only. */
.saR1417ClassicPreviewPanel{display:grid;gap:8px}
.saR1417ClassicPreviewStats{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.saR1417ClassicPreviewStats span{border:1px solid #dbe5f2;background:#f8fbff;border-radius:9px;padding:7px 6px;color:#64748b;font-size:7.5px;font-weight:850;text-align:center}
.saR1417ClassicPreviewStats b{display:block;margin-top:2px;color:#0f2d66;font-size:12px}
.saR1417ClassicPreviewPanel p{margin:0;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;border-radius:9px;padding:7px;font-size:8px;font-weight:800;line-height:1.45}
.saR1417PreviewActions{grid-template-columns:1fr!important;position:static!important;margin-top:2px!important}
.saR1417PreviewDock{justify-content:flex-start}

@media(max-width:900px){
  .saR1417CatalogTop{grid-template-columns:1fr;direction:rtl}
  .saR1417CatalogHeading{grid-column:1;grid-row:2}
  .saR1417ModeSwitch{grid-column:1;grid-row:1;width:100%;min-width:0;justify-self:stretch}
  .saR1417RefreshBanner{width:92%}
  .saR1417CatalogUtility{align-items:flex-start;flex-direction:column}
}

/* R1.4.18 — Constraint-Aware Stable Editor
   - Row gap 0 = continuous usable rows by default.
   - Explicit smart constraint options: strict / trim rows / row-gap 1 / spread / line-gap 1 fallback.
   - Row and student-count edits are transactional: invalid changes never replace the last valid map.
   - Final exam commit button glows only when every student has been allocated. */
.saR1418PolicyHint{display:block;margin-top:3px;color:#64748b;font-size:6.9px;line-height:1.35;font-weight:750}
.saR1418RowStepper{display:grid;grid-template-columns:30px minmax(46px,1fr) 30px;gap:3px;align-items:center}
.saR1418RowStepper button{border:1px solid #cbdaf0;background:#fff;color:#17365d;border-radius:7px;min-height:28px;font-size:10px;font-weight:950;cursor:pointer}
.saR1418RowStepper .apply{grid-column:1/-1;background:#173d77;color:#fff;border-color:#173d77;min-height:29px;font-size:8.5px}
.saR1418RowStepper input{text-align:center;font-weight:950;min-width:0}
.saR1418ConstraintPanel{border:1px solid #d7e3f3;background:linear-gradient(180deg,#fbfdff,#f5f9ff);border-radius:11px;padding:6px;display:grid;gap:5px}
.saR1418ConstraintHead{display:grid;gap:1px}.saR1418ConstraintHead b{color:#123b78;font-size:9px;font-weight:950}.saR1418ConstraintHead span{color:#64748b;font-size:6.9px;line-height:1.35;font-weight:750}
.saR1418ConstraintGrid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.saR1418ConstraintGrid button{border:1px solid #cbdaf0;background:#fff;color:#17365d;border-radius:8px;padding:5px 4px;font-size:7.8px;font-weight:950;line-height:1.2;cursor:pointer;display:grid;gap:1px;text-align:center}
.saR1418ConstraintGrid button small{font-size:6.1px;color:#64748b;font-weight:750;line-height:1.2}.saR1418ConstraintGrid button:hover:not(:disabled){border-color:#60a5fa;background:#eff6ff}.saR1418ConstraintGrid button.active{border-color:#2563eb;background:#eaf2ff;color:#1d4ed8;box-shadow:inset 0 0 0 1px rgba(37,99,235,.13)}.saR1418ConstraintGrid button.danger{border-color:#fed7aa;color:#9a3412;background:#fff7ed}.saR1418ConstraintGrid button:disabled{opacity:.52;cursor:wait}
.saR1418ConstraintLoading{display:flex;align-items:center;justify-content:center;gap:6px;border:1px dashed #93c5fd;background:#eff6ff;color:#1d4ed8;border-radius:8px;padding:5px;font-size:7px;font-weight:900}
.saR1418CommitGlow{position:relative!important;background:linear-gradient(135deg,#059669,#16a34a)!important;color:#fff!important;border-color:#16a34a!important;box-shadow:0 0 0 3px rgba(34,197,94,.16),0 0 20px rgba(34,197,94,.58),0 8px 18px rgba(22,163,74,.28)!important;animation:saR1418CommitPulse 1.45s ease-in-out infinite!important;font-size:11px!important;font-weight:950!important}
.saR1418CommitGlow::after{content:"";position:absolute;inset:-5px;border-radius:14px;border:2px solid rgba(34,197,94,.32);pointer-events:none;animation:saR1418Halo 1.45s ease-out infinite}
.saR1418CommitReadyText{display:inline-flex;align-items:center;gap:5px;color:#047857;font-weight:950}
@keyframes saR1418CommitPulse{0%,100%{filter:brightness(1);transform:translateY(0)}50%{filter:brightness(1.09);transform:translateY(-1px)}}
@keyframes saR1418Halo{0%{opacity:.65;transform:scale(.98)}70%,100%{opacity:0;transform:scale(1.05)}}
@media(max-width:900px){.saR1418ConstraintGrid{grid-template-columns:1fr}.saR1418CommitGlow{animation:none!important}}


/* R1.4.21 — Adaptive Classic Smart Controls
   Compact rows / lines / gaps / smart controls are shared by Classic Preview and Advance. */
.saR1421SimpleControls{border:1px solid #cfe0f6;background:linear-gradient(180deg,#f8fbff,#fff);border-radius:12px;padding:8px;display:grid;gap:7px;margin:7px 0}
.saR1421SimpleHead{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#17365d}.saR1421SimpleHead b{font-size:9px}.saR1421SimpleHead span{font-size:7px;color:#64748b;font-weight:800}
.saR1421ControlGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.saR1421Control{border:1px solid #dbe7f5;background:#fff;border-radius:10px;padding:6px;display:grid;gap:5px}.saR1421Control label{font-size:7.5px;font-weight:900;color:#405a75;display:flex;justify-content:space-between;gap:5px}.saR1421Control label b{color:#0f2d66}.saR1421Control div{display:flex;gap:4px}.saR1421Control button{flex:1;min-height:28px;border:1px solid #c9d9ef;border-radius:8px;background:#f8fbff;color:#17365d;font-size:8px;font-weight:950;cursor:pointer}.saR1421Control button:hover:not(:disabled){border-color:#60a5fa;background:#eff6ff}.saR1421Control button:disabled{opacity:.5;cursor:wait}
.saR1421SmartBtn{width:100%;min-height:36px;border:1px solid #2563eb;border-radius:10px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;font-size:9px;font-weight:950;cursor:pointer;box-shadow:0 5px 12px rgba(37,99,235,.15)}.saR1421SmartBtn:hover:not(:disabled){transform:translateY(-1px)}.saR1421SmartBtn:disabled{opacity:.55;cursor:wait}
.saR1421Remainder{border-radius:10px;padding:8px;font-size:8px;line-height:1.5;font-weight:850}.saR1421Remainder.warn{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412}.saR1421Remainder.ok{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}
@media(max-width:900px){.saR1421ControlGrid{grid-template-columns:1fr}}

/* R1.4.22 — Exam-aware isolation status */
.saR1422Policy{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;margin:6px 0 8px;padding:7px 9px;border:1px solid #dbe5f2;border-radius:10px;background:#f8fbff;font-size:11px;line-height:1.35}.saR1422Policy b{grid-row:1/3;white-space:nowrap;color:#1e3a5f}.saR1422Policy span{color:#4b647f}.saR1422Policy.active{border-color:#b7e4c7;background:#f2fff6}.saR1422Policy.active b{color:#147a3d}.saR1422Policy.active span:last-child{font-weight:700;color:#147a3d}


/* R1.4.27 Smart Option Deck */
.saR1427DeckTools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0 8px}
.saR1427DeckStatus{font-size:12px;color:#475569}
.saR1427DeckActions{display:flex;gap:8px;flex-wrap:wrap}
.saR1427DeckActions button{border:1px solid #c7d2fe;background:#eef2ff;color:#1d4ed8;border-radius:12px;padding:7px 12px;font-weight:700;cursor:pointer}
.saR1427DeckActions button:hover{transform:translateY(-1px)}
.saR1427DeckEnd{margin-top:10px;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#475569;font-size:12px;text-align:center}
.saR1427PlanFoot{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:#64748b}
.saR2521Gallery .saR2521PlanCard.active .saR1427PlanFoot{color:#1d4ed8}

/* R1.4.29 — Smart selection lock + fixed/automatic count */
.saR1429CountModeNote{margin-top:6px;border-radius:9px;padding:7px 8px;font-size:7.2px;line-height:1.45;font-weight:800}
.saR1429CountModeNote.auto{border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af}
.saR1429CountModeNote.fixed{border:1px solid #fde68a;background:#fffbeb;color:#92400e}
.saR1429LockedOption{margin:7px 0 5px;border:1px solid #86efac;background:#f0fdf4;color:#166534;border-radius:10px;padding:8px 10px;font-size:8px;line-height:1.45;font-weight:900}
.saR1429DraftMark{display:inline-flex;align-items:center;justify-content:center;border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:3px 7px;font-size:7px;font-weight:950;white-space:nowrap}
.saR2518PlanLine.saR1429DraftLine{border-color:#bfdbfe;background:#eff6ff;color:#1e40af}


/* R1.4.31 — Professional Quick Controls + Continuous Aisle */
:root{--sa1412-panel:238px}
.saR1431QuickControls{padding:10px!important;gap:9px!important;border-color:#cbdcf1!important;background:linear-gradient(180deg,#fbfdff,#f7faff 45%,#fff)!important;box-shadow:0 7px 20px rgba(31,68,112,.06)}
.saR1431QuickHead{align-items:flex-start!important}.saR1431QuickHead>div{display:grid;gap:2px}.saR1431QuickHead>div>b{font-size:10px!important;color:#102f64}.saR1431QuickHead>div>span{font-size:7.4px!important;color:#718096!important}
.saR1431QuickStatus{font-style:normal;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:950;white-space:nowrap}.saR1431QuickStatus.auto{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8}.saR1431QuickStatus.fixed{border:1px solid #fde68a;background:#fffbeb;color:#92400e}
.saR1431ControlGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
.saR1431ControlCard{min-height:70px;padding:8px!important;border-radius:11px!important;position:relative;overflow:hidden;box-shadow:0 2px 7px rgba(15,45,90,.035)}
.saR1431ControlCard::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;opacity:.9}.saR1431ControlCard.rows::before{background:#2563eb}.saR1431ControlCard.lines::before{background:#4f46e5}.saR1431ControlCard.line-gap::before{background:#0f9f9a}.saR1431ControlCard.row-gap::before{background:#d97706}
.saR1431ControlCard.rows{border-color:#bfdbfe!important;background:linear-gradient(180deg,#f8fbff,#fff)!important}.saR1431ControlCard.lines{border-color:#c7d2fe!important;background:linear-gradient(180deg,#f9f9ff,#fff)!important}.saR1431ControlCard.line-gap{border-color:#bfe8e5!important;background:linear-gradient(180deg,#f6fffe,#fff)!important}.saR1431ControlCard.row-gap{border-color:#fde0b4!important;background:linear-gradient(180deg,#fffaf3,#fff)!important}
.saR1431ControlCard label{font-size:8.2px!important;align-items:center}.saR1431ControlCard label b{font-size:9.2px}.saR1431ControlCard.rows label b{color:#1d4ed8!important}.saR1431ControlCard.lines label b{color:#4338ca!important}.saR1431ControlCard.line-gap label b{color:#0f766e!important}.saR1431ControlCard.row-gap label b{color:#b45309!important}
.saR1431ControlCard>div{align-items:center!important}.saR1431ControlCard button{min-height:34px!important;border-radius:9px!important;font-size:8.6px!important;background:#fff!important;box-shadow:0 1px 2px rgba(15,23,42,.03)}.saR1431ControlCard button:hover:not(:disabled){transform:translateY(-1px)}
.saR1431ControlCard.rows button:hover:not(:disabled){border-color:#60a5fa!important;background:#eff6ff!important;color:#1d4ed8}.saR1431ControlCard.lines button:hover:not(:disabled){border-color:#818cf8!important;background:#eef2ff!important;color:#4338ca}.saR1431ControlCard.line-gap button:hover:not(:disabled){border-color:#5eead4!important;background:#f0fdfa!important;color:#0f766e}.saR1431ControlCard.row-gap button:hover:not(:disabled){border-color:#fbbf24!important;background:#fffbeb!important;color:#92400e}
.saR1431ControlValue{min-width:32px;display:grid;place-items:center;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;color:#0f3e54;font-size:9px;font-weight:950;min-height:32px}
.saR1431SmartBtn{min-height:42px!important;border-radius:11px!important;font-size:10px!important;letter-spacing:.01em;display:flex!important;align-items:center;justify-content:center;gap:7px;box-shadow:0 7px 16px rgba(37,99,235,.18)!important}.saR1431SmartBtn span{font-size:12px}
.saR1431CountAuthority{padding:9px!important;border-radius:11px!important}.saR1431CountAuthority>label{font-size:8.7px!important;font-weight:950!important;color:#193c6b}.saR2521CountMode{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin:6px 0!important}.saR2521CountMode button{min-height:36px!important;padding:7px 8px!important;border-radius:9px!important;font-size:8.5px!important;font-weight:950!important}.saR1431CountAuto.active{border-color:#2563eb!important;background:#eff6ff!important;color:#1d4ed8!important;box-shadow:0 0 0 2px rgba(37,99,235,.10)!important}.saR1431CountFixed.active{border-color:#d97706!important;background:#fffbeb!important;color:#92400e!important;box-shadow:0 0 0 2px rgba(217,119,6,.10)!important}.saR1416ManualStepper{grid-template-columns:38px 34px minmax(54px,1fr) 34px 38px!important;gap:4px!important}.saR1416ManualStepper button{min-height:33px!important;font-size:8px!important}.saR1416ManualStepper .apply{min-height:35px!important;background:linear-gradient(135deg,#92400e,#b45309)!important;border-color:#b45309!important}.saR2518NumberLine button{min-height:34px!important;font-weight:900!important}
.saR1431SeatGrid{display:block!important;position:relative}.saR1431SeatBody{display:grid;gap:2px;align-items:stretch;direction:ltr;min-height:0}
.saR1431SeatBody .saR2518RowNo,.saR1431SeatBody .saR2518SeatCell small,.saR1431SeatBody .saR1431ContinuousAisle span{direction:rtl;unicode-bidi:plaintext}
.saR1431RowNumbers,.saR1431SeatBlock{display:grid;grid-template-rows:repeat(var(--saRows),var(--saSeatH));gap:1px;min-height:0}.saR1431SeatLine{height:var(--saSeatH);gap:1px!important;min-height:0}.saR1431RowNumbers .saR2518RowNo{width:100%;height:var(--saSeatH)!important}.saR1431ContinuousAisle{width:38px!important;height:auto!important;min-height:100%!important;align-self:stretch!important;border:1px solid #cbd5e1!important;border-radius:7px!important;background:linear-gradient(180deg,#f8fafc,#eef4fb)!important;color:#1e3a5f!important;display:grid!important;place-items:center!important;font-size:8px!important;font-weight:950!important;writing-mode:horizontal-tb!important;letter-spacing:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}.saR1431ContinuousAisle span{display:block;transform:none;white-space:nowrap}.saR2518MapWrap.detail .saR1431ContinuousAisle{height:auto!important;min-height:100%!important}.saR2518MapWrap.fit .saR1431ContinuousAisle{height:auto!important;min-height:100%!important}
.saR1431SeatLine.draft-row-off,.saR1431RowNumbers .draft-row-off{background:#f0f9ff;border-radius:4px}
.saR1431QuickControls button:focus-visible,.saR1431CountAuthority button:focus-visible,.saR1431CountAuthority input:focus-visible{outline:2px solid #2563eb!important;outline-offset:2px!important;box-shadow:0 0 0 3px rgba(37,99,235,.12)!important}
@media(max-width:900px){:root{--sa1412-panel:228px}.saR1431ControlGrid{grid-template-columns:1fr!important}.saR1431ControlCard{min-height:62px}.saR1431ContinuousAisle{width:34px!important}}
