:root { --ink:#101936; --muted:#69728b; --line:#e5e7ee; --paper:#f7f7f4; --white:#fff; --teal:#c9f2e9; --lilac:#e7e0ff; --cream:#fff0bf; --accent:#2563eb; --danger:#c83e43; font-family:"Segoe UI",system-ui,sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; } body { margin:0; min-width:320px; background:var(--paper); } button,select,input { font:inherit; } button { cursor:pointer; } .app-shell { display:grid; grid-template-columns:236px minmax(0,1fr); min-height:100vh; }
.sidebar { min-height:100vh; background:#111b3a; color:#eef1fa; padding:29px 18px 20px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; } .brand { color:#fff; text-decoration:none; font-size:23px; font-weight:800; letter-spacing:-1.6px; display:flex; gap:9px; align-items:center; padding:0 10px; } .brand-mark { display:inline-flex; gap:2px; align-items:flex-end; height:19px; } .brand-mark i { width:5px; border-radius:6px; background:#73e0cc; display:block; } .brand-mark i:nth-child(1){height:11px}.brand-mark i:nth-child(2){height:19px}.brand-mark i:nth-child(3){height:14px}
.location-card { margin:42px 10px 25px; font-size:12px; color:#aab3cf; line-height:1.7; }.location-card strong{display:block;color:#fff;font-size:13px}.eyebrow { margin:0 0 7px; color:#8994b1; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; letter-spacing:1.1px; font-weight:500; }.eyebrow.ink{color:#77839c}.side-nav{display:grid;gap:6px}.nav-item { border:0; background:transparent; color:#b8c0d8; text-align:left; padding:11px 12px; border-radius:8px; font-size:13px; display:flex; align-items:center; gap:10px; transition:.18s ease; }.nav-item:hover{color:#fff;background:#1d284b}.nav-item.active{background:#27365f;color:#fff;font-weight:700}.nav-icon{font-size:17px;width:15px;text-align:center}.nav-item b{margin-left:auto;background:#73e0cc;color:#10203e;min-width:19px;text-align:center;border-radius:99px;font-size:10px;padding:2px 5px}.sidebar-bottom{margin-top:auto}.machine-state{display:flex;gap:7px;align-items:center;font-size:11px;color:#afbad4;padding:10px}.pulse-dot,.terminal-online i{width:7px;height:7px;border-radius:50%;background:#65d9ad;box-shadow:0 0 0 4px rgba(101,217,173,.12)}.kiosk-install{background:#1c284b;color:#9fe0cf;border:1px solid #2c3a63;border-radius:9px;width:100%;text-align:left;padding:8px 10px;font-size:11px;font-weight:700;margin-top:10px}.kiosk-install:hover{background:#243051}.operator-button{background:#1c284b;color:#fff;border:0;border-radius:9px;width:100%;display:flex;align-items:center;gap:8px;padding:8px;font-size:11px;margin-top:10px}.avatar{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#d4a86a;color:#4b2a10;font-size:9px;font-weight:800}.chevron{margin-left:auto;font-size:18px;color:#9ba6c4}
.content-area { min-width:0; }.topbar{height:72px;padding:0 48px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:rgba(247,247,244,.84);backdrop-filter:blur(8px);position:sticky;top:0;z-index:4}.breadcrumb{font-size:12px;color:#8d95aa}.breadcrumb strong{color:#29324d}.slash{margin:0 9px;color:#b6bccb}.topbar-actions{display:flex;align-items:center;gap:11px}.live-time{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:#7d879c;margin-right:8px}.icon-button{border:1px solid var(--line);background:#fff;width:31px;height:31px;border-radius:50%;color:#5f6b84;font-weight:800}.lock-button{border:1px solid #d7dbe5;background:#fff;border-radius:6px;padding:8px 11px;font-size:11px;color:#43506b;font-weight:700}.lock-button span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#9ca5b7;font-size:9px;margin-left:7px}.menu-button{display:none}.page-content{max-width:1240px;margin:auto;padding:43px 50px 46px}.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:29px}.hero-row h1{font-size:30px;letter-spacing:-1.45px;margin:0 0 9px;line-height:1.15}.hero-copy{margin:0;color:#6f7890;font-size:13px}.primary-button,.outline-button{border:0;border-radius:7px;padding:11px 15px;background:var(--ink);color:#fff;font-size:12px;font-weight:700;box-shadow:0 2px 4px rgba(14,25,56,.14);transition:.18s}.primary-button:disabled,.outline-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none!important}.primary-button:hover{transform:translateY(-1px);background:#1b2854}.primary-button span{font-size:15px;margin-right:4px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}.metric-card{height:145px;border-radius:9px;padding:20px;position:relative;overflow:hidden}.teal-card{background:var(--teal)}.lavender-card{background:var(--lilac)}.cream-card{background:var(--cream)}.metric-label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;letter-spacing:.6px;color:#536476;display:block}.metric-card strong{display:block;font-size:29px;letter-spacing:-1.4px;margin:15px 0 7px}.metric-detail{font-size:10px;color:#526375}.metric-detail b{color:#226c5d}.metric-glyph{position:absolute;right:20px;bottom:14px;font-size:54px;line-height:1;color:rgba(20,49,61,.12);font-weight:800}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:16px}.panel{background:var(--white);border:1px solid #e7e9ef;border-radius:9px}.connection-panel{overflow:hidden}.panel-heading{padding:21px 23px 0;display:flex;justify-content:space-between;gap:10px}.panel-heading h2,.section-heading h2{font-size:17px;margin:0;letter-spacing:-.6px}.privacy-pill{background:#ebfaf7;color:#1b7a68;border-radius:99px;font-size:10px;font-weight:700;height:max-content;padding:5px 8px}.connection-body{padding:24px 23px;display:flex;align-items:center;gap:25px}.qr-shell{position:relative;flex:0 0 131px;width:131px;height:131px;padding:13px;border-radius:8px;border:1px solid #dfe4eb;background:#fff}.qr-code{width:100%;height:100%;background:repeating-linear-gradient(90deg,#172444 0 4px,transparent 4px 8px),repeating-linear-gradient(#172444 0 3px,transparent 3px 7px);opacity:.92;mask-image:linear-gradient(135deg,#000 20%,transparent 20% 25%,#000 25% 45%,transparent 45% 53%,#000 53% 70%,transparent 70% 78%,#000 78%);}.qr-corner{position:absolute;width:28px;height:28px;border:5px solid #172444}.qr-corner.one{left:13px;top:13px}.qr-corner.two{right:13px;top:13px}.qr-corner.three{left:13px;bottom:13px}.qr-corner.four{right:24px;bottom:25px;width:16px;height:16px;border-width:4px}.step-chip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#697994;font-size:9px;letter-spacing:.8px}.connection-copy h3{font-size:17px;letter-spacing:-.5px;margin:8px 0}.connection-copy p{font-size:11px;line-height:1.65;color:#66718a;margin:0 0 13px;max-width:370px}.text-button{background:transparent;border:0;padding:0;color:#2c567d;font-size:11px;font-weight:800}.text-button:disabled{color:#a7aec0;cursor:not-allowed}.text-button span{font-size:15px;margin-left:4px}.connection-footer{border-top:1px solid #edf0f4;padding:11px 22px;display:flex;align-items:center;gap:7px;color:#788399;font-size:10px}.token-icon{font-size:16px}.connection-footer button{margin-left:auto;border:0;background:transparent;font-size:10px;color:#2e5079;font-weight:800}.terminal-panel{display:flex;flex-direction:column}.compact{padding-bottom:3px}.terminal-online{color:#329172;font-size:10px;font-weight:700;display:flex;gap:6px;align-items:center}.terminal-online i{width:6px;height:6px}.terminal-visual{width:178px;margin:24px auto 7px}.terminal-screen{height:117px;border-radius:12px 12px 4px 4px;background:#26365e;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:inset 0 0 0 5px #121e42,0 8px 12px rgba(17,27,58,.12)}.terminal-screen strong{font-size:24px;letter-spacing:-1px}.terminal-screen span:last-child{font-size:9px;color:#bac8e5}.contactless{font-size:23px;letter-spacing:-7px;transform:rotate(-10deg);display:inline-block;margin-right:7px}.terminal-base{height:18px;background:#162444;border-radius:0 0 8px 8px;padding:8px 17px;display:flex;gap:4px;justify-content:center}.terminal-base i{width:5px;height:5px;background:#f0c572;border-radius:50%}.terminal-note{text-align:center;color:#7d879a;font-size:10px;margin:10px 0 18px}.jobs-section{margin-top:30px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.jobs-list{display:grid;gap:8px}.job-row{display:grid;grid-template-columns:minmax(220px,1.4fr) .8fr .9fr auto;align-items:center;gap:15px;background:#fff;border:1px solid #e7e9ef;border-radius:8px;padding:13px 17px}.job-person{display:flex;align-items:center;gap:11px}.job-avatar{width:32px;height:32px;border-radius:7px;display:grid;place-items:center;font-size:10px;font-weight:800}.job-person strong{display:block;font-size:12px}.job-person small,.job-meta{font-size:10px;color:#8490a4}.job-meta{display:flex;flex-direction:column;gap:3px}.job-meta b{font-size:11px;color:#49566d}.job-status{font-size:10px;font-weight:800;display:flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;border-radius:50%}.status-dot.ready{background:#5ed5ae}.status-dot.payment{background:#e8ad39}.status-dot.printing{background:#5389ec}.job-amount{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:500;text-align:right}.privacy-banner{margin-top:25px;border-radius:9px;background:#172544;color:white;display:flex;gap:14px;align-items:center;padding:16px 20px}.shield-icon{font-size:25px;color:#74e0cd}.privacy-banner div{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.privacy-banner strong{font-size:12px}.privacy-banner div span{font-size:10px;color:#bcc7dd}.privacy-link{margin-left:auto;white-space:nowrap;border:0;background:transparent;color:#93e0d0;font-size:10px;font-weight:800}.small-hero{margin-bottom:26px}.queue-table{overflow:hidden}.queue-head,.queue-row{display:grid;grid-template-columns:1.35fr 1fr .85fr .6fr 40px;align-items:center;gap:12px;padding:13px 20px}.queue-head{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#8791a4;font-size:9px;letter-spacing:.7px;background:#fafbfc}.queue-row{border-top:1px solid #eef0f4;font-size:11px}.queue-row strong{font-size:12px}.queue-row .job-person{gap:9px}.row-action{border:0;background:#f2f4f8;color:#43516c;border-radius:5px;padding:6px;font-weight:800}.activity-feed{padding:5px 22px}.activity-item{display:flex;gap:13px;padding:18px 0;border-bottom:1px solid #edf0f4}.activity-item:last-child{border:0}.activity-time{width:57px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#8d98aa;font-size:10px;padding-top:3px}.activity-icon{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e3f6f0;color:#237964;font-size:12px}.activity-item strong{font-size:12px;display:block}.activity-item span{font-size:10px;color:#7b879d;display:block;margin-top:3px}.hidden{display:none!important}
.modal{border:0;padding:0;border-radius:12px;width:min(690px,calc(100vw - 32px));background:#fff;color:var(--ink);box-shadow:0 20px 70px rgba(12,19,45,.3)}.modal::backdrop{background:rgba(14,22,47,.56);backdrop-filter:blur(3px)}.modal-header{display:flex;justify-content:space-between;gap:16px;padding:25px 29px 17px;border-bottom:1px solid #edf0f4}.modal-header h2{font-size:20px;letter-spacing:-.8px;margin:0}.close-button{border:0;width:30px;height:30px;border-radius:50%;background:#f0f2f5;color:#526079;font-size:23px;line-height:1}.customer-steps{display:flex;justify-content:space-between;padding:17px 29px;border-bottom:1px solid #edf0f4}.customer-step{font-size:10px;color:#9ca5b6;font-weight:700;display:flex;gap:6px;align-items:center}.customer-step i{display:grid;place-items:center;border-radius:50%;width:17px;height:17px;background:#e8ebf0;color:#79849a;font-style:normal;font-size:9px}.customer-step.active{color:#1f365b}.customer-step.active i{background:#172544;color:white}.customer-content{padding:26px 29px;min-height:260px}.customer-stage{display:none}.customer-stage.active{display:block}.local-file-card{border:1.5px dashed #c7d1df;border-radius:10px;min-height:179px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:#6c7790}.local-file-card.dragover{background:#f0fbf8;border-color:#3eaf99}.file-icon{display:grid;place-items:center;width:32px;height:36px;border-radius:5px;background:#e5f7f2;color:#228c76;font-size:20px}.local-file-card .file-icon{width:39px;height:43px;font-size:24px}.local-file-card strong{font-size:13px;color:#35435b}.local-file-card span:not(.file-icon){font-size:10px}.outline-button{background:#fff;color:#243454;border:1px solid #d7dce6;box-shadow:none;padding:9px 12px;font-size:11px}.local-notice{display:flex;align-items:flex-start;gap:8px;background:#f2fbf9;border-radius:7px;padding:10px 12px;margin-top:14px;color:#3d776d}.local-notice span{font-weight:800}.local-notice p{margin:0;font-size:10px;line-height:1.5}.local-notice strong{color:#176253}.customer-account-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:9px 2px;font-size:10px;color:#78849a}.customer-account-tabs{display:flex;gap:6px;margin-bottom:14px}.customer-account-tab{flex:1;border:1px solid #dbe0e9;background:#fff;color:#5d6883;border-radius:6px;padding:8px;font-size:11px;font-weight:700}.customer-account-tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.customer-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf0f4;padding:8px 0;font-size:10px}.customer-history-row strong{display:block;font-size:11px;color:#2c3a55}.customer-history-row span{color:#8490a4}.file-summary{display:flex;gap:10px;align-items:center;border:1px solid #e6eaf0;border-radius:7px;padding:13px}.file-summary strong{font-size:12px;display:block}.file-summary div span{font-size:10px;color:#78849a;display:block;margin-top:2px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:17px}.choice-grid label{font-size:10px;color:#6d7891;font-weight:700}.choice-grid label>span{display:block;margin-bottom:6px}.choice-grid select,.choice-grid input[type=number]{width:100%;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:9px;color:#273653;font-size:11px}.ink-coverage{margin-top:17px;border:1px solid #e6eaf0;border-radius:8px;padding:13px 15px;background:#fafbfd}.ink-coverage-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;color:#5d6883}.ink-coverage-head b{font-size:15px;color:#1f365b}.ink-coverage-note{display:block;margin-top:9px;font-size:9px;color:#7c879b;line-height:1.5}
.ink-channels{display:block;margin-top:6px;font-family:"DM Mono",ui-monospace,Consolas,monospace;font-size:9px;letter-spacing:.4px;color:#9aa4b8}
.ink-channels:empty{display:none}.ink-coverage-price{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;margin-top:11px;padding-top:9px;font-size:11px;color:#5d6883}.ink-coverage-price strong{font-size:15px;color:#1f365b}.stepper{border:1px solid #dbe0e9;border-radius:6px;display:flex;align-items:center;justify-content:space-between;color:#273653}.stepper button{width:32px;border:0;background:#f6f7f9;height:34px;font-size:17px;color:#4e5c73;flex:0 0 auto;cursor:pointer}.stepper output{font-size:12px;font-weight:800}.stepper input{flex:1;min-width:0;width:100%;border:0;background:transparent;text-align:center;font-family:inherit;font-size:12px;font-weight:800;color:#273653;height:34px;padding:0 2px;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input:focus{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.ready-package{text-align:center;padding:6px 16px}.package-lock{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 13px;border-radius:50%;background:#e2f6f1;color:#197965;font-size:21px}.ready-package h3{font-size:16px;margin:0 0 7px}.ready-package>p{font-size:11px;line-height:1.6;color:#69758c;margin:0 auto 17px;max-width:425px}.ready-package dl{margin:0;text-align:left;border-top:1px solid #edf0f4}.ready-package dl div{display:flex;justify-content:space-between;border-bottom:1px solid #edf0f4;padding:9px 0;font-size:10px}.ready-package dt{color:#7c879b}.ready-package dd{margin:0;font-weight:700;color:#31405b}.modal-footer{padding:16px 29px;border-top:1px solid #edf0f4;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:10px;color:#778399}.modal-footer>div{display:flex;gap:8px}.compact-modal{width:min(455px,calc(100vw - 32px))}.checkout-body{padding:20px 27px 24px}.checkout-job{display:flex;gap:10px;align-items:center;border:1px solid #e7eaf0;border-radius:8px;padding:11px}.checkout-job strong{display:block;font-size:12px}.checkout-job span:not(.file-icon){font-size:10px;color:#7d879a;display:block;margin-top:2px}.checkout-job b{margin-left:auto;font-family:"DM Mono",monospace;font-size:14px}.pickup-name-row{display:block;margin-top:10px}.pickup-name-row>span{display:block;font-size:9px;color:#8490a4;font-weight:700;margin-bottom:5px}.pickup-name-row em{font-style:normal;font-weight:500;color:#a5aec0}.pickup-name-row input,.pickup-name-row textarea{width:100%;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 9px;color:#273653;font-size:11px;font-family:inherit;resize:vertical}.pay-instruction{text-align:center;padding:25px 0 17px}.contactless.large{font-size:37px;color:#2a3e6a}.pay-instruction h3{margin:11px 0 5px;font-size:17px}.pay-instruction p{margin:0;color:#748097;font-size:11px}.pay-button{width:100%;padding:12px}.payment-security{font-size:9px;line-height:1.5;color:#8992a2;text-align:center;margin:12px 16px 0}.printer-row{display:flex;align-items:center;gap:9px;border:1px solid #e7eaf0;border-radius:8px;padding:9px 11px;margin-top:10px}.printer-row select{flex:1;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:7px 8px;color:#273653;font-size:11px}.printer-status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;background:#c4cad6}.printer-status-dot.checking{background:#e8ad39;animation:printer-pulse 1s ease-in-out infinite}.printer-status-dot.online{background:#5ed5ae}.printer-status-dot.offline{background:var(--danger)}@keyframes printer-pulse{0%,100%{opacity:1}50%{opacity:.35}}.printer-route{font-size:9.5px;color:#5d6883;background:#f3f6fa;border-radius:6px;padding:7px 9px;margin:8px 0 0;line-height:1.5}
.printer-route.hidden{display:none}
.printer-warning{background:#fdf3ea;color:#8a5a1e;border:1px solid #f0d0a4;border-radius:7px;padding:9px 11px;font-size:10px;line-height:1.5;margin:10px 0 0}.printer-list-row{display:flex;align-items:center;gap:9px;border:1px solid #e6eaf0;border-radius:8px;padding:10px 11px;margin-bottom:8px}.printer-list-row .printer-info{flex:1;min-width:0}.printer-list-row strong{display:block;font-size:11px}.printer-list-row .printer-info span{font-size:9px;color:#8490a4;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printer-list-row .pill-default{background:#ebfaf7;color:#1b7a68;font-size:9px;font-weight:700;padding:2px 7px;border-radius:99px}.printer-list-row button{border:0;background:#f2f4f8;color:#43516c;border-radius:5px;padding:5px 8px;font-size:9px;font-weight:700}.scan-result-row{display:flex;align-items:center;gap:8px;border:1px solid #e6eaf0;border-radius:7px;padding:8px 10px;margin-bottom:6px}.scan-result-row span.scan-ip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:#273653;flex:0 0 auto}.scan-result-row input{flex:1;min-width:0;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:6px 8px;color:#273653;font-size:11px}.scan-result-row button{border:0;background:var(--ink);color:#fff;border-radius:5px;padding:6px 10px;font-size:9px;font-weight:700;flex:0 0 auto}.local-badge{flex:0 0 auto;font-size:8px;font-weight:700;letter-spacing:.4px;border-radius:99px;padding:2px 6px;background:#eef1f6;color:#5d6883}
.scan-progress{font-size:10px;color:#8490a4;margin-top:8px}.operator-body{padding:22px 27px 6px}.operator-intro{font-size:11px;color:#69758c;line-height:1.6;margin:0 0 17px;word-break:break-word}#clientPaymentPromoOffers button{word-break:break-word;max-width:100%}.pricing-group{border:1px solid #e6eaf0;border-radius:8px;padding:13px 15px;margin-bottom:12px}.pricing-group h3{font-size:11px;margin:0 0 11px;letter-spacing:-.2px}.pricing-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.pricing-row:last-child{margin-bottom:0}.pricing-row label{font-size:10px;color:#6d7891;font-weight:700}.pricing-row input{width:92px;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 9px;color:#273653;font-size:11px;text-align:right}.operator-note{font-size:9px;color:#96a0b3;line-height:1.5;margin:14px 0 20px}.error{color:var(--danger);font-size:10px;margin:0 0 8px}.architecture-flow{padding:31px 27px;display:flex;align-items:stretch;gap:10px}.architecture-flow>div{flex:1;background:#f6f8fc;padding:14px;border-radius:8px}.architecture-flow span{font-family:"DM Mono",monospace;font-size:10px;color:#6781ae}.architecture-flow strong{font-size:11px;display:block;margin:7px 0}.architecture-flow p{font-size:10px;color:#69758c;line-height:1.45;margin:0}.architecture-flow>i{display:flex;align-items:center;font-style:normal;color:#8b95a9}.toast{position:fixed;bottom:22px;right:22px;z-index:10;max-width:calc(100vw - 44px);background:#152446;color:white;border-radius:7px;padding:11px 15px;font-size:11px;box-shadow:0 7px 22px rgba(9,20,49,.24);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}
@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:7;left:-245px;transition:left .25s;width:236px}.sidebar.open{left:0}.menu-button{display:block;border:0;background:transparent;font-size:20px;color:#24324f;padding:4px}.topbar{padding:0 24px}.page-content{padding:34px 24px}.workspace-grid{grid-template-columns:1fr}.terminal-panel{min-height:260px}.terminal-visual{margin-top:20px}.metrics{gap:10px}.metric-card{padding:16px}.connection-body{gap:15px}.topbar .breadcrumb{margin-right:auto;margin-left:13px}.lock-button span{display:none}}
@media (max-width:620px){.topbar{height:60px;padding:0 14px}.live-time{display:none}.lock-button span{display:none}.page-content{padding:27px 15px}.hero-row{align-items:flex-start;flex-direction:column;margin-bottom:23px}.hero-row h1{font-size:26px}.primary-button{padding:10px 12px}.metrics{grid-template-columns:1fr}.metric-card{height:104px}.metric-card strong{margin:8px 0 4px}.workspace-grid{gap:12px}.panel-heading{padding:18px 17px 0}.connection-body{padding:20px 17px;flex-direction:column;text-align:center}.connection-copy p{max-width:400px}.connection-footer{padding:10px 15px}.terminal-panel{min-height:0}.terminal-visual{margin:19px auto 3px}.job-row{grid-template-columns:1fr auto;gap:9px;padding:12px}.job-row .job-meta{display:none}.privacy-banner{align-items:flex-start;flex-wrap:wrap}.privacy-banner div{display:block;flex:1}.privacy-banner div span{display:block;margin-top:4px}.privacy-link{margin-left:39px}.queue-head{display:none}.queue-row{grid-template-columns:1fr auto;padding:13px}.queue-row>*:nth-child(2),.queue-row>*:nth-child(3){display:none}.customer-steps{padding:14px 18px}.customer-step{font-size:0}.customer-step i{font-size:9px}.customer-content{padding:20px 18px;min-height:250px}.modal-header,.modal-footer{padding-left:18px;padding-right:18px}.choice-grid{grid-template-columns:1fr}.architecture-flow{flex-direction:column;padding:20px}.architecture-flow>i{justify-content:center;transform:rotate(90deg);height:10px}.modal-footer{align-items:flex-end}.modal-footer>span:not(:only-child){max-width:150px}.checkout-body{padding:18px}}
.client-body{background:#eef1f7;min-height:100vh;padding:30px 20px}.client-shell{max-width:760px;margin:0 auto}.client-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:68px}.client-brand{color:var(--ink);padding:0;font-size:24px}.client-brand em{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;letter-spacing:1px;font-style:normal;color:#64728c;background:#dce4f2;border-radius:3px;padding:3px 5px;margin-left:-3px}.client-install{border:1px solid #cbd3e1;background:#fff;color:#263653;border-radius:6px;padding:8px 11px;font-size:11px;font-weight:800}.client-hero{text-align:center;margin-bottom:28px}.client-hero h1{font-size:31px;letter-spacing:-1.5px;line-height:1.1;margin:0 0 11px}.client-hero>p:last-child{font-size:13px;color:#66728a;max-width:490px;margin:0 auto;line-height:1.6}.client-card{background:#fff;border:1px solid #e2e6ee;border-radius:12px;box-shadow:0 15px 35px rgba(31,46,80,.08);overflow:hidden}.client-progress{display:flex;align-items:center;padding:20px 29px;border-bottom:1px solid #edf0f4}.client-progress span{font-size:10px;color:#9ba4b4;font-weight:800;display:flex;align-items:center;gap:5px}.client-progress b{font-weight:800}.client-progress i{height:1px;background:#e0e4eb;flex:1;margin:0 13px}.client-progress span.active{color:#26395e}.client-stage{padding:29px;display:none;min-height:280px}.client-stage.active{display:block}.client-drop{min-height:190px}.connect-kiosk{text-align:center;max-width:390px;margin:0 auto}.connect-kiosk .package-lock{margin-bottom:10px}.connect-kiosk h2{font-size:19px;letter-spacing:-.7px;margin:0 0 7px}.connect-kiosk p{font-size:11px;color:#6f7a90;line-height:1.6;margin:0 auto 20px}.connect-kiosk label{display:block;text-align:left;font-size:10px;color:#68738b;font-weight:800;margin-bottom:6px}.connect-kiosk input{width:100%;border:1px solid #cfd7e4;border-radius:7px;padding:11px 12px;text-align:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;letter-spacing:1.1px;color:#273958;text-transform:uppercase}.scan-button{border:0;background:transparent;color:#2a557f;font-size:11px;font-weight:800;margin-top:12px}.connect-kiosk small{display:block;color:#8a94a6;font-size:9px;margin-top:6px}.ready-summary{border-top:1px solid #ecf0f4;margin-top:22px;padding-top:12px;display:grid;grid-template-columns:95px 1fr;gap:4px;text-align:left;font-size:10px}.ready-summary span{color:#78849a}.ready-summary strong{font-size:10px;color:#33415d}.ready-price-note{font-size:9px;color:#8a94a6;line-height:1.5;margin:8px 0 0}.client-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 29px;border-top:1px solid #edf0f4}.client-footer>div{display:flex;align-items:center;gap:18px}.client-footer>div>span{font-size:10px;color:#778399}.client-safety{display:flex;gap:13px;margin:21px 7px 0;color:#59677e}.client-safety>span{font-size:24px;color:#258777}.client-safety strong{font-size:11px;color:#35445f}.client-safety p{font-size:10px;line-height:1.5;margin:3px 0 0}.complete-message{text-align:center;padding:30px 32px}.complete-message>span{display:grid;place-items:center;width:49px;height:49px;margin:0 auto 14px;border-radius:50%;background:#dff5ef;color:#1a816c;font-size:24px;font-weight:800}.complete-message h3{font-size:16px;margin:0 0 7px}.complete-message p{font-size:11px;color:#6e798f;line-height:1.6;margin:0}@media(max-width:620px){.client-body{padding:19px 13px}.client-header{margin-bottom:47px}.client-hero h1{font-size:27px}.client-progress{padding:16px 18px}.client-progress b{display:none}.client-progress i{margin:0 9px}.client-stage{padding:20px 17px;min-height:270px}.client-footer{padding:13px 17px;flex-wrap:wrap;row-gap:8px}.client-footer>div{flex:1 1 100%;justify-content:flex-end}.client-footer>div>span{display:block;flex:1 1 100%;text-align:right;order:-1;white-space:normal}.client-safety{margin:18px 3px 0}.ready-summary{grid-template-columns:82px 1fr}}
.job-status-card{border:1px solid #e2e6ee;border-radius:10px;background:#fafbfd;margin-bottom:18px;overflow:hidden}.job-status-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 2px}.job-status-head-actions{display:flex;align-items:flex-start;gap:8px;flex-shrink:0}.job-status-head h2{font-size:14px;margin:3px 0 2px;letter-spacing:-.3px;color:#1f2d4a}.job-status-sub{font-size:10px;font-weight:700;color:#4c6085;margin:0}.job-status-steps{list-style:none;display:flex;justify-content:space-between;margin:16px 18px 0;padding:0}.job-status-steps li{flex:1;text-align:center;position:relative;font-size:8.5px;color:#9ba4b4;font-weight:700}.job-status-steps li:not(:last-child)::after{content:'';position:absolute;top:11px;left:56%;width:88%;height:2px;background:#e0e4eb;z-index:0}.job-status-steps li i{position:relative;z-index:1;display:grid;place-items:center;width:22px;height:22px;margin:0 auto 6px;border-radius:50%;background:#eef1f6;color:#8490a4;font-style:normal;font-size:10px;font-weight:800}.job-status-steps li span{display:block}.job-status-steps li.done i{background:#1a816c;color:#fff}.job-status-steps li.done:not(:last-child)::after{background:#1a816c}.job-status-steps li.active i{background:var(--ink);color:#fff}.job-status-steps li.active{color:#26395e}.job-status-claim{display:inline-flex;align-items:center;margin:14px 18px 0;font-size:10px;font-weight:800;letter-spacing:.3px;padding:5px 11px;border-radius:99px}
.job-status-claim.unclaimed{background:#fff0bf;color:#7a5b0a}
.job-status-claim.claimed{background:#dff5ef;color:#1a816c}
.job-status-detail{margin:14px 18px 18px;font-size:11px;color:#5d6883;line-height:1.5;background:#fff;border:1px solid #edf0f4;border-radius:8px;padding:11px 13px}
.job-status-cancelled-files{margin:0 18px 18px;padding:11px 13px;border:1px solid #edf0f4;border-radius:8px;background:#fff}
.job-status-cancelled-total{display:flex;justify-content:space-between;margin:8px 0 0;padding-top:8px;border-top:1px solid #edf0f4;font-size:11px;font-weight:800;color:#1f365b}.job-status-card.declined{background:#fdf5f4}.job-status-card.declined .job-status-detail{background:#fdf0ee;border-color:#f6d9d6;color:#8a2e2e}.job-status-card.declined .job-status-steps{display:none}
.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}#checkoutPaymentMethods{grid-template-columns:1fr 1fr 1fr}.payment-option{border:1px solid #dce2eb;background:#fff;border-radius:7px;text-align:left;padding:9px 10px;display:grid;grid-template-columns:23px 1fr;column-gap:6px;color:#57637a}.payment-option>span{grid-row:span 2;font-size:18px;color:#4c6085}.payment-option strong{font-size:10px;color:#34425c}.payment-option small{font-size:8px;margin-top:2px}.payment-option.active{border-color:#4a638d;background:#f3f7fe;box-shadow:0 0 0 2px rgba(65,96,144,.1)}.payment-panel{display:flex;align-items:center;gap:15px;padding:18px 4px 17px}.payment-panel h3{font-size:16px;margin:0 0 5px;letter-spacing:-.5px}.payment-panel p{font-size:10px;color:#748097;line-height:1.55;margin:0 0 7px}.payment-qr{width:80px;height:80px;border:1px solid #d9e0eb;border-radius:6px;padding:8px;flex:0 0 80px;background:#fff}.payment-qr .qr-code,.payment-qr img{width:100%;height:100%;display:block;object-fit:contain}.payment-reference{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#657491;font-size:8px;letter-spacing:.5px}.cash-icon{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:#fff0bf;color:#806418;font-size:28px;font-weight:800}@media(max-width:620px){.payment-panel{gap:11px}.payment-methods{gap:6px}.payment-option{padding:8px}.payment-security{margin-left:3px;margin-right:3px}}
.chat-panel{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.chat-messages{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:7px;padding:2px}
.chat-bubble{max-width:82%;padding:8px 11px;border-radius:10px;font-size:12px;line-height:1.45;word-break:break-word;white-space:pre-wrap}
.chat-bubble.mine{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:3px}
.chat-bubble.theirs{align-self:flex-start;background:#eef1f6;color:#273653;border-bottom-left-radius:3px}
.chat-bubble time{display:block;margin-top:3px;font-size:9px;opacity:.65}
.chat-unavailable{font-size:11px;color:#8490a4;margin:0;background:#f4f5f8;border-radius:7px;padding:9px 10px}
.chat-compose{display:flex;gap:8px;align-items:flex-end}
.chat-compose textarea{flex:1;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 9px;color:#273653;font-size:11px;font-family:inherit;resize:vertical}
.chat-compose .primary-button{flex:0 0 auto;padding:9px 16px}
.byod-chat-card{margin:0 0 18px;border:1px solid #dce5f1;border-radius:10px;background:#f8fbff;overflow:hidden}
.byod-chat-toggle{width:100%;display:flex;align-items:center;gap:11px;padding:13px 14px;border:0;background:transparent;color:#273653;text-align:left;cursor:pointer}
.byod-chat-toggle>span:nth-child(2){min-width:0;flex:1}
.byod-chat-toggle strong{display:block;font-size:12px}.byod-chat-toggle strong b{font:inherit}.byod-chat-toggle small{display:block;margin-top:3px;color:#738097;font-size:9.5px;line-height:1.4}
.byod-chat-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#e2f5ef;font-size:16px}
.byod-chat-chevron{font-size:18px;color:#72809a;transition:transform .18s}.byod-chat-toggle[aria-expanded="true"] .byod-chat-chevron{transform:rotate(180deg)}
.byod-chat-body{padding:13px 14px 14px;border-top:1px solid #e3eaf3;background:#fff}
.byod-chat-body .chat-messages{min-height:72px;margin-bottom:8px}.kiosk-chat-status{margin:0 0 9px;color:#778399;font-size:9px;line-height:1.4}
.byod-chat-body .chat-compose textarea{min-height:54px;max-height:130px}
@media(max-width:620px){.byod-chat-toggle{padding:11px 12px}.byod-chat-body{padding:12px}.byod-chat-toggle small{font-size:9px}}
.tier-list{margin-top:10px}
.tier-head,.tier-row{display:grid;grid-template-columns:1fr 78px 78px 26px;gap:7px;align-items:center}
.tier-head{margin-bottom:4px}
.tier-head span{font-size:8.5px;font-weight:700;color:#9aa4b8;text-transform:uppercase;letter-spacing:.4px;text-align:right}
.tier-head span:first-child{text-align:left}
.tier-row{margin-bottom:6px}
.tier-row label{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#5d6883;white-space:nowrap}
.tier-row label input{width:56px}
.tier-row input{border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:6px 7px;color:#273653;font-size:11px;min-width:0;width:100%;text-align:right}
.tier-row button[data-remove-tier]{border:0;background:transparent;color:#a5aec0;font-size:17px;line-height:1;padding:2px;cursor:pointer;border-radius:5px}
.binding-tier-row{display:grid;grid-template-columns:64px 64px 1fr 1fr 1fr 26px;gap:7px;align-items:center;margin-bottom:6px}
.binding-tier-row input{border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:6px 7px;color:#273653;font-size:11px;min-width:0;width:100%;text-align:right}
.binding-tier-row button[data-remove-binding-row]{border:0;background:transparent;color:#a5aec0;font-size:17px;line-height:1;padding:2px;cursor:pointer;border-radius:5px}
.tier-row button[data-remove-tier]:hover{color:var(--danger);background:#fdeced}
.add-tier{margin-top:4px;font-size:10.5px}
.paper-tier-group{border-top:1px solid #edf0f4;margin-top:11px;padding-top:10px}
.paper-tier-group h4{font-size:10px;color:#4f5e78;margin:0 0 5px}
.paper-tier-group .tier-list{margin-top:0}
.page-picker{border:1px solid #e6eaf0;border-radius:9px;padding:13px 14px;margin-top:12px}
.page-picker.hidden{display:none}
.preview-loading{font-size:10px;color:#8490a4;margin:0;padding:4px 0}
#pagePickerBody.hidden{display:none}
.page-picker-head{display:flex;align-items:center;gap:10px}
.page-picker-head label{font-size:10px;font-weight:700;color:#6d7891;white-space:nowrap}
.page-picker-head input{flex:1;min-width:0;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:7px 9px;color:#273653;font-size:11px}
.page-thumbs{display:flex;gap:7px;overflow-x:auto;padding:11px 2px 3px;scrollbar-width:thin}
.page-thumb{position:relative;flex:0 0 auto;border:2px solid #e0e5ee;border-radius:5px;background:#fff;padding:0;cursor:pointer;line-height:0;opacity:.42;transition:opacity .12s,border-color .12s}
.page-thumb.chosen{opacity:1;border-color:var(--ink)}
.page-thumb canvas{display:block;border-radius:3px;max-height:88px;width:auto}
.page-thumb span{position:absolute;bottom:2px;right:2px;background:rgba(16,25,54,.82);color:#fff;font-size:8px;font-weight:700;border-radius:3px;padding:1px 4px;line-height:1.4}
/* Wraps a grouped-images thumb and its own delete. The wrapper is the flex
   item the row lays out, so the delete can sit over the thumb's top corner
   without a nested button or a shifted row. */
.page-thumb-wrap{position:relative;flex:0 0 auto;line-height:0}
.page-thumb-remove{position:absolute;top:-5px;right:-5px;z-index:1;width:19px;height:19px;border:1px solid #f0d5d8;border-radius:50%;background:#fff;color:#8a4147;font-size:12px;font-weight:800;line-height:1;padding:0;cursor:pointer;box-shadow:0 1px 4px rgba(20,30,60,.16)}
.page-thumb-remove:hover{background:#8a4147;border-color:#8a4147;color:#fff}
/* Sits under the file list as the second, in-place way to add files. */
.file-batch-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.file-batch-add span{font-size:9.5px;color:#8490a4;line-height:1.5}
.sheet-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;border-top:1px solid #edf0f4;padding-top:10px;font-size:9.5px;color:#8490a4}
.sheet-nav{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.sheet-nav button{border:1px solid #dbe0e9;background:#fff;border-radius:5px;width:22px;height:22px;font-size:13px;color:#4e5c73;cursor:pointer;line-height:1}
.sheet-nav button:disabled{opacity:.35;cursor:not-allowed}
.sheet-nav b{font-family:"DM Mono",monospace;font-size:9.5px;color:#273653;min-width:34px;text-align:center}
.sheet-preview{display:flex;justify-content:center;padding:11px 0 2px}
.sheet-preview canvas{border:1px solid #dbe0e9;border-radius:3px;box-shadow:0 3px 12px rgba(20,30,60,.09)}
.preview-bw{filter:grayscale(1)}
.price-breakdown{display:block;margin-top:5px;font-size:9.5px;color:#8490a4;text-align:right}
.price-breakdown.hidden{display:none}
.bulk-badge{display:inline-block;margin-left:7px;font-size:8.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#176253;background:var(--teal);border-radius:99px;padding:2px 7px;vertical-align:middle}
.bulk-badge.hidden{display:none}
.inbox-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #eef1f6;padding:12px 4px}
.inbox-row:last-child{border-bottom:0}
.inbox-main{flex:1;min-width:0}
.inbox-main strong{display:block;font-size:12px;color:var(--ink)}
.inbox-file{display:block;font-size:10px;color:#5d6a82;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inbox-file.muted{color:#a5aec0;font-style:italic}
.inbox-main small{display:block;font-size:9px;color:#8490a4;margin-top:3px;text-transform:uppercase;letter-spacing:.4px}
.inbox-actions{display:flex;gap:10px;flex:0 0 auto}
.nav-item b.hidden{display:none}
.kiosk-picker{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
#toggleLanScanButton{display:block;margin-top:10px}
#lanScanFields{margin-top:9px;border:1px solid #e6eaf0;border-radius:9px;padding:11px 12px}
.kiosk-picker .pricing-row{flex:1;min-width:190px;display:block}
.kiosk-picker label{display:block;font-size:9px;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
.kiosk-picker input{width:100%;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:9px 10px;color:#273653;font-size:12px}
.kiosk-picker .outline-button{flex:0 0 auto;padding:9px 14px}
#kioskList{display:flex;flex-direction:column;gap:7px;margin-top:12px}
.kiosk-option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid #e0e5ee;border-radius:9px;background:#fff;padding:11px 12px;cursor:pointer;font-family:inherit}
.kiosk-option:hover{border-color:var(--accent)}
.kiosk-option.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink) inset;background:#f7f9fc}
.kiosk-directory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.kiosk-directory-head strong{font-size:13px;color:var(--ink)}
.kiosk-directory-head span{font-size:10px;color:#8490a4;text-align:right}
.online-kiosk-list{display:grid;gap:8px}
.kiosk-directory-lists{display:grid;gap:16px}
.kiosk-directory-section{display:grid;gap:8px}
.kiosk-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.kiosk-section-heading strong{font-size:11px;color:var(--ink)}
.kiosk-section-heading span{font-size:9px;color:#8490a4;text-align:right}
.kiosk-search-input{width:100%;border:1px solid #e0e5ee;border-radius:9px;background:#fff;padding:9px 12px;font:inherit;font-size:12px;margin-bottom:10px}
.kiosk-search-input:focus{outline:none;border-color:var(--accent)}
.kiosk-select-label{margin-left:auto;color:#2c567d;font-size:10px;font-weight:800}
.client-stage[data-client-stage="1"]{min-height:0}
.kiosk-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#c9ceda}
.kiosk-dot.online{background:#1b9e7a;box-shadow:0 0 0 3px rgba(27,158,122,.16)}
.kiosk-dot.offline{background:#c8ccd6}
.kiosk-detail strong{display:block;font-size:12px;color:var(--ink)}
.kiosk-detail small{display:block;font-size:10px;color:#8490a4;margin-top:2px}
.kiosk-offline-label{display:inline;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.3px;margin-left:4px}
.kiosk-hours{color:#6d7891!important}
.kiosk-offline-notice{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:#fdf3ea;color:#8a5a1e;border:1px solid #f0d0a4;font-size:11px;line-height:1.5}
.chat-intro{font-size:10px;color:#8490a4;margin:0 0 2px;line-height:1.5}
.send-shortcut{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px dashed #d6dbe6;border-radius:9px;padding:12px;margin-top:12px}
.send-shortcut strong{display:block;font-size:12px;color:var(--ink)}
.send-shortcut p{margin:3px 0 0;font-size:10px;color:#8490a4;line-height:1.5;max-width:44ch}
.send-shortcut .outline-button{flex:0 0 auto;margin-left:auto;padding:9px 14px}
.referral-panel{border:1px solid #e7eaf0;border-radius:8px;padding:11px;margin-bottom:12px;background:#f9fafb}
.referral-points{display:flex;align-items:baseline;gap:8px}
.referral-points span{font-size:9px;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.4px}
.referral-points strong{font-size:20px;color:var(--ink)}
.referral-points small{font-size:10px;color:#8490a4}
.referral-code-row{display:flex;align-items:center;gap:8px;margin-top:8px}
.referral-code-row span{font-size:10px;color:#8490a4}
.referral-code-row code{font-family:"DM Mono",monospace;font-size:13px;font-weight:700;letter-spacing:1px;background:#eef1f6;border-radius:5px;padding:3px 7px;color:#273653}
.supplies-card{border:1px solid #e7eaf0;border-radius:9px;margin:12px 0;background:#fff;overflow:hidden}
.supplies-body{padding:0 12px 12px}
.supply-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #f0f2f6}
.supply-row:last-child{border-bottom:0}
.supply-detail{display:flex;flex-direction:column;min-width:0}
.supply-detail strong{font-size:12px;color:#2c3a55;overflow:hidden;text-overflow:ellipsis}
.supply-detail small{font-size:10px;color:#8490a4;margin-top:1px}
.supply-qty{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.supply-qty b{font-size:12px;color:#1f365b;min-width:14px;text-align:center}
.qty-button{width:26px;height:26px;border-radius:6px;border:1px solid #d7dce6;background:#fff;color:#243454;font-size:15px;font-weight:700;line-height:1;padding:0}
.qty-button:disabled{opacity:.4}
.order-total-card{border:1px solid #e7eaf0;border-radius:9px;padding:12px;margin:12px 0;background:#fafbfd}
.order-line{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#5d6883;padding:4px 0}
.order-line b{color:#2c3a55;font-weight:700}
.order-line.points b{color:#1b7a68}
.order-line.total{border-top:1px solid #e7eaf0;margin-top:5px;padding-top:9px;font-size:12px;font-weight:700;color:#1f365b}
.order-line.total b{font-size:17px;letter-spacing:-.5px;color:var(--ink)}
.points-optin{display:flex;align-items:flex-start;gap:9px;margin:8px 0;padding:9px;border:1px solid #d9e7e3;border-radius:7px;background:#f4fbf9;cursor:pointer}
.points-optin input{width:auto;margin-top:2px}
.points-optin strong{display:block;font-size:11px;color:#176253}
.points-optin small{display:block;font-size:10px;color:#5d8b81;margin-top:1px;line-height:1.4}
.payment-summary{margin:0 0 12px;padding:9px 11px;border-radius:7px;background:#f4fbf9;color:#176253;font-size:11px;font-weight:700;line-height:1.5;word-break:break-word}
.decline-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.decline-preset{border:1px solid #d7dce6;background:#fff;color:#41506c;border-radius:999px;padding:6px 11px;font-size:10px;font-weight:700;line-height:1.2}
.decline-preset:hover{border-color:#a9b4c8;background:#f6f8fc}
.points-breakdown{margin-top:9px;padding-top:8px;border-top:1px solid #e7eaf0}
.insight-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:8px}
.insight-tile{border:1px solid #e7eaf0;border-radius:8px;padding:9px 11px;background:#fafbfd}
.insight-tile span{display:block;font-size:9px;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.4px}
.insight-tile strong{display:block;font-size:17px;color:var(--ink);margin-top:3px;letter-spacing:-.5px}
.insight-tile small{display:block;font-size:9px;color:#8490a4;margin-top:2px;line-height:1.4}
.insight-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#8490a4;padding:5px 0;border-bottom:1px solid #f0f2f6}
.insight-row:last-child{border-bottom:0}
.insight-row b{font-weight:700;color:#2c3a55}
.insight-caption{margin:10px 0 6px;font-size:9px;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.4px}
.insight-meter{height:5px;border-radius:999px;background:#e6eaf0;overflow:hidden;margin-top:8px}
.insight-meter i{display:block;height:100%;background:#3eaf99}
.spend-chart{display:flex;align-items:flex-end;gap:5px;padding-top:4px}
.spend-bar{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.spend-track{display:flex;align-items:flex-end;width:100%;height:74px}
.spend-bar i{display:block;width:100%;border-radius:3px 3px 0 0;background:#3eaf99}
.spend-bar span{font-size:8px;color:#8490a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.referral-earned{display:block;color:#1b7a68;font-weight:700;margin-top:2px}
.redeem-points-row{border:1px solid #e7eaf0;border-radius:8px;padding:10px 11px;margin-top:10px}
.redeem-points-toggle{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--ink);cursor:pointer}
.redeem-points-toggle b{font-weight:600;color:#8490a4;font-size:10px;margin-left:auto}
.redeem-points-controls,#redeemPointsControls{display:flex;align-items:center;gap:10px;margin-top:9px}
#redeemPointsSlider{flex:1}
#redeemPointsDiscount{font-family:"DM Mono",monospace;font-size:12px;font-weight:700;color:#1b7a68;flex:0 0 auto;min-width:60px;text-align:right}
.file-batch-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.file-batch-card{border:1px solid #e6eaf0;border-radius:9px;padding:13px 15px;background:#fff}
.file-batch-head{display:flex;align-items:center;gap:10px}
.file-batch-head .file-icon{flex:0 0 auto}
.file-batch-head strong{display:block;font-size:12px;color:#273653;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-batch-head span{font-size:10px;color:#78849a;display:block;margin-top:2px}
.file-batch-remove{flex:0 0 auto;border:0;background:#f2f4f8;color:#8a4147;border-radius:6px;width:26px;height:26px;font-size:15px;font-weight:800;line-height:1}
.file-batch-preview-toggle{flex:0 0 auto;white-space:nowrap}
.file-preview-picker{border:1px solid #e6eaf0;border-radius:9px;padding:13px 14px;margin-top:12px}
.file-batch-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-top:12px}
.file-batch-controls label{font-size:9.5px;color:#6d7891;font-weight:700}
.file-batch-controls label>span{display:block;margin-bottom:5px}
.file-batch-controls select,.file-batch-controls input[type=number]{width:100%;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:7px 8px;color:#273653;font-size:10.5px}
.file-batch-controls label.field-missing>span{color:var(--danger)}.file-batch-controls label.field-missing select{border-color:var(--danger);animation:field-missing-blink 1s ease-in-out 3}
@keyframes field-missing-blink{0%,100%{background:#fff;box-shadow:none}50%{background:#fdeceb;box-shadow:0 0 0 3px rgba(200,62,67,.4)}}
.file-batch-kind{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:10px;color:#5d6883}
.file-batch-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;margin-top:11px;padding-top:9px;font-size:10px;color:#7c879b}
.file-batch-foot b{font-size:14px;color:#1f365b;font-family:"DM Mono",monospace}
/* The colour/black tally sits between the coverage note and the total, so the
   two figures read as the breakdown of the number they are next to. Wraps to
   its own line on a narrow phone rather than squeezing the total. */
.color-split-tally{display:flex;flex-wrap:wrap;gap:4px 10px;margin-left:auto;margin-right:12px;font-size:9.5px;line-height:1.4}
.color-split-tally .split-row{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:#6f7a91}
.color-split-tally .split-row i{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.color-split-tally .is-color i{background:linear-gradient(135deg,#e8493f 0%,#f0c419 50%,#3f7fe0 100%)}
.color-split-tally .is-black i{background:#3a4256}
/* An outline rather than a fill: a blank sheet is the absence of ink, and it
   costs nothing, so it should not read as another priced category. */
.color-split-tally .is-blank i{background:#fff;border:1px dashed #b3bccd}
.color-split-tally .is-blank{color:#95a0b3}
.color-split-tally .split-row b{font-size:10px;color:#1f365b;font-family:"DM Mono",monospace}
@media(max-width:620px){.color-split-tally{flex-basis:100%;order:3;margin:6px 0 0}}
.file-batch-note{font-size:9px;color:#96a0b3;margin-top:2px}
.batch-total-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;margin-top:16px;padding-top:13px;font-size:12px;color:#5d6883}
.batch-total-row strong{font-size:19px;color:#1f365b;font-family:"DM Mono",monospace}
/* Sits directly under the job total: these are the counts the bulk tiers are
   resolved from, so they belong with the number they explain. */
.batch-page-tally{margin:5px 0 0;font-size:9.5px;color:#8490a4;line-height:1.5}
.page-thumb.static{opacity:1;cursor:default}
@media(max-width:620px){.file-batch-controls{grid-template-columns:1fr 1fr}}
.inbox-file-list{display:block}
.inbox-file-list .inbox-file{white-space:normal;display:flex;align-items:center;gap:6px}
.inbox-file-list .inbox-file .text-button{flex:0 0 auto}
.inbox-file-detail{display:flex;flex:1;min-width:0;flex-direction:column}
.inbox-file-detail b{font-size:10px;color:#34415a;overflow:hidden;text-overflow:ellipsis}
.inbox-file-detail small{margin:1px 0 0;text-transform:none;letter-spacing:0}
.inbox-file-price{flex:0 0 auto;font-size:10px;color:#1f365b}
.inbox-batch-total{display:block;margin-top:3px;font-size:10px;font-weight:800;color:#1b7a68}
.inbox-row.has-unread{background:#fff8e9;border-left:3px solid #e8a33d;padding-left:8px}
.inbox-chat-unread{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:999px;background:#e8a33d;color:#fff;font-size:10px;font-weight:800;letter-spacing:.02em}
.batch-job-details{display:grid;gap:6px;margin-top:10px;border:1px solid #e7eaf0;border-radius:8px;padding:9px 11px}
.batch-job-details>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px solid #edf0f4}
.batch-job-details>div:last-child{padding-bottom:0;border-bottom:0}
.batch-job-details span{min-width:0}
.batch-job-details strong,.batch-job-details small{display:block}
.batch-job-details strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.batch-job-details small{margin-top:2px;font-size:9px;color:#8490a4}
.batch-job-details b{flex:0 0 auto;font-size:10px;color:#1f365b}
.kiosk-list-controls{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.kiosk-list-controls input[type=text]{flex:1;min-width:160px;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 10px;color:#273653;font-size:12px}
.kiosk-online-toggle{display:flex;align-items:center;gap:6px;font-size:10.5px;color:#5d6883;font-weight:700;white-space:nowrap}
#kioskList{margin-top:9px}
.kiosk-row{display:flex;align-items:center;gap:6px}
.kiosk-row .kiosk-option{flex:1;min-width:0}
.kiosk-favorite-star{flex:0 0 auto;width:34px;height:34px;border:1px solid #e0e5ee;border-radius:8px;background:#fff;color:#c9ceda;font-size:16px;line-height:1;cursor:pointer}
.kiosk-favorite-star:hover{border-color:var(--accent)}
.kiosk-favorite-star.active{color:#e0a530;border-color:#f0d9a8;background:#fdf7ea}
.kiosk-group-label{font-size:9px;font-weight:700;color:#8490a4;text-transform:uppercase;letter-spacing:.5px;margin:11px 0 6px}
.kiosk-group-label:first-child{margin-top:0}
.job-board-row{border-bottom:1px solid #eef1f6;padding:14px 4px}
.job-board-row:last-child{border-bottom:0}
.job-board-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.job-board-head strong{font-size:12.5px;color:var(--ink)}
.job-board-head small{font-size:10px;color:#8490a4}
.job-board-note{font-size:10.5px;color:#5d6883;margin:4px 0 0}
.job-board-files{margin:9px 0;display:flex;flex-direction:column;gap:4px}
.job-board-file{font-size:10px;color:#5d6883;background:#f6f8fb;border-radius:6px;padding:6px 9px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.job-board-file-price{font-family:"DM Mono",monospace;color:#273653;white-space:nowrap}
.job-board-file b{color:#273653}
.job-board-reference{font-size:10.5px;color:#8490a4;margin:8px 0 0}
.job-board-reference b{color:#5d6883}
.job-board-bid{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.job-board-bid input[type=number]{width:110px;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 9px;color:#273653;font-size:12px}
.job-board-bid input[type=text]{flex:1;min-width:150px;border:1px solid #dbe0e9;border-radius:6px;background:#fff;padding:8px 9px;color:#273653;font-size:12px}
.job-board-mine{font-size:10px;font-weight:700;color:#1b7a68;background:#ebfaf7;border-radius:99px;padding:3px 9px}
.client-mode-tabs{display:flex;gap:6px;margin-bottom:16px}
.client-mode-tab{flex:1;border:1px solid #dbe0e9;background:#fff;color:#5d6883;border-radius:7px;padding:9px;font-size:11px;font-weight:700;cursor:pointer}
.client-mode-tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.bidding-head{margin-bottom:10px}
.bidding-head strong{display:block;font-size:14px;color:#1f365b}
.bidding-head span{display:block;font-size:10.5px;color:#78849a;margin-top:3px}
.bidding-list{display:flex;flex-direction:column;gap:9px}
.bid-row{border:1px solid #e6eaf0;border-radius:9px;padding:12px 14px;display:flex;align-items:center;gap:12px}
.bid-row .bid-kiosk{flex:1;min-width:0}
.bid-row .bid-kiosk strong{display:block;font-size:12.5px;color:#1f365b}
.bid-row .bid-kiosk span{display:block;font-size:10px;color:#8490a4;margin-top:2px}
.bid-row .bid-message{font-size:10px;color:#5d6883;margin-top:5px;font-style:italic}
.bid-row .bid-amount{font-family:"DM Mono",monospace;font-size:16px;font-weight:700;color:#1f365b;flex:0 0 auto}
.bid-row button{flex:0 0 auto}
.google-signin-slot{display:flex;justify-content:center;margin-bottom:6px;min-height:0}
.google-signin-slot:empty{margin-bottom:0}

/* The auth-* helpers below are shared: the BYOD modal uses all of them, and
   the kiosk's operator recovery steps in index.html reuse the link/badge ones
   from inside a plain modal. So --auth-accent has to resolve outside
   .auth-modal too — it defaults to the same blue .text-button uses elsewhere
   on the kiosk, and .auth-modal overrides it to the BYOD purple. Without this
   default the color declarations would be invalid at computed-value time and
   silently fall back to inherited body text. */
:root{--auth-accent:#2c567d}

/* Card chrome below is scoped to the BYOD sign-in modal only (client.html) —
   the identical #customerAccountModal markup on the kiosk (index.html) never
   gets the auth-modal class, so it keeps its plain look. */
.auth-modal{--auth-grad-1:#7c3aed;--auth-grad-2:#4338ca;--auth-accent:#5b52e0;border-radius:20px;overflow:hidden}
.auth-modal::backdrop{background:linear-gradient(160deg,var(--auth-grad-1),var(--auth-grad-2))}
.auth-modal .modal-header{position:relative;justify-content:center;text-align:center;padding:28px 40px 8px;border-bottom:0}
.auth-modal .modal-header .eyebrow{display:none}
.auth-modal .modal-header h2{font-size:22px;letter-spacing:-.7px}
.auth-modal .close-button{position:absolute;right:18px;top:18px}
.auth-brand{margin:0 0 10px;font-size:19px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.auth-brand span{color:var(--auth-accent)}
.auth-modal .operator-body{padding:6px 32px 4px}
.auth-modal .operator-intro{text-align:center;max-width:340px;margin:0 auto 18px}
.auth-modal .pricing-group{background:#faf9ff;border-color:#ece8fb}
.auth-field{display:block;margin-bottom:13px}
.auth-field>span{display:block;font-size:11px;font-weight:700;color:#3a4260;margin-bottom:6px}
.auth-field>input,.auth-password-wrap input{width:100%;box-sizing:border-box;border:1.5px solid #e3e0f5;border-radius:12px;background:#faf9ff;padding:12px 14px;font-size:13px;color:var(--ink);font-family:inherit}
.auth-field>input:focus,.auth-password-wrap input:focus{outline:none;border-color:var(--auth-accent);background:#fff}
.auth-password-wrap{position:relative;display:block}
.auth-password-wrap input{padding-right:56px}
.auth-eye-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--auth-accent);font-size:10px;font-weight:800;padding:8px 8px}
.auth-forgot-link,.auth-resend-link{display:block;margin:2px 0 4px;text-align:right;color:var(--auth-accent);font-size:11px;font-weight:700}
.auth-resend-link{text-align:center;margin:14px auto 0}
.auth-back-link{color:#6d7891;font-size:11px;font-weight:700;margin-bottom:12px}
.auth-modal .customer-account-tabs{background:#f2f0fb;border-radius:99px;padding:4px;gap:2px}
.auth-modal .customer-account-tab{border:0;border-radius:99px;background:transparent;color:#6d668f}
.auth-modal .customer-account-tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 6px rgba(76,52,190,.16)}
.auth-modal .primary-button{width:100%;background:linear-gradient(135deg,var(--auth-grad-1),var(--auth-grad-2));border-radius:12px;padding:13px 15px;font-size:13px;box-shadow:0 8px 18px rgba(93,63,211,.28)}
.auth-modal .primary-button:hover{background:linear-gradient(135deg,var(--auth-grad-1),var(--auth-grad-2));filter:brightness(1.05)}
.auth-modal .modal-footer{border-top:0;padding:6px 32px 26px;flex-direction:column;align-items:stretch;gap:10px}
.auth-modal .modal-footer>span{text-align:center;order:2}
.auth-modal .modal-footer>div{display:flex;flex-direction:column;gap:8px;order:1}
.auth-modal .outline-button{width:100%}
.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0 10px;color:#9ba2ba;font-size:10px;font-weight:700}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:#e7e5f5}
.auth-step-copy{font-size:11px;color:#69758c;line-height:1.6;margin:0 0 16px}
.auth-step-copy-center{text-align:center}
.auth-icon-badge{width:46px;height:46px;margin:4px auto 14px;border-radius:14px;background:var(--lilac);color:var(--auth-accent);display:grid;place-items:center;font-size:19px}
.auth-otp-row{display:flex;gap:10px;justify-content:center;margin-bottom:6px}
.auth-otp-box{width:46px;height:52px;text-align:center;font-size:19px;font-weight:800;border:1.5px solid #e3e0f5;border-radius:12px;background:#faf9ff;color:var(--ink)}
.auth-otp-box:focus{outline:none;border-color:var(--auth-accent);background:#fff}
.auth-requirements{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.auth-requirements li{display:flex;align-items:center;gap:8px;font-size:11px;color:#9aa1b5}
.auth-requirements li.met{color:#2c9a6a}
.auth-req-check{width:15px;height:15px;border-radius:50%;background:#eceef3;color:transparent;display:grid;place-items:center;font-size:9px;font-weight:800;flex:0 0 auto}
.pricing-group .totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px}.pricing-group .totals>div{background:#f6f8fc;border-radius:7px;padding:8px;min-width:0}.pricing-group .totals span{display:block;font-size:8px;color:#8a95a9;text-transform:uppercase;letter-spacing:.35px}.pricing-group .totals strong{display:block;font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.operator-overview-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #edf0f4;font-size:9px}.operator-overview-row:last-child{border-bottom:0}.operator-overview-row strong{font-size:10px}.operator-overview-row span{color:#8490a4;text-align:right}
.kiosk-lock-screen{position:fixed;inset:0;z-index:100;background:linear-gradient(145deg,#0f1934,#253b6d);display:grid;place-items:center;padding:20px}.kiosk-lock-card{width:min(360px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:34px;text-align:center;box-shadow:0 28px 80px rgba(0,0,0,.35)}.kiosk-lock-card .brand-mark{margin:0 auto 18px}.kiosk-lock-card h2{font-size:24px;margin:6px 0 8px}.kiosk-lock-card p:not(.eyebrow){font-size:11px;line-height:1.6;color:#69758c;margin:0 0 20px}.kiosk-lock-card .primary-button{width:100%}
.kiosk-lock-card .primary-button,.kiosk-lock-card .kiosk-lock-secondary{display:block}
.kiosk-lock-card .kiosk-lock-secondary{width:100%;margin-top:9px}
.kiosk-lock-card #employeeLoginForm{text-align:left}
.kiosk-lock-card #employeeLoginForm .pickup-name-row{margin-top:0}
.kiosk-lock-card #employeeLoginForm .primary-button{width:100%;margin-top:4px}
.kiosk-lock-card #employeeLoginForm .auth-back-link{display:block;width:100%;text-align:center;margin-top:12px}
.auth-requirements li.met .auth-req-check{background:#2c9a6a;color:#fff}
.invoice-ready-body{padding:28px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.invoice-ready-check{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#dff7ef;color:#176b59;font-size:23px;font-weight:900}.invoice-ready-body p{font-size:11px;color:#6f7a91;margin:0}.invoice-ready-body>strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;color:#263552}.invoice-ready-body .primary-button{text-decoration:none;margin-top:4px}
.history-invoice-link{display:inline-block;margin-top:3px;color:#2c567d!important;font-size:9px;font-weight:800;text-decoration:none}.history-amount{text-align:right;white-space:nowrap}
/* A voided invoice stays reachable for refund reconciliation, but must never
   read like a live sale at a glance. */
.history-invoice-link.voided{color:#8a2020!important;text-decoration:line-through}
.customer-history-row.voided .history-amount>span{text-decoration:line-through;color:#8b93a6}
.history-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.history-delete{border:0;background:transparent;color:#a7aec0;font-size:15px;line-height:1;padding:2px 4px;cursor:pointer}
.history-delete:hover{color:var(--danger)}
.customer-history-row.deleting{opacity:.4;pointer-events:none}
.status-dot.collected{background:#7b879d}
#employeeSalesTotals{grid-template-columns:repeat(4,minmax(0,1fr))}
.employee-collection-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #edf0f4}.employee-collection-row:first-child{border-top:0}.employee-collection-row strong,.employee-collection-row small{display:block}.employee-collection-row strong{font-size:11px}.employee-collection-row small{font-size:9px;color:#8490a4;margin-top:3px}.employee-collection-row>b{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.employee-collection-row .primary-button{padding:8px 10px;font-size:10px}
.collection-method-fieldset{border:0;padding:0;margin:16px 0 0}.collection-method-fieldset legend{font-size:10px;font-weight:800;color:#5d6883;margin-bottom:8px}.collection-payment-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.collection-payment-option{border:1px solid #dce2eb;background:#fff;border-radius:8px;padding:11px 8px;color:#57637a;text-align:center}.collection-payment-option span,.collection-payment-option strong,.collection-payment-option small{display:block}.collection-payment-option span{font-size:20px;color:#4c6085;margin-bottom:5px}.collection-payment-option strong{font-size:11px;color:#34425c}.collection-payment-option small{font-size:8px;margin-top:3px}.collection-payment-option.active{border-color:#4a638d;background:#f3f7fe;box-shadow:0 0 0 2px rgba(65,96,144,.1)}.collection-payment-methods.locked{grid-template-columns:1fr;max-width:200px;margin:0 auto}.collection-payment-option:disabled{cursor:default}
@media(max-width:620px){#employeeSalesTotals{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-collection-row{grid-template-columns:minmax(0,1fr) auto}.employee-collection-row .primary-button{grid-column:1/-1}.collection-payment-methods{grid-template-columns:1fr}}
#customerAccountModal[open]{max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}#customerAccountModal .modal-header,#customerAccountModal .modal-footer{flex:none}#customerAccountModal .operator-body{overflow-y:auto;flex:1 1 auto;min-height:0}#clientPaymentModal[open]{max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}#clientPaymentModal .modal-header,#clientPaymentModal .modal-footer{flex:none;min-width:0}#clientPaymentModal .modal-header>div,#clientPaymentModal .modal-footer>span{min-width:0;overflow-wrap:anywhere}#clientPaymentModal>#clientPaymentChoice,#clientPaymentModal>#clientPaymentQrPending{width:100%;min-width:0;flex:1 1 auto;min-height:0}#clientPaymentModal>#clientPaymentQrPending{overflow-y:auto;overflow-x:hidden}#clientPaymentModal>#clientPaymentChoice{display:flex;flex-direction:column;overflow:hidden}#clientPaymentScroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}#clientPaymentModal .payment-methods{flex:0 0 auto;margin-top:0;padding-top:13px;border-top:1px solid #edf0f4}#clientPaymentModal .payment-discounts,#clientPaymentModal .payment-methods,#clientPaymentModal .payment-option{min-width:0}#clientPaymentModal .payment-option strong,#clientPaymentModal .payment-option small,#clientPaymentModal .payment-panel>div,#clientPaymentModal .payment-reference{min-width:0;overflow-wrap:anywhere}
.add-local-files{margin-left:auto;white-space:nowrap;cursor:pointer}
@media(max-width:620px){.file-summary{align-items:flex-start;flex-wrap:wrap}.add-local-files{width:100%;margin-left:42px;text-align:center}}
.status-dot.declined{background:#7b879d}.status-dot.autoprinted{background:#9c6ade}
.queue-status-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.queue-decline-button{color:var(--danger);font-size:9px}

/* Password prompt shown on a file card when the engine reports the document
   is locked (see passwordPromptMarkup in client.js / app.js). Amber rather
   than red: a locked file is a step to complete, not an error to recover
   from. */
.file-password-row{margin-top:11px;padding:11px 12px;border:1px solid #f0d0a4;background:#fdf3ea;border-radius:10px}
.file-password-note{margin:0;font-size:10.5px;line-height:1.5;color:#8a5a1e}
.file-password-controls{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.file-password-controls input{flex:1;min-width:150px;padding:7px 10px;border:1px solid #e3d3bd;border-radius:8px;font-size:11px;background:#fff}
.file-password-controls input:focus{outline:2px solid #d9a441;outline-offset:-1px}
.file-password-controls button{flex:0 0 auto}
.file-password-row .error{margin:8px 0 0;font-size:10px}
+
/* BYOD payment-dialog discounts */
.payment-discounts{border:1px solid #e1e6ee;border-radius:9px;padding:11px;background:#fafbfd;margin:12px 0}
.payment-discounts .points-optin{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;padding:9px;border:1px solid #d9e7e3;border-radius:7px;background:#f4fbf9;cursor:pointer}
.payment-discounts .points-optin input{width:auto;margin-top:2px}
.payment-discounts .points-optin strong{display:block;font-size:11px;color:#176253}
.payment-discounts .points-optin small{display:block;font-size:10px;color:#5d8b81;margin-top:1px;line-height:1.4}
.payment-summary{margin:0 0 12px;padding:9px 11px;border-radius:7px;background:#f4fbf9;color:#176253;font-size:11px;font-weight:700;line-height:1.5;word-break:break-word}
.payment-promo-row>label{display:block;font-size:9px;font-weight:800;color:#68738b;margin-bottom:5px}
.payment-promo-row>div{display:flex;gap:7px}
.payment-promo-row input{min-width:0;flex:1;border:1px solid #cfd7e4;border-radius:7px;padding:9px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;text-transform:uppercase;color:#273958}
.payment-promo-row button{padding:8px 12px}
.payment-promo-status{font-size:9px;font-weight:700;color:#176253;margin:6px 1px 0}
.payment-promo-status.error{color:#b9343b}
.payment-promo-offers{display:flex!important;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.payment-promo-offers.hidden{display:none!important}
.payment-promo-offers button{display:flex;gap:6px;align-items:center;border:1px solid #94cdbf;background:#edf9f5;color:#176253;border-radius:999px;padding:6px 10px;font:inherit;cursor:pointer}
.payment-promo-offers button span{font-size:9px}
.payment-refund-warning{display:block;margin:11px 0 0;padding:9px 10px;border:1px solid #efd7a4;border-radius:7px;background:#fff8e8;color:#765711;font-size:9px;line-height:1.45}
.payment-refund-warning>span{margin-right:5px}
.payment-refund-warning strong{margin-right:3px}
.payment-downpayment{margin:8px 0;padding:10px;border:1px solid #e5bd69;border-radius:8px;background:#fff8e9;color:#704b08;font-size:10px;font-weight:700;line-height:1.45}
.operator-button b{background:#e8776d;color:#3a0f0c;min-width:16px;text-align:center;border-radius:99px;font-size:10px;padding:2px 5px;margin-left:2px}
.operator-button b.hidden{display:none}
.printer-alerts-banner{background:#fdf0d6;color:#5c430c}
.printer-alerts-banner.no-alerts{display:none}
.printer-alerts-banner .shield-icon{color:#c98a1c}
.printer-alerts-banner ul{margin:6px 0 0;padding:0 0 0 16px;font-size:10px;color:#6b551c}
.printer-alerts-banner li{margin-bottom:2px}
