:root{--bg:#f5f3ef;--bg-elevated:#ffffffe0;--panel:#ffffffeb;--line:#11182714;--text:#171717;--muted:#676d79;--soft:#8d95a3;--accent:#1f4f46;--accent-soft:#dce8e4;--success:#1d6b45;--danger:#9f2b2b;--shadow:0 18px 40px #0f172a14;--font-sans:"Avenir Next", "Avenir", "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100svh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:radial-gradient(1000px 600px at 0 0,#1f4f4614,#0000 60%),radial-gradient(800px 500px at 100% 10%,#5f677814,#0000 55%),linear-gradient(#f7f4ef 0%,#eef1f4 100%);margin:0}a,button,input,textarea,select{font:inherit}button{cursor:pointer}#root{min-height:100svh}.app-shell{min-height:100svh;position:relative}.app-shell:before{content:"";pointer-events:none;opacity:.5;background-image:radial-gradient(#1118270b .55px,#0000 .55px);background-size:20px 20px;position:fixed;inset:0}.app-container{z-index:1;flex-direction:column;gap:24px;max-width:1380px;margin:0 auto;padding:28px 20px 40px;animation:.42s ease-out rise-in;display:flex;position:relative}.hero,.panel,.loyalty-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero{border-radius:28px;gap:22px;padding:28px;display:grid}.auth-hero{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffeb;border-radius:28px;gap:12px;max-width:880px;margin:0 auto;padding:32px 28px;display:grid}.hero-topline{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--soft);font-size:12px;font-weight:700}.hero h1,.panel h2,.panel h3,.loyalty-card h2{letter-spacing:-.03em;margin:0}.hero h1{max-width:760px;font-size:clamp(32px,5vw,48px)}.hero-copy,.panel p,.card-copy{color:var(--muted);margin:0;line-height:1.6}.hero-metrics,.stats-grid,.reward-grid,.field-grid,.merchant-layout,.admin-layout,.admin-split,.card-page{gap:18px;display:grid}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card,.surface-card{background:linear-gradient(#fffffff5,#f4f7f9f5);border:1px solid #1118270f;border-radius:20px;padding:18px}.metric-card span,.surface-card span,.reward-footer span,.activity-row span,.card-banner span,.card-balance span{color:var(--muted);font-size:13px;display:block}.metric-card strong,.surface-card strong,.card-balance strong{margin-top:10px;font-size:clamp(24px,4vw,34px);display:block}.top-tabs{flex-wrap:wrap;gap:8px;display:inline-flex}.top-tabs a,.btn,.text-button{border:none;text-decoration:none;transition:transform .16s,box-shadow .16s,opacity .16s}.top-tabs a{color:var(--muted);border:1px solid var(--line);background:#ffffffb3;border-radius:999px;padding:11px 16px;font-weight:700}.top-tabs a.active{color:#fff;background:var(--accent)}.notice{border:1px solid var(--line);background:#ffffffeb;border-radius:18px;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.notice.success{background:#f5fcf7f2;border-color:#1d6b4538}.notice.error{background:#fdf7f7f2;border-color:#9f2b2b33}.notice button,.text-button{color:var(--accent);background:0 0;font-weight:700}.auth-shell{place-items:center;min-height:540px;display:grid}.auth-card{border:1px solid var(--line);width:min(520px,100%);box-shadow:var(--shadow);background:#fffffff0;border-radius:28px;flex-direction:column;gap:16px;padding:28px;display:flex}.logout-group{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.signed-in-badge{color:var(--accent);white-space:nowrap;background:#1f4f4614;border-radius:999px;padding:10px 14px;font-weight:700}.merchant-layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr);align-items:start}.admin-layout,.card-page{grid-template-columns:minmax(0,1fr)}.admin-split{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.panel,.loyalty-card{border-radius:26px;padding:24px}.stack{flex-direction:column;gap:18px;display:flex}.panel-head,.spread,.inline-row,.pill-row,.reward-footer,.activity-row,.card-banner,.card-member{align-items:center;gap:12px;display:flex}.panel-head,.spread{justify-content:space-between}.panel-head{align-items:flex-start}.field,.member-list{flex-direction:column;gap:8px;display:flex}.field label{text-transform:uppercase;letter-spacing:.12em;color:var(--soft);font-size:12px;font-weight:700}.field-grid,.field-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.input,select.input,.textarea{width:100%;color:var(--text);background:#fff;border:1px solid #1118271f;border-radius:16px;padding:13px 14px}.input:focus,select.input:focus,.textarea:focus{border-color:#1f4f4666;outline:none;box-shadow:0 0 0 4px #1f4f461f}.textarea{resize:vertical;min-height:100px}.small-input{max-width:180px}.btn{border-radius:16px;padding:12px 16px;font-weight:700}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 12px 24px #1f4f462e}.btn-secondary{color:var(--text);background:#fff;border:1px solid #1118271f}.btn:hover,.top-tabs a:hover,.text-button:hover{transform:translateY(-1px)}.member-list{max-height:320px;overflow:auto}.member-item{text-align:left;background:linear-gradient(#fff,#fafbfc);border:1px solid #11182714;border-radius:18px;flex-direction:column;gap:4px;width:100%;padding:14px;display:flex}.member-item span,.member-item em{color:var(--muted);font-style:normal}.member-item.selected{background:linear-gradient(#edf5f2f0,#fffffffa);border-color:#1f4f4659}.divider{background:#11182714;height:1px}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:8px 12px;font-weight:700}.pill.strong{background:var(--accent);color:#fff}.action-card{background:linear-gradient(#fffffffa,#f6f8faf2);border:1px solid #1118270f;border-radius:22px;flex-direction:column;gap:16px;padding:18px;display:flex}.reward-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.reward-card{background:#fff;border:1px solid #11182714;border-radius:20px;flex-direction:column;justify-content:space-between;gap:18px;padding:18px;display:flex}.reward-card p{min-height:48px}.reward-footer{justify-content:space-between}.activity-list{flex-direction:column;gap:12px;display:flex}.activity-row{border-bottom:1px solid #11182714;justify-content:space-between;padding:14px 0}.activity-row strong,.activity-row em,.reward-card strong{font-size:15px}.activity-row em{font-style:normal;font-weight:700}.positive{color:var(--success)}.negative{color:var(--danger)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #11182714;padding:14px 10px}th{color:var(--soft);text-transform:uppercase;letter-spacing:.12em;font-size:12px}.loyalty-card{max-width:720px;position:relative;overflow:hidden}.loyalty-card:after{content:"";background:#1f4f4614;border-radius:50%;width:240px;height:240px;position:absolute;inset:auto -60px -120px auto}.card-banner{text-transform:uppercase;letter-spacing:.1em;color:var(--soft);justify-content:space-between;font-size:12px}.card-member,.card-balance{justify-content:space-between;align-items:flex-end;margin-top:24px}.card-member p,.card-member h2,.card-balance{margin:0}.card-balance{border-top:1px solid #11182714;border-bottom:1px solid #11182714;padding:22px 0}.card-code{background:linear-gradient(#f8fafb,#eef3f4);border-radius:18px;margin-top:22px;padding:18px}.barcode-lines{background:repeating-linear-gradient(90deg,#111 0 2px,#0000 2px 5px,#111 5px 6px,#0000 6px 11px);border-radius:12px;height:72px}.card-code code{letter-spacing:.14em;margin-top:12px;font-size:13px;display:block}.card-copy{max-width:560px;margin-top:18px}.empty-state,.empty-inline{color:var(--muted);text-align:center}.wrap{flex-wrap:wrap}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.merchant-layout,.admin-split,.field-grid,.field-grid.two-column,.hero-metrics{grid-template-columns:minmax(0,1fr)}.inline-row,.panel-head,.spread,.card-member,.card-balance,.hero-topline{flex-wrap:wrap}}@media (width<=720px){.app-container{padding:18px 14px 28px}.hero,.panel,.loyalty-card{border-radius:22px;padding:20px}.btn,.top-tabs a{justify-content:center;width:100%}.inline-row{width:100%}.small-input{max-width:none}}
