@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/Montserrat-Regular.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/Montserrat-Medium.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/Montserrat-SemiBold.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/Montserrat-Bold.ttf) format("truetype")}:root{--brand-dot: #EC4899;--brand-accent: #BE185D;--brand-accent-strong: #9D174D;--brand-accent-rgb: 190, 24, 93;--brand-tint: #FDF2F8;--brand-tint-border: #FBCFE8;--brand-primary: var(--brand-accent);--brand-primary-hover: var(--brand-accent-strong);--brand-text: #0F172A;--brand-text-strong: #0F172A;--brand-muted-text: #1E293B;--brand-placeholder: #475569;--brand-focus-ring: rgba(var(--brand-accent-rgb), .25);--brand-hover: rgba(var(--brand-accent-rgb), .06);--brand-hover-strong: rgba(var(--brand-accent-rgb), .12);--brand-border-soft: #0F172A;--brand-border-subtle: #0F172A;--brand-table-border: #E5E7EB;--brand-field-border: #0F172A;--page-bg: #FFFFFF;--color-error: #B91C1C;--color-error-bg: #FEF2F2;--color-success: #047857;--color-success-bg: #ECFDF5;--color-warning: #B45309;--color-warning-bg: #FFFBEB;--navy: var(--brand-text-strong);--blue: var(--brand-accent);--blue-50: var(--brand-tint);--blue-100: var(--brand-tint-border);--teal: var(--brand-accent);--teal-50: var(--brand-tint);--teal-100: var(--brand-tint-border);--purple: var(--brand-accent);--purple-50: var(--brand-tint);--purple-100: var(--brand-tint-border);--gold: var(--color-warning);--gold-50: var(--color-warning-bg);--gold-100: #FDE68A;--white: #FFFFFF;--gray-50: #FFFFFF;--gray-100: #E5E7EB;--gray-200: #CBD5E1;--gray-300: #CBD5E1;--gray-400: #475569;--gray-500: #334155;--gray-600: #1E293B;--gray-700: #1E293B;--gray-800: #0F172A;--gray-900: #0F172A;--success: var(--color-success);--warning: var(--color-warning);--error: var(--color-error);--r-sm: 3px;--r-md: 4px;--r-lg: 8px;--r-xl: 12px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 1px 2px rgba(15, 23, 42, .06);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .12);--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:1rem;scroll-behavior:smooth;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--page-bg);color:var(--brand-text);line-height:1.6}button,input,textarea,select{font-family:inherit}a{text-decoration:none;color:inherit}ul{list-style:none}button{cursor:pointer;border:none;background:none}::placeholder{color:var(--brand-placeholder)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:99px}:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;border:0;border-radius:var(--r-sm);font-size:.875rem;font-weight:700;line-height:1.4;transition:var(--transition);cursor:pointer}.btn-primary{background:var(--brand-primary);color:#fff}.btn-primary:hover{background:var(--brand-primary-hover)}.btn-secondary{background:#fff;color:var(--brand-text-strong);border:2px solid var(--brand-text-strong)}.btn-secondary:hover{background:var(--brand-text-strong);color:#fff}.btn-ghost{background:#fff;color:var(--brand-muted-text);border:1px solid var(--brand-border-soft)}.btn-ghost:hover{background:var(--brand-hover-strong);color:var(--brand-text)}.btn-danger{background:var(--color-error-bg);color:var(--color-error);border:1px solid #F2CCD1}.btn-danger:hover{background:#fae3e6}.btn-sm{padding:6px 14px;font-size:.8125rem}.btn-xs{padding:4px 10px;font-size:.8125rem}.btn:disabled{background:#f0f0f2;color:#9ca3af;cursor:not-allowed;border-color:transparent}.badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:2px 8px;border-radius:var(--r-md);font-size:.8125rem;font-weight:600;line-height:1.4}.badge-blue,.badge-gray,.badge-purple{background:#fff;color:var(--brand-text-strong);border:1px solid var(--brand-text-strong)}.badge-teal{background:var(--brand-tint);color:var(--brand-accent);border:1px solid var(--brand-accent)}.badge-gold{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning)}.badge-green{background:#fff;color:var(--color-success);border:1px solid var(--color-success)}.badge-red{background:#fff;color:var(--color-error);border:1px solid var(--color-error)}.card{background:#fff;border:1px solid var(--brand-border-subtle);border-radius:var(--r-xl);box-shadow:var(--shadow-md);overflow:hidden}.card-header{padding:16px 20px;border-bottom:1px solid var(--brand-table-border);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:1rem;font-weight:700;color:var(--brand-text-strong)}.card-subtitle{font-size:.8125rem;color:var(--brand-muted-text);margin-top:1px}.card-body{padding:20px}.form-label{display:block;font-size:.8125rem;font-weight:500;color:var(--brand-muted-text);margin-bottom:6px}.form-hint{font-size:.8125rem;color:var(--brand-placeholder);margin-top:4px}.form-control{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--brand-field-border);border-radius:var(--r-md);font-size:.875rem;color:var(--brand-text);background:#fff;transition:var(--transition);font-family:inherit}.form-control:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--brand-focus-ring)}.form-control-invalid{border-color:var(--color-error)!important;box-shadow:0 0 0 3px #b91c1c1f}.field-error{font-size:.8125rem;color:var(--color-error);margin-top:5px}select.form-control{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230F172A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px}input[type=date].form-control{cursor:pointer;color-scheme:light}.form-group{margin-bottom:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.search-input{min-height:40px;padding:8px 14px;border:1px solid var(--brand-border-soft);border-radius:var(--r-md);font-size:.875rem;background:#fff;color:var(--brand-text);min-width:220px}.search-input:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--brand-focus-ring)}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table th{background:#fff;padding:10px 14px;text-align:left;font-size:.8125rem;font-weight:500;color:var(--brand-muted-text);border-bottom:2px solid var(--brand-table-border);white-space:nowrap}.data-table td{padding:12px 14px;border-bottom:1px solid var(--brand-table-border);font-size:.875rem;color:var(--brand-text-strong);vertical-align:middle;font-variant-numeric:tabular-nums}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--brand-hover)}.table-wrap{border:1px solid var(--brand-border-subtle);border-radius:var(--r-xl);overflow:hidden}.data-table-wrap,.admin-table-card .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal-overlay{position:fixed;inset:0;background:#0f172a80;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);width:100%;max-width:580px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:15px 20px;background:var(--brand-tint);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.modal-header h2,.modal-header h3{font-size:1rem;font-weight:600;color:var(--brand-text-strong)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:14px 20px;border-top:1px solid var(--brand-table-border);display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-shrink:0}.close-btn{width:30px;height:30px;border-radius:var(--r-md);background:transparent;border:none;cursor:pointer;font-size:1rem;color:var(--brand-text-strong);display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--brand-hover-strong)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--brand-table-border)}.toggle-row:last-child{border-bottom:none}.toggle-info{flex:1;padding-right:16px}.toggle-label{font-size:.875rem;font-weight:600;color:var(--brand-text-strong)}.toggle-desc{font-size:.8125rem;color:var(--brand-placeholder);margin-top:2px}.toggle{width:40px;height:22px;border-radius:99px;cursor:pointer;transition:var(--transition);position:relative;flex-shrink:0;border:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:var(--transition);box-shadow:0 1px 4px #0003}.toggle.on{background:var(--brand-accent)}.toggle.on:after{left:21px}.toggle.off{background:var(--gray-300)}.alert{display:flex;gap:10px;padding:12px 16px;border-radius:var(--r-md);font-size:.875rem;margin-bottom:10px;border:1px solid}.alert-info{background:var(--brand-tint);border-color:var(--brand-tint-border);color:var(--brand-text-strong)}.alert-warning{background:var(--color-warning-bg);border-color:#fde68a;color:#78350f}.alert-success{background:var(--color-success-bg);border-color:#a7f3d0;color:#065f46}.alert-danger{background:var(--color-error-bg);border-color:#fecaca;color:#991b1b}.alert a,.link{color:var(--brand-accent);text-decoration:underline;text-underline-offset:2px}.page-container{padding:28px 64px;max-width:1400px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-title{font-size:1.5rem;font-weight:700;color:var(--brand-text-strong)}.page-subtitle{font-size:.875rem;color:var(--brand-muted-text);margin-top:2px}.flex{display:flex}.flex-c{display:flex;align-items:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-wrap{flex-wrap:wrap}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.8125rem}.text-muted{color:var(--brand-placeholder)}.font-mono{font-variant-numeric:tabular-nums;font-size:.875rem}.w-full{width:100%}.divider{height:1px;background:var(--brand-table-border);margin:12px 0}code{font-family:inherit;font-variant-numeric:tabular-nums;font-size:.8125rem;background:var(--brand-tint);border-radius:var(--r-md);padding:1px 5px;color:var(--brand-text-strong)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--gray-200);border-top-color:var(--brand-accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 24px;color:var(--brand-placeholder)}.empty-icon{display:none}@media (max-width: 1200px){.page-container{padding:24px 18px}}@media (max-width: 880px){.card-body{padding:16px}.card-header{padding:12px 16px;flex-wrap:wrap;gap:8px}.admin-data-grid{grid-template-columns:1fr!important;gap:12px}.modal{width:95vw!important;max-width:95vw!important}.modal-header,.modal-body,.modal-footer{padding:14px 16px}.modal-footer{flex-wrap:wrap;gap:8px}.modal-footer .btn{flex:1 1 auto}.form-row{grid-template-columns:1fr!important;gap:10px}}@media (max-width: 560px){.card-header{flex-direction:column;align-items:flex-start}.action-bar{flex-direction:column-reverse!important;gap:8px}.action-bar .btn{width:100%}.data-table th,.data-table td{padding:8px 10px}}
