
:root{--ink:#512638;--muted:#774b60;--blush:#fbdce7;--accent:#bd2459;--line:#e9c7d4;--bg:#fff8fb;--rose-soft:#fbdce7;--shadow:0 18px 65px #81244010}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,'Thonburi','Tahoma',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #a91c52;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #e9c7d4;border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}label{display:block;font-size:13px;font-weight:600;margin:13px 0 5px}h1,h2,h3,p{margin:0}h1{font-size:42px;line-height:1.3;letter-spacing:-1px}h2{font-size:26px;line-height:1.4}h3{font-size:18px}small,.muted{color:var(--muted)}a{color:var(--accent)}.top{padding:20px 36px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:11px;font-weight:750;letter-spacing:-.5px;font-size:20px}.mark{display:grid;place-items:center;width:40px;height:40px;background:var(--ink);color:var(--blush);border-radius:13px;font-size:23px}.brand small{display:block;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}.seg{display:flex;gap:4px;background:#fcecf2;padding:5px;border-radius:12px}.seg button{border:0;background:none;padding:9px 19px;border-radius:9px;color:#774b60}.seg button.active{background:var(--ink);color:white}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 16px;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:8px;text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.soft{background:var(--blush);border-color:var(--blush)}.btn.small{padding:7px 11px;font-size:12px}.btn.wide{width:100%}.btn.danger{color:#873646}.badge{display:inline-block;border-radius:30px;padding:3px 10px;font-size:11px;font-weight:650;background:#fcecf2;color:#774b60}.badge.green{background:#fbdce7;color:#bd2459}.badge.purple{background:var(--rose-soft);color:#774b60}.badge.amber{background:#fff0f5;color:#8c3756}.notice{padding:8px 36px;background:#fcecf2;font-size:12px;display:flex;justify-content:space-between;gap:16px}.wrap{max-width:1440px;margin:auto;padding:36px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px;box-shadow:var(--shadow)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.experience{display:grid;grid-template-columns:minmax(340px,1fr) 410px minmax(200px,.55fr);align-items:start;gap:36px}.intro{padding-top:26px}.intro h1{max-width:450px}.intro p{margin-top:20px;max-width:430px;color:var(--muted)}.journey{margin-top:32px;display:grid;gap:0}.step{display:flex;gap:15px;padding:0 0 20px;position:relative}.step:before{content:'';position:absolute;left:17px;top:35px;bottom:0;width:1px;background:#e9c7d4}.step:last-child:before{display:none}.dot{width:35px;height:35px;flex-shrink:0;border:1px solid #e9c7d4;border-radius:50%;display:grid;place-items:center;background:#fff8fb;font-size:13px}.step.done .dot{background:var(--accent);color:#fff;border-color:var(--accent)}.step.current .dot{background:var(--blush);border-color:#f4bfd2}.step strong{font-size:14px;display:block}.step small{font-size:12px}.phone{background:#fff;border:8px solid #512638;border-radius:40px;overflow:hidden;box-shadow:0 30px 60px #51263820;width:100%;max-width:410px}.status{background:#fff;display:flex;justify-content:space-between;padding:10px 23px 4px;font-size:11px;font-weight:700}.phone-head{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9c7d4}.phone-head strong{font-size:15px}.phone-head small{font-size:10px;display:block}.phone-body{min-height:550px;background:#fff8fb;padding:19px}.phone-nav{display:flex;border-top:1px solid var(--line);background:#fff;padding:10px 6px 16px;gap:5px}.phone-nav button{flex:1;background:transparent;border:0;color:#774b60;font-size:11px;padding:3px}.phone-nav button.active{color:var(--accent);font-weight:700}.phone-nav span{display:block;font-size:19px}.chat{background:#fcecf2}.chat-label{text-align:center;color:#774b60;font-size:10px;margin-bottom:18px}.bubble{background:#fff;border-radius:5px 18px 18px 18px;padding:14px;font-size:13px;margin-bottom:14px}.flex{border-radius:18px;overflow:hidden;background:white;border:1px solid #e9c7d4}.hero{min-height:168px;position:relative;background:#812440;overflow:hidden;color:white;padding:25px}.hero:before{content:'';position:absolute;border:22px solid #f4bfd2;opacity:.3;width:190px;height:190px;border-radius:50%;right:-65px;top:-50px}.hero:after{content:'✦';position:absolute;right:28px;bottom:-13px;font-size:120px;color:#f4bfd2;line-height:1}.hero h2{position:relative;z-index:1;font-size:25px;max-width:230px}.hero small{color:#f4bfd2;letter-spacing:2px;font-size:9px;display:block;margin-bottom:15px}.flex-body{padding:18px}.detail{display:flex;gap:9px;font-size:12px;margin:9px 0;color:#774b60}.phone .card{border-radius:15px;padding:16px;box-shadow:none}.phone h2{font-size:22px}.phone h3{font-size:15px}.phone label{font-size:12px}.phone .btn{font-size:13px;padding:10px 12px}.phone p{font-size:13px}.check-label{display:flex;gap:9px;align-items:start;font-weight:400;line-height:1.6}.check-label input{margin-top:5px}.passport{background:#812440;color:#fff;border-radius:19px;padding:22px;margin-bottom:16px;position:relative;overflow:hidden}.passport .muted{color:#f4bfd2}.passport h2{margin:10px 0 3px}.passport .badge{background:#9b385e;color:#f4bfd2}.passport .ticket{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed #ad4b70;margin-top:18px;padding-top:16px}.fakeqr{font:12px/1 monospace;letter-spacing:-1px;background:#fff;color:#512638;border:5px solid #fff;border-radius:4px;white-space:pre;display:inline-block}.points{font-size:36px;line-height:1.2;font-weight:750;letter-spacing:-1px}.phone .block{margin-bottom:15px}.activity{display:flex;align-items:center;gap:12px;margin-top:10px;padding:13px;border-radius:13px;border:1px solid var(--line);background:white}.activity .icon{width:40px;height:40px;border-radius:12px;background:#fcecf2;display:grid;place-items:center;font-size:22px}.activity .text{flex:1}.activity small{font-size:11px}.reward{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;margin-bottom:12px}.reward .art{height:60px;background:#fcecf2;border-radius:13px;font-size:29px;display:grid;place-items:center}.reward .btn{grid-column:1/-1}.side-info{margin-top:28px;font-size:13px}.side-info .card{padding:18px}.mini-log{border-left:2px solid #d79bb2;padding:1px 0 1px 12px;margin-top:14px}.mini-log small{display:block;font-size:10px}.hint{background:#fcecf2;border-radius:12px;padding:13px;font-size:12px;color:#774b60;margin-top:16px}.admin{display:grid;grid-template-columns:210px 1fr;gap:30px}.sidebar{padding-top:8px}.sidebar button{display:block;width:100%;text-align:left;padding:12px 14px;border:0;background:transparent;color:#774b60;border-radius:10px;margin-bottom:5px}.sidebar button.active{background:#fbdce7;color:#bd2459;font-weight:700}.sidebar .label{font-size:10px;letter-spacing:2px;color:#774b60;margin:24px 14px 12px}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:23px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat .num{font-size:33px;font-weight:700;line-height:1.4}.stat small{font-size:12px}.two{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.span2{grid-column:1/-1}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:500;color:#774b60;padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:14px 12px;border-bottom:1px solid #e9c7d4}tr:last-child td{border-bottom:0}.person{display:flex;gap:10px;align-items:center}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#fcecf2;font-weight:700;color:#774b60}.barrow{display:grid;grid-template-columns:95px 1fr 30px;gap:14px;align-items:center;margin-top:20px;font-size:12px}.bar{height:11px;background:#fcecf2;border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;background:#c94576;border-radius:8px}.pillrow{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.flow{display:flex;align-items:center;gap:12px;margin:25px 0}.node{flex:1;border:1px solid #e9c7d4;border-radius:14px;padding:18px;text-align:center;background:#fff8fb;font-size:13px}.node b{display:block}.node .symbol{font-size:27px}.node.primary{background:#812440;color:#f4bfd2}.node.primary small{color:#f4bfd2}.flow .arrow{color:#c94576}.prose{color:#774b60;font-size:13px;line-height:1.9}.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.selected-card{border:2px solid var(--accent)}.tabrow{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}.empty{padding:25px;text-align:center;color:var(--muted);font-size:13px}.activity-editor{display:grid;grid-template-columns:1fr 120px 110px;align-items:end;gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}dialog{border:0;border-radius:22px;padding:0;width:min(94vw,500px);color:var(--ink);box-shadow:0 30px 100px #51263855}dialog::backdrop{background:#51263866;backdrop-filter:blur(4px)}.modal-head{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:23px;max-height:72vh;overflow:auto}.close{border:0;background:#fcecf2;border-radius:50%;height:30px;width:30px;color:#774b60}.option{display:block;padding:13px;border:1px solid var(--line);border-radius:12px;margin:10px 0;font-size:13px;font-weight:400}.option:has(input:checked){border-color:#bd2459;background:#fbdce7}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#812440;color:white;padding:14px 22px;border-radius:14px;box-shadow:0 10px 35px #51263830;z-index:99;max-width:92vw;font-size:13px}.toast.error{background:#873646}.hidden{display:none!important}.event-select{max-width:260px;font-size:13px}.count{font-size:11px;border:1px solid #e9c7d4;padding:2px 7px;border-radius:20px}.footer-note{font-size:11px;color:#774b60;margin-top:24px}.ledger-positive{color:#bd2459;font-weight:700}.ledger-negative{color:#873646;font-weight:700}.feedback-stars{display:flex;gap:7px}.feedback-stars label{font-size:25px;cursor:pointer;margin:0}.success-mark{width:62px;height:62px;background:#fbdce7;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;font-size:27px;color:#bd2459}.scan-zone{border:2px dashed #d79bb2;border-radius:18px;padding:24px;text-align:center;background:#fff8fb}.smalltxt{font-size:12px}.mobile-demo-label{text-align:center;font-size:10px;color:#774b60;margin:12px}.rating{color:#8c3756;letter-spacing:2px}.inventory-edit{display:grid;grid-template-columns:1fr 100px 100px;gap:15px;align-items:end}.new-event{border:1px dashed #d79bb2;background:#fcecf2}.audit{font:11px/1.7 monospace;background:#fcecf2;padding:13px;border-radius:10px;overflow:auto;white-space:pre-wrap;word-break:break-word}.savebar{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.info-banner{background:#fcecf2;border-left:3px solid #c94576;padding:16px;font-size:13px;border-radius:0 12px 12px 0;margin-bottom:20px}
@media(max-width:1200px){.experience{grid-template-columns:1fr 410px}.side-info{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-info .card{margin:0!important}.side-info .hint{margin-top:0}.wrap{padding:28px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.top{padding:15px 18px;justify-content:center}.brand{margin-right:auto}.top .seg{order:3;width:100%;justify-content:center}.top .seg button{flex:1;padding:9px}.notice{padding:8px 15px;font-size:10px}.notice span:last-child{display:none}.wrap{padding:22px 14px}.experience{display:flex;flex-direction:column;align-items:center;gap:20px}.experience>div:nth-child(2){width:100%;max-width:410px}.intro{padding-top:0;width:100%}.intro h1{font-size:28px}.intro p{font-size:13px;margin-top:10px}.journey{display:none}.side-info{width:100%;display:block;margin-top:0}.side-info .card{margin-bottom:15px!important}.phone{max-width:410px}.admin{display:block}.sidebar{display:flex;overflow:auto;margin-bottom:20px;gap:6px}.sidebar button{white-space:nowrap;width:auto}.sidebar .label,.sidebar .footer-note{display:none}.admin-header{align-items:flex-start}.admin-header h1{font-size:26px}.stats{gap:9px}.stat{padding:14px}.stat .num{font-size:28px}.two,.grid2{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.span2{grid-column:auto}.card{padding:18px}.flow{flex-direction:column}.node{width:100%}.flow .arrow{transform:rotate(90deg)}.activity-editor{grid-template-columns:1fr 75px 75px;gap:8px}.inventory-edit{grid-template-columns:1fr 70px 70px;gap:8px}.event-select{max-width:150px}.brand small{font-size:9px}.btn.small{padding:7px 9px}.top>.btn{font-size:11px}.phone-body{min-height:460px}.side-info h3{font-size:16px}}

/* iBlanc theme: shared across attendee, admin, dialogs and integration views. */
.brand-logo{width:100px;height:40px;object-fit:contain}
::selection{background:var(--blush);color:var(--ink)}
input,textarea{caret-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a91c52;outline-offset:3px}
.btn:not(:disabled):hover{background:#fff0f5;border-color:#c94576}
.btn.primary:not(:disabled):hover{background:#9d1948;border-color:#9d1948}
.btn.soft:not(:disabled):hover{background:#f4bfd2}
.seg button:not(.active):hover,.sidebar button:not(.active):hover{background:#fcecf2;color:#812440}
.phone-nav button:hover{color:var(--accent)}
*{scrollbar-color:#d79bb2 #fff8fb}
.points,.stat .num,td{font-variant-numeric:tabular-nums}

.studio{max-width:1120px;margin:auto;padding:32px 20px}.studio .formgrid{margin-top:15px}.studio .card{margin-bottom:20px}.studio textarea{min-height:90px}.studio nav{margin:18px 0;flex-wrap:wrap}.studio .error{color:#873646;background:#fff0f5;padding:14px}.studio .actions{display:flex;gap:8px;flex-wrap:wrap}.studio .btn{font-size:14px}.studio input[type=checkbox]{margin-right:10px}.studio .notice{padding:12px 16px}.studio header{margin-bottom:25px}.studio .event-title{font-size:32px}.studio .subtle{font-size:13px;color:var(--muted)}