:root{color-scheme:light;--surface-1: #fcfcfb;--surface-2: #f4f3ef;--border: #e2e0d8;--qr-paper: #ffffff;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #7a7873;--brand: #a8862a;--brand-hover: #8a6d1f;--brand-tint: #f5eeda;--series-1: #2a78d6;--series-2: #a8862a;--series-3: #1baf7a;--series-4: #4a3aa7;--seq-0: #fbf6ea;--seq-1: #f0e2be;--seq-2: #e2c98d;--seq-3: #cfae5f;--seq-4: #b08e30;--seq-5: #8a6d1f}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--surface-1: #1a1a19;--surface-2: #232321;--border: #34342f;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #8e8d84;--brand: #b58e2c;--brand-hover: #cfa53a;--brand-tint: #2a2519;--series-1: #3987e5;--series-2: #b58e2c;--series-3: #199e70;--series-4: #9085e9;--seq-0: #2a2519;--seq-1: #453820;--seq-2: #6b5527;--seq-3: #94762c;--seq-4: #b58e2c;--seq-5: #d9b44f}}:root[data-theme=dark]{color-scheme:dark;--surface-1: #1a1a19;--surface-2: #232321;--border: #34342f;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #8e8d84;--brand: #b58e2c;--brand-hover: #cfa53a;--brand-tint: #2a2519;--series-1: #3987e5;--series-2: #b58e2c;--series-3: #199e70;--series-4: #9085e9;--seq-0: #2a2519;--seq-1: #453820;--seq-2: #6b5527;--seq-3: #94762c;--seq-4: #b58e2c;--seq-5: #d9b44f}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--surface-1);color:var(--text-primary);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}.account-controls{display:flex;align-items:center;gap:10px}.account-email{font-size:13px;color:var(--text-secondary)}.sign-out-button{padding:4px 10px;font:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.sign-out-button:hover{background:var(--brand-tint);border-color:var(--brand)}.theme-toggle{padding:4px 10px;font-size:16px;line-height:1;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.theme-toggle:hover{background:var(--brand-tint);border-color:var(--brand)}.login{max-width:320px;margin:15vh auto 0;padding:24px;display:flex;flex-direction:column;gap:12px}.login form{display:flex;flex-direction:column;gap:12px}.login label{font-size:13px;color:var(--text-secondary)}.login input{display:block;width:100%;margin-top:4px;padding:8px 10px;font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px}.login button{padding:8px 12px;font:inherit;font-weight:600;color:var(--surface-1);background:var(--brand);border:1px solid var(--brand);border-radius:6px;cursor:pointer}.login button:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.login button:disabled{opacity:.6;cursor:default}.session-expired-notice{margin:0;padding:8px 10px;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;font-size:13px}.password-checklist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.password-rule{display:flex;align-items:center;gap:6px}.password-rule-met{color:var(--text-primary);font-weight:600}.password-rule-icon{display:inline-block;width:1em;text-align:center}.subtitle{margin:0;color:var(--text-secondary);font-size:14px}.error{margin:0;padding:8px 10px;color:var(--text-primary);background:var(--brand-tint);border:1px solid var(--border);border-radius:6px;font-size:13px}.chart{margin:0 0 24px;padding:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.chart figcaption{margin-bottom:12px}.chart h3{margin:0;font-size:15px;color:var(--text-primary)}.chart-subtitle{margin:2px 0 0;color:var(--text-secondary);font-size:13px}.chart-toggle{margin-top:8px;padding:4px 10px;font:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.chart-toggle:hover{background:var(--brand-tint);border-color:var(--brand)}.chart-table{overflow-x:auto}.chart-table table{border-collapse:collapse;font-size:12px}.chart-table th,.chart-table td{padding:4px 6px;border:1px solid var(--border);text-align:right;white-space:nowrap}.chart-table th[scope=row]{text-align:left}.empty{margin:0;color:var(--text-muted);font-size:13px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px;padding:0;list-style:none;font-size:13px;color:var(--text-secondary)}.legend li{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}.heatmap-scale{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--text-muted);font-size:11px}.ramp-swatches{display:inline-flex;gap:0}.ramp-swatch{display:inline-block;width:16px;height:10px;flex:none}.kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}.kpi-tile{flex:1 1 160px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.kpi-label{margin:0;color:var(--text-secondary);font-size:13px}.kpi-value{margin:4px 0 0;color:var(--text-primary);font-size:24px;font-weight:600}.kpi-note{margin:6px 0 0;color:var(--text-secondary);font-size:12px}.kpi-details{margin-top:6px;font-size:12px}.kpi-details summary{color:var(--brand);cursor:pointer}.date-range{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px}.date-range-presets{display:flex;gap:6px}.date-range-preset{padding:4px 10px;font:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.date-range-preset:hover{background:var(--brand-tint);border-color:var(--brand)}.date-range-fields{display:flex;flex-wrap:wrap;gap:12px}.date-range-fields label{display:flex;flex-direction:column;gap:2px;color:var(--text-secondary);font-size:13px}.date-range-fields input{font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;padding:6px 8px}.loading{margin:15vh auto 0;text-align:center;color:var(--text-secondary);font-size:14px}.stats-loading{margin:24px 0;text-align:left}.empty-state{max-width:360px;margin:15vh auto 0;padding:24px;text-align:center}.empty-state h2{margin:0 0 8px;color:var(--text-primary);font-size:18px}.empty-state p{margin:0;color:var(--text-secondary);font-size:14px}.dashboard{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:100vh}.sidebar{padding:16px;background:var(--surface-2);border-right:1px solid var(--border);overflow-y:auto}.detail-panel{padding:24px;overflow-y:auto}.back-button{display:none;margin-bottom:16px;padding:6px 12px;font:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.back-button:hover{background:var(--brand-tint);border-color:var(--brand)}@media(max-width:720px){.dashboard{display:block}.back-button{display:inline-flex}.dashboard[data-mobile-view=list] .detail-panel,.dashboard[data-mobile-view=detail] .sidebar{display:none}}.code-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.code-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;font:inherit;text-align:left;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.code-list-item:hover{background:var(--brand-tint)}.code-list-item-selected{background:var(--surface-1);border-color:var(--brand)}.code-list-label{font-size:14px;font-weight:600}.code-list-paused{padding:1px 6px;color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}.code-list-count{color:var(--text-muted);font-size:12px}.code-detail{max-width:720px}.code-detail-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 16px}.code-detail-header h2{margin:0;color:var(--text-primary);font-size:20px}.code-detail-paused{padding:1px 8px;color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:600;text-transform:uppercase}.code-detail-url{flex-basis:100%;margin:0;color:var(--text-secondary);font-size:13px}.edit-button{padding:4px 10px;font:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.edit-button:hover{background:var(--brand-tint);border-color:var(--brand)}.new-sign-button{display:block;width:100%;margin-bottom:12px;padding:8px 12px;font:inherit;font-weight:600;color:var(--surface-1);background:var(--brand);border:1px solid var(--brand);border-radius:6px;cursor:pointer}.new-sign-button:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.code-form-panel{max-width:480px}.code-form-panel h2{margin:0 0 16px;color:var(--text-primary);font-size:18px}.cancel-button{margin-top:8px;padding:8px 14px;font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;cursor:pointer}.cancel-button:hover{background:var(--brand-tint);border-color:var(--brand)}.code-form{display:flex;flex-direction:column;gap:16px;max-width:480px}.code-form-field{display:flex;flex-direction:column;gap:4px}.code-form-field-inline{flex-direction:row;align-items:center;gap:8px}.code-form label{color:var(--text-secondary);font-size:13px}.code-form input,.code-form textarea{font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.code-form textarea{min-height:96px;resize:vertical}.code-form-field-inline input{width:auto}.code-form-slug-display{margin:0;color:var(--text-secondary);font-size:13px}.code-form-count{margin:0;color:var(--text-muted);font-size:12px}.code-form-count-over{color:var(--text-primary);font-weight:600}.code-form-hint{margin:0;color:var(--text-secondary);font-size:12px}.code-form-preview{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-top:10px}.code-form-preview img{border:1px solid var(--border);border-radius:4px;background:var(--qr-paper);padding:6px;height:auto;max-width:100%}.code-form-errors{margin:0;padding:8px 10px 8px 24px;color:var(--text-primary);background:var(--brand-tint);border:1px solid var(--border);border-radius:6px;font-size:13px}.code-form button{align-self:flex-start;padding:8px 14px;font:inherit;font-weight:600;color:var(--surface-1);background:var(--brand);border:1px solid var(--brand);border-radius:6px;cursor:pointer}.code-form button:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.code-form button:disabled{opacity:.6;cursor:default}.qr-download{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;background:var(--surface-1);border:1px solid var(--border);border-radius:8px}.qr-download-image{width:160px;height:160px;border:1px solid var(--border);border-radius:4px}.qr-download-url{margin:0;color:var(--text-secondary);font-size:13px}.qr-download-actions{display:flex;gap:8px}.qr-download-actions button,.qr-download-button{padding:8px 14px;font:inherit;font-weight:600;color:var(--surface-1);background:var(--brand);border:1px solid var(--brand);border-radius:6px;cursor:pointer;display:inline-block;text-decoration:none;line-height:1.2}.qr-download-error{margin:0;color:var(--danger, var(--text-secondary));font-size:13px}.qr-download-actions button:hover,.qr-download-button:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.sidebar-settings-button{margin-top:auto;padding:8px 10px;font:inherit;font-size:13px;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left}.sidebar-settings-button:hover,.sidebar-settings-button[aria-current=page]{color:var(--text-primary);border-color:var(--brand)}.slack-settings,.slack-settings-form{display:flex;flex-direction:column;gap:14px}.slack-settings-status{padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}.slack-settings-connected,.slack-settings-hint,.slack-settings-error,.slack-settings-saved{margin:0;font-size:13px}.slack-settings-hint{color:var(--text-secondary)}.slack-settings-error{color:var(--danger, var(--text-primary))}.slack-settings-saved{color:var(--text-secondary)}
