.admin-container{min-height:100vh;padding:1.5rem;min-width:1024px}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;color:#1b3a5c}.admin-header-content{text-align:center;flex:1}.admin-header h1{font-family:var(--font-logo);font-size:2rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.5rem}.admin-header p{font-size:1rem}.admin-refresh-btn{background:transparent;border:1px solid #1B3A5C;color:#1b3a5c;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.3rem;white-space:nowrap}.admin-refresh-btn:hover:not(:disabled){background:#1b3a5c1a;border-color:#2a4a6b}.admin-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.admin-refresh-btn:disabled:before{content:"⟳";display:inline-block;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--color-denim-wash);overflow-x:auto}.admin-tab{background:transparent;color:#1b3a5c;border:none;border-bottom:3px solid transparent;padding:.75rem 1.5rem;font-size:1rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.admin-tab:hover{color:#2a4a6b}.admin-tab.active{color:#e8b04b;border-bottom-color:#e8b04b;font-weight:600}.admin-tab-content{background:#e8eef5f2;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000004d}.online-customers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.customer-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:2px solid var(--color-denim-pale);position:relative}.customer-card.has-redemption{border-color:var(--color-stitch-gold);background:linear-gradient(135deg,#fff9e6,#fff)}.customer-card-header{margin-bottom:1rem;color:var(--color-indigo-dark)}.customer-card-header h3{font-size:1.2rem;margin-bottom:.25rem}.customer-card-header p{font-size:.9rem;opacity:.7}.customer-card-status{display:flex;justify-content:space-between;margin-bottom:1rem;font-size:.9rem;color:var(--color-denim-mid)}.customer-card-actions{display:flex;flex-direction:column;gap:.75rem}.redemption-badge{background:var(--color-stitch-gold);color:var(--color-indigo-dark);padding:.5rem 1rem;border-radius:8px;font-weight:600;text-align:center;margin-bottom:.75rem;box-shadow:0 2px 8px #e8b04b66}.amount-input-group{display:flex;gap:.5rem}.amount-input-group input{flex:1;min-width:0}.amount-input-group button{white-space:nowrap}.settings-form{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:800px}.settings-form-group{display:flex;flex-direction:column;gap:.5rem}.settings-form-group label{font-weight:600;color:var(--color-indigo-dark);font-size:.9rem}.settings-form-group small{color:var(--color-denim-mid);font-size:.8rem;margin-top:-.25rem}.settings-form-actions{grid-column:1 / -1;display:flex;gap:1rem}.migrate-form{max-width:600px;display:flex;flex-direction:column;gap:1.25rem}.migrate-form-group{display:flex;flex-direction:column;gap:.5rem}.migrate-form-group label{font-weight:600;color:var(--color-indigo-dark);font-size:.9rem}.migrate-form-group small{color:var(--color-denim-mid);font-size:.8rem;margin-top:-.25rem}.migrate-preview{background:#3e63901a;border-left:3px solid var(--color-denim-mid);padding:1rem;border-radius:4px;color:var(--color-indigo-dark);font-size:.9rem}.migrate-form-actions{display:flex;gap:1rem}.redemption-history-table{width:100%;border-collapse:collapse;font-size:.95rem}.redemption-history-table th{background:var(--color-denim-mid);color:var(--color-text-light);padding:.75rem;text-align:left;font-weight:600}.redemption-history-table td{padding:.75rem;border-bottom:1px solid var(--color-denim-pale);color:var(--color-indigo-dark)}.redemption-history-table tbody tr:hover{background:var(--color-denim-pale)}.redemption-history-empty{text-align:center;padding:2rem;color:var(--color-denim-mid);font-size:1rem}.admin-logout{text-align:center;margin-top:2rem}.admin-logout button{background:transparent;color:#1b3a5c;border:1px solid #1B3A5C;padding:.5rem 1.5rem;font-size:.9rem}.admin-logout button:hover{background:#1b3a5c1a}.admin-login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.admin-login-box{background:#e8eef5f2;border-radius:16px;padding:2rem;max-width:400px;width:100%;box-shadow:0 8px 24px #0006;border:3px dashed var(--color-stitch-gold)}.admin-login-box h1{font-family:var(--font-logo);text-align:center;color:var(--color-indigo-dark);margin-bottom:1.5rem;font-size:1.8rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase}.admin-login-form{display:flex;flex-direction:column;gap:1.25rem}.admin-login-form-group{display:flex;flex-direction:column;gap:.5rem}.admin-login-form-group label{font-weight:600;color:var(--color-indigo-dark);font-size:.9rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:12px;max-width:400px;width:90%;box-shadow:0 8px 32px #0000004d}.modal-message{color:var(--color-indigo-dark);font-size:1.1rem;margin-bottom:1.5rem;text-align:center;font-weight:500}.modal-actions{display:flex;gap:1rem;justify-content:center}.modal-actions button{min-width:100px}:root{--color-indigo-dark: #1B3A5C;--color-denim-blue: #2A4A6B;--color-denim-mid: #3E6390;--color-denim-wash: #A8C0DC;--color-denim-pale: #E8EEF5;--color-stitch-gold: #E8B04B;--color-text-light: #F7F4EC;--font-main: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;--font-logo: "Helvetica Neue", Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background:#e0d8c8;color:#1b3a5c;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px);pointer-events:none;z-index:0}#root{position:relative;z-index:1}.app-logo{font-family:var(--font-logo);font-size:1.5rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:2rem 0 1rem;color:#1b3a5c}button{font-family:var(--font-main);border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;cursor:pointer;transition:all .2s ease;font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-denim-mid);color:var(--color-text-light);border:2px dashed var(--color-stitch-gold)}.btn-primary:hover:not(:disabled){background:var(--color-denim-wash);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.btn-secondary{background:var(--color-denim-pale);color:var(--color-indigo-dark);border:2px solid var(--color-denim-mid)}.btn-secondary:hover:not(:disabled){background:var(--color-denim-wash);color:var(--color-text-light)}.btn-danger{background:#c53030;color:var(--color-text-light);border:2px dashed var(--color-stitch-gold)}.btn-danger:hover:not(:disabled){background:#9b2c2c;transform:translateY(-2px)}input[type=text],input[type=password],input[type=number],select{font-family:var(--font-main);width:100%;padding:.75rem;border:2px solid var(--color-denim-wash);border-radius:8px;font-size:1rem;background:#ffffffe6;color:var(--color-indigo-dark);transition:border-color .2s ease}input:focus,select:focus{outline:none;border-color:var(--color-stitch-gold);box-shadow:0 0 0 3px #e8b04b33}input::placeholder{color:var(--color-denim-mid);opacity:.6}.error-message{color:#fc8181;font-size:.9rem;margin-top:.5rem;padding:.5rem;background:#c530301a;border-radius:4px;border-left:3px solid #C53030}.success-message{color:#68d391;font-size:.9rem;margin-top:.5rem;padding:.5rem;background:#48bb781a;border-radius:4px;border-left:3px solid #48BB78}.loading{text-align:center;padding:2rem;font-size:1.2rem;color:var(--color-denim-wash)}.loading:after{content:"...";animation:loading 1.5s infinite}@keyframes loading{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}
