.loyalty-content{max-width:1720px}

/* This page must retain the desktop shell even when older theme rules are cached. */
@media(min-width:761px){
  .app{display:grid!important;grid-template-columns:var(--sidebar) minmax(0,1fr)!important;min-height:100vh}
  .main{grid-column:2;grid-row:1;min-width:0}

  /* Exact DMS sidebar navigation, retained here so this workspace cannot fall back to browser-default links. */
  .sidebar .nav{display:flex;flex-direction:column;gap:2px;padding:14px 10px 22px}
  .sidebar .nav-title{display:block;margin:13px 0 4px;padding:0 10px;color:#8a8a85;font-size:9px;font-weight:800;letter-spacing:.1em;line-height:1.35;text-transform:uppercase}
  .sidebar .nav-title:first-child{margin-top:2px}
  .sidebar .nav-item{position:relative;display:flex!important;align-items:center;gap:10px;min-height:38px;padding:9px 11px!important;border-radius:8px;color:#b2b2ad!important;font-size:12.5px;font-weight:650;line-height:1.2;text-decoration:none!important;transition:background .15s ease,color .15s ease}
  .sidebar .nav-item:hover{background:#252523;color:#f2f2ee!important;text-decoration:none!important}
  .sidebar .nav-item .ico{width:18px;min-width:18px;color:#a4a4a0;font-size:16px;line-height:1;text-align:center}
  .sidebar .nav-item.active{background:#292927!important;color:#f5c518!important;text-decoration:none!important}
  .sidebar .nav-item.active .ico{color:#f5c518}
  .sidebar .nav-item.active::before{position:absolute;top:7px;bottom:7px;left:-10px;width:3px;border-radius:0 3px 3px 0;background:#f5c518;content:""}
}

.loyalty-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
.loyalty-stats .stat{min-height:90px;display:grid;place-content:center;text-align:center}
.loyalty-stats .stat strong{font-size:24px}
.loyalty-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.view{display:none}.view.active{display:block}

/* The base theme does not own these loyalty-only modals. */
.overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(26,26,26,.52);backdrop-filter:blur(2px)}
.overlay.show{display:flex}
.modal{width:min(760px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(26,26,26,.18)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}
.modal-body{padding:16px 18px;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:#f8f9fa}
.close{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:#59636d;font-size:20px;line-height:1;cursor:pointer}.close:hover{background:#f8f9fa}
.toast{position:fixed;right:22px;bottom:22px;z-index:1100;display:grid;gap:3px;min-width:280px;max-width:min(420px,calc(100vw - 32px));padding:13px 15px;border:1px solid #d7e8dc;border-radius:10px;background:#fff;color:#26313b;box-shadow:0 12px 30px rgba(26,26,26,.16);opacity:0;visibility:hidden;transform:translateY(12px);transition:.18s ease}.toast.show{opacity:1;visibility:visible;transform:translateY(0)}.toast b{font-size:12px}.toast span{color:var(--muted);font-size:11px}.toast.error-toast{border-color:#f0c6c6}
.toolbar-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:12px}
.toolbar-panel h3,.loyalty-panel-head h3,.modal-head h3{margin:0 0 4px;font-size:15px}.toolbar-panel p,.loyalty-panel-head p,.modal-head p{margin:0;color:var(--muted);font-size:10.5px}
.check-inline{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10.5px}
.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.program-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer}.program-card:hover{border-color:#b9c5cf}
.program-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid var(--line)}
.program-card-head h3{margin:0;font-size:14px}.program-code{display:block;margin-bottom:3px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em}
.program-card-body{padding:13px 15px}.program-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.program-fact{padding:9px;border-radius:8px;background:#f8f9fa;text-align:center}.program-fact small{display:block;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.program-fact b{display:block;margin-top:4px;font-size:10px}
.program-period{margin-top:10px;color:#4b5563;font-size:10px}.program-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 15px;border-top:1px solid var(--line);background:#f8f9fa}
.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:800}.status-live,.status-paid{background:#eaf6ee;color:#247a4a}.status-wait{background:#fff7df;color:#7b5c00}.status-done{background:#edf4fa;color:#2d6ea3}.status-cancel{background:#fceaea;color:#b84242}.status-neutral{background:#eef0f2;color:#58616b}
.progress-filter{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(170px,.8fr) minmax(280px,1.6fr) auto auto auto;gap:9px;align-items:end;padding:14px 16px;border-bottom:1px solid var(--line)}
.progress-filter label{display:grid;gap:5px}.progress-filter label>span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#5f6872}.progress-filter .field{width:100%}
.result-meta{padding:10px 16px;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line);background:#f8f9fa}
.sales-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.sales-progress-card{border:1px solid var(--line);border-left:4px solid #9aa2aa;border-radius:9px;background:#fff;padding:11px 12px;text-align:left}.sales-progress-card.up{border-left-color:#247a4a}.sales-progress-card.down{border-left-color:#b84242}.sales-progress-card.flat{border-left-color:#f5c518}
.sales-progress-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.sales-progress-top b{font-size:12px}.sales-progress-top span{color:var(--muted);font-size:9px}.sales-progress-value{display:flex;align-items:end;justify-content:space-between;gap:8px;margin-top:9px}.sales-progress-value strong{font-size:22px}.sales-progress-card.up strong{color:#247a4a}.sales-progress-card.down strong{color:#b84242}.sales-progress-card.flat strong{color:#8a6a00}.sales-progress-value small{color:var(--muted);font-size:9px;text-align:right}.time-gone-card{border-left-color:#2d6ea3;cursor:default}.time-gone-card strong{color:#2d6ea3}
.loyalty-table-wrap{max-height:64vh}.progress-table-wrap{position:relative;overflow:auto}.progress-table-wrap .loyalty-table thead th{position:sticky;top:0;z-index:2}.loyalty-table{min-width:980px}.loyalty-table tr[data-target]{cursor:pointer}.loyalty-table tr[data-target]:hover{background:#f8f9fa}.customer-cell b{display:block}.customer-cell span{display:block;margin-top:3px;color:var(--muted);font-size:9px}.metric{text-align:right;font-variant-numeric:tabular-nums}.progress-cell{min-width:155px}.progress-line{height:6px;border-radius:999px;background:#e9ecef;overflow:hidden}.progress-line i{display:block;height:100%;max-width:100%;background:#f5c518}.progress-line.on-track i{background:#247a4a}.progress-line.behind i{background:#b84242}.progress-copy{display:flex;justify-content:space-between;margin-top:5px;font-size:9px}.progress-copy b{font-size:10px}.progress-cell.on-track .progress-copy b{color:#247a4a}.progress-cell.behind .progress-copy b{color:#b84242}
.selection-bar{display:none;align-items:center;gap:8px;padding:9px 16px;border-bottom:1px solid var(--line);background:#f8f9fa}.selection-bar.show{display:flex}.reward-table{width:100%;min-width:1100px;table-layout:fixed}.reward-table th,.reward-table td{vertical-align:middle}.reward-table .check-col,.reward-table td:first-child{width:42px;text-align:center}.reward-table th:not(.check-col){text-align:left}
.import-modal{width:min(1040px,100%)}.import-flow{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:15px}.import-flow div{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:750}.import-flow b{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#f5c518;color:#1a1a1a}.import-flow i{width:34px;height:1px;background:var(--line-strong)}
.upload-box{display:grid;grid-template-columns:auto 1fr auto;gap:9px;padding:13px;border:1px solid var(--line);border-radius:9px;background:#f8f9fa}.file-picker{height:38px;display:flex;align-items:center;padding:0 11px;border:1px dashed var(--line-strong);border-radius:7px;background:#fff;color:var(--muted);font-size:10px;cursor:pointer}.file-picker input{display:none}
.import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.import-summary.empty-state{display:block;padding:16px;text-align:center;color:var(--muted);background:#f8f9fa;border-radius:8px}.import-kpi{padding:10px;border:1px solid var(--line);border-radius:8px;text-align:center}.import-kpi small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.import-kpi b{display:block;margin-top:4px;font-size:15px}.validation-list{display:grid;gap:5px;margin-top:10px}.validation-item{padding:8px 10px;border-radius:7px;font-size:10px}.validation-item.error{background:#fceaea;color:#a83939}.validation-item.warning{background:#f8f9fa;border-left:3px solid #f5c518;color:#525b64}
.import-preview{margin-top:11px;overflow:auto}.import-preview table{min-width:820px}.detail-modal{width:min(920px,100%)}.detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.detail-summary div{padding:10px;border:1px solid var(--line);border-radius:8px;text-align:center}.detail-summary small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.detail-summary b{display:block;margin-top:3px}.program-detail-products{padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8f9fa}.program-detail-products h4{margin:0 0 10px;font-size:13px}.program-detail-products>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.program-detail-products p{margin:11px 0 0;font-size:11px}.program-detail-products .scope-note{grid-column:1/-1;margin:0}.product-chip{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:11px;line-height:1.4}.invoice-list{border:1px solid var(--line);border-radius:8px;overflow:hidden}.invoice-row{display:grid;grid-template-columns:130px 1fr 130px;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:10px}.invoice-row:last-child{border-bottom:0}.invoice-row strong:last-child{text-align:right}
.program-editor-modal{width:min(1180px,100%)}
.editor-section{margin-bottom:15px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fff}.editor-section:last-of-type{margin-bottom:0}.editor-section h4{margin:0;font-size:12px}.editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:11px}.editor-grid label,.editor-reason{display:grid;gap:5px}.editor-grid label>span,.editor-reason>span{color:#5f6872;font-size:9px;font-weight:800;text-transform:uppercase}.editor-grid .span-2{grid-column:span 2}.field.compact{min-width:150px;height:34px}.metric-input{width:140px;min-width:110px!important}.editor-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-height:210px;overflow:auto}.editor-choice{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.editor-choice:has(input:checked){border-color:#c9a600;background:#fffbee}.editor-choice b{display:block;font-size:10px}.editor-choice span{display:block;margin-top:2px;color:var(--muted);font-size:9px}.editor-customer-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:260px;overflow:auto}.editor-target-wrap{max-height:330px}.editor-target-wrap .loyalty-table{min-width:900px}.editor-target-wrap input[type=number]{width:145px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:6px;text-align:right}.editor-reason{margin-top:12px}.editor-reason textarea{min-height:70px;padding:10px;border:1px solid var(--line);border-radius:7px;resize:vertical}.editor-reason b{color:#b84242}.legacy-badge{display:inline-flex;margin-left:6px;padding:2px 5px;border-radius:4px;background:#eef0f2;color:#68717b;font-size:8px;font-weight:800}.component-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.component-card{padding:9px;border:1px solid var(--line);border-radius:8px;background:#f8f9fa}.component-card small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.component-card b{display:block;margin-top:4px;font-size:12px}.component-card.deduction b{color:#b84242}
.editor-import-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 11px;padding:10px 12px;border:1px solid #ead374;border-radius:8px;background:#fffbee}.editor-import-bar b{display:block;font-size:10.5px}.editor-import-bar span{display:block;margin-top:3px;color:var(--muted);font-size:9px}.editor-target-wrap .note-input{width:190px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:6px}.target-import-modal{width:min(1280px,100%)}.target-import-mode{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f8f9fa}.target-import-mode label{display:grid;gap:5px;min-width:360px}.target-import-mode label>span{color:#5f6872;font-size:9px;font-weight:800;text-transform:uppercase}.target-import-mode p{margin:0;color:var(--muted);font-size:10px}.target-import-mode p.replace-warning{color:#a83939;font-weight:700}.target-import-modal .import-preview{max-height:420px}.target-import-modal .loyalty-table{min-width:1180px}.import-status{display:inline-flex;padding:3px 6px;border-radius:5px;font-size:8px;font-weight:800}.import-status.ok{background:#eaf6ee;color:#247a4a}.import-status.warning{background:#fff7df;color:#7b5c00}.import-status.error{background:#fceaea;color:#a83939}
@media(max-width:1200px){.program-facts{grid-template-columns:1fr 1fr}.progress-filter{grid-template-columns:1fr 1fr 1.5fr}.sales-card-grid{grid-template-columns:1fr 1fr}.program-grid{grid-template-columns:1fr}.editor-grid,.editor-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-customer-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.loyalty-stats,.loyalty-tabs,.progress-filter,.sales-card-grid,.import-summary,.detail-summary,.component-grid,.editor-grid,.editor-choice-grid,.editor-customer-list,.program-detail-products>div{grid-template-columns:1fr}.upload-box{grid-template-columns:1fr}.import-flow i{width:12px}.program-facts{grid-template-columns:1fr 1fr}.editor-grid .span-2{grid-column:auto}.editor-section-head,.editor-import-bar,.target-import-mode{align-items:stretch;flex-direction:column}.editor-section-head .tools,.editor-import-bar .tools{display:grid;width:100%}.target-import-mode label{min-width:0}.field.compact,.metric-input{width:100%;min-width:0!important}}
