:root{--bg:#f6f6f7;--panel:#fff;--text:#202223;--muted:#6d7175;--line:#e1e3e5;--green:#008060;--green-dark:#006e52;--green-soft:#e4f5ef;--red:#d72c0d;--red-soft:#fff1ed;--amber:#916a00;--amber-soft:#fff5ea;--blue:#2c6ecb;--purple:#6d5bd0;--shadow:0 1px 2px rgba(0,0,0,.07),0 1px 5px rgba(0,0,0,.03)}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{touch-action:manipulation}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 10%,#def2e9 0,transparent 30%),linear-gradient(135deg,#f7f7f7,#ecefed)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 24px 70px rgba(0,0,0,.12)}.logo-tile{width:46px;height:46px;border-radius:12px;background:#111;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800;margin-bottom:20px}.login-card h1{font-size:26px;margin:0 0 8px}.login-card>p{color:var(--muted);margin:0 0 24px}.login-card label{display:grid;gap:6px;margin:13px 0;font-size:12px;font-weight:700;color:#4b4f52}.login-card input{border:1px solid #babfc3;border-radius:8px;padding:11px 12px}.demo-hint{background:#edf7f4;border:1px solid #b8ded2;border-radius:8px;padding:10px;margin-top:14px;font-size:12px}.form-error{color:var(--red);font-size:12px;margin-top:10px;min-height:18px}
.app-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{background:#171717;color:#fff;padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;padding:0 8px 22px}.brand-mark{width:36px;height:36px;border-radius:9px;background:#fff;color:#111;display:grid;place-items:center;font-weight:800;font-size:16px}.brand b{font-size:14px}.brand span{display:block;color:#9c9c9c;font-size:11px;margin-top:1px}.sidebar nav{display:grid;gap:4px}.nav{display:flex;gap:10px;align-items:center;background:transparent;border:0;color:#c9c9c9;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer}.nav span{width:16px;text-align:center}.nav:hover,.nav.active{background:#303030;color:#fff}.sidebar-bottom{margin-top:auto;display:grid;gap:10px}.connection{display:flex;gap:9px;align-items:center;padding:10px;border-radius:9px;background:#262626;font-size:11px;color:#ddd}.connection b,.connection span{display:block}.connection span{color:#a9a9a9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}.dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.dot.live{background:#5bd0a4;box-shadow:0 0 0 4px rgba(91,208,164,.1)}.dot.demo{background:#e0b35a}.user-pill{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-top:1px solid #333}.user-pill b{display:block;font-size:11px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.user-pill span{display:block;color:#8f8f8f;font-size:10px}.user-pill button{border:0;background:transparent;color:#aaa;font-size:17px;cursor:pointer}
main{min-width:0}header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 30px;position:sticky;top:0;z-index:5}h1{font-size:22px;margin:0}header p{margin:3px 0 0;color:var(--muted)}h2{margin:0;font-size:18px}h3{margin:0}.view{display:none;padding:24px 30px 40px}.view.active{display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-head h2{margin:0}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.muted{color:var(--muted)}.eyebrow,.step-kicker{font-size:10px;letter-spacing:.12em;font-weight:800;color:#5b6965}.hero-banner{min-height:150px;border-radius:14px;background:linear-gradient(110deg,#18392f,#0f231d);color:#fff;padding:26px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.hero-banner h2{font-size:24px;margin:5px 0}.hero-banner p{max-width:700px;color:#c9ddd6;margin:0}.hero-banner .eyebrow{color:#91d5bc}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;box-shadow:var(--shadow);display:flex;align-items:center;gap:13px}.card span{display:block;color:var(--muted);font-size:12px}.card b{display:block;font-size:25px;margin-top:3px}.stat-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:800}.stat-icon.live{background:#e4f5ef;color:#006b50}.stat-icon.price{background:#ecf1ff;color:#415b9b}.stat-icon.draft{background:#f1f1f1;color:#555}.stat-icon.alert{background:#fff0ec;color:#b2260d}.dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.notice,.warning{border-radius:10px;padding:14px;margin-top:18px;background:#eef7f5;border:1px solid #b7e1d8}.warning{background:var(--amber-soft);border-color:#f1cfa6}.btn{border:1px solid #babfc3;border-radius:8px;padding:9px 14px;cursor:pointer;font-weight:650;background:#fff;color:#202223}.btn.secondary{background:#fff}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.danger{background:#fff;border-color:#e0aaa0;color:var(--red)}.btn.ghost{background:#f7f7f7;border-color:#e5e5e5;color:#444}.btn.small{padding:6px 9px;font-size:12px}.btn.full{width:100%;margin-top:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.link{background:none;border:0;color:var(--blue);cursor:pointer;padding:5px}.split{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;align-items:start}.builder{position:sticky;top:96px}.builder-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}.builder-title h2{margin-top:2px}.selected-chip{background:#eff3f2;border-radius:999px;padding:5px 8px;font-size:11px;color:#3d514b}.builder label{display:grid;gap:5px;margin:12px 0;color:#4b4f52;font-size:12px;font-weight:650}.builder input,.builder select,.filters input,.filters select{width:100%;border:1px solid #babfc3;border-radius:7px;padding:9px;background:#fff}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.advanced-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;background:#fafafa;border:1px solid var(--line);border-radius:9px;padding:10px}.advanced-check input{width:auto;margin-top:3px}.advanced-check b,.advanced-check small{display:block}.advanced-check small{font-weight:400;color:var(--muted);margin-top:2px}.filters{display:grid;grid-template-columns:minmax(220px,1fr) 190px 155px;gap:8px;margin-bottom:10px}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:7px 0 10px;color:var(--muted)}.toolbar>div{display:flex;align-items:center;gap:7px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}th{font-size:11px;color:var(--muted);background:#fafbfb;text-transform:uppercase;letter-spacing:.03em}.product-cell{display:flex;align-items:center;gap:10px;min-width:235px}.thumb{width:39px;height:49px;border-radius:6px;object-fit:cover;background:#eee}.badge{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:#e4e5e7;color:#4b4f52}.badge.active,.badge.success{background:#aee9d1;color:#004c3f}.badge.failed,.badge.restore_failed{background:#ffd2c7;color:#8e1f0b}.badge.draft,.badge.pending{background:#e4e5e7;color:#4b4f52}.badge.ended,.badge.restored{background:#dedede;color:#555}.badge.skipped{background:#f5e3bd;color:#6f4e00}.badge.sale{background:#fde2dc;color:#9b2d18}.badge.normal{background:#e4f2ec;color:#265b47}.price-cut{text-decoration:line-through;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:14px;color:var(--muted);font-size:12px}.preview-box{margin-top:12px;border:1px dashed #c9cccf;border-radius:9px;padding:11px;max-height:330px;overflow:auto}.preview-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}.preview-summary div{background:#f7f8f8;border-radius:7px;padding:7px;text-align:center}.preview-summary span,.preview-summary b{display:block}.preview-summary span{font-size:10px;color:var(--muted)}.preview-line{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #eee;padding:8px 0}.preview-line small{display:block;color:var(--muted);max-width:200px}.preview-line.skipped{opacity:.65}.price-change{text-align:right}.price-change span,.price-change b{display:block}.price-change span{text-decoration:line-through;color:var(--muted);font-size:11px}.more-row{text-align:center;padding:8px}.tiny{font-size:11px;color:var(--muted)}.warning-text{color:#946b00}.campaign{border:1px solid var(--line);border-radius:11px;padding:15px;margin:10px 0}.campaign-top{display:flex;justify-content:space-between;gap:16px}.campaign-name-line{display:flex;gap:8px;align-items:center}.campaign-name-line h3{font-size:16px}.campaign-meta{color:var(--muted);font-size:12px;margin-top:5px}.campaign-metrics{display:flex;gap:8px}.campaign-metrics div{min-width:70px;background:#f8f8f8;border-radius:8px;padding:8px;text-align:center}.campaign-metrics span,.campaign-metrics b{display:block}.campaign-metrics span{font-size:10px;color:var(--muted);text-transform:uppercase}.campaign-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid #eee}.campaign-items{margin-top:12px}.mini-table{border:1px solid #eee;border-radius:8px}.wrap-cell{white-space:normal;min-width:190px;max-width:350px}.danger-text{color:var(--red)}.empty,.empty-state{text-align:center;color:var(--muted);padding:30px!important}.empty-state b{font-size:15px;color:var(--text)}.recent-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #eee}.recent-row:first-child{border-top:0}.recent-row b,.recent-row span{display:block}.recent-row span{font-size:11px;color:var(--muted);margin-top:2px}.connection-card{display:flex;align-items:center;gap:10px;background:#eff8f4;border:1px solid #c2e2d6;border-radius:9px;padding:12px}.connection-card.demo-card{background:#fff7ea;border-color:#eed2a4}.connection-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:800}.connection-card p{margin:2px 0 0;color:var(--muted);font-size:11px}.status-mini,.status-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eee}.status-mini{margin-top:8px}.status-mini span,.status-list span{color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.settings-grid .panel h2{margin-bottom:14px}.danger-zone{grid-column:1/-1}.help{max-width:930px}.help h2{font-size:23px;margin:5px 0 8px}.help h3{margin-top:23px}.price-example{display:flex;align-items:center;gap:18px;background:#f8f9f9;border:1px solid #eee;border-radius:10px;padding:16px;margin:18px 0}.price-example div:not(.arrow){display:grid;gap:4px}.price-example span{color:var(--muted);font-size:11px}.price-example b{font-size:17px}.arrow{font-size:22px;color:#aaa}pre{white-space:pre-wrap;background:#1d1f21;color:#f5f5f5;border-radius:9px;padding:14px;overflow:auto;font-size:12px}code{background:#f1f2f3;padding:1px 4px;border-radius:4px}.settings-grid pre{margin-top:0}.modal{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:50;display:grid;place-items:center;padding:20px}.modal-card{width:min(480px,100%);background:#fff;border-radius:15px;padding:24px;box-shadow:0 20px 70px rgba(0,0,0,.28)}.modal-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff0e8;color:#9d311d;font-weight:800;margin-bottom:12px}.modal-card h2{font-size:20px}.modal-card p{color:var(--muted)}.confirm-detail{white-space:pre-line;background:#f7f7f7;border-radius:8px;padding:10px;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}#toast{position:fixed;right:22px;top:90px;z-index:70;max-width:430px}.toast{background:#202223;color:#fff;border-radius:9px;padding:12px 14px;box-shadow:0 8px 24px rgba(0,0,0,.25);margin-bottom:8px}.toast.error{background:#8e1f0b}
@media(max-width:1150px){.cards{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.builder{position:static}.dashboard-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar-bottom{margin-top:12px}.connection{display:none}.user-pill{border-top:1px solid #333}.cards{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.danger-zone{grid-column:auto}.view,header{padding-left:14px;padding-right:14px}.campaign-top{display:block}.campaign-metrics{margin-top:12px}.hero-banner{align-items:flex-start;flex-direction:column}.two{grid-template-columns:1fr}}
@media(max-width:520px){.cards{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr}.filters input{grid-column:auto}.toolbar{align-items:flex-start;gap:8px;flex-direction:column}.price-example{align-items:flex-start;flex-direction:column}.arrow{transform:rotate(90deg)}header .btn{padding:8px 9px}.view{padding-top:16px}}

/* SPM_MULTI_DISCOUNT_RULES_V1 */
.rule-help{display:grid;gap:3px;background:#f4f7f6;border:1px solid #dfe7e4;border-radius:9px;padding:10px;margin-top:10px}.rule-help span{font-size:11px;color:var(--muted);line-height:1.45}.rule-list{display:grid;gap:8px;margin-top:10px}.rule-card{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.rule-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.rule-card b,.rule-card span{display:block}.rule-card .rule-meta{font-size:11px;color:var(--muted);margin-top:3px}.rule-remove{border:0;background:#f7f7f7;color:#8e1f0b;border-radius:6px;padding:4px 7px;cursor:pointer;font-weight:800}.rule-clear{margin:8px auto 0;display:block}.rule-badge{margin-left:5px;background:#e7ecff;color:#364b91}.pricing-mode-note{font-size:11px;color:var(--muted)}


/* SPM_SCHEDULER_V1 */
.schedule-toggle{margin-top:10px!important}.schedule-fields{border:1px solid #dfe7e4;background:#f8fbfa;border-radius:9px;padding:9px 10px;margin-top:-5px}.schedule-fields label{margin:4px 0}.schedule-note{font-size:11px;color:var(--muted);line-height:1.45;margin-top:4px}.campaign-schedule{display:grid;gap:3px;margin-top:9px;padding:8px 10px;border-left:3px solid #4b7bff;background:#f6f8ff;border-radius:0 7px 7px 0;font-size:11px}.campaign-schedule b{font-size:10px;text-transform:uppercase;color:#53618a}.campaign-schedule span{color:#313b55}.campaign-schedule small{display:block}.badge.scheduled{background:#e8edff;color:#364b91}.badge.schedule_failed{background:#ffd2c7;color:#8e1f0b}.badge.missed{background:#f5e3bd;color:#6f4e00}

/* SPM_SCHEDULE_LAYOUT_V2 */
.schedule-fields{
  padding:12px;
  overflow:hidden;
}

.schedule-fields .two{
  display:grid;
  grid-template-columns:minmax(0,1fr) !important;
  gap:8px;
}

.schedule-fields .two > label{
  min-width:0;
  width:100%;
  margin:0;
}

.schedule-fields input[type="datetime-local"]{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:10px 11px;
}

.schedule-fields .schedule-note{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid #dfe7e4;
  line-height:1.5;
}

