:root{--color-bg: #f6f8fc;--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-border: #e5eaf2;--color-text: #0f172a;--color-text-muted: #64748b;--color-primary: #2563eb;--color-primary-soft: #dbeafe;--color-action-view: #64748b;--color-action-edit: #2563eb;--color-action-delete: #dc2626;--color-action-primary: #2563eb;--color-action-secondary: #ffffff;--color-action-danger: #dc2626;--button-view-bg: #ffffff;--button-view-text: #475569;--button-edit-bg: #2563eb;--button-edit-text: #ffffff;--button-create-bg: #2563eb;--button-create-text: #ffffff;--button-paid-bg: #ffffff;--button-paid-text: #334155;--button-cancel-bg: #dc2626;--button-cancel-text: #ffffff;--button-delete-bg: #dc2626;--button-delete-text: #ffffff;--button-close-bg: #ffffff;--button-close-text: #475569;--button-accept-bg: #2563eb;--button-accept-text: #ffffff;--badge-active-bg: #ecfdf5;--badge-active-text: #065f46;--badge-inactive-bg: #f8fafc;--badge-inactive-text: #475569;--badge-draft-bg: #eef2ff;--badge-draft-text: #1e3a8a;--badge-pending-bg: #fff7ed;--badge-pending-text: #9a3412;--badge-paid-bg: #eef2ff;--badge-paid-text: #1e3a8a;--badge-cancelled-bg: #f8fafc;--badge-cancelled-text: #475569;--badge-available-bg: #ecfdf5;--badge-available-text: #065f46;--badge-existing-bg: #fff7ed;--badge-existing-text: #9a3412;--badge-origin-individual-bg: #eef2ff;--badge-origin-individual-text: #1e3a8a;--badge-origin-bulk-bg: #ecfdf5;--badge-origin-bulk-text: #065f46;--color-sidebar-bg: #f8fafc;--color-sidebar-active: #e0f2fe;--color-secondary: #0f172a;--color-menu-text: #334155;font-family:Inter,sans-serif;color:var(--color-text);background-color:var(--color-bg)}body{margin:0;min-height:100vh;background:var(--color-bg)}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;padding:.6rem 1rem;border-radius:.5rem;background:var(--color-primary);color:#fff;font-weight:600}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#fbfdff,#f7faff);color:var(--color-text);padding:1.6rem 1.25rem;display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start;border-right:1px solid var(--color-border)}.sidebar-header{width:100%;display:flex;flex-direction:column;align-items:center;gap:.65rem;padding-bottom:.45rem;border-bottom:1px solid var(--color-border)}.sidebar-brand{display:grid;gap:.15rem;justify-items:center}.sidebar-brand-subtitle{color:var(--color-text-muted);font-size:.78rem}.sidebar h2{margin:0;text-align:center;color:var(--color-text);font-size:1rem;line-height:1.2;font-weight:700}.sidebar-nav{display:flex;flex-direction:column;gap:1rem;width:100%;align-items:flex-start;flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:.2rem}.sidebar-section{display:grid;gap:.4rem;width:100%}.sidebar-section-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#94a3b8;padding:0 .2rem}.sidebar-section-links{display:flex;flex-direction:column;gap:.32rem;width:100%}.sidebar a{display:block;padding:.7rem .9rem;border-radius:.7rem;color:var(--color-menu-text);width:100%;text-align:left;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.sidebar a:hover{background:#eef4ff;color:var(--color-text)}.sidebar a.active{background:var(--color-sidebar-active);color:var(--color-primary);box-shadow:inset 0 0 0 1px #2563eb17;font-weight:600}.sidebar-link-icon{display:inline-flex;width:1.25rem;margin-right:.5rem;color:var(--color-text-muted)}.sidebar a.active .sidebar-link-icon{color:var(--color-primary)}.sidebar-footer{width:100%;display:flex;justify-content:space-between;gap:.5rem;padding-top:.7rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.72rem}main{display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);min-height:70px;gap:1rem}.topbar-title-group{display:grid;gap:.2rem}.topbar-kicker{color:var(--color-text-muted);font-size:.8rem}.topbar-title-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.topbar-title{margin:0;font-size:1.2rem;line-height:1.2;color:var(--color-text)}.topbar-role-badge{display:inline-flex;align-items:center;padding:.24rem .55rem;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.topbar-user-button{display:flex;align-items:center;gap:.65rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:0 6px 18px #0f172a0a;padding:.55rem .75rem}.topbar-avatar{width:34px;height:34px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:grid;place-items:center;font-weight:700;flex:0 0 auto}.topbar-user-meta{text-align:left;display:grid;gap:.1rem}.topbar-user-meta div{font-size:12px;color:var(--color-text-muted)}.topbar-user-menu{position:absolute;right:0;margin-top:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.85rem;box-shadow:0 10px 40px #0f172a1a;min-width:200px;z-index:10;overflow:hidden}.topbar-user-menu-item{width:100%;text-align:left;padding:.75rem 1rem;border-radius:0;background:var(--color-surface);color:var(--color-text)}.topbar-user-menu-item:hover{background:var(--color-surface-muted)}.topbar-user-menu-danger{background:#fee2e2;color:#991b1b}.content{padding:2rem}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.section-heading h2,.section-heading h3{margin:0;color:var(--color-text)}.section-heading p{margin:.2rem 0 0;color:var(--color-text-muted);font-size:.95rem}.metric-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.metric-card{background:var(--color-surface);color:var(--color-text);padding:1rem 1.1rem;border-radius:1rem;border:1px solid var(--color-border);box-shadow:0 10px 30px #0f172a0a;display:grid;gap:.3rem;min-width:0}.metric-card small{color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.metric-card h2{margin:0;color:var(--color-text);font-size:1.55rem}.metric-card p{margin:0;color:var(--color-text-muted);font-size:.92rem}.dashboard-shell{display:grid;gap:1.25rem}.dashboard-hero{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;padding:1.2rem 1.25rem;box-shadow:0 10px 30px #0f172a0a;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.dashboard-hero-logo{max-width:150px;height:auto;object-fit:contain}.dashboard-hero-copy{display:grid;gap:.3rem}.dashboard-hero-copy h1{margin:0;font-size:1.45rem;color:var(--color-text)}.dashboard-hero-copy p{margin:0;color:var(--color-text-muted);max-width:60ch;line-height:1.5}.dashboard-kicker{margin:0;color:var(--color-text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.dashboard-section{display:grid;gap:.85rem}.dashboard-metrics{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dashboard-card{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:0 10px 30px #0f172a0a}.dashboard-card small{color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.dashboard-card h2{margin:0;color:var(--color-text);font-size:1.65rem}.dashboard-card p{margin:0;color:var(--color-text-muted);font-size:.9rem}.action-row{display:flex;gap:.75rem;flex-wrap:wrap}.action-button{min-height:30px;padding:.35rem .68rem;border-radius:8px;border:1px solid transparent;font-weight:500;font-size:.8rem;line-height:1;transition:background-color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}.action-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #0f172a0f}.action-button:disabled{opacity:.68;cursor:not-allowed;box-shadow:none;transform:none}.action-button--primary{background:color-mix(in srgb,var(--color-action-primary, var(--color-action-edit, var(--color-primary))) 82%,white 18%);color:#fff;border-color:color-mix(in srgb,var(--color-action-primary, var(--color-action-edit, var(--color-primary))) 86%,#ffffff 14%)}.action-button--secondary{background:var(--color-action-secondary, var(--color-surface));color:var(--color-action-view, #475569);border-color:var(--color-border)}.action-button--success{background:var(--button-paid-bg, var(--color-surface));color:var(--button-paid-text, var(--color-text));border-color:var(--color-border)}.action-button--danger{background:var(--button-delete-bg, color-mix(in srgb, var(--color-action-danger, var(--color-action-delete, #dc2626)) 82%, white 18%));color:var(--button-delete-text, #fff);border-color:color-mix(in srgb,var(--color-action-danger, var(--color-action-delete, #dc2626)) 86%,#ffffff 14%)}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.tag{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .6rem;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:.75rem;font-weight:700;white-space:nowrap}.status-badge--paid,.status-badge--active{background:var(--badge-active-bg);color:var(--badge-active-text)}.status-badge--draft{background:var(--badge-draft-bg);color:var(--badge-draft-text)}.status-badge--pending{background:var(--badge-pending-bg);color:var(--badge-pending-text)}.status-badge--cancelled,.status-badge--inactive{background:var(--badge-cancelled-bg);color:var(--badge-cancelled-text)}.status-badge--available{background:var(--badge-available-bg);color:var(--badge-available-text)}.status-badge--existing{background:var(--badge-existing-bg);color:var(--badge-existing-text)}.tag--success{background:var(--badge-active-bg);color:var(--badge-active-text)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-muted)}.btn-primary-soft{background:var(--color-primary-soft);color:var(--color-primary)}.appearance-preview-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.appearance-preview-chip{padding:.8rem .9rem;border-radius:.85rem;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);display:grid;gap:.25rem;min-height:74px}.appearance-preview-chip span{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.appearance-preview-chip strong{font-size:.95rem}.grid{display:grid;gap:1.5rem}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{background:var(--color-surface);padding:1.5rem;border-radius:1rem;border:1px solid var(--color-border);box-shadow:0 10px 40px #0f172a0d}.table{width:100%;border-spacing:0;border-collapse:collapse;font-size:.95rem}.table th,.table td{padding:.9rem .95rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.table th{background:var(--color-surface-muted);font-weight:600;color:var(--color-text);text-align:center;white-space:nowrap}.table tbody tr:nth-child(2n),.basic-table tbody tr:nth-child(2n){background:var(--color-surface-muted)}.text-right{text-align:right}.text-center{text-align:center}.reports-section{margin-top:1rem}.table th.center,.table td.center{text-align:center}.table tbody tr:hover,.basic-table tbody tr:hover{background:#eef4ff}.table-shell,.table-shell-basic{overflow-x:auto;border:1px solid var(--color-border);border-radius:.9rem;background:var(--color-surface)}.basic-table{width:100%;border-collapse:collapse;font-size:.95rem}.basic-table th,.basic-table td{padding:.85rem .9rem;border-bottom:1px solid var(--color-border)}.basic-table th{background:var(--color-surface-muted);text-align:center;vertical-align:middle;white-space:nowrap}.table-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:nowrap;white-space:nowrap}.table-actions--center{justify-content:center}.forms-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}input,select,textarea{border:1px solid #cbd5f5;border-radius:.6rem;padding:.65rem .8rem;font-family:inherit;box-sizing:border-box;max-width:100%}form label{display:flex;flex-direction:column;gap:.3rem;font-weight:500}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem 1.25rem;align-items:start}.form-grid input,.form-grid select,.form-grid textarea{min-width:0;width:100%}.color-preview{width:60px;height:24px;border-radius:.5rem;border:1px solid #e2e8f0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center}.modal{background:#fff;border-radius:1rem;padding:2.25rem;width:min(1120px,96vw);max-height:85vh;box-shadow:0 30px 80px #0f172a26;display:flex;flex-direction:column;overflow:hidden}.modal-body{flex:1 1 auto;min-height:0;overflow:auto;padding-right:.25rem}.modal-body--preview{overflow:hidden;display:flex;flex-direction:column}.inline-checkbox{display:inline-flex;align-items:center;gap:8px;width:fit-content;font-size:14px;font-weight:500;color:#0f172a;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:6px;flex-direction:row!important}.inline-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer}.folio-field{display:flex;flex-direction:column;gap:6px}.folio-manual-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:fit-content;margin-top:4px;font-size:14px;font-weight:500;color:#0f172a;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.folio-manual-row input[type=checkbox]{width:16px;height:16px;min-width:16px;margin:0;padding:0;cursor:pointer;flex:0 0 auto}.folio-help{font-size:12px;color:#64748b;line-height:1.35;margin:0}.preview-summary-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.85rem;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.4rem}.preview-summary-card span{font-size:.8rem;color:#64748b}.preview-summary-card strong{font-size:1.15rem;color:#0f172a}.preview-modal-shell{display:flex;flex-direction:column;gap:1rem;height:100%;min-height:0;overflow:hidden}.preview-modal-top{display:grid;gap:.5rem;flex:0 0 auto}.preview-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem}.preview-table-shell{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:auto;border:1px solid #e2e8f0;border-radius:.85rem;background:#fff}.preview-empty{border:1px dashed #cbd5e1;border-radius:.85rem;padding:1.4rem;text-align:center;color:#64748b;background:var(--color-surface-muted)}.preview-table{width:100%;border-collapse:collapse}.preview-table thead th{position:sticky;top:0;z-index:1}.preview-table th,.preview-table td{padding:.75rem .6rem;background:#fff}.preview-table th{text-align:center;vertical-align:middle}.preview-table tbody tr:hover{background:var(--color-surface-muted)}.preview-row-disabled{background:#f8fafc;opacity:.9}.preview-badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.preview-badge-success{background:#ecfdf5;color:#065f46}.preview-badge-warning{background:#fff7ed;color:#9a3412}.preview-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;flex:0 0 auto}.receipts-table-card{display:grid;gap:1rem}.receipts-toolbar{display:grid;gap:1rem;grid-template-columns:minmax(260px,1.3fr) minmax(260px,1fr) auto;align-items:end}.receipts-toolbar-search label,.receipts-toolbar-filters label{display:grid;gap:.35rem}.receipts-toolbar-search span,.receipts-toolbar-filters span{font-size:.8rem;color:#64748b;font-weight:600}.receipts-toolbar-filters{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:.75rem}.receipts-toolbar-count{color:#475569;font-size:.95rem;text-align:right;white-space:nowrap}.receipts-table-shell{overflow:auto;border:1px solid #e2e8f0;border-radius:.9rem}.receipts-table{width:100%;min-width:1100px;border-collapse:collapse}.receipts-table th{background:#f8fafc;vertical-align:middle;text-align:center}.table-sort-button{background:transparent;color:#0f172a;padding:0;display:inline-flex;align-items:center;gap:.35rem;font-weight:700}.table-sort-indicator{color:#2563eb;font-size:.9rem;min-width:1ch}.origin-badge-massive{background:var(--badge-origin-bulk-bg);color:var(--badge-origin-bulk-text)}.origin-badge-individual{background:var(--badge-origin-individual-bg);color:var(--badge-origin-individual-text)}.receipts-empty{padding:1.4rem;text-align:center;color:#64748b;background:var(--color-surface-muted)}
