:root{--red:#b91c2b;--red2:#991b1b;--ink:#172033;--muted:#65748c;--line:#d8e0ea;--bg:#f3f6fa;--panel:#fff;--green:#087f5b;--amber:#b26a00;--blue:#2563eb;--shadow:0 10px 30px rgba(25,40,65,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif;font-size:15px}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#111827;color:white;padding:24px 16px}.brand{display:block;color:white;text-decoration:none;font-size:22px;font-weight:800;padding:0 10px 25px}.brand span{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--red);border-radius:9px;margin-right:8px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:#cbd5e1;text-decoration:none;padding:11px 13px;border-radius:9px}.sidebar nav a:hover{background:#273244;color:#fff}.shell{margin-left:248px;min-height:100vh}.topbar{height:70px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.store-switcher{display:flex;align-items:center;gap:10px}.store-switcher label{font-weight:700}.store-switcher select{min-width:220px}.account{display:flex;align-items:center;gap:14px}main{padding:30px;max-width:1600px;margin:auto}h1{font-size:29px;margin:0 0 8px}h2{font-size:21px;margin:0 0 16px}h3{margin:8px 0 0}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.page-head p,.panel-head p{margin:4px 0;color:var(--muted)}button,.button{border:1px solid #c7d2e1;background:white;color:var(--ink);border-radius:10px;padding:10px 17px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:#94a3b8}.primary{background:var(--red);color:#fff;border-color:var(--red)}.primary:hover{background:var(--red2);border-color:var(--red2)}button:disabled{opacity:.45;cursor:not-allowed}.link-button{border:0;padding:4px;background:none;color:var(--blue)}.inline{display:inline}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.spaced{margin-top:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.two-col{display:grid;grid-template-columns:1fr 1.4fr;gap:22px}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:22px}.metrics article{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metrics span{display:block;color:var(--muted)}.metrics strong{display:block;font-size:30px;margin-top:7px}.metrics .warn strong{color:var(--red)}.status-list,.job-list,.store-list{display:grid;gap:9px}.status-list a,.store-list a{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:13px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}.status-list small,.store-list small{color:var(--muted)}.status-list b{grid-row:1/3;grid-column:2;align-self:center}.store-list a.selected{border:2px solid var(--red);background:#fff7f7}.job-list>div{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.status,.badge{display:inline-flex;align-items:center;border-radius:99px;background:#e8edf4;color:#40516b;font-size:12px;font-weight:800;padding:5px 9px}.status.normal,.status.success,.badge.live{background:#dcf7ed;color:#087653}.status.error,.status.failed,.status.needs_attention,.badge.off{background:#fee2e2;color:#b42318}.status.running{background:#dbeafe;color:#1d4ed8}.status.pending,.status.configured,.status.read_verified,.badge.waiting{background:#fff1cf;color:#9a5d00}.badge.future{background:#e7effd;color:#315a99}.saved{color:var(--green);font-size:12px;margin-left:6px}.notice{padding:13px 15px;border-radius:10px;margin-bottom:18px}.notice.success{background:#ddf7ec;color:#076647}.notice.error{background:#fee2e2;color:#a62020}.notice.info{background:#e8f1ff;color:#244b82}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .wide{grid-column:1/-1}label{display:grid;gap:7px;font-weight:700}input,select,textarea{width:100%;border:1px solid #bdc9da;border-radius:9px;padding:11px 12px;background:white;color:var(--ink);font:inherit}textarea{min-height:110px;resize:vertical}.empty{text-align:center;padding:60px 20px;background:white;border:1px dashed #bcc8d8;border-radius:16px}.empty.compact{padding:25px}.muted{color:var(--muted)}.preview-bar{display:flex;gap:20px;align-items:end;justify-content:space-between;margin-bottom:18px}.preview-form{display:flex;gap:9px;align-items:end}.preview-bar>div{display:grid}.preview-bar small{color:var(--muted)}.banner-list{display:grid;gap:14px}.banner-card{background:white;border:1px solid var(--line);border-radius:15px;min-height:154px;display:grid;grid-template-columns:28px 54px 230px 1fr auto;align-items:center;gap:16px;padding:17px;box-shadow:var(--shadow)}.banner-card.dragging{opacity:.45;border:2px dashed var(--blue)}.drag{font-size:24px;color:#8390a4;cursor:grab;user-select:none}.rank{display:grid;place-items:center;background:#f0f3f7;border-radius:12px;font-size:22px;font-weight:800;width:52px;height:58px}.banner-card img{width:230px;max-height:90px;object-fit:contain;border:1px solid #e4e9f0;background:#fafafa}.banner-info{display:grid;gap:5px;min-width:0}.banner-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#57708f}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions form{margin:0}.actions button{width:100%}.danger-text{color:var(--red)}dialog{width:min(760px,calc(100vw - 30px));border:0;border-radius:18px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.24)}dialog::backdrop{background:rgba(15,23,42,.55)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{border:0;font-size:22px;padding:4px 10px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f6f8fb}.error-text{color:var(--red)}.review-list{display:grid;gap:10px;margin-bottom:18px}.review-select{grid-template-columns:auto 1fr;align-items:start;border:1px solid var(--line);border-radius:12px;padding:14px}.review-select input{width:auto;margin-top:3px}.review-select span{display:grid;gap:5px}.review-select small{font-weight:400}.review-select em{font-style:normal;color:var(--muted);font-weight:400}.review-card{border:1px solid var(--line);border-radius:13px;padding:17px;margin-top:12px}.review-head{display:flex;gap:11px;align-items:center}.review-head time{margin-left:auto;color:var(--muted)}.review-card p{white-space:pre-wrap}.codebox{min-height:320px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.loading{position:fixed;inset:0;background:rgba(245,248,252,.9);z-index:999;display:grid;place-content:center;text-align:center;gap:13px}.loading[hidden]{display:none}.loading small{color:var(--muted)}.spinner{width:50px;height:50px;border:5px solid #d7dfeb;border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f7f8fb,#e9eef6)}.auth-card{width:min(470px,100%);background:white;border-radius:18px;box-shadow:0 25px 65px rgba(15,23,42,.13);padding:32px;display:grid;gap:17px}.auth-card h1{font-size:25px}.auth-card p{margin:0;color:var(--muted)}@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:1fr}.banner-card{grid-template-columns:28px 50px 180px 1fr}.banner-card img{width:180px}.actions{grid-column:3/-1;display:flex}}@media(max-width:760px){.sidebar{position:static;width:auto}.sidebar nav{grid-template-columns:1fr 1fr}.shell{margin:0}.topbar{padding:12px 16px;height:auto;align-items:flex-start}.store-switcher{display:grid}.store-switcher select{min-width:0}.account{font-size:12px}main{padding:18px}.page-head,.preview-bar{align-items:stretch;flex-direction:column}.metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.banner-card{grid-template-columns:28px 48px 1fr}.banner-card img{grid-column:2/-1;width:100%}.banner-info{grid-column:2/-1}.actions{grid-column:2/-1}.preview-form{align-items:stretch;flex-direction:column}}
:root{--item-screen-ready:1}.panel+.panel{margin-top:22px}.danger,.danger-text{color:var(--red)}button.danger{background:var(--red);color:#fff;border-color:var(--red)}.confirm{display:flex;align-items:center;gap:9px;margin:18px 0}.confirm input{width:auto}.arrow{color:var(--muted);padding:2px 0}
.rating-options{display:flex;flex-wrap:wrap;gap:16px}.rating-options label{display:flex;align-items:center;gap:6px}.rating-options input{width:auto}fieldset{border:1px solid var(--line);border-radius:10px;padding:12px}legend{font-weight:700;padding:0 7px}
.mail-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mail-summary div{border:1px solid var(--line);border-radius:10px;padding:12px}.mail-summary dt{color:var(--muted);font-size:12px;font-weight:700}.mail-summary dd{margin:4px 0 0;font-weight:700}.mail-preview-body{min-height:280px}.mail-candidate-list{display:grid;gap:10px}.mail-candidate{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:14px}.mail-candidate>div{display:grid;gap:4px}.mail-candidate small{color:var(--muted)}
.store-list form{margin:0}.store-choice{width:100%;display:grid;grid-template-columns:1fr;gap:3px;text-align:left;padding:13px}.store-choice small{color:var(--muted)}.store-choice.selected{border:2px solid var(--red);background:#fff7f7}
.drag{border:0;background:transparent;padding:8px 2px;touch-action:none}.loading::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--red),#f59e0b,var(--red));background-size:200% 100%;animation:progress 1.2s linear infinite}@keyframes progress{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.spinner,.loading::before{animation:none}}@media(max-width:760px){.mail-summary{grid-template-columns:1fr}.mail-candidate{grid-template-columns:1fr}.mail-candidate form,.mail-candidate button{width:100%}}
.panel,.status-list,.status-list a{min-width:0}.status-list a{grid-template-columns:minmax(0,1fr) auto}.status-list small{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.job-list>div{grid-template-columns:minmax(0,1fr) auto}.job-list>div small{grid-column:1/-1}}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.gallery-card{border:1px solid var(--line);border-radius:12px;padding:13px;display:grid;gap:9px;min-width:0}.gallery-card img{width:100%;height:130px;object-fit:contain;background:#f8fafc;border-radius:8px}.gallery-card code{overflow-wrap:anywhere}.actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:12px}.metrics small{font-size:13px;margin-left:4px}
.eyebrow{color:var(--red)!important;font-size:12px;font-weight:800;letter-spacing:.06em}.point-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.signal{display:inline-flex;align-items:center;gap:7px;font-weight:800}.signal i{width:12px;height:12px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px #e2e8f0}.signal.normal i{background:#2563eb;box-shadow:0 0 0 4px #dbeafe}.signal.processing i{background:#eab308;box-shadow:0 0 0 4px #fef9c3}.signal.error i{background:#dc2626;box-shadow:0 0 0 4px #fee2e2}.signal.stopped i{background:#64748b;box-shadow:0 0 0 4px #e2e8f0}.connection-status{position:relative}.connection-status summary{cursor:pointer;list-style:none}.connection-status summary::-webkit-details-marker{display:none}.connection-status[open]>div{position:absolute;right:0;top:30px;z-index:30;width:320px;max-width:80vw;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:var(--shadow);font-size:13px}.point-metrics{margin-bottom:8px}.point-checked{text-align:right;margin:0 0 22px}.store-picker{border:1px solid var(--line);border-radius:12px;margin:0 0 18px;padding:14px}.store-picker legend{font-weight:800;padding:0 7px}.store-picker>div{display:flex;gap:10px 18px;flex-wrap:wrap}.check-line{display:flex;align-items:center;gap:8px}.check-line input{width:auto}.point-form{margin-bottom:18px}.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:18px 0}.approval-grid>div{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--line);padding:12px 0}.approval-grid dt{font-weight:800}.approval-grid dd{margin:0}.point-advanced summary{font-size:19px;font-weight:800;cursor:pointer}.point-advanced[open] summary{margin-bottom:20px}.status.waiting_rms_slot{background:#fff1cf;color:#9a5d00}.status.creating,.status.checking_slot{background:#fef9c3;color:#854d0e}.status.duplicate{background:#dbeafe;color:#1d4ed8}.status.draft{background:#e8edf4;color:#40516b}@media(max-width:760px){.approval-grid{grid-template-columns:1fr}.approval-grid>div{grid-template-columns:1fr}.point-head-actions{align-items:stretch;flex-direction:column}.point-head-actions form,.point-head-actions button{width:100%}}
.banner-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.banner-signals{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.banner-signals .connection-status{min-width:190px}.banner-signals .connection-status summary{display:flex;align-items:center;gap:7px}.banner-signals .connection-status summary small{color:var(--muted)}.preview-groups{display:grid;grid-template-columns:1fr 1fr;gap:30px}.preview-groups h2{font-size:17px}.preview-groups ol{margin:0;padding-left:24px}.preview-groups li{margin:7px 0}.banner-tools>summary{cursor:pointer;font-size:18px;font-weight:800}.banner-card img[data-drag-image]{cursor:grab;touch-action:none}@media(max-width:760px){.banner-metrics{grid-template-columns:1fr 1fr}.banner-signals,.preview-groups{display:grid;grid-template-columns:1fr}.banner-signals .connection-status{min-width:0}}
/* User-configurable dashboard and navigation order. */
.ui-drag-handle{display:grid;place-items:center;min-width:22px;min-height:34px;color:#8190a5;cursor:grab;touch-action:none;user-select:none;border-radius:7px;font-weight:900;letter-spacing:-3px}
.ui-drag-handle:hover{background:#e8edf4;color:#40516b}
.ui-drag-handle:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.ui-dragging{opacity:.45}
.nav-sort-item{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:2px;border-radius:9px}
.nav-sort-item .ui-drag-handle{color:#64748b}
.nav-sort-item:hover .ui-drag-handle,.nav-sort-item:focus-within .ui-drag-handle{color:#cbd5e1}
.nav-sort-item a{min-width:0}
.status-sort-item{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px}
.status-sort-item>a{min-width:0}
.dashboard-rms-status{margin-bottom:22px}
.dashboard-rms-status .connection-status>summary{display:flex;align-items:center;gap:7px;width:max-content}
.dashboard-rms-status .connection-status>summary small{color:var(--muted)}
.metrics>a{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.metrics>a:hover,.metrics>a:focus-visible{transform:translateY(-2px);border-color:#94a3b8;box-shadow:0 14px 34px rgba(25,40,65,.12);outline:none}
.job-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.job-filters label{min-width:190px}
.job-filters .muted{margin-left:auto;padding-bottom:11px}
@media(max-width:760px){.nav-sort-item{grid-template-columns:18px minmax(0,1fr)}.nav-sort-item .ui-drag-handle{min-width:18px}.job-filters{align-items:stretch}.job-filters label{min-width:100%}.job-filters .muted{width:100%;margin-left:0;padding-bottom:0}}

.score-up{color:#087653}.score-down{color:#b42318}td small{display:block;margin-top:5px;color:var(--muted)}
.calendar-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center}.calendar-nav,.calendar-view-tabs{display:flex;gap:8px}.calendar-view-tabs .active{background:var(--red);border-color:var(--red);color:#fff}.calendar-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,240px) auto;gap:12px;align-items:end;margin:18px 0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr))}.calendar-weekdays b{text-align:center;padding:9px;background:#f6f8fb;border:1px solid var(--line)}.calendar-day{min-height:150px;border:1px solid var(--line);padding:8px;background:#fff;min-width:0}.calendar-day.blank{background:#f6f8fb}.calendar-day.selected-day{box-shadow:inset 0 0 0 2px var(--red)}.calendar-date{display:inline-grid;place-items:center;width:28px;height:28px;text-decoration:none;color:inherit;font-weight:800}.calendar-events{display:grid;gap:5px;margin-top:5px}.calendar-event{display:grid;grid-template-columns:auto 1fr;gap:2px 6px;padding:6px;border-left:4px solid #94a3b8;border-radius:5px;background:#f4f6f9;font-size:11px;min-width:0}.calendar-event time{font-weight:800}.calendar-event b,.calendar-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event span{grid-column:1/-1}.calendar-event.pending{border-color:#64748b}.calendar-event.running{border-color:#eab308;background:#fefce8}.calendar-event.success{border-color:#2563eb;background:#eff6ff}.calendar-event.error{border-color:#dc2626;background:#fef2f2}.calendar-event.stopped{border-color:#64748b;background:#f1f5f9;opacity:.7}.calendar-agenda{display:grid;gap:14px}.agenda-day{border-top:1px solid var(--line);padding-top:14px}.agenda-event{display:grid;grid-template-columns:70px 92px 160px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:50%;background:#64748b}.calendar-legend i.running{background:#eab308}.calendar-legend i.success{background:#2563eb}.calendar-legend i.error{background:#dc2626}.schedule-create>summary{cursor:pointer;font-size:21px;font-weight:800}.schedule-create[open]>summary{margin-bottom:18px}@media(max-width:950px){.calendar-grid,.calendar-weekdays{grid-template-columns:repeat(7,minmax(90px,1fr))}.month-view{overflow:auto}.agenda-event{grid-template-columns:60px 90px 1fr}.agenda-event>span:nth-of-type(2),.agenda-event small{grid-column:3}}@media(max-width:760px){.calendar-toolbar,.calendar-filters{display:grid;grid-template-columns:1fr}.calendar-nav,.calendar-view-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.calendar-grid,.calendar-weekdays{min-width:760px}.calendar-panel{overflow:auto}.agenda-event{grid-template-columns:1fr}.agenda-event>*{grid-column:1!important}}
.rms-registration .panel-head{margin-bottom:18px}.rms-registration .panel-head p{margin:4px 0}.rms-banner-list{display:grid;gap:12px}.rms-banner-row{display:grid;grid-template-columns:54px 230px minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:15px}.rms-banner-row>a{display:block}.rms-banner-row img{display:block;width:230px;max-height:100px;object-fit:contain;border:1px solid #e4e9f0;background:#fafafa}.rms-banner-detail{min-width:0}.rms-banner-detail>div{display:flex;align-items:center;gap:10px;margin-bottom:9px}.rms-banner-detail dl{display:grid;grid-template-columns:100px minmax(0,1fr);gap:6px 12px;margin:0;font-size:13px}.rms-banner-detail dt{font-weight:800;color:var(--muted)}.rms-banner-detail dd{margin:0;min-width:0;overflow-wrap:anywhere}.rms-banner-detail a{color:var(--blue)}.rms-delete-form{align-self:center}.cabinet-search-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end}.banner-cabinet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.banner-cabinet-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:13px;min-width:0}.banner-cabinet-card img{width:100%;height:110px;object-fit:contain;background:#f8fafc;border-radius:8px}.banner-cabinet-card code{overflow-wrap:anywhere;font-size:12px}.banner-cabinet-card button{width:100%}@media(max-width:760px){.rms-registration .panel-head{display:grid}.rms-registration .panel-head form,.rms-registration .panel-head button{width:100%}.rms-banner-row{grid-template-columns:48px 1fr}.rms-banner-row>a{grid-column:2}.rms-banner-row img{width:100%}.rms-banner-detail,.rms-delete-form{grid-column:1/-1}.rms-delete-form button{width:100%}.rms-banner-detail dl{grid-template-columns:1fr}.rms-banner-detail dt{margin-top:5px}.cabinet-search-form{grid-template-columns:1fr}}
