:root{--bg:#f4f6f9;--panel:#ffffff;--ink:#172033;--muted:#6f7a8d;--line:#e5e9f0;--brand:#5a37d6;--brand2:#17b897;--danger:#d64b58;--warning:#d6932f;--success:#1d9b62;--shadow:0 18px 45px rgba(24,32,51,.08);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh}.topbar{height:72px;background:#111729;color:white;justify-content:space-between;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;font-weight:800;letter-spacing:-.02em}.brandmark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#8b6df0);display:grid;place-items:center;color:white;font-weight:900}.small{font-size:12px;color:var(--muted)}.topbar .small{color:#c6cada}.layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 72px)}.sidebar{background:#151c31;color:#d8ddec;padding:22px 16px;position:-webkit-sticky;position:sticky;top:72px;height:calc(100vh - 72px)}.nav-title{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#7f8aa7;padding:12px 12px 8px}.nav-btn{width:100%;border:0;background:transparent;color:#cfd5e4;padding:12px 13px;border-radius:12px;text-align:left;display:flex;align-items:center;gap:10px;margin-bottom:5px}.nav-btn.active,.nav-btn:hover{background:#252f4c;color:white}.nav-btn span:first-child{width:22px;text-align:center}.main{padding:28px;max-width:1500px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.page-head h1{margin:0 0 6px;font-size:29px;letter-spacing:-.035em}.page-head p{margin:0;color:var(--muted)}.btn{border:1px solid var(--line);background:white;color:var(--ink);border-radius:11px;padding:10px 14px;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.02)}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--brand);border-color:var(--brand);color:white}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.smallbtn{padding:7px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.grid{display:grid;grid-gap:18px;gap:18px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.metric .label{color:var(--muted);font-size:13px;margin-bottom:9px}.metric .value{font-size:30px;font-weight:850;letter-spacing:-.04em}.metric .sub{font-size:12px;color:var(--muted);margin-top:4px}.section{margin-top:22px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title h2{font-size:18px;margin:0}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;min-width:850px}td,th{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7c879b;background:#fafbfc}.sort-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.sort-head:hover{color:var(--brand)}.sort-arrow{font-size:10px;line-height:1;min-width:10px}.sort-head.active{color:var(--brand)}tr:last-child td{border-bottom:0}.pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.pill.active{background:#e7f7ef;color:#168455}.pill.scheduled{background:#eeeaff;color:#6246c4}.pill.finished{background:#eef1f5;color:#5d6572}.pill.draft{background:#fff4dd;color:#9a690b}.campaign-card{display:grid;grid-template-columns:1fr auto;grid-gap:16px;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);margin-bottom:12px}.campaign-card h3{margin:0 0 7px;font-size:18px}.campaign-meta{display:flex;gap:13px;flex-wrap:wrap;color:var(--muted);font-size:12px}.progress{height:8px;background:#edf0f5;border-radius:999px;overflow:hidden;margin-top:12px}.progress>div{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:999px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.form-field{display:flex;flex-direction:column;gap:7px}.form-field.full{grid-column:1/-1}.form-field label{font-size:12px;font-weight:800;color:#5a6476}.form-field input,.form-field select,.form-field textarea{border:1px solid #dce1e9;border-radius:11px;padding:11px 12px;outline:none;background:white;color:var(--ink)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(90,55,214,.1)}textarea{min-height:95px;resize:vertical}.hint{font-size:11px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(8,13,26,.62);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(850px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:-webkit-sticky;position:sticky;top:0;background:white;z-index:2}.modal-head h2{margin:0;font-size:20px}.modal-body{padding:22px}.modal-foot{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;position:-webkit-sticky;position:sticky;bottom:0;background:white}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 20%,#6e50e9 0,transparent 35%),radial-gradient(circle at 85% 70%,#27c4a5 0,transparent 30%),#111729}.login-box{width:min(430px,100%);background:white;border-radius:24px;padding:30px;box-shadow:0 35px 80px rgba(0,0,0,.35)}.login-box h1{margin:10px 0 6px}.demo-note{background:#fff7e8;border:1px solid #f2d395;border-radius:12px;padding:11px 12px;font-size:12px;color:#77550f;margin:15px 0}.customer{background:#0f1424;display:grid;grid-template-columns:1.05fr .95fr}.hero-panel{padding:54px;display:flex;align-items:flex-end;min-height:100vh;min-height:100dvh;background:linear-gradient(140deg,rgba(90,55,214,.92),rgba(20,190,154,.82)),radial-gradient(circle at 70% 15%,rgba(255,255,255,.25),transparent 40%);color:white}.hero-copy{max-width:640px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;opacity:.8}.hero-copy h1{font-size:64px;line-height:.95;letter-spacing:-.06em;margin:15px 0 18px}.hero-copy p{font-size:18px;line-height:1.6;max-width:560px}.customer-form-panel{background:#f8f9fb;display:grid;place-items:center;padding:34px}.entry-card{width:min(520px,100%);background:white;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.entry-card h2{margin:0 0 5px}.entry-card .muted{color:var(--muted);font-size:13px;margin-bottom:20px}.age-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:rgba(90,55,214,.09);color:var(--brand);font-size:24px;font-weight:900;border:1px solid rgba(90,55,214,.18)}.age-actions{display:grid;grid-gap:10px;gap:10px;margin-top:20px}.age-actions .btn{width:100%;min-height:52px}.code-input{font-size:21px;letter-spacing:.08em;text-transform:uppercase;text-align:center;font-weight:850}.notice{border-radius:12px;padding:12px 13px;font-size:13px;margin:12px 0}.notice.error{background:#ffedf0;color:#a22937;border:1px solid #f6c9cf}.notice.success{background:#eaf8f1;color:#16754d;border:1px solid #c5ead7}.notice.info{background:#eef3ff;color:#34558a;border:1px solid #cfdbf4}.back-admin{position:fixed;top:16px;right:16px;z-index:10}.checkrow{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#687386;margin:14px 0;line-height:1.45}.checkrow input{margin-top:2px;min-width:18px;width:18px;height:18px}.customer .btn.primary{min-height:52px;font-size:15px}.customer .form-field input{min-height:50px;font-size:16px}.customer .form-field label{font-size:13px}.customer .progress-dots{display:flex;gap:6px;margin:0 0 14px}.customer .progress-dots span{width:26px;height:4px;border-radius:999px;background:#e3e6ec}.customer .progress-dots span.on{background:var(--brand)}.split{grid-template-columns:1.1fr .9fr;grid-gap:18px}.qrbox,.split{display:grid;gap:18px}.qrbox{grid-template-columns:180px 1fr;grid-gap:18px;align-items:center}.qrbox img{width:180px;height:180px;border:1px solid var(--line);border-radius:14px;background:white}.code-sample{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f5f7fa;padding:10px;border-radius:10px;border:1px dashed #cdd3de}.empty{padding:40px;text-align:center;color:var(--muted)}.tag{font-size:11px;font-weight:800;padding:5px 8px;background:#eef1f6;border-radius:8px;color:#596477}.right{text-align:right}.monospace{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;background:#111729;color:white;padding:13px 16px;border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.25);z-index:200;font-size:13px;max-width:360px}@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{display:none}.grid.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:700px){.main{padding:18px}.form-grid,.grid.cards{grid-template-columns:1fr}.form-field.full{grid-column:auto}.qrbox{grid-template-columns:1fr}.topbar{padding:0 16px}.customer,.page-head{flex-direction:column}.customer{display:flex;min-height:100vh;min-height:100dvh;background:#f8f9fb;overflow-x:hidden}.customer .hero-panel{min-height:250px;height:34vh;max-height:340px;padding:calc(28px + env(safe-area-inset-top)) 22px 46px;align-items:flex-end;flex:none}.customer .hero-copy{width:100%;max-width:none}.customer .eyebrow{font-size:10px;letter-spacing:.14em}.customer .hero-copy h1{font-size:38px;line-height:.98;margin:10px 0;max-width:92%}.customer .hero-copy p{font-size:14px;line-height:1.45;margin:0;max-width:95%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.customer .campaign-meta{display:none}.customer-form-panel{display:block;flex:1 1;padding:0 14px calc(18px + env(safe-area-inset-bottom));margin-top:-26px;background:transparent;position:relative;z-index:2}.entry-card{width:100%;max-width:540px;margin:0 auto;border-radius:22px;padding:22px 18px 20px;box-shadow:0 16px 42px rgba(24,32,51,.16)}.entry-card h2{font-size:24px;line-height:1.08;margin-bottom:8px}.entry-card .muted{font-size:13px;line-height:1.45;margin-bottom:18px}.age-icon{width:70px;height:70px;font-size:22px;margin-bottom:15px}.age-actions{gap:11px;margin-top:18px}.age-actions .btn{min-height:56px;border-radius:13px;font-size:15px}.code-input{min-height:58px!important;font-size:20px!important;letter-spacing:.055em;border-radius:13px!important}.customer .btn.primary{min-height:56px;border-radius:13px;font-size:16px}.customer .btn.ghost{min-height:48px}.customer .form-field{gap:6px}.customer .form-field input{min-height:52px;border-radius:12px;padding:12px 13px;font-size:16px}.customer .form-grid{gap:12px}.customer .checkrow{font-size:12px;margin:15px 0}.back-admin{top:calc(10px + env(safe-area-inset-top));right:10px;padding:7px 9px!important;min-height:auto!important;font-size:10px!important;opacity:.78}}@media(max-width:390px){.customer .hero-panel{height:31vh;min-height:220px;padding-left:18px;padding-right:18px}.customer .hero-copy h1{font-size:33px}.entry-card{padding:20px 16px}.code-input{font-size:18px!important;letter-spacing:.04em}}:root{--bg:#f2e7b7;--panel:#fff8d9;--ink:#542b20;--muted:#8c5e4b;--line:#efb271;--brand:#f4511e;--brand2:#ff8a22;--danger:#b33122;--warning:#bf6d15;--success:#597b45;--shadow:0 14px 32px rgba(91,40,20,.12);--radius:14px;--aperol-cream:#f8efc6;--aperol-orange:#f4511e;--aperol-rust:#9d3e20}body{background:#f4eac0;color:var(--ink);font-family:Arial Narrow,Roboto Condensed,Helvetica Neue,Arial,sans-serif}.topbar{height:76px;background:var(--aperol-orange);color:#fff;border-bottom:4px solid #d83f14;box-shadow:none}.brand{font-size:20px;text-transform:uppercase;letter-spacing:.08em}.brandmark{background:transparent;border:2px solid rgba(255,255,255,.9);border-radius:50%;font-style:italic;transform:rotate(-7deg);box-shadow:none}.topbar .small{color:#ffe7cf}.layout{grid-template-columns:250px 1fr;min-height:calc(100vh - 76px)}.sidebar{background:#8e371f;color:#fff4da;top:76px;height:calc(100vh - 76px);border-right:4px solid #6e2919}.nav-title{color:#e9b89a;font-weight:900}.nav-btn{color:#ffe8cf;border:1px solid transparent;border-radius:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.nav-btn.active,.nav-btn:hover{background:#f4e7b8;color:#81351f;border-color:#f4e7b8}.main{max-width:1480px;padding:30px 34px}.page-head h1{text-transform:uppercase;letter-spacing:.02em;font-stretch:condensed;font-size:34px;color:#87381f}.page-head p{color:#9a654f}.btn{border:1px solid #e8a063;background:#fff5cf;color:#8a3d23;border-radius:7px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;box-shadow:none}.btn:hover{transform:none;background:#fff0bd}.btn.primary{background:var(--aperol-orange);border-color:var(--aperol-orange);color:#fff}.btn.primary:hover{background:#da4218}.btn.success{background:#718d58;border-color:#718d58}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{background:#a73324;border-color:#a73324}.campaign-card,.card,.login-box,.modal,.table-wrap{background:var(--aperol-cream);border:1px solid #e5a666;border-radius:10px;box-shadow:var(--shadow)}.hint,.metric .label,.muted,.small{color:#96634f}.metric .value{color:#8f381f}.campaign-card h3,.section-title h2{color:#8b371f;text-transform:uppercase;letter-spacing:.03em}.progress{background:#ead7a3}.progress>div{background:var(--aperol-orange)}th{background:#9b3d21;color:#fff1d6;border-bottom-color:#823019}td{border-bottom-color:#e8c88e}.table-wrap table{background:#fff8da}.sort-head.active,.sort-head:hover{color:#ffd09f}.pill.active{background:#dbe7be;color:#49652f}.pill.scheduled{background:#ffe0bd;color:#9a4b18}.pill.finished{background:#ead7c4;color:#805d4e}.pill.draft{background:#ffe4b1;color:#9b6010}.tag{background:#f2d6a4;color:#7a4027}.form-field label{color:#8e4b32;text-transform:uppercase;letter-spacing:.04em}.form-field input,.form-field select,.form-field textarea{background:#fff9dd;border:1px solid #df9861;color:#6f3524;border-radius:6px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--aperol-orange);box-shadow:0 0 0 3px rgba(244,81,30,.13)}.modal-backdrop{background:rgba(78,32,19,.72)}.modal-foot,.modal-head{background:#fff4ce;border-color:#e4b371}.login-screen{background:linear-gradient(rgba(244,81,30,.91),rgba(152,57,30,.94)),url(/aperol-login-bg.jpg) 50%/cover no-repeat}.login-box{border:2px solid #f3c278}.demo-note{background:#fff1c2;border-color:#e0ad61;color:#7c4528}.toast{background:#8f351f;color:#fff5d5;border:1px solid #d57748}.code-sample{background:#fff5cb;border-color:#d88c55;color:#8b3b22}.customer{min-height:100vh;min-height:100dvh;background:var(--aperol-orange);display:block;color:#78361f;background-image:url(/aperol-login-bg.jpg);background-position:50%;background-size:cover;background-attachment:fixed}.back-admin{background:rgba(137,49,25,.88)!important;color:#fff!important;border-color:rgba(255,255,255,.38)!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-panel{display:none!important}.customer-form-panel{min-height:100vh;min-height:100dvh;background:transparent;padding:calc(24px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));display:flex;justify-content:center;align-items:flex-start}.entry-card{width:min(430px,100%);margin:0 auto;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}.ap-logo{display:block;width:190px;max-width:58%;height:auto;margin:5px auto 24px;object-fit:contain}.ap-photo{width:100%;aspect-ratio:1.47/1;background:url(/aperol-photo.jpg) 50%/cover no-repeat;border-radius:7px 7px 0 0}.ap-panel{background:var(--aperol-cream);padding:26px 24px 24px;border-radius:0 0 7px 7px;border:1px solid rgba(123,55,29,.22);border-top:0;box-shadow:0 16px 30px rgba(105,38,16,.22)}.ap-panel.no-photo{border-radius:7px;border-top:1px solid rgba(123,55,29,.22)}.ap-kicker{color:#df4d24;font-size:25px;letter-spacing:.02em;font-weight:500;margin:0 0 12px;font-stretch:condensed}.ap-copy,.ap-kicker{text-align:center;text-transform:uppercase}.ap-copy{font-size:12px;line-height:1.5;color:#714a37;margin:0 auto 22px;max-width:310px}.ap-title-screen{text-align:center;color:#fff2c7;text-transform:uppercase;margin:65px 0 24px}.ap-title-screen .smallline{font-size:15px;letter-spacing:.06em}.ap-title-screen .bigline{font-size:42px;line-height:.9;letter-spacing:.015em;margin-top:8px}.ap-fields{display:grid;grid-gap:11px;gap:11px}.ap-fields.two{grid-template-columns:1fr 1fr}.ap-fields.three{grid-template-columns:1fr 1fr 1fr;gap:8px}.customer .form-field{gap:5px}.customer .form-field label{font-size:11px;color:#b95a33;text-align:center}.customer .form-field input,.customer .form-field select{min-height:46px;background:transparent;border:1px solid #e0754d;border-radius:8px;color:#8c472d;text-align:center;font-size:16px;padding:10px 9px}.customer .form-field input::placeholder{color:#c57d63;text-transform:uppercase}.customer .form-field select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.customer .btn.primary{min-height:48px;border-radius:7px;background:var(--aperol-orange);border-color:var(--aperol-orange);font-size:14px}.customer .btn.ghost{color:#a44b2d;border-color:transparent}.customer .code-input{min-height:58px!important;background:#fff7d5!important;border:2px solid #e16e42!important;border-radius:8px!important;font-size:28px!important;letter-spacing:.18em!important;color:#8b3d25!important}.customer .checkrow{color:#735042;background:rgba(255,255,255,.25);padding:10px;border-radius:6px}.customer .checkrow input{accent-color:var(--aperol-orange)}.customer .notice{border-radius:6px}.customer .notice.error{background:#ffe2d6;border-color:#e69b7d;color:#9b3522}.customer .notice.success{background:#eef1c7;border-color:#b7c17c;color:#52632d}.customer .notice.info{background:#fff0c3;border-color:#e0bd71;color:#805026}.customer .progress-dots{justify-content:center;margin:0 0 18px}.customer .progress-dots span{height:3px;width:30px;background:#e8b583}.customer .progress-dots span.on{background:var(--aperol-orange)}.age-icon{display:none}.eyebrow{color:#df4d24!important;text-align:center;opacity:1;font-size:11px}.entry-card h2{text-transform:uppercase;text-align:center;color:#d95129;font-size:25px;font-weight:500;letter-spacing:.02em}.entry-card .muted{text-align:center;color:#7c543f;font-size:12px;line-height:1.5}.ap-success-mark{width:70px;height:70px;margin:0 auto 17px;border:2px solid #e05c31;border-radius:50%;display:grid;place-items:center;color:#e05c31;font-size:34px}.ap-terms{font-size:10px;line-height:1.25;color:#684839;max-height:260px;overflow:auto;background:#fffbe6;border:1px solid #e9bd84;padding:14px;border-radius:4px}@media(min-width:701px){.customer-form-panel{padding-top:45px;padding-bottom:45px}.entry-card{width:430px}}@media(max-width:700px){.main{padding:18px}.customer{display:block;background-color:var(--aperol-orange)}.customer-form-panel{display:flex!important;margin:0!important;padding-left:16px!important;padding-right:16px!important;background:transparent!important}.entry-card{max-width:410px!important;border-radius:0!important;padding:0!important;box-shadow:none!important}.back-admin{font-size:9px!important}.ap-logo{width:180px;max-width:58%;margin-bottom:20px}.ap-panel{padding:22px 18px 20px}.ap-title-screen{margin-top:70px}.ap-title-screen .bigline{font-size:39px}}a.btn,a.nav-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}a.nav-btn{justify-content:flex-start;width:100%}.card.empty{padding:40px;text-align:center}