:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f5f7;--page-bg: #f4f5f7;--surface: #ffffff;--surface-muted: #f9fafb;--surface-strong: #ffffff;--text: #1a1a1a;--text-soft: #6b7280;--text-strong: #111827;--text-field-label: #374151;--border: #e5e7eb;--border-strong: #d1d5db;--link: #2563eb;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 24px rgba(0, 0, 0, .08);--success-bg: #ecfdf5;--success-border: #a7f3d0;--warning-bg: #fff7ed;--warning-border: #fdba74;--badge-bg: #e0e7ff;--badge-text: #3730a3;--badge-danger-bg: #fee2e2;--badge-danger-text: #991b1b;--error-bg: #fef2f2;--error-text: #b91c1c;--input-bg: #ffffff;--button-bg: #ffffff;--button-hover-bg: #f3f4f6;--auth-gate-bg: #e8ecf1;--auth-gate-text: #1f2937;--auth-panel-bg: #ffffff;--auth-panel-shadow: 0 18px 40px rgba(15, 23, 42, .12);--auth-heading: #6b7280;--auth-input-bg: #ffffff;--auth-input-border: #cbd5e1;--auth-input-text: #111827;--auth-input-placeholder: #94a3b8;--auth-accent: #3da88f;--auth-accent-hover: #55c6a9;--auth-accent-focus: rgba(61, 168, 143, .28);--auth-submit-text: #0f172a;--auth-error: #b91c1c;--auth-footnote: #6b7280;--auth-loading: #6b7280}:root[data-theme=dark]{color:#e5e7eb;background:#0f172a;--page-bg: #0f172a;--surface: #111827;--surface-muted: #1f2937;--surface-strong: #0b1220;--text: #e5e7eb;--text-soft: #9ca3af;--text-strong: #f9fafb;--text-field-label: #d1d5db;--border: #374151;--border-strong: #4b5563;--link: #60a5fa;--shadow: 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 30px rgba(0, 0, 0, .35);--success-bg: #052e22;--success-border: #0f766e;--warning-bg: #3a2006;--warning-border: #c2410c;--badge-bg: #1e3a8a;--badge-text: #dbeafe;--badge-danger-bg: #4c0519;--badge-danger-text: #fecdd3;--error-bg: #450a0a;--error-text: #fecaca;--input-bg: #111827;--button-bg: #111827;--button-hover-bg: #1f2937;--auth-gate-bg: #242b33;--auth-gate-text: #e8ecef;--auth-panel-bg: #2f3842;--auth-panel-shadow: 0 18px 40px rgba(0, 0, 0, .35);--auth-heading: #b8c1cb;--auth-input-bg: #232a31;--auth-input-border: #4b5563;--auth-input-text: #f3f4f6;--auth-input-placeholder: #8b97a5;--auth-accent: #55c6a9;--auth-accent-hover: #6dd4b8;--auth-accent-focus: rgba(85, 198, 169, .25);--auth-submit-text: #0f172a;--auth-error: #fca5a5;--auth-footnote: #8b97a5;--auth-loading: #b8c1cb}body{margin:0;background:var(--page-bg);color:var(--text);transition:background-color .2s ease,color .2s ease}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-layout--gate{position:relative;background:var(--auth-gate-bg);color:var(--auth-gate-text);transition:background-color .2s ease,color .2s ease}.auth-layout__toolbar{position:absolute;top:1rem;right:1rem;z-index:2}.auth-layout--gate .auth-layout__toolbar button{background:var(--button-bg);border-color:var(--border-strong);color:var(--text)}.auth-layout--gate .auth-layout__toolbar button:hover{background:var(--button-hover-bg)}.auth-panel{width:min(22rem,100%);padding:2rem 1.75rem 1.5rem;border-radius:.35rem;background:var(--auth-panel-bg);box-shadow:var(--auth-panel-shadow);text-align:center;transition:background-color .2s ease,box-shadow .2s ease}.auth-panel--loading{padding-bottom:2rem}.brand-logo{display:block;height:auto}.brand-logo--auth{width:min(5.5rem,40%);margin:0 auto 1.25rem;border-radius:.65rem}.brand-logo--header{width:2.75rem;border-radius:.5rem;flex-shrink:0}.app-header__brand{display:flex;align-items:center;gap:.85rem}.app-header__brand h1{margin:0;font-size:1.2rem;line-height:1.2}.app-header__brand .muted{margin:.15rem 0 0;font-size:.85rem}.auth-panel__heading{margin:0 0 1.25rem;font-size:1rem;font-weight:500;color:var(--auth-heading);letter-spacing:.02em}.auth-panel__form{display:flex;flex-direction:column;gap:.85rem;text-align:left}.auth-panel__input{width:100%;box-sizing:border-box;padding:.65rem .75rem;border:1px solid var(--auth-input-border);border-radius:.2rem;background:var(--auth-input-bg);color:var(--auth-input-text);font:inherit;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.auth-panel__input::placeholder{color:var(--auth-input-placeholder)}.auth-panel__input:focus{outline:none;border-color:var(--auth-accent);box-shadow:0 0 0 2px var(--auth-accent-focus)}.auth-panel__error{margin:0;font-size:.875rem;color:var(--auth-error)}.auth-panel__submit{width:100%;margin-top:.35rem;padding:.7rem 1rem;border:none;border-radius:.2rem;background:var(--auth-accent);color:var(--auth-submit-text);font-weight:700;font-size:.95rem;cursor:pointer}.auth-panel__submit:hover:not(:disabled){background:var(--auth-accent-hover)}.auth-panel__submit:disabled{opacity:.7;cursor:default}.auth-panel__footnote{margin:1.25rem 0 0;font-size:.8rem;color:var(--auth-footnote)}.auth-panel__loading{margin:0;color:var(--auth-loading)}.layout{max-width:1360px;margin:0 auto;padding:1rem 1.5rem 2rem}header,.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}header nav{display:flex;flex-wrap:wrap;gap:1rem}nav a{color:var(--link);text-decoration:none;font-weight:500}nav a.active{text-decoration:underline}.header-actions{display:flex;gap:.75rem;align-items:center}.card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1rem;overflow-x:auto}.hero-card{margin-bottom:1.25rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.section-head h2{margin:0;font-size:1.05rem}.section-head a{color:var(--link);text-decoration:none;font-size:.9rem;font-weight:600}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:1rem 0}.summary-card{border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem;background:var(--surface-muted)}.summary-card.success{background:var(--success-bg);border-color:var(--success-border)}.summary-card.warning{background:var(--warning-bg);border-color:var(--warning-border)}.summary-label{margin:0 0 .35rem;color:var(--text-soft);font-size:.85rem}.summary-value{margin:0;font-size:1.9rem;font-weight:700;color:var(--text-strong)}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.meta-grid>div{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;background:var(--surface-muted);border-radius:8px}.meta-label{color:var(--text-soft);font-size:.8rem;font-weight:600}.split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1.25rem}.empty-state{margin:.5rem 0 0}.stack{display:flex;flex-direction:column;gap:1rem}.stack-lg{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.9rem;font-weight:600;color:var(--text-field-label)}input{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:8px;font:inherit;background:var(--input-bg);color:var(--text)}.user-create-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;align-items:end;margin-top:1rem}select{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:8px;font:inherit;background:var(--input-bg);color:var(--text)}.field-inline{min-width:140px}.toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:end;flex-wrap:wrap;margin:1rem 0}.toolbar-search{display:flex;gap:.75rem;flex:1 1 320px;align-items:end}.toolbar-search input{flex:1 1 auto}.toolbar-controls{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:end}.checkbox-inline{display:inline-flex;align-items:center;gap:.5rem;padding-bottom:.5rem;color:var(--text)}.checkbox-inline input{width:auto;margin:0}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}th{background:var(--surface-muted);font-weight:600}.sort-button{border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:600}.sort-button:hover{background:transparent;color:var(--link)}.sort-button.active{color:var(--link)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;background:var(--badge-bg);color:var(--badge-text)}.badge.offline{background:var(--badge-danger-bg);color:var(--badge-danger-text)}.muted{color:var(--text-soft);font-size:.85rem}.error{color:var(--error-text);padding:.75rem;background:var(--error-bg);border-radius:6px}button{cursor:pointer;padding:.35rem .75rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--button-bg);color:var(--text);font-size:.85rem}button:hover{background:var(--button-hover-bg)}.actions-cell{display:flex;flex-wrap:wrap;gap:.5rem}.table-form,.table-form input{min-width:180px}.printers-card{overflow-x:auto}.printers-table{width:100%;min-width:72rem;table-layout:auto}.printers-table .col-mac{white-space:nowrap;min-width:9.5rem}.printers-table .col-label{min-width:10rem}.printers-table .col-name{min-width:7rem}.printers-table .col-status{min-width:9rem}.printers-table .col-printing{white-space:nowrap;width:4.5rem}.printers-table .col-datetime{white-space:nowrap;min-width:12.5rem}.printers-table .col-actions{white-space:nowrap;width:1%}.printers-table .col-actions .row-actions{flex-direction:column;align-items:stretch;min-width:5.75rem}.printers-table .col-actions .row-actions button{width:100%;box-sizing:border-box;justify-content:center}.printers-table .col-actions .row-actions .inline-edit-button{justify-content:center}.printer-label-text{display:inline-block;min-height:1.5rem;line-height:1.5rem}.row-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.inline-edit-button{display:inline-flex;align-items:center;gap:.35rem}.button-icon{flex:0 0 auto}.status-cell{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}.status-detail{word-break:break-word}button.button-danger{border-color:var(--badge-danger-text);color:var(--badge-danger-text)}button.button-danger:hover:not(:disabled){background:var(--badge-danger-bg)}button:disabled{cursor:default;opacity:.65}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.pagination-pages{display:flex;gap:.5rem;flex-wrap:wrap}.pagination-pages button.active{border-color:var(--link);color:var(--link)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#111827b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}:root[data-theme=dark] .modal-backdrop{background:#000000c7}.modal-panel{position:relative;z-index:1001;width:min(32rem,100%);max-height:min(90vh,48rem);overflow:auto;border:1px solid var(--border-strong);border-radius:.75rem;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);isolation:isolate}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1rem 0}.modal-header h3{margin:0;font-size:1.1rem}.modal-close{flex-shrink:0}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--border);background:var(--surface)}.receipt-preview-disclaimer{margin:.5rem 1rem 0;font-size:.85rem}.receipt-preview{padding:0 1rem 1rem}.receipt-preview-meta{margin-bottom:1rem;font-size:.9rem}.receipt-preview-meta p{margin:.25rem 0}.receipt-preview-store{font-weight:600;font-size:1rem}.receipt-preview-label{color:var(--text-soft)}.receipt-preview-items{width:100%;margin-bottom:1rem;font-size:.9rem;background:var(--surface)}.receipt-preview-items tbody tr{background:var(--surface)}.receipt-preview-items th,.receipt-preview-items td{vertical-align:top}.receipt-preview-amount{text-align:right;white-space:nowrap}.receipt-preview-item-name{word-break:break-word}.receipt-preview-item-detail{font-size:.8rem;margin-top:.15rem}.receipt-preview-totals{border-top:1px solid var(--border);padding-top:.75rem}.receipt-preview-total-row{display:flex;justify-content:space-between;gap:1rem;margin:.35rem 0}.receipt-preview-total-row-strong{font-weight:700;font-size:1.05rem;margin-top:.5rem}@media (max-width: 720px){.layout{padding:1rem}header{align-items:flex-start;flex-direction:column}.split-grid{grid-template-columns:1fr}.toolbar-search{flex-direction:column;align-items:stretch}}
