@import "https://fonts.googleapis.com/css2?family=Hind+Madurai:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-app:#f8fafc;--bg-card:#fff;--bg-sidebar:#fff;--accent:#6366f1;--accent-soft:#6366f11a;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border-subtle:#f1f5f9;--border-focus:#6366f1;--sidebar-width:260px;--topbar-height:70px;--radius-xl:16px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--font-heading:"Outfit", sans-serif;--font-body:"Inter", "Hind Madurai", sans-serif;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text-primary);font-weight:700}a{color:inherit;transition:var(--transition-smooth);text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}#root{min-height:100vh}.dashboard-layout{min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;height:100vh;display:flex;overflow:hidden}.scroll-area{flex:1;padding:2rem;overflow-y:auto}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:var(--transition-smooth);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-lg);transition:var(--transition-smooth);padding:.75rem 1.5rem;font-size:.875rem;font-weight:600}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.cta-button{color:#fff;border-radius:var(--radius-lg);transition:var(--transition-smooth);cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border:1px solid #ffffff1a;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:.9375rem;font-weight:600;display:inline-flex;box-shadow:0 4px 15px #6366f14d}.cta-button:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%);transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.cta-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 10px #6366f133}.cta-button:disabled{opacity:.7;cursor:not-allowed;filter:grayscale();box-shadow:none}.text-button{color:var(--accent);transition:var(--transition-smooth);font-weight:600;display:inline-block;position:relative}.text-button:after{content:"";background-color:var(--accent);width:0;height:2px;transition:var(--transition-smooth);border-radius:1px;position:absolute;bottom:-2px;left:0}.text-button:hover{color:#4f46e5}.text-button:hover:after{width:100%}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.8125rem;font-weight:500;display:block}.form-input{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;color:var(--text-primary);transition:var(--transition-smooth);background:#fcfcfd;padding:.75rem 1rem;font-size:.875rem}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 4px var(--accent-soft);background:#fff;outline:none}.data-table-container{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle);padding:1rem;font-size:.75rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border-subtle);padding:1rem;font-size:.875rem}.data-table tr:hover{background:#fafafa}.badge{border-radius:9999px;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.badge-success{color:#059669;background:#ecfdf5}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes editingGlow{0%{border-color:#f97316;box-shadow:0 0 #f9731666,0 4px 20px #0000000a}50%{border-color:#ea580c;box-shadow:0 0 16px 4px #f9731640,0 4px 20px #0000000a}to{border-color:#f97316;box-shadow:0 0 #f9731666,0 4px 20px #0000000a}}.editing-active-card{animation:2.5s ease-in-out infinite editingGlow!important}@keyframes toastSlideIn{0%{opacity:0;transform:translate(40px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toastProgressBar{0%{width:100%}to{width:0%}}.gift-registry-content{flex-direction:column;display:flex}.main-grid{grid-template-columns:350px 1fr;align-items:start;gap:2rem;display:grid}.card-header{margin-bottom:2rem}.card-header h3{margin-bottom:.25rem;font-size:1.125rem}.card-header p{color:var(--text-muted);font-size:.875rem}.table-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.guest-name{color:var(--text-primary);font-weight:600}.full-width{justify-content:center;align-items:center;width:100%;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:4rem}.btn-icon.delete{color:#ef4444;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.btn-icon.delete:hover{background:#fef2f2}@media (width<=1000px){.main-grid{grid-template-columns:1fr}}.receipt-print-section{display:none}.receipt-print-section.preview-mode{width:100%;max-width:340px;margin:0 auto;display:block}.receipt-print-section.preview-mode .receipt-content{color:#000;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:16px 14px;font-family:Hind Madurai,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;position:relative;overflow:hidden;box-shadow:0 10px 25px #00000026,0 2px 6px #00000014}.receipt-content{box-sizing:border-box;color:#000;text-align:center;width:100%;font-family:Hind Madurai,Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.receipt-content.width-80mm{max-width:80mm}.receipt-content.width-58mm{max-width:58mm;font-size:.88em}.receipt-content.size-compact{font-size:11px}.receipt-content.size-compact .receipt-header{font-size:15px}.receipt-content.size-compact .amount-value{font-size:17px}.receipt-content.size-normal{font-size:12.5px}.receipt-content.size-normal .receipt-header{font-size:17px}.receipt-content.size-normal .amount-value{font-size:20px}.receipt-content.size-large{font-size:14px}.receipt-content.size-large .receipt-header{font-size:19px}.receipt-content.size-large .amount-value{font-size:22px}.receipt-copy-badge{text-transform:uppercase;border:1px dashed #000;margin-bottom:6px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.receipt-invocation{letter-spacing:.5px;margin:2px 0 4px;font-size:12.5px;font-weight:800}.receipt-header{text-transform:uppercase;margin:4px 0;font-size:17px;font-weight:900;line-height:1.2}.receipt-subheading{margin:2px 0;font-size:11.5px;font-weight:600}.receipt-divider{border-top:1px dashed #000;margin:6px 0}.receipt-occasion{margin:3px 0;font-size:14px;font-weight:800;line-height:1.2}.receipt-date{color:#111;margin:2px 0;font-size:11px;font-weight:500}.receipt-counter-meta{color:#222;margin:2px 0;font-size:10.5px;font-weight:600}.receipt-token-container{text-align:center;margin:6px auto}.receipt-token-container.style-badge{border:1.5px solid #000;border-radius:4px;flex-direction:column;align-items:center;padding:2px 12px;display:inline-flex}.receipt-token-container.style-badge .token-label{text-transform:uppercase;font-size:9.5px;font-weight:700}.receipt-token-container.style-badge .token-number{font-size:18px;font-weight:900;line-height:1.1}.receipt-token-container.style-large_box{box-sizing:border-box;border:2px solid #000;justify-content:space-between;align-items:center;width:100%;padding:4px 8px;display:flex}.receipt-token-container.style-large_box .token-label{font-size:11px;font-weight:800}.receipt-token-container.style-large_box .token-number{font-size:20px;font-weight:900}.receipt-token-container.style-minimal{justify-content:space-between;margin:4px 0;font-size:13px;font-weight:800;display:flex}.receipt-guest-section{margin:5px 0}.receipt-row{text-align:left;justify-content:space-between;align-items:flex-start;margin:3px 0;font-size:12.5px;line-height:1.3;display:flex}.receipt-row .row-label{color:#222;white-space:nowrap;margin-right:6px;font-weight:600}.receipt-row .row-value{text-align:right;word-break:break-word;font-weight:700}.receipt-row.prominent-row .row-value{font-size:14.5px;font-weight:900}.receipt-row.bold-row{font-weight:800}.receipt-thaimaman-badge{text-align:center;background:#f8fafc;border:1.5px solid #000;border-radius:3px;margin:5px 0;padding:3px 6px;font-size:12px;font-weight:900}.receipt-group-box{border:1px solid #000;border-radius:2px;margin:6px 0;padding:4px}.receipt-group-title{text-align:center;border-bottom:1px dashed #000;margin-bottom:4px;padding-bottom:2px;font-size:11px;font-weight:800}.receipt-group-table{border-collapse:collapse;width:100%;font-size:10.5px}.receipt-group-table th,.receipt-group-table td{padding:2px 4px}.receipt-group-table th{border-bottom:1px solid #000}.receipt-amount-section{margin:6px 0}.receipt-amount-row{text-align:left;border-top:1.5px solid #000;border-bottom:1.5px solid #000;justify-content:space-between;align-items:center;margin:4px 0;padding:6px 0;display:flex}.amount-label{font-size:13px;font-weight:900}.amount-value{white-space:nowrap;font-size:20px;font-weight:900}.receipt-amount-words{text-align:center;margin:4px 0;font-size:11.5px;font-style:italic;font-weight:700;line-height:1.3}.receipt-mode-tag{text-align:center;margin:3px 0;font-size:11px}.receipt-denom-box{text-align:left;border-top:1px dotted #555;margin:4px 0;padding-top:4px;font-size:10.5px}.denom-title{margin-bottom:1px;font-weight:700;display:block}.denom-breakdown{color:#111;font-size:10px}.receipt-change-box{border-top:1px dashed #666;margin-top:4px;padding-top:3px}.receipt-footer-primary{margin:6px 0 2px;font-size:12.5px;font-weight:800;line-height:1.3}.receipt-footer-secondary{margin:2px 0;font-size:11px;font-weight:600;line-height:1.2}.receipt-branding{color:#444;margin-top:6px;font-size:9.5px;font-weight:500}.receipt-tear-divider{text-align:center;color:#000;border-top:1px dashed #000;border-bottom:1px dashed #000;margin:16px 0;padding:4px 0;font-size:10px;font-weight:800}.receipt-feed-line{height:8px;line-height:8px}#thermal-print-root{display:none}@media print{@page{size:80mm auto;margin:0!important}#root,.dashboard-layout,.main-content,.scroll-area,.settings-page,.sidebar,.top-bar,.receipt-print-section.preview-mode,.toast-portal-container,.toast-container,.toast-item,.hide-on-print,.no-print,.auth-modal-overlay,.approval-modal-overlay,.modal-overlay,[class*=toast-portal],[class*=toast-container],[class*=toast-item]{visibility:hidden!important;opacity:0!important;display:none!important}html,body{color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;width:80mm!important;min-width:80mm!important;max-width:80mm!important;height:auto!important;min-height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}#thermal-print-root{visibility:visible!important;box-sizing:border-box!important;color:#000!important;background:#fff!important;width:80mm!important;max-width:80mm!important;margin:0!important;padding:2mm 2.5mm!important;display:block!important;position:static!important;overflow:visible!important}#thermal-print-root *{visibility:visible!important;color:#000!important}#thermal-print-root .receipt-content{width:100%!important;max-width:80mm!important;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}}.app-container{background-color:var(--bg-app);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.app-container:before{content:"";background:radial-gradient(circle, var(--accent-soft) 0%, transparent 70%);z-index:1;width:400px;height:400px;position:absolute;top:-10%;right:-5%}.hero-card{z-index:10;transition:var(--transition-smooth)}.moi-logo{font-family:var(--font-heading);letter-spacing:-.05em;font-weight:800}@media (width<=768px){.app-container{padding:1rem}}
