:root{--text:#1a1a1a;--muted:#6b7280;--border:#d1d5db;--bg:#f5f5f5;--card:#fff;--error:#b91c1c;font:16px/1.5 Inter,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{color:var(--text);background:var(--brand-ground);margin:0}#root{background-color:var(--brand-ground);min-height:100svh}.login-wrap{justify-content:center;align-items:center;padding:1.5rem;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;width:100%;max-width:22rem;padding:2rem}h1{margin:0 0 1.5rem;font-size:1.5rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}label{color:var(--muted);font-size:.9rem}input{font:inherit;border:1px solid var(--border);border-radius:6px;padding:.55rem .65rem}button{font:inherit;color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:6px;width:100%;padding:.6rem}button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--error);margin:0 0 1rem;font-size:.9rem}.impersonation-banner{color:#fff;background:#78350f;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.impersonation-banner-text{flex-direction:column;gap:.15rem;font-size:.9rem;display:flex}.impersonation-banner button{color:#78350f;background:#fff;flex:none;width:auto;padding:.5rem .9rem}.impersonate-action{margin-top:1.5rem}.impersonate-action button{width:auto;padding:.5rem .9rem}.app{flex-direction:column;min-height:100svh;display:flex}.shell{background:var(--brand-ground);flex:1;display:flex}.sidebar{background:var(--brand-ink);flex-direction:column;flex:none;width:230px;padding:28px 0;display:flex}.sidebar-topbar{display:contents}.sidebar-brand{margin:0 0 0 28px;display:block}.sidebar-merchant{color:var(--brand-mint);margin:6px 0 0 28px;font-size:10px;font-weight:600;display:block}.side-nav{flex-direction:column;order:3;gap:10px;margin-top:1.5rem;padding:0 16px;display:flex}.side-nav a{height:40px;color:var(--brand-on-ink-muted);border-radius:10px;align-items:center;padding:0 14px;font-size:13px;text-decoration:none;transition:color .18s cubic-bezier(.2,0,0,1);display:flex;position:relative}.side-nav a:hover{color:var(--brand-on-ink)}.side-nav a[aria-current=page]{color:var(--brand-on-ink);font-weight:600}.side-nav-pill{background:var(--brand-cta);border-radius:10px;position:absolute;inset:0}.side-nav-label{z-index:1;position:relative}.sidebar-footer{order:4;margin-top:auto;padding:1.5rem 30px 0}.sidebar-footer button{border:1px solid var(--brand-on-ink-muted);width:100%;min-height:44px;color:var(--brand-on-ink);background:0 0;border-radius:13px;padding:.5rem .9rem;transition:border-color .12s ease-out,transform .16s cubic-bezier(.2,0,0,1)}.sidebar-footer button:hover{border-color:var(--brand-on-ink)}.sidebar-footer button:active{transition:transform 90ms cubic-bezier(.2,0,0,1);transform:scale(.98)}.sidebar-footer .locale-toggle-option:active{transform:none}.sidebar-footer{flex-direction:column;gap:10px;display:flex}.locale-toggle{border:1px solid var(--brand-on-ink-muted);border-radius:10px;gap:2px;padding:2px;display:inline-flex}.sidebar-footer .locale-toggle{width:100%}.locale-toggle .locale-toggle-option{min-width:44px;min-height:44px;color:var(--brand-on-ink-muted);background:0 0;border:none;border-radius:8px;flex:1;padding:0 12px;font-size:13px;font-weight:600;transition:color .18s cubic-bezier(.2,0,0,1);position:relative}.locale-toggle .locale-toggle-option[aria-pressed=true]{color:var(--brand-on-ink)}.locale-toggle-pill{background:var(--brand-cta);border-radius:8px;position:absolute;inset:0}.locale-toggle-label{z-index:1;position:relative}.login-locale{z-index:1;background:var(--brand-card);border-color:var(--brand-card-border);position:fixed;bottom:16px;left:16px}.locale-toggle.login-locale .locale-toggle-option{color:var(--brand-text-muted)}.locale-toggle.login-locale .locale-toggle-option[aria-pressed=true]{color:var(--brand-on-ink)}main{flex-direction:column;flex:1;justify-content:safe center;min-width:0;max-width:60rem;margin:0 auto;padding:1.5rem;display:flex}.route-transition{flex-direction:column;width:100%;min-width:0;display:flex}@media (width<=48rem){.shell{flex-direction:column}.sidebar{display:contents}.sidebar-topbar{background:var(--brand-ink);z-index:20;padding:max(12px, env(safe-area-inset-top)) 16px 12px;flex-flow:wrap;align-items:center;display:flex;position:sticky;top:0}.sidebar-brand{margin:0}.sidebar-footer{flex-direction:row;align-items:center;margin:0 0 0 auto;padding:0}.sidebar-footer button,.sidebar-footer .locale-toggle{width:auto}.side-nav{background:var(--brand-ink);flex-direction:row;order:0;width:100%;margin-top:0;padding:8px 16px 12px;overflow-x:auto}.side-nav a{white-space:nowrap;height:44px;padding:0 16px}main{width:100%;max-width:100%}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:96px;padding:12px}.panel{height:220px}.campaign-band{flex-direction:column;align-items:flex-start}.campaign-cta{width:100%}}.home-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.home-title{color:var(--brand-text);margin:0;font-size:28px;font-weight:700}.home-subtitle{color:var(--brand-text-muted);margin:.35rem 0 0;font-size:13px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:16px;flex-direction:column;gap:.35rem;min-height:128px;padding:17px;display:flex}a.stat{color:inherit;text-decoration:none}.stat-label{color:var(--brand-text-muted);font-size:12px}.stat-value{color:var(--brand-text);font-size:30px;font-weight:700}.stat-caption{color:var(--brand-cta);margin-top:auto;font-size:11px;font-weight:600}.cell-qualifier{color:var(--muted);font-size:11px}.skeleton{background:var(--brand-card-border);border-radius:8px}.stat-skeleton{background:var(--brand-card-border);border-color:#0000}.region-error button{width:auto;padding:.5rem .9rem}.home-panels{grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem;margin-top:1.25rem;display:grid}@media (width<=52rem){.home-panels{grid-template-columns:1fr}}.panel{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:18px;flex-direction:column;height:300px;padding:1.25rem;display:flex}.panel-title{color:var(--brand-text);margin:0;font-size:17px;font-weight:600}.panel-unit{color:var(--brand-text-muted);margin:.15rem 0 0;font-size:11px}.chart-svg{flex:1;width:100%;min-height:0;margin-top:.75rem}.chart-bar{fill:var(--brand-surface)}.chart-bar-today{fill:var(--brand-cta)}.chart-baseline{stroke:var(--brand-card-border);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-skeleton{flex:1;margin-top:.75rem}.feed-list{flex:1;min-height:0;margin:.5rem 0 0;padding:0;list-style:none;overflow-y:auto}.feed-row{justify-content:space-between;align-items:center;gap:1rem;height:52px;display:flex}.feed-label{color:var(--brand-text);font-size:12px;font-weight:600}.feed-time{color:var(--brand-text-muted);white-space:nowrap;font-size:11px}.feed-empty{color:var(--brand-text-muted);margin:.75rem 0 0;font-size:13px}.feed-skeleton{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.feed-skeleton-row{height:40px}.campaign-band{background:var(--brand-surface);border-radius:18px;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.25rem;padding:1.5rem 1.75rem;display:flex}.campaign-title{color:var(--brand-cta);margin:0;font-size:18px;font-weight:700}.campaign-body{color:var(--brand-text);margin:.4rem 0 0;font-size:13px}.filter{color:var(--muted);align-items:center;gap:.4rem;margin-bottom:1rem;font-size:.9rem;display:inline-flex}.filter select{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;padding:.35rem .5rem}.customers-controls{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.customers-controls .filter{margin-bottom:0}.filter input[type=search]{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;width:9rem;max-width:100%;padding:.35rem .5rem}.passes th:has(.th-sort){padding:0}.th-sort{width:100%;min-height:44px;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:.65rem .9rem;display:inline-flex}.th-sort:hover{color:var(--text)}.th-sort:focus-visible{box-shadow:0 0 0 3px var(--brand-mint);border-radius:6px;outline:none}.th-sort-arrow{opacity:.7;font-size:.75rem}.table-scroll{max-width:100%;overflow-x:auto}.passes{border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:18px;width:100%}.passes th,.passes td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.65rem .9rem}.passes th{color:var(--muted);font-size:.85rem;font-weight:600}.passes tr:last-child td{border-bottom:none}.passes .empty{color:var(--muted);text-align:center}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-ready{color:#166534;background:#dcfce7}.badge-not{color:var(--muted);background:#f3f4f6}.pager{align-items:center;gap:1rem;margin-top:1rem;display:flex}.pager button{width:auto;padding:.4rem .8rem}.pager span{color:var(--muted);font-size:.9rem}.passes-error button{width:auto;padding:.5rem .9rem}.passes-note{color:var(--muted);margin:1.25rem 0 0;font-size:.85rem}.merchant-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.merchant-tile{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex}.merchant-disc{aspect-ratio:1;border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:100%;display:flex}.merchant-count{background:var(--card);color:var(--text);border-radius:999px;padding:.2rem .7rem;font-size:1.1rem;font-weight:700}.merchant-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.6rem 0 0;font-weight:600;display:-webkit-box;overflow:hidden}.merchant-shopcode{color:var(--muted);margin:.15rem 0 0;font-size:.85rem}.merchant-owner{max-width:100%;color:var(--muted);overflow-wrap:break-word;white-space:nowrap;text-overflow:ellipsis;margin:.15rem 0 0;font-size:.85rem;overflow:hidden}.merchant-issued{margin:.15rem 0 0;font-size:.85rem}.merchant-disc-skeleton{background:var(--border)}.detail-summary{grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0 0 1.5rem;display:grid}.detail-summary dt{color:var(--muted);font-size:.85rem;font-weight:600}.detail-summary dd{margin:0}a.merchant-tile{color:inherit;text-decoration:none}a.merchant-tile:hover .merchant-name{text-decoration:underline}.badge-blocked{color:var(--error);background:#fee2e2}.readiness{gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.readiness-item{border:1px solid var(--border);background:var(--card);border-radius:8px;grid-template-columns:max-content max-content;align-items:center;gap:.4rem .75rem;padding:.75rem 1rem;display:grid}.readiness-heading{font-weight:600}.readiness-consequence{color:var(--muted);grid-column:1/-1;margin:0;font-size:.9rem}.readiness-logo{border:1px solid var(--border);border-radius:4px;width:auto;height:2rem}.swatch-row{align-items:center;gap:.5rem;display:inline-flex}.swatch{border:1px solid var(--border);border-radius:4px;width:1rem;height:1rem;display:inline-block}.adjust-form{align-items:center;gap:.6rem;margin-bottom:.5rem;display:inline-flex}.adjust-form input{font:inherit;border:1px solid var(--border);background:var(--card);width:6rem;color:var(--text);border-radius:6px;padding:.35rem .5rem}.adjust-form button{width:auto;padding:.4rem .9rem}.push-compose{flex-direction:column;gap:.5rem;max-width:40rem;margin:0 0 2rem;display:flex}.push-compose label{color:var(--muted);font-size:.85rem;font-weight:600}.push-textarea{font:inherit;border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:.5rem .6rem}.push-counter{color:var(--muted);margin:0;font-size:.85rem}.push-counter-over{color:#b91c1c;font-weight:600}.push-note{color:var(--muted);margin:0;font-size:.85rem}.push-actions{gap:.6rem;display:flex}.push-actions button{width:auto;padding:.5rem .9rem}.push-confirm{border:1px solid var(--border);background:var(--card);border-radius:6px;padding:.75rem .9rem}.push-confirm p{margin:0 0 .6rem;font-size:.9rem}.push-success{color:#166534;margin:0;font-weight:600}.passes td.push-message-cell{white-space:normal;max-width:32rem}.campaigns-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.campaigns-title{color:var(--brand-text);margin:0;font-size:28px;font-weight:700}.campaigns-subtitle{color:var(--brand-text-muted);margin:.35rem 0 0;font-size:13px}.campaigns-new-cta{flex:none;width:auto;min-width:170px;padding:0 2rem}.campaigns-card{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:18px;padding:1.5rem}.campaigns-card-heading{color:var(--brand-text);margin:0 0 1rem;font-size:18px;font-weight:600}.campaigns-table{border-collapse:collapse;width:100%}.campaigns-table th,.campaigns-table td{text-align:left;border-bottom:1px solid var(--brand-card-border);white-space:nowrap;padding:.85rem .75rem}.campaigns-table th{color:var(--brand-text-muted);font-size:12px;font-weight:600}.campaigns-table td{color:var(--brand-text-muted);font-size:12px}.campaigns-table tr:last-child td{border-bottom:none}.campaigns-table .empty{color:var(--brand-text-muted);text-align:center}.campaigns-table td.campaign-message-cell{color:var(--brand-text);white-space:normal;max-width:32rem;font-size:14px;font-weight:600}.settings-grid{grid-template-columns:minmax(0,1fr) minmax(0,20rem);align-items:start;gap:2rem;display:grid}@media (width<=40rem){.settings-grid{grid-template-columns:1fr}}.settings-form{max-width:30rem}.settings-form input,.settings-form select{width:100%;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;padding:.55rem .65rem}.settings-form input:disabled{color:var(--muted)}.settings-readonly{margin:0}.field-error{color:var(--error);margin:0;font-size:.85rem}.settings-actions button{width:auto;padding:.5rem 1.1rem}.settings-success{color:#166534;margin:.75rem 0 0;font-weight:600}.settings-note,.settings-loading{color:var(--muted);margin:1rem 0 0;font-size:.85rem}.settings-error button{width:auto;padding:.5rem .9rem}.preview-label{color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.preview-card{border:1px solid var(--border);border-radius:10px;min-height:8rem;padding:1rem 1.25rem 1.5rem}.preview-header{opacity:.85;font-size:.85rem}.preview-logo{max-height:3rem;margin:.5rem 0;display:block}.preview-name{margin-top:.75rem;font-weight:600}.preview-primary{margin-top:.25rem;font-size:1.1rem}.settings-logo{margin-top:1.25rem}.settings-logo-label{color:var(--muted);margin-bottom:.35rem;font-size:.9rem;display:block}.settings-logo-img{border:1px solid var(--border);background:var(--card);border-radius:6px;max-height:4rem}.settings-wallet-qr{margin-top:1.25rem}.settings-wallet-qr-label{color:var(--muted);margin-bottom:.35rem;font-size:.9rem;display:block}.wallet-qr-svg{border:1px solid var(--border);background:#fff;border-radius:6px;width:12rem;height:12rem;padding:.5rem;display:block}.wallet-qr-url{word-break:break-all;color:var(--muted);margin:.5rem 0 1rem;font-size:.85rem}.qr-subtitle{color:var(--brand-text-muted);margin:0 0 1.5rem}.qr-grid{grid-template-columns:minmax(0,1fr) minmax(0,26rem);align-items:start;gap:2rem;display:grid}@media (width<=40rem){.qr-grid{grid-template-columns:1fr}}.qr-card{border:1px solid var(--border);border-radius:18px;padding:1.5rem}.qr-card-title{margin:0 0 .25rem;font-size:1.1rem}.qr-card-subtitle{color:var(--brand-text-muted);margin:0 0 1rem;font-size:.9rem}button.btn-primary{background:var(--brand-cta);height:46px;color:var(--brand-on-ink);border-radius:12px;padding:0;font-size:13px;font-weight:600;transition:background-color .12s ease-out,color .12s ease-out,border-color .12s ease-out,transform .16s cubic-bezier(.2,0,0,1)}button.btn-primary:active{transition:transform 90ms cubic-bezier(.2,0,0,1);transform:scale(.98)}.home-cta{width:220px}.campaign-cta{width:190px}.settings-actions .qr-download-btn{width:220px}.qr-tips{background:var(--brand-surface);border-radius:18px;padding:1.5rem}.qr-tips-heading{color:var(--brand-cta);margin:0 0 .75rem;font-size:18px;font-weight:700}.qr-tips-list{color:var(--brand-text);margin:0 0 1.25rem;padding-left:1.25rem;font-size:13px;list-style:outside}.qr-tips-list li{margin:.25rem 0}.qr-tips-eyebrow{color:var(--brand-cta);margin:0 0 .25rem;font-size:11px;font-weight:600}.qr-tips-body{color:var(--brand-text);margin:0;font-size:12px}.programme-title{color:var(--brand-text);margin:0 0 .25rem;font-size:28px;font-weight:700}.programme-subtitle{color:var(--brand-text-muted);margin:0 0 1.5rem;font-size:13px}.programme-grid{grid-template-columns:minmax(0,700px) minmax(0,380px);align-items:start;gap:2rem;display:grid}@media (width<=60rem){.programme-grid{grid-template-columns:1fr}}.programme-panel{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:18px;padding:21px}.programme-readonly-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=30rem){.programme-readonly-row{grid-template-columns:1fr}}.programme-group-heading{color:var(--brand-text);margin:1.5rem 0 1rem;font-size:18px;font-weight:600}.programme-panel label{color:var(--brand-text);font-size:12px;font-weight:500}.programme-panel input,.programme-panel select{background:var(--brand-tile);border:1px solid var(--brand-card-border);width:100%;height:50px;color:var(--brand-text);border-radius:12px;padding:0 13px;font-size:13px}.programme-panel input:disabled{color:var(--brand-text-muted)}.programme-panel input[type=file]{height:auto;padding:.55rem .65rem}.programme-save-row{margin-top:1.5rem}.programme-save{width:250px}.brand-color-row{align-items:stretch;gap:10px;display:flex;position:relative}.brand-color-swatch{border:1px solid var(--brand-card-border);cursor:pointer;border-radius:12px;flex:none;width:50px;height:50px;padding:0;transition:border-color .12s ease-out,box-shadow .12s ease-out,transform .16s cubic-bezier(.2,0,0,1)}.brand-color-swatch:active{transition:transform 90ms cubic-bezier(.2,0,0,1);transform:scale(.96)}.brand-color-swatch:disabled{cursor:default;opacity:.6}.brand-color-swatch.is-default{background:linear-gradient(to top right, transparent calc(50% - 1px), var(--brand-card-border) calc(50% - 1px), var(--brand-card-border) calc(50% + 1px), transparent calc(50% + 1px)), var(--brand-tile)}.brand-color-input{background:var(--brand-tile);border:1px solid var(--brand-card-border);border-radius:12px;flex:auto;align-items:center;min-width:0;height:50px;padding:0 13px;display:flex}.brand-color-hash{color:var(--brand-text-muted);margin-right:2px;font-size:13px}.brand-color-input input{text-transform:uppercase;letter-spacing:.04em;background:0 0;border:0;border-radius:0;height:auto;padding:0}.brand-color-input input:focus{outline:none}.brand-color-input:focus-within{box-shadow:0 0 0 3px var(--brand-mint)}.brand-color-swatch:focus-visible,.brand-color-preset:focus-visible{box-shadow:0 0 0 3px var(--brand-mint);outline:none}.brand-color-popover{z-index:20;transform-origin:0 0;background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:18px;width:min(288px,100vw - 3rem);padding:14px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 10px 30px #0531291a}.brand-color-popover .react-colorful{width:100%;height:176px}.brand-color-popover .react-colorful__saturation{border-radius:12px 12px 0 0}.brand-color-popover .react-colorful__hue{border-radius:0 0 12px 12px;height:22px}.brand-color-presets{grid-template-columns:repeat(8,1fr);gap:6px;margin-top:12px;display:grid}.brand-color-preset{border:1px solid var(--brand-card-border);cursor:pointer;border-radius:8px;height:40px;padding:0;transition:box-shadow .12s ease-out,transform .16s cubic-bezier(.2,0,0,1)}.brand-color-preset:active{transition:transform 90ms cubic-bezier(.2,0,0,1);transform:scale(.94)}.brand-color-preset.is-selected{box-shadow:0 0 0 2px var(--brand-card), 0 0 0 4px var(--brand-cta)}.account-panels{flex-direction:column;gap:1.5rem;max-width:700px;display:flex}.account-panel{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:18px;padding:21px}.account-panel label{color:var(--brand-text);font-size:12px;font-weight:500}.account-panel input{background:var(--brand-tile);border:1px solid var(--brand-card-border);width:100%;height:50px;color:var(--brand-text);border-radius:12px;padding:0 13px;font-size:13px}.account-email-value{color:var(--brand-text);margin:0;font-size:14px}.account-email-change{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.25rem}.account-email-change button+button{margin-left:.75rem}.account-password-submit-row{margin-top:1.5rem}.account-password-submit{width:250px}.programme-preview{background:#e8ebf0;border-radius:22px;padding:22px}.programme-preview-heading{color:var(--brand-text);margin:0 0 1rem;font-size:14px;font-weight:600}.programme-side{align-content:start;gap:1rem;display:grid}@media (width>=60.0625rem){.programme-side{position:sticky;top:1.5rem}}.pass-state-switch{background:var(--brand-card);border:1px solid var(--brand-card-border);border-radius:12px;gap:2px;margin:0 0 1rem;padding:2px;display:inline-flex}.pass-state-option{min-height:32px;color:var(--brand-text-muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:.35rem .7rem;font-size:12px;font-weight:500;transition:background-color .12s cubic-bezier(.2,0,0,1),color .12s cubic-bezier(.2,0,0,1)}.pass-state-option:focus-visible{box-shadow:0 0 0 3px var(--brand-mint);outline:none}.pass-state-option[aria-pressed=true]{background:var(--brand-surface);color:var(--brand-text);font-weight:600}.pass-card{border-radius:15px;width:min(375px,100%);font-size:13px;overflow:hidden;container-type:inline-size}.pass-header{align-items:center;gap:2.5cqw;padding:3.7cqw 4.3cqw;display:flex}.pass-logo-slot{flex:none;width:7.7cqw;height:7.7cqw}.pass-logo{object-fit:contain;width:100%;height:100%;display:block}.pass-logo-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:max(12px,4cqw);font-weight:600;line-height:1.2;overflow:hidden}.pass-header-field{text-align:right;flex-direction:column;flex:none;align-items:flex-end;max-width:30cqw;display:flex}.pass-field-label{letter-spacing:.09em;opacity:.7;font-size:max(9px,2.7cqw);font-weight:600;line-height:1.3}.pass-header-value{font-size:5.6cqw;font-weight:600;line-height:1.1}.pass-strip,.pass-strip-svg{display:block}.pass-strip-svg>svg{width:100%;height:auto;display:block}.pass-secondary{flex-direction:column;align-items:flex-start;gap:.4cqw;padding:3.7cqw 4.3cqw 0;display:flex}.pass-secondary-value{font-size:max(11px,3.7cqw);font-weight:400;line-height:1.2}.pass-barcode{background:#fff;border-radius:2.7cqw;flex-direction:column;align-items:center;gap:1.6cqw;margin:4.3cqw;padding:3.2cqw;display:flex}.pass-barcode-qr{width:34cqw;height:34cqw;display:block}.pass-barcode-alt{color:#1a1a1a;letter-spacing:.02em;font-size:max(9px,3cqw);font-weight:400}.pass-caption{color:var(--brand-text-muted);margin:.75rem 0 0;font-size:11px;line-height:1.4}.create-section{border:1px solid var(--border);border-radius:6px;margin:0 0 1rem;padding:1rem}.create-section legend{padding:0 .4rem;font-weight:600}.create-section .field>input,.create-section .field>select{width:100%;height:50px;font:inherit;background:var(--brand-tile);border:1px solid var(--brand-card-border);color:var(--brand-text);border-radius:12px;padding:0 13px;font-size:13px}.create-section .field>input:disabled,.create-section .field>select:disabled{color:var(--brand-text-muted)}.create-section .field>label{color:var(--brand-text);font-size:12px;font-weight:500}.create-section .programme-group-heading{margin:1.25rem 0 .75rem;font-size:14px}.field-hint{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.programme-advisory{color:var(--brand-text-muted);background:var(--brand-surface);border-left:3px solid var(--brand-mint);border-radius:8px;margin:.5rem 0 0;padding:.5rem .7rem;font-size:.85rem}.copy-row{align-items:center;gap:.5rem;display:flex}.copy-row input{flex:auto}.warning{color:#7a3e00;background:#fff4e5;border:1px solid #e0a458;border-radius:6px;padding:.75rem;font-weight:600}.created-secrets,.created-checklist,.created-actions{margin:1rem 0}.created-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-variable-latin.woff2)format("woff2")}html{background-color:var(--brand-ground)}:root{--brand-ink:#053129;--brand-cta:#094d38;--brand-mint:#b0f0cf;--brand-surface:#ecf9f2;--brand-card:#fff;--brand-tile:#f9fbfa;--brand-text:#14181f;--brand-text-muted:#636b7a;--brand-on-ink-muted:#b8c7c2;--brand-ground:#f6f9f7;--brand-card-border:#e5e9ec;--brand-on-ink:#fff}.login-wrap{background:var(--brand-ground);overscroll-behavior:none;isolation:isolate;flex-direction:column;gap:1.5rem;min-height:100dvh;position:relative}.login-wrap:before{content:"";background:var(--brand-ground);pointer-events:none;z-index:-1;position:fixed;inset:0}.login-brand{display:block}.login-wrap .card{background:var(--brand-card);border:none;border-radius:18px;padding:2.25rem;box-shadow:0 10px 30px #0531291a}.login-wrap h1{color:var(--brand-text)}.login-wrap label{color:var(--brand-text-muted)}.login-wrap input{background:var(--brand-card);color:var(--brand-text);min-height:44px}.login-wrap input:focus-visible{border-color:var(--brand-cta);box-shadow:0 0 0 3px var(--brand-mint);outline:none}.login-wrap button[type=submit]{background:var(--brand-cta);border-radius:13px;min-height:44px;font-weight:600;transition:background-color .12s ease-out,transform .16s cubic-bezier(.2,0,0,1)}.login-wrap button[type=submit]:not(:disabled):hover{background:var(--brand-ink)}.login-wrap button[type=submit]:not(:disabled):active{transition:transform 90ms cubic-bezier(.2,0,0,1);transform:scale(.98)}.login-wrap button[type=submit]:focus-visible{outline:3px solid var(--brand-mint);outline-offset:2px}.login-wrap button[type=submit]:disabled{opacity:1;cursor:not-allowed;background:#45685c}@media (width<=30rem){.login-wrap .card{padding:1.5rem}}@media (prefers-reduced-motion:reduce){button.btn-primary,button.btn-primary:active,.side-nav a,.brand-color-swatch,.brand-color-swatch:active,.brand-color-preset,.brand-color-preset:active,.pass-state-option,.sidebar-footer button,.sidebar-footer button:active,.login-wrap button[type=submit],.login-wrap button[type=submit]:not(:disabled):active{transition:none}button.btn-primary:active,.brand-color-swatch:active,.brand-color-preset:active,.sidebar-footer button:active,.login-wrap button[type=submit]:not(:disabled):active{transform:none}}.login-notice{color:#166534;text-align:center;margin:0 0 1rem;font-size:.9rem}.login-links{text-align:center;flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin:1rem 0 0;font-size:.9rem;display:flex}.login-links a,.login-links button{color:var(--brand-text-muted);text-decoration:underline}.login-links button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.login-links a:hover,.login-links a:focus-visible,.login-links button:hover,.login-links button:focus-visible{color:var(--brand-text)}.devices button{min-height:44px}.devices-add-cta{flex:none;width:auto;min-width:170px;padding:0 2rem}.devices-panel{margin-bottom:1.5rem}.devices-name-form{flex-direction:column;gap:.5rem;max-width:28rem;display:flex}.devices-name-form .error{margin:0}.devices-code-step p{margin:0 0 .6rem}.devices-code{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--brand-text);white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:40px;font-weight:700}.devices-countdown{font-variant-numeric:tabular-nums;color:var(--brand-text);font-weight:600}.devices-notice{margin:0 0 1rem}.devices-muted{color:var(--brand-text-muted);margin:0;font-size:13px}.devices-limit{margin:0 0 1rem}.devices-list{margin:0;padding:0;list-style:none}.devices-row{border-top:1px solid var(--brand-card-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 0;display:flex}.devices-row:first-child{border-top:none}.devices-row-main{flex-wrap:wrap;align-items:center;gap:.35rem .75rem;min-width:0;display:flex}.devices-name{color:var(--brand-text);overflow-wrap:anywhere;font-weight:600}button.devices-danger{width:auto;color:var(--error);border:1px solid var(--error);background:0 0;border-radius:10px;padding:0 1rem}.devices-confirm{flex-basis:100%}.devices-confirm button.devices-danger{background:var(--error);color:var(--brand-on-ink)}.erase-section{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1.25rem}.erase-confirm h2{margin:0 0 .5rem;font-size:1.05rem}.erase-label{flex-direction:column;gap:.4rem;margin:.25rem 0 .75rem;font-size:.9rem;display:flex}.erase-label input{letter-spacing:.08em;text-transform:uppercase;max-width:12rem;font-size:16px}.erase-confirm .push-actions{flex-wrap:wrap}@media (width<=30rem){.devices-code{font-size:32px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.detail-status{color:var(--brand-text-muted);margin-top:0}.feedback-trigger{right:max(24px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));z-index:20;background:var(--brand-card);border:1px solid var(--brand-card-border);width:auto;height:44px;color:var(--brand-ink);border-radius:22px;align-items:center;gap:8px;padding:0 16px 0 14px;font-size:13px;font-weight:600;transition:border-color .12s ease-out;display:inline-flex;position:fixed;box-shadow:0 10px 30px #0531291a}.feedback-trigger:hover{border-color:var(--brand-cta)}.feedback-trigger:focus-visible,.feedback-close:focus-visible,.feedback-panel button.btn-primary:focus-visible{outline:2px solid var(--brand-cta);outline-offset:2px}.feedback-icon{flex:none}.app-feedback main{padding-bottom:calc(max(24px, env(safe-area-inset-bottom)) + 60px)}html:has(.app-feedback){scroll-padding-bottom:calc(max(24px, env(safe-area-inset-bottom)) + 60px)}.feedback-backdrop{z-index:20;background:0 0;position:fixed;inset:0}.feedback-backdrop-dim{background:#05312952}.feedback-panel{right:max(24px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));z-index:20;background:var(--brand-card);border:1px solid var(--brand-card-border);width:min(360px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--brand-text);border-radius:18px;position:fixed;overflow-y:auto;box-shadow:0 10px 30px #0531291a}.feedback-panel:focus{outline:none}.feedback-content{padding:16px 20px 20px}.feedback-header{justify-content:space-between;align-items:center;gap:8px;margin:-4px -10px 8px 0;display:flex}.feedback-title{color:var(--brand-text);margin:0;font-size:16px;font-weight:600}.feedback-close{width:44px;height:44px;color:var(--brand-text-muted);background:0 0;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.feedback-close:hover{color:var(--brand-text);background:var(--brand-ground)}.feedback-form{flex-direction:column;gap:14px;display:flex}.feedback-categories{border:0;min-width:0;margin:0;padding:0}.feedback-categories legend,.feedback-field>span{color:var(--brand-text);margin-bottom:6px;padding:0;font-size:13px;font-weight:500;display:block}.feedback-chips{flex-wrap:wrap;gap:8px;display:flex}.feedback-chip{border:1px solid var(--border);background:var(--brand-tile);min-height:44px;color:var(--brand-text);white-space:nowrap;cursor:pointer;border-radius:12px;align-items:center;padding:0 14px;font-size:13px;font-weight:500;transition:background-color .12s ease-out,border-color .12s ease-out,color .12s ease-out;display:inline-flex;position:relative}.feedback-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.feedback-chip:hover{border-color:var(--brand-cta)}.feedback-chip:has(input:checked){background:var(--brand-cta);border-color:var(--brand-cta);color:var(--brand-on-ink)}.feedback-chip:has(input:focus-visible){outline:2px solid var(--brand-cta);outline-offset:2px}.feedback-field{flex-direction:column;margin:0;display:flex}.feedback-field input,.feedback-field textarea{border:1px solid var(--border);background:var(--brand-card);width:100%;min-height:44px;color:var(--brand-text);font:inherit;border-radius:12px;padding:10px 12px;font-size:16px}.feedback-field textarea{resize:vertical;line-height:1.45}.feedback-field input:focus-visible,.feedback-field textarea:focus-visible{border-color:var(--brand-cta);box-shadow:0 0 0 3px var(--brand-mint);outline:none}.feedback-counter{color:var(--brand-text-muted);text-align:right;margin:-8px 0 0;font-size:12px}.feedback-error{margin:0}.feedback-actions{justify-content:flex-end;display:flex}.feedback-submit{width:auto;min-width:120px;padding:0 20px}.feedback-submit[aria-disabled=true]{cursor:progress}.feedback-submit-label{justify-content:center;align-items:center;display:inline-flex}.feedback-spinner{animation:.8s linear infinite feedback-spin}@keyframes feedback-spin{to{transform:rotate(360deg)}}.feedback-success{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 0 0;display:flex}.feedback-check{color:var(--brand-cta)}.feedback-success-title{color:var(--brand-text);margin:0;font-size:15px;font-weight:600}.feedback-success-body{color:var(--brand-text-muted);text-wrap:pretty;margin:4px 0 0;font-size:13px}.feedback-done{width:100%;margin-top:12px}@media (width<=48rem){.feedback-trigger{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));border-radius:24px;justify-content:center;width:48px;height:48px;padding:0}.feedback-sheet{border-width:1px 0 0;border-radius:18px 18px 0 0;width:100%;max-height:calc(100dvh - 24px);bottom:0;left:0;right:0}.feedback-sheet .feedback-content{padding:12px 16px max(16px, env(safe-area-inset-bottom))}.feedback-sheet .feedback-submit{width:100%}}@media (prefers-reduced-motion:reduce){.feedback-trigger,.feedback-chip{transition:none}}
