/* LOYANCE · Design System 1.0 RC3
   Shared by the merchant app, public pages and operator suite.
   Tokens live on plugin roots; no theme-wide reset or remote font request. */
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog,.cl-toast-region){
 --cl-bg:#f4f6f8;--cl-surface:#fff;--cl-surface-soft:#f8fafb;--cl-text:#142c3e;--cl-muted:#617486;--cl-line:#e0e7ed;--cl-dark:#0b2033;
 --cl-accent:#087f75;--cl-accent-hover:#06675f;--cl-tint:#e9f6f3;--cl-success:#087965;--cl-danger:#b33c45;--cl-gold:#a4783c;
 --cl-radius-xl:24px;--cl-radius-lg:20px;--cl-radius-md:14px;--cl-radius-sm:10px;
 --cl-shadow:0 20px 60px #102e4210;--cl-shadow-soft:0 3px 12px #102e4205;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:14px;line-height:1.55;color:var(--cl-text);-webkit-font-smoothing:antialiased;text-align:left;letter-spacing:normal;
}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog,.cl-toast-region),:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog,.cl-toast-region) *{box-sizing:border-box}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(h1,h2,h3,h4,p,ul,ol){padding:0;margin:0;font-family:inherit;letter-spacing:inherit}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(h1,h2,h3,h4){color:var(--cl-text);-webkit-text-fill-color:currentColor;font-weight:650;line-height:1.2;text-transform:none;letter-spacing:-.035em}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) h1{font-size:32px}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) h2{font-size:28px}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) h3{font-size:18px}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) p{color:var(--cl-muted)}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(button,input,select,textarea){font:inherit;letter-spacing:normal;text-transform:none}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(button,a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) button{cursor:pointer}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) a{text-decoration:none;color:var(--cl-accent)}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]):not([type=color]),select,textarea){display:block;width:100%;min-width:0;min-height:46px;padding:11px 13px;border:1px solid #ccd8e0;border-radius:var(--cl-radius-sm);background:#fff;color:var(--cl-text);box-shadow:0 1px 2px #102e4203;line-height:1.45;outline:none;transition:border-color .15s,box-shadow .15s}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) select{padding-right:30px}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) textarea{min-height:110px;resize:vertical}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) ::placeholder{color:#718390;opacity:1}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) :is(input,select,textarea):focus{border-color:var(--cl-accent)!important;box-shadow:0 0 0 3px #087f751c!important}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog,.cl-toast-region) :focus-visible{outline:3px solid #14b8a6!important;outline-offset:3px}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) :is(input[type=checkbox],input[type=radio]){appearance:none;position:relative;display:inline-grid;place-items:center;flex:0 0 19px;width:19px;height:19px;min-width:19px;min-height:19px;padding:0;margin:0;border:1.5px solid #acbcc8;border-radius:5px;background:#fff;vertical-align:middle;cursor:pointer;box-shadow:none}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) :is(input[type=checkbox],input[type=radio])::before{content:none}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) input[type=checkbox]:checked{border-color:var(--cl-accent);background:var(--cl-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 10 3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/17px no-repeat}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) input[type=radio]{border-radius:50%}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) input[type=radio]:checked{border:5px solid var(--cl-accent)}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) :is(button,input,select,textarea):disabled{opacity:.5;cursor:not-allowed;transform:none}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog) svg:not(.cl-qr-image):not(.cl-qr-code svg):not(.cl-webcard-qr svg){width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) img{max-width:100%;height:auto}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) [hidden]{display:none!important}
:where(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) button{min-height:38px;padding:9px 13px;border:1px solid #d4dfe6;border-radius:9px;background:#fff;color:#29495c;font-size:12px;font-weight:500;line-height:1.4}
.cl-control-center .cl-primary-action,.cl-public-shell .cl-primary-action,.cl-app-auth .cl-primary-action,.cl-scanner-app :is(.cl-scan-primary,.cl-earn-btn),.cl-admin-shell .cl-admin-btn-light,.cl-ui-dialog .cl-dialog-accept{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:11px 18px;border:1px solid transparent;border-radius:10px;background:var(--cl-accent);color:#fff;-webkit-text-fill-color:#fff;font-size:13px;font-weight:650;text-decoration:none;line-height:1.4;box-shadow:0 2px 3px #063d3410;transition:background .15s,box-shadow .15s}
.cl-control-center .cl-primary-action:hover,.cl-public-shell .cl-primary-action:hover,.cl-app-auth .cl-primary-action:hover,.cl-scanner-app :is(.cl-scan-primary,.cl-earn-btn):hover,.cl-admin-shell .cl-admin-btn-light:hover,.cl-ui-dialog .cl-dialog-accept:hover{background:var(--cl-accent-hover);box-shadow:0 3px 10px #063d3420}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth) :is(.cl-ghost-action,.cl-secondary-action,.cl-compact-btn,.cl-header-scan),.cl-admin-shell .cl-admin-btn-ghost,.cl-ui-dialog .cl-dialog-cancel{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid #d4dfe6;border-radius:10px;background:#fff;color:var(--cl-text);font-weight:600;font-size:13px;line-height:1.4;box-shadow:0 1px 2px #102e4203;text-decoration:none;transition:background .15s,border-color .15s}
:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth) :is(.cl-ghost-action,.cl-secondary-action,.cl-compact-btn,.cl-header-scan):hover,.cl-admin-shell .cl-admin-btn-ghost:hover,.cl-ui-dialog .cl-dialog-cancel:hover{background:#f4f8f9;border-color:#b3c9ce}
.cl-action-small>span{display:flex;align-items:center;gap:8px}.cl-full-action{width:100%}
.cl-control-center .cl-danger-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid #edccd0;background:#fff7f8;color:var(--cl-danger);border-radius:10px;font-size:13px;font-weight:600}
.cl-control-center .cl-text-button{display:inline-flex;align-items:center;gap:6px;padding:7px 0;border:0;background:none;color:var(--cl-accent);font-size:12px;font-weight:600}
.cl-public-kicker,.cl-panel-kicker,.cl-admin-eyebrow{display:block;color:var(--cl-accent);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px}
.cl-field{display:grid;gap:7px;min-width:0}.cl-field>span{color:#344e60;font-size:12px;font-weight:600}.cl-field>span em{font-weight:400;font-style:normal;color:var(--cl-muted);margin-left:5px}
.cl-field small,.cl-field-hint{font-size:12px;color:var(--cl-muted);line-height:1.5}.cl-field-full{grid-column:1/-1}
.cl-form-grid,.cl-create-form,.cl-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cl-create-form>.cl-primary-action{grid-column:1/-1;justify-self:start}
.cl-form-section+.cl-form-section{margin-top:28px;padding-top:26px;border-top:1px solid var(--cl-line)}
.cl-form-section-head{margin-bottom:18px}.cl-form-section-head strong{display:block;font-size:15px;font-weight:650}.cl-form-section-head span{display:block;margin-top:4px;color:var(--cl-muted);font-size:12px}
.cl-error,.cl-scan-error,.cl-dashboard-error{padding:13px 16px;border:1px solid #edcdd1;background:#fff5f6;border-radius:10px;color:var(--cl-danger);font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.cl-dashboard-error{margin-bottom:20px}.cl-success-inline,.cl-scan-toast{padding:13px 16px;border:1px solid #c4e7dd;background:var(--cl-tint);border-radius:10px;color:var(--cl-success);font-size:13px;margin-top:14px;display:flex;align-items:center;gap:8px}
.cl-form-msg,.cl-note{font-size:12px;color:var(--cl-muted)}
.cl-empty-state,.cl-detail-empty,.cl-scan-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;padding:44px 24px;min-height:220px}
.cl-empty-state strong,.cl-detail-empty strong,.cl-scan-empty strong{font-size:15px;font-weight:600}.cl-empty-state span,.cl-detail-empty span,.cl-scan-empty p{color:var(--cl-muted);font-size:13px;max-width:320px;line-height:1.65}
.cl-muted-empty{display:block;padding:32px 18px;text-align:center;color:var(--cl-muted);font-size:13px}
.cl-inline-loading,.cl-scan-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:35px 20px;color:var(--cl-muted)}
.cl-inline-loading:before,.cl-scan-loading:before{content:"";width:16px;height:16px;border:2px solid #d6e7e4;border-top-color:var(--cl-accent);border-radius:50%;animation:cl-spin 1s linear infinite}
.cl-toast-region{position:fixed;z-index:100010;right:24px;bottom:24px;display:grid;gap:10px;max-width:min(420px,calc(100vw - 32px));pointer-events:none}
.cl-toast{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;background:#fff;border:1px solid var(--cl-line);border-left:3px solid var(--cl-success);border-radius:12px;box-shadow:0 10px 40px #0b203324;pointer-events:auto;animation:cl-enter .18s ease}.cl-toast.is-error{border-left-color:var(--cl-danger)}.cl-toast>span{flex:1;overflow-wrap:anywhere;font-size:13px}.cl-toast button{border:0;background:transparent;color:var(--cl-muted);font:inherit;padding:0 4px;cursor:pointer}
.cl-ui-dialog{width:min(440px,calc(100% - 32px));padding:30px;border:1px solid var(--cl-line);border-radius:20px;background:#fff;box-shadow:0 30px 100px #00131b30;margin:auto;max-height:85dvh;overflow:auto}.cl-ui-dialog:not([open]){display:none}.cl-ui-dialog::backdrop{background:#051c31a6;backdrop-filter:blur(3px)}.cl-ui-dialog h2{font-size:23px;margin-bottom:12px}.cl-ui-dialog p{color:var(--cl-muted);white-space:pre-line;overflow-wrap:anywhere}.cl-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.cl-ui-dialog .cl-dialog-accept.is-danger{background:var(--cl-danger)}
.cl-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes cl-spin{to{transform:rotate(360deg)}}@keyframes cl-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:600px){:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell) :is(input,select,textarea){font-size:16px!important}.cl-form-grid,.cl-create-form,.cl-two-col{grid-template-columns:1fr}.cl-toast-region{right:16px;bottom:calc(88px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}.cl-ui-dialog{padding:24px}.cl-dialog-actions>*{flex:1}}
@media(prefers-reduced-motion:reduce){:is(.cl-control-center,.cl-public-shell,.cl-scanner-app,.cl-app-auth,.cl-admin-shell,.cl-ui-dialog,.cl-toast-region) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
