@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap");:root{--ink:#18241d;--ink-soft:#314238;--muted:#718078;--paper:#f4f6f3;--card:#ffffff;--line:#e1e7e1;--accent:#eb694a;--accent-dark:#c95239;--sage:#dce8dc;--shadow:0 8px 24px rgba(31,54,39,.07);--app-radius:16px;--control-radius:12px}*{box-sizing:border-box}body,html{background:var(--paper);width:100%;min-height:100%}body{margin:0;min-width:320px;overflow-x:hidden;color:var(--ink);font-family:DM Sans,system-ui,sans-serif}.app-canvas{width:100%;min-height:100dvh}body:before{display:none}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:var(--control-radius);min-height:48px;padding:13px 16px;font-weight:700;background:var(--ink);color:white;box-shadow:none;transition:transform .14s ease,background .14s ease,opacity .14s ease}button:hover:not(:disabled){background:var(--ink-soft)}button:active:not(:disabled){transform:scale(.98)}button.secondary{background:var(--sage);color:var(--ink);box-shadow:none}button.secondary:hover:not(:disabled){background:#cbdcc9}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}label{display:grid;grid-gap:8px;gap:8px;color:var(--ink-soft);font-size:14px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--control-radius);background:#fff;color:var(--ink);padding:13px 14px;outline:none;transition:border .18s ease,box-shadow .18s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(239,108,77,.13)}input::placeholder,textarea::placeholder{color:#a4afa7}.shell{min-height:100dvh;padding:0 14px calc(32px + env(safe-area-inset-bottom))}.container{width:100%;max-width:1080px;margin:auto}.app-brandbar{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:8px 0;color:var(--ink)}.app-brandbar strong{font-size:16px;letter-spacing:-.02em}.app-brandbar span{color:var(--muted);font-size:12px}.hero{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px;align-items:start;min-height:auto;padding:24px 0}.hero>section:first-child{animation:rise .5s ease both}.hero>aside,.hero>section{min-width:0}.page-intro{display:flex;align-items:flex-start;flex-direction:column;justify-content:space-between;gap:12px;margin:4px 0 22px}.page-intro h1,.page-intro p{margin:10px 0 0}.page-intro-action{flex:0 0 auto}.primary-wide{width:100%}.account-surface,.login-surface{width:100%;max-width:520px}.page-actions{margin-top:20px}.page-actions>button{flex:1 1 220px}.home-hero{align-items:start}.session-hero{padding-top:10px}.camera-surface{margin-top:20px}.saved-templates,.setup-surface{margin-bottom:22px}.eyebrow{color:var(--accent-dark);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:11px}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(32px,9vw,54px);line-height:1.02;margin:10px 0 14px;letter-spacing:-.045em;font-weight:700}h2{margin:0 0 8px;font-size:22px;letter-spacing:-.03em}h3{margin:0 0 6px}p{line-height:1.65}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--app-radius);padding:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.card:hover{border-color:#cbd8ca}.stack{display:grid;grid-gap:16px;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.action-row{width:100%}.grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.grid>a.card{display:block;min-height:142px;transition:transform .18s ease,border .18s ease,box-shadow .18s ease}.grid>a.card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 22px 45px rgba(31,54,39,.14)}.template{width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--app-radius);background:white;color:var(--ink);text-align:left;box-shadow:none}.template:hover{border-color:#ef9a82;background:#fffaf6;box-shadow:none}.template.selected{border-color:var(--accent);box-shadow:0 0 0 4px rgba(239,108,77,.12)}.template-preview{aspect-ratio:3/4;border-radius:14px;background:linear-gradient(145deg,#f5c9a9,#c9d7d1);margin-bottom:12px}.template-frame-preview{position:relative;width:100%;margin-bottom:10px;overflow:hidden;border:1px solid #dfe5dc;border-radius:14px;background:#fff;color:var(--ink)}.template-frame-band{position:relative;z-index:2;display:flex;align-items:center;padding:0 8%;text-align:center;font-weight:700;line-height:1.1;overflow:hidden;white-space:nowrap}.template-frame-slot{position:absolute;z-index:1;display:grid;place-items:center;border:2px dashed rgba(239,108,77,.78);background:rgba(239,108,77,.1);color:var(--accent-dark);font-size:11px;font-weight:700}.history-filters{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;margin:18px 0}.history-list{display:grid;grid-gap:14px;gap:14px}.history-item{display:flex;gap:18px;align-items:stretch}.history-thumb{width:120px;min-height:150px;object-fit:cover;border-radius:12px;background:#f1f4ef}.history-thumb-empty{display:grid;place-items:center;color:#758075;padding:12px;text-align:center;font-size:13px}.history-content{flex:1 1;min-width:0}.history-heading{justify-content:space-between;align-items:flex-start}.history-heading h2{margin:4px 0 0}.template-editor-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;align-items:start}.editor-three,.editor-two{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}.editor-three{grid-template-columns:1fr}.template-band-editor{border-top:1px solid #e7ebe4;padding-top:16px;display:grid;grid-gap:10px;gap:10px}.template-preview-editor{position:relative;overflow:hidden;margin:14px auto 0;border:1px solid #dfe5dc;box-shadow:0 14px 36px rgba(24,36,29,.12);touch-action:none}.template-preview-editor>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.slot-overlay{position:absolute;border:2px dashed rgba(239,108,77,.9);background:rgba(239,108,77,.08);cursor:move;touch-action:none}.slot-overlay span{position:absolute;top:5px;left:7px;color:#9a3f2d;font-size:12px;font-weight:700}.slot-overlay button{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;padding:0;border-radius:8px;font-size:15px;line-height:1;cursor:nwse-resize}.qr{background:white;padding:16px;border:1px solid var(--line);border-radius:var(--app-radius);width:min(100%,310px);margin:auto;box-shadow:var(--shadow)}.qr img{display:block;width:100%;border-radius:10px}.qr small{display:block;margin-top:12px;color:var(--muted);word-break:break-all;font-size:10px}.camera{width:100%;max-height:60vh;background:#111;border-radius:var(--app-radius);object-fit:contain;box-shadow:0 8px 22px rgba(0,0,0,.14)}.printable{width:100%;max-width:620px;display:block;margin:auto;border-radius:12px}.notice{padding:13px 15px;border-radius:var(--control-radius);background:#edf4eb;color:var(--muted);border:1px solid #dce9da}.notice.error{background:#fff0ed;color:#a84635;border-color:#f2d0c9}.admin-nav{display:flex;justify-content:space-between;align-items:stretch;flex-direction:column;gap:12px;padding:14px;margin:14px 0 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--app-radius);box-shadow:0 4px 14px rgba(31,54,39,.05)}.admin-nav strong{letter-spacing:-.02em}.admin-nav>.row{width:100%;align-items:stretch}.admin-nav>.row>a,.admin-nav>.row>button{flex:1 1 140px}.admin-nav>.row>label{flex:1 1 180px;min-width:0!important}.admin-nav-actions{justify-content:flex-start}.admin-nav a{color:var(--muted);font-size:14px;font-weight:700}.admin-nav a:hover{color:var(--accent-dark)}.resource-list{display:grid;grid-gap:12px;gap:12px}.resource-item{display:flex;flex-direction:column;justify-content:space-between;gap:10px;align-items:flex-start;padding:15px;background:var(--card);border:1px solid var(--line);border-radius:17px}.resource-item>div{min-width:0;flex:1 1 auto}.resource-item>.badge{flex:0 0 auto;max-width:100%}.resource-item p{margin:4px 0 0;font-size:13px}.badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:99px;background:var(--sage);color:var(--ink-soft);font-size:11px;font-weight:700}.loading{min-height:30vh;display:grid;place-items:center;color:var(--muted)}.booth-header{display:flex;justify-content:space-between;align-items:stretch;flex-direction:column;gap:16px;margin:14px 0 20px}.booth-header h1{margin-bottom:0}.booth-status{min-width:0}.booth-status p{margin:8px 0 0}.booth-workspace{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;align-items:start}.source-grid{grid-template-columns:1fr}.source-choice,.source-grid{display:grid;grid-gap:10px;gap:10px}.source-choice{min-height:128px;align-content:start;justify-items:start;padding:16px;border:1px solid var(--line);background:white;color:var(--ink);text-align:left;box-shadow:none}.source-choice:hover{border-color:var(--accent);background:#fffaf6;box-shadow:0 14px 30px rgba(31,54,39,.09)}.source-choice small{color:var(--muted);line-height:1.55;font-weight:500}.source-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--sage);color:var(--ink);font-size:22px}.booth-compact-nav{display:flex;justify-content:space-between;align-items:stretch;flex-direction:column;gap:10px;padding:12px 14px;margin-bottom:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--app-radius);box-shadow:0 4px 14px rgba(31,54,39,.05)}.booth-compact-nav strong{font-size:17px}.booth-compact-nav>.row{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.booth-compact-nav>.row>.badge{grid-column:1/-1;justify-self:start}.booth-compact-nav>.row>button{width:100%}.booth-shell{height:100dvh;min-height:100dvh;overflow:hidden;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.booth-preflight-shell{height:100dvh;max-height:100dvh;min-height:100dvh;overflow-y:scroll;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.booth-shell>.native-container{height:100%;min-height:0;display:flex;flex-direction:column}.booth-preflight-shell>.native-container{height:auto;min-height:100%}.booth-shell .booth-compact-nav{flex:0 0 auto}.booth-shell .camera-page,.booth-shell .result-page{flex:1 1 auto;min-height:0;height:auto}.booth-step-card{flex:0 0 auto;min-height:0;justify-content:center;overflow:visible}.booth-preflight-shell .booth-step-card{flex:0 0 auto;overflow:visible;justify-content:flex-start}.booth-step-card>.row{display:grid;grid-template-columns:1fr}.booth-step-card>.row>button,.source-step-card>.secondary{width:100%}.booth-template-grid{grid-template-columns:1fr;gap:10px}.booth-template-grid .template{padding:10px}.booth-template-grid .template-preview{aspect-ratio:4/3;margin-bottom:8px}.booth-template-grid .template p{margin:4px 0 0;font-size:12px}.camera-page{width:min(100%,900px);min-height:0;height:100%;margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;grid-gap:10px;gap:10px}.camera-page>*{min-width:0}.camera-stage{position:relative;min-height:220px;height:100%;overflow:hidden;border-radius:18px;background:#18241d}.camera-stage .camera{height:100%}.capture-countdown{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;background:rgba(24,36,29,.2);text-shadow:0 2px 12px rgba(0,0,0,.5);pointer-events:none}.capture-template-guide{position:absolute;z-index:3;top:50%;left:50%;height:100%;width:auto;max-width:100%;transform:translate(-50%,-50%);overflow:hidden;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px rgba(0,0,0,.3),0 0 0 1px rgba(24,36,29,.5),0 0 24px rgba(255,255,255,.35);pointer-events:none}.capture-guide-band{position:absolute;z-index:1;left:0;width:100%;opacity:.42}.capture-guide-slot{position:absolute;z-index:2;display:grid;place-items:center;border:2px dashed rgba(255,255,255,.65);background:rgba(255,255,255,.04);color:#fff;font-size:12px;font-weight:800;text-shadow:0 1px 5px #18241d}.capture-guide-slot.active{border:3px solid #fff;background:rgba(239,108,77,.12);box-shadow:0 0 0 2px rgba(239,108,77,.8),inset 0 0 24px rgba(255,255,255,.1)}.capture-guide-slot.filled{border-style:solid;border-color:rgba(191,232,191,.9);background:rgba(80,150,90,.12)}.capture-countdown span{font-size:clamp(92px,18vw,180px);font-weight:800;line-height:.9}.capture-countdown small{font-size:18px;font-weight:700}.capture-flash{position:absolute;z-index:6;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.86);animation:capture-flash .18s ease-out both;pointer-events:none}.capture-flash span{padding:10px 18px;border-radius:999px;background:#18241d;color:#fff;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.2)}@keyframes capture-flash{0%{opacity:0}12%{opacity:1}to{opacity:0}}.capture-history{display:flex;align-items:center;gap:12px;min-height:0}.capture-history-heading{display:flex;flex-direction:column;gap:3px;min-width:0}.capture-history-heading .eyebrow{font-size:10px}.capture-history-heading .muted{font-size:11px;line-height:1.2}.capture-history-canvas{position:relative;width:min(100%,240px);height:72px;overflow:hidden;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 14px rgba(24,36,29,.08)}.capture-history-slot{position:absolute;display:grid;place-items:center;overflow:hidden;border:1px dashed rgba(24,36,29,.28);background:rgba(255,255,255,.4);color:#6e8176;font-size:11px;font-weight:800}.capture-history-slot.filled{border-style:solid;border-color:rgba(24,36,29,.5);background:#fff}.capture-history-slot img{display:block;width:100%;height:100%;object-fit:cover}.camera-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.camera-page-heading h2{margin:5px 0 0;font-size:32px}.camera-focus{width:100%;height:100%;max-height:none;min-height:0;border-radius:22px}.camera-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;width:100%}.camera-controls button{min-width:0;flex:1 1 160px}.remote-page{max-width:560px;text-align:center;justify-items:center}.remote-page .camera-page-heading{width:100%;text-align:left}.remote-page .qr{width:min(100%,320px)}.result-page{width:min(100%,900px);height:100%;min-height:0;margin:0 auto;display:grid;grid-template-rows:minmax(0,1fr) auto;grid-gap:10px;gap:10px}.result-page>.card{min-height:0;overflow:visible}.result-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;min-height:0;padding:14px 14px calc(82px + env(safe-area-inset-bottom))}.result-preview{min-height:0;max-height:none;display:grid;place-items:start center;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:2px 6px calc(82px + env(safe-area-inset-bottom))}.result-preview>.printable{width:100%;height:auto;max-height:none;object-fit:fill}.result-photo-grid{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;overflow:hidden}.result-photo-grid>.printable{width:100%;height:100%;min-height:0;object-fit:contain}.result-actions{position:absolute;z-index:8;right:14px;bottom:max(14px,env(safe-area-inset-bottom));left:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.result-actions a,.result-actions button{min-width:0;width:100%}.result-actions button{padding:11px 8px;font-size:12px}.result-print-status{margin:0;text-align:center}.download-qr-panel{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.download-qr-panel img{width:150px;height:150px;object-fit:contain}.download-qr-panel p{margin:5px 0 10px;font-size:12px}.result-card:has(.download-qr-panel){padding-bottom:246px}.result-card:has(.download-qr-panel) .result-actions{bottom:198px}.result-page>.secondary{justify-self:center}.receipt-print-page{width:80mm;min-height:100vh;margin:0 auto;padding:0;background:#fff}.receipt-print-page>img{display:block;width:80mm;height:auto;margin:0}.direct-print-sheet{display:none}.print-preview-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:10px;background:rgba(24,36,29,.58)}.settings-modal-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:14px;background:rgba(24,36,29,.58)}.settings-modal{width:min(100%,620px);max-height:calc(100dvh - 28px);overflow:auto;padding:20px;border:1px solid var(--line);border-radius:22px;background:#fffdf8;box-shadow:0 20px 60px rgba(24,36,29,.28)}.settings-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.settings-modal-heading h2{margin:4px 0 0;overflow-wrap:anywhere}.settings-modal-close{flex:0 0 auto;min-width:48px;padding:8px 14px;font-size:22px;line-height:1}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.4}.setting-key{margin:3px 0 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.print-preview-dialog{width:100%;max-height:calc(100dvh - 20px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;padding:14px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fffdf8;box-shadow:0 20px 60px rgba(24,36,29,.28)}.print-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.print-preview-heading h2,.print-preview-heading p{margin:5px 0 0}.print-preview-close{min-width:42px;padding:5px 12px;font-size:24px;line-height:1}.print-preview-paper{min-height:0;overflow:auto;display:flex;justify-content:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#eeeae1}.print-preview-paper img{display:block;width:min(100%,360px);height:auto;align-self:flex-start;box-shadow:0 8px 24px rgba(24,36,29,.18)}.print-preview-actions{display:flex;justify-content:stretch;gap:8px}.print-preview-actions button{flex:1 1}.receipt-print-actions{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px 12px;font-size:13px}.receipt-print-actions p{margin:0;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (min-width:520px){.booth-template-grid,.source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:640px){.shell{padding:28px 20px 70px}.hero{gap:32px;padding:40px 0}.card{padding:22px;border-radius:22px}.grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.admin-nav{align-items:center;flex-direction:row;padding:16px 20px;margin-bottom:34px}.page-intro{align-items:flex-end;flex-direction:row;gap:16px}.admin-nav>.row,.booth-compact-nav>.row{width:auto;align-items:center}.admin-nav>.row>a,.admin-nav>.row>button,.admin-nav>.row>label,.booth-compact-nav>.row>button{flex:0 0 auto}.resource-item{flex-direction:row;align-items:center;padding:18px 20px}.history-filters{grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin:20px 0}.history-item{flex-direction:row}.history-thumb{width:120px;min-height:150px}.editor-two{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-three{grid-template-columns:repeat(3,minmax(0,1fr))}.booth-compact-nav{align-items:center;flex-direction:row;padding:14px 18px;margin-bottom:22px}.booth-compact-nav>.row{display:flex}.booth-compact-nav>.row>.badge{grid-column:auto}.booth-compact-nav>.row>button{width:auto}.booth-step-card>.row{display:flex}.booth-step-card>.row>button{width:auto}.booth-shell{padding:14px 20px}.booth-template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.result-card{padding:18px}.result-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.print-preview-backdrop{padding:20px}.print-preview-dialog{width:min(100%,560px);max-height:calc(100dvh - 40px);gap:14px;padding:20px;border-radius:22px}}@media (min-width:900px){.hero{grid-template-columns:1.12fr .88fr;gap:42px;align-items:center;min-height:76vh}h1{font-size:clamp(46px,8vw,92px)}.template-editor-grid{grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:20px}.booth-workspace{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:20px}}@media (max-width:519px){.booth-preflight-shell{height:auto;min-height:100dvh;overflow-y:auto;overscroll-behavior-y:contain}.booth-preflight-shell>.container{height:auto;min-height:calc(100dvh - 20px)}.booth-preflight-shell .booth-step-card{overflow:visible;justify-content:flex-start}.camera-page-heading{align-items:flex-start;flex-direction:column}.camera-page-heading h2{font-size:25px}.download-qr-panel{align-items:center;flex-direction:column;text-align:center}.camera-page{width:100%;max-width:100%;overflow-x:hidden}.camera-controls,.camera-page-heading,.camera-stage{width:100%;max-width:100%;min-width:0}.capture-history{align-items:stretch;flex-direction:column;width:100%;min-width:0}.capture-history-canvas{width:min(100%,220px);max-width:220px;height:72px!important;min-height:72px;aspect-ratio:auto!important}.capture-history-heading{width:100%}}.native-shell{min-height:100dvh;padding:env(safe-area-inset-top) 16px calc(24px + env(safe-area-inset-bottom));background:var(--paper);color:var(--ink)}.native-shell:has(.admin-bottom-nav){padding-bottom:calc(88px + env(safe-area-inset-bottom))}.native-container{width:100%;max-width:1080px;min-width:0;margin:0 auto}.native-shell.has-bottom-nav{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.native-topbar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 0}.native-topbar-actions,.native-topbar-leading{display:flex;align-items:center;gap:10px;min-width:0}.native-topbar-leading{flex:1 1 auto}.native-topbar-actions{flex:0 0 auto;justify-content:flex-end}.native-brand,.native-topbar-title strong{font-size:17px;letter-spacing:-.02em}.native-topbar-title{display:grid;min-width:0;grid-gap:2px;gap:2px}.native-topbar-title span,.native-topbar-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.native-topbar-title span{color:var(--muted);font-size:12px}.native-back{display:inline-flex;align-items:center;gap:2px;min-height:44px;color:var(--accent-dark);font-weight:700;white-space:nowrap}.native-back:first-letter{font-size:28px;line-height:1}.native-icon-button,.native-text-button{min-height:44px;padding:8px 10px;background:transparent;color:var(--accent-dark);box-shadow:none}.native-icon-button{width:44px;padding:0;font-size:30px;font-weight:400;line-height:1}.native-text-button{font-size:13px}.native-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0;padding:20px 0 14px}.native-page-header h1{margin:6px 0 0;font-size:clamp(30px,8vw,48px);line-height:1.04}.native-page-header p{max-width:620px;margin:8px 0 0;font-size:14px;line-height:1.5}.native-surface{min-width:0;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 16px rgba(31,54,39,.06)}.native-surface+.native-surface{margin-top:12px}.native-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);text-align:left;box-shadow:none}.native-list-row>:first-child{min-width:0;flex:1 1 auto}.native-list-row+.native-list-row{margin-top:8px}.native-list-row:active{background:#f0f5ef;transform:scale(.99)}.native-row-chevron{flex:0 0 auto;color:#99a39d;font-size:24px;font-weight:400;line-height:1}.native-action-dock{display:flex;align-items:stretch;gap:8px;width:100%;min-width:0}.native-action-dock>a,.native-action-dock>button{flex:1 1;min-width:0}.native-action-dock>a>button{width:100%}.native-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;max-width:100%;padding:5px 10px;border-radius:999px;background:#eef2ef;color:var(--ink-soft);font-size:11px;font-weight:700;line-height:1.2}.native-status-pill.success{background:#dff0df;color:#2f6840}.native-status-pill.warning{background:#fff0d5;color:#8a5c14}.native-status-pill.error{background:#ffe3dd;color:#9c3e2f}.admin-bottom-nav{position:fixed;z-index:50;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2px;gap:2px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(225,231,225,.95);background:rgba(255,255,255,.94);box-shadow:0 -6px 20px rgba(31,54,39,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-bottom-nav a{display:grid;justify-items:center;grid-gap:2px;gap:2px;min-height:48px;padding:5px 3px;border-radius:12px;color:#87938b;font-size:20px}.admin-bottom-nav a small{font-size:10px;font-weight:700}.admin-bottom-nav a.active{background:#edf4eb;color:var(--accent-dark)}.booth-native-topbar{min-height:52px}.booth-native-topbar .native-topbar-actions{gap:6px}.booth-native-topbar .native-status-pill{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booth-shell .booth-step-card{width:100%;min-width:0;padding:10px 0;border:0;border-radius:0;background:transparent;box-shadow:none}.booth-shell:has(.booth-template-grid) .booth-step-card{max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.booth-shell:has(.camera-page){overflow-y:auto;overflow-x:hidden}.booth-shell:has(.camera-page)>.native-container{height:auto;min-height:100%}.booth-shell:has(.camera-page) .camera-page{height:auto;min-height:0;grid-template-rows:auto auto auto auto}.booth-shell:has(.camera-page) .camera-stage{height:clamp(220px,42dvh,420px);min-height:220px}.booth-preflight-shell .booth-step-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.booth-shell .camera-page,.booth-shell .result-page{width:100%;min-width:0}.booth-shell .result-page{overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.booth-shell .camera-page-heading{padding:4px 0}.booth-shell .camera-page-heading h2{font-size:24px}.booth-shell .camera-controls{padding:8px 0 calc(4px + env(safe-area-inset-bottom))}.booth-shell .camera-controls button{min-height:52px}.booth-shell .result-card{padding-bottom:calc(82px + env(safe-area-inset-bottom));border-radius:18px;border-color:var(--line);background:var(--card);box-shadow:var(--shadow)}.booth-shell .result-card:has(.download-qr-panel){padding-bottom:246px}.booth-shell .result-card:has(.download-qr-panel) .result-actions{bottom:198px}.booth-shell .result-printing .row{flex-direction:column;align-items:stretch}.booth-shell .result-printing .row button{width:100%}.booth-shell .result-card .stack>.row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.booth-shell .result-card .stack>.row button{flex:0 0 auto}.native-focus-step{display:flex;flex-direction:column;min-height:0;height:100%}.native-focus-step>.native-action-dock{margin-top:auto;padding-top:10px}.native-action-dock.vertical{flex-direction:column}.native-action-dock.vertical>a,.native-action-dock.vertical>button{flex:0 0 auto;width:100%}.native-chip-row{display:flex;gap:8px;min-width:0;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:none}.native-chip-row::-webkit-scrollbar{display:none}.native-chip-row button{flex:0 0 auto;min-height:40px;padding:9px 13px;border-radius:999px;font-size:12px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(235,105,74,.32);outline-offset:2px}@media (hover:hover) and (pointer:fine){.native-list-row:hover{border-color:#c7d6c8;background:#fbfdfb}.admin-bottom-nav a:hover{color:var(--accent-dark)}}@media (min-width:640px){.native-shell{padding-left:24px;padding-right:24px}.native-topbar{min-height:64px}.native-page-header{padding-top:30px}.admin-bottom-nav{position:static;width:max-content;margin:18px auto 0;border:1px solid var(--line);border-radius:16px;box-shadow:none}.native-shell.has-bottom-nav{padding-bottom:32px}}@media print{@page{size:80mm auto;margin:0}body,html{width:80mm;min-width:80mm;margin:0;background:white}.no-print,body:before{display:none!important}.app-canvas{width:80mm;min-height:0;display:none!important}.direct-print-sheet{display:block!important;width:80mm;min-height:0;margin:0;padding:0;background:#fff}.direct-print-sheet img{display:block;width:80mm;height:auto;margin:0}.receipt-print-page{width:80mm;min-height:0;margin:0}.receipt-print-page>img{width:80mm;max-width:none}.printable{display:block!important;box-shadow:none}}