:root{--sand:#f6f6ef;--emerald:#234d3e;--line:#e0e4d8;--paper:#fffefa}
.auth{padding:0;display:grid;grid-template-columns:1fr 1fr;align-content:stretch;align-items:center;background:#fbfaf6}.auth[hidden]{display:none}.auth-story{align-self:stretch;min-height:100svh;background:#1b4235;color:#e6eddb;padding:44px clamp(30px,5vw,85px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-home{display:flex;align-items:center;justify-content:space-between;color:#edf2e4;font-size:32px;font-weight:700;text-decoration:none}.auth-home span{font-size:12px;font-weight:400;color:#b9cbb3}.auth-eyebrow{font-size:12px;letter-spacing:.5px;color:#b6cda4}.auth-story h1{font-size:clamp(40px,4.5vw,68px);font-weight:600;line-height:1.45;margin:22px 0;color:#f3f4e8}.auth-story h1 em{font-style:normal;color:#c9d991}.auth-story p{color:#b9cab1;font-size:16px;line-height:1.9}.auth-story>small{font-size:12px;color:#b2c8a9}.auth-art{height:180px;position:relative;margin:30px 0;display:flex;align-items:center;justify-content:center}.auth-art span{font-size:190px;color:#c9d991;line-height:1;transform:rotate(-12deg)}.auth-art i{position:absolute;font-style:normal;font-size:56px;left:18%;top:0;color:#93ad75}.auth-card{border:0;box-shadow:none;background:transparent;max-width:430px;width:calc(100% - 60px);margin:50px auto;padding:0;gap:20px;border-radius:0}.auth-brand{margin-bottom:10px}.auth-card h2{font-size:32px;color:#244b3c}.auth-sub{font-size:14px;line-height:1.9}.auth input{min-height:50px;max-height:50px;border-radius:10px;background:white;border-color:#d6ddce}.auth label{font-size:13px;gap:9px}.auth form{gap:16px}.auth .segments{background:#edeee5;padding:5px;border:0;border-radius:12px}.auth .segments button{padding:11px;border-radius:8px}.auth .segments button.on{background:white;color:#244b3c;box-shadow:0 2px 6px #163b2a12}.auth .btn.primary{border-radius:10px;min-height:50px;background:#234d3e;color:white}.auth-foot{border-top:1px solid #e1e5d8;padding-top:22px;font-size:11px}.auth .pw input{padding-inline-end:65px}.section-heading h2{color:#244d3e}.panel{border-radius:18px}.topbar{background:#fffefa}
@media(max-width:760px){.auth{grid-template-columns:1fr}.auth-story{min-height:0;padding:24px}.auth-story>div,.auth-story>small{display:none}.auth-home{font-size:27px}.auth-card{width:calc(100% - 44px);margin:35px auto}.auth-card h2{font-size:28px}.auth-brand{display:none}.auth{align-content:start}}
.auth-story{width:100%}
/* Merchant workspace: bounded media, readable forms and solid surfaces. */
.app{background:#f5f6f3}
.app .panel,.app .preview-hero,.app .status,.app .tile,.app .preset,.app .game-card{background:#fff;border:1px solid #dfe5df;box-shadow:none;backdrop-filter:none;border-radius:12px}
.app .side,.app .appbar,.app .stepnav{background:#fff;backdrop-filter:none;box-shadow:none;border-color:#dfe5df}
.app .panel{padding:22px;gap:16px}
.app .panel>*,.app .row>*,.app .two-col>*,.app .preview-hero>*{min-width:0;max-width:100%}
.app .row{grid-template-columns:minmax(0,1fr)}
.app input,.app select,.app textarea{min-width:0;max-width:100%}
.app .panel input,.app .panel select,.app .panel textarea{border-radius:8px;background:#fff;box-shadow:none}
.app .panel label{line-height:1.7}
.app details.panel>summary{font-size:15px;color:#234d3e;padding:0 0 12px;border-bottom:1px solid #e7ebe6}
.app .two-col .row{grid-template-columns:1fr}
.app .two-col{align-items:start;gap:20px;grid-template-columns:minmax(0,1fr)}
.app .item-custom,.app .stage-custom{display:grid;gap:14px;min-width:0;padding:16px;background:#f6f8f4;border:1px solid #e0e6dd;border-radius:10px}
.app .item-custom>label,.app .stage-custom>label{display:grid;gap:8px;min-width:0;font-size:12px;color:var(--muted)}
.app .item-preview{display:flex;align-items:center;flex-wrap:wrap;gap:14px;min-width:0}
.app .item-preview .medallion,.app .cut-tile{display:grid;place-items:center;flex:0 0 72px;width:72px;height:72px;overflow:hidden;border:1px solid #d9dfd4;border-radius:12px;background:#fff}
.app #itemPreview{display:block;width:64px;height:64px;max-width:100%;object-fit:contain}
.app #itemCutCanvas{display:block;width:64px;height:64px;max-width:100%;object-fit:contain}
.app #itemHint{flex:1 1 180px;font-size:12px;line-height:1.8;color:#637063;overflow-wrap:anywhere}
.app .stage-preview{min-width:0;overflow:hidden;border:1px solid #e0e6dd;border-radius:10px;background:#f6f8f4}
.app #stageCanvas{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:8/3}
.app .chips button{min-height:44px;padding:8px 14px;border:1px solid #ccd9d1;border-radius:9px;background:#fff;color:#415a4e;font:inherit;font-size:14px;line-height:1.5}
.app .chips button.on{background:#e8f1ec;color:#194939;border-color:#245347;font-weight:600}
.app .chips button:disabled{opacity:.5;cursor:default}
.app .reward-row label{font-size:13px}
.app .chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.app .hint{overflow-wrap:anywhere}
.app .btn{box-shadow:none;backdrop-filter:none;border-radius:8px}
.app .choice.on{box-shadow:inset 0 0 0 1px var(--emerald)}
.app .preview-hero{padding:24px;gap:24px}
@media(min-width:600px){.app .row{grid-template-columns:repeat(2,minmax(0,1fr))}.app .row.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1200px){.app .two-col{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:599px){.app .panel,.app .preview-hero{padding:16px}.app .item-custom,.app .stage-custom{padding:12px}.app .appbar{gap:8px;flex-wrap:wrap}.app .appbar-actions{flex-wrap:wrap}.app .row.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Workspace navigation and guided campaign setup. */
:root{--emerald:#245347;--emerald-2:#193e34;--muted:#586b63;--page:#f5f7f6;--line:#dce5df;--side:208px}
.app{background:var(--page);font-size:15px;line-height:1.75}
.app [hidden]{display:none!important}
.app .side{padding:24px 16px;gap:28px}
.main-nav{display:grid;gap:6px;width:100%}
.main-nav button{min-height:48px;border:0;border-radius:10px;background:transparent;color:#42584e;text-align:start;padding:10px 16px;font-size:15px;font-weight:500}
.main-nav button:hover{background:#eef3f0}
.main-nav button.on{background:#e8f1ec;color:#194939;font-weight:700}
.app .avatar{width:44px;height:44px;color:#fff}
.app main{max-width:1100px;padding:28px 32px 100px}
.app .appbar{position:static;padding:22px 32px;min-height:90px;background:var(--page);border:0}
.app .appbar-title h2{font-size:24px;line-height:1.5}
.app .appbar-title p{font-size:14px;display:block;max-width:48ch}
.app .appbar-actions{display:none}
.app[data-screen=install] .appbar-actions{display:flex}
.app #statsBtn{display:none!important}
.app .section.on{gap:20px}
.app .hint,.app .section-heading p,.app .step-intro{font-size:14px;line-height:1.85;color:var(--muted)}
.app .panel{padding:24px;border-radius:14px}
.app h3{font-size:17px}
.app input:not([type=checkbox]):not([type=radio]),.app select{min-height:48px;font-size:16px}
.app textarea{min-height:96px;max-height:none;font-size:16px}
.app .btn{min-height:44px;font-size:14px;padding:10px 16px}
.app .text-btn{min-height:44px}
.app .choice{min-height:112px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.app .choice.on{background:#f1f7f3;border-color:var(--emerald)}
.app .choice small{font-size:13px;line-height:1.8}
.app .preset{padding:22px;background:#edf4ef;border-color:#d5e4da}
.app .preset h2{font-size:21px;color:#214b3d}
.app .preset p{color:#52665a;font-size:14px}
.app .eyebrow{color:#426450;font-size:12px}
.campaign-context{margin-bottom:24px;max-width:860px}
.campaign-caption{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:14px;font-weight:600}
.campaign-caption small{font-size:12px;color:var(--muted);font-weight:400}
.app .stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;overflow:visible;counter-reset:steps}
.app .stepper button{justify-content:center;flex-direction:column;gap:6px;padding:10px 4px;font-size:13px;min-height:72px;border:1px solid transparent;border-radius:10px}
.app .stepper button::before{counter-increment:steps;content:counter(steps);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e5ebe7;color:#4d6559;font-size:12px}
.app .stepper button.on{background:#e8f1ec;color:#194939;border-color:#b8cfbf}
.app .stepper button.on::before{background:var(--emerald);color:white}
.step-select{display:none}
.app details.panel{display:block}
.app details.panel>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px;padding:0;border:0;line-height:1.7}
.app details.panel[open]>summary{margin-bottom:16px}
.app details.panel>summary small{font-weight:400;color:var(--muted);margin-inline-start:8px}
.app .home-cols{grid-template-columns:1fr;gap:20px}
.app .status{padding:20px;align-items:center}
.app .status-mark{width:36px;height:36px;font-size:18px}
.app .status-line{flex-wrap:wrap;gap:8px}
.app .status-body p{font-size:13px}
.app .launch-next{margin-block:0;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-inline-start:3px solid var(--emerald)}
.app .launch-next h3{font-size:23px;line-height:1.6;margin:4px 0 8px}
.app .launch-next small{font-size:13px;color:var(--muted)}
.app .launch-next .hint{max-width:50ch}
.app .launch-next .btn{flex-shrink:0}
.app #homeLaunchNote{margin:0}
.app .tile{padding:20px}
.app .tile b{font-size:30px;font-variant-numeric:tabular-nums}
.app .launch-checklist{background:transparent;border-color:#dce5df}
.stepnav{padding:12px 32px max(12px,env(safe-area-inset-bottom));background:#fff;box-shadow:none;backdrop-filter:none;gap:12px}
.stepnav .btn{min-height:48px}
.stepnav #stepPos{font-size:13px;white-space:nowrap}
button:focus-visible,summary:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #6c9a84;outline-offset:3px}
@media(max-width:899px){
 .app .side{position:sticky;padding:10px 16px;gap:12px;display:flex;flex-direction:row;min-height:66px}
 .app .side .brand .mark{width:30px;height:30px}
 .main-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;flex:1;min-width:0}
 .main-nav button{text-align:center;padding:8px 3px;font-size:14px;min-height:44px}
 .app .side-foot{flex-shrink:0}
 .app .appbar{padding:24px 24px 8px;min-height:0;flex-wrap:wrap}
 .app main{padding:20px 24px 100px}
 .app .appbar .full{display:inline}.app .appbar .short{display:none}
 .app .appbar-actions{width:100%}
 .stepnav{margin-inline-start:0;padding-inline:24px}
}
@media(max-width:599px){
 .app .side{padding:8px 12px;gap:8px}
 .app .side .brand{display:none}
 .app .appbar{padding:20px 16px 0}
 .app .appbar-title h2{font-size:22px}
 .app .appbar-title p{font-size:13px;margin-top:4px}
 .app main{padding:20px 16px 110px}
 .app .panel,.app .preview-hero,.app .preset{padding:18px}
 .app .row.three{grid-template-columns:1fr}
 .app .stepper{display:none}
 .step-select{display:grid;gap:6px;font-size:13px;color:var(--muted)}
 .step-select select{width:100%;height:48px;max-height:48px;background:white;border:1px solid #cbd9d0;border-radius:10px;padding:0 12px;line-height:normal;color:var(--text)}
 .campaign-caption{display:block;margin-bottom:10px}.campaign-caption>span{display:none}.campaign-caption small{font-size:12px}
 .campaign-context{margin-bottom:20px}
 .app .launch-next{padding:22px;flex-direction:column;align-items:stretch;gap:16px}
 .app .launch-next h3{font-size:21px}
 .app .status{padding:16px;gap:10px;flex-wrap:wrap}
 .app .status-body{flex:1;min-width:200px}
 .app #homeEdit{width:100%}
 .app .choices{grid-template-columns:1fr}
 .app .choice{min-height:0;padding:16px}
 .app .tiles{gap:10px}.app .tile{padding:14px}.app .tile small{font-size:12px}
 .stepnav{padding-inline:16px;flex-wrap:wrap;gap:8px}
 .stepnav #stepPos{order:-1;flex-basis:100%;text-align:center;font-size:12px}
 .stepnav .btn{flex:1;font-size:13px}
 .auth-card{width:calc(100% - 40px);margin:28px auto}.auth-story{padding:18px 20px}.auth input{font-size:16px}
}

.draft-feedback{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.draft-feedback #draftStatus[data-state=error]{color:#984821}.draft-feedback #retryDraft{color:#984821;font-size:13px}.campaign-caption>.draft-feedback{display:flex}

.sheet{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}
.sheet .sheet-head{position:sticky;top:-20px;background:var(--paper);z-index:1;padding-block:10px}
.sheet .text-btn,.sheet summary{min-height:44px;align-content:center}
.sheet .sheet-row small{font-size:12px}.sheet .hint{font-size:13px;line-height:1.8;margin:0;color:#53645e}
.subscription-card{display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#f5f8f6;min-width:0}
.subscription-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.subscription-head h4{font-size:14px;margin:0}.subscription-head .text-btn{font-size:13px}
#subscriptionStatus{font-size:15px;font-weight:600;line-height:1.7;margin:0}
.subscription-card p{overflow-wrap:anywhere}
