*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--pd-paper)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;min-height:44px;min-width:44px;padding:0}button:disabled{cursor:default;opacity:.55}button:focus-visible{outline:3px solid var(--pd-coral);outline-offset:3px}h1,h2,h3,p{margin:0}#app{max-width:480px;margin:auto;min-height:100dvh;padding:10px 16px calc(26px + env(safe-area-inset-bottom));display:flex;flex-direction:column}body.native #app{min-height:100vh}.page-body{flex:1}.v-booth .bt-ttl{flex-wrap:wrap}.v-booth .bt-ttl>div{flex:1 1 220px}.v-booth .bt-ttl .bt-pill{margin-left:auto}.v-booth .bt-name{font-size:22px;font-weight:700;line-height:28px;text-align:left;min-height:44px}.v-booth .bt-pill{min-height:44px}.v-booth .bt-stage.compact{padding:0 40px}.v-booth .bt-paper{padding:14px 12px 0}.v-booth .bt-fr{display:block;width:100%;text-align:left}.v-booth .bt-center .bt-plus{font-size:38px;font-weight:300}.v-booth .bt-cap.big span{font-size:15px;letter-spacing:0;white-space:nowrap}.v-booth .bt-after{padding:14px 40px 0}.v-booth .bt-next .bt-plus{font-size:32px}.v-booth .bt-scroll{overflow:visible}.bt-img>img{width:100%;height:100%;object-fit:cover}.peg{background:radial-gradient(circle,#e6e5e0 0 1.3px,transparent 1.5px) 0 0/6.4px 6.4px!important}.o-top{display:flex;align-items:center;justify-content:space-between;min-height:60px;margin-bottom:12px}.o-mid{display:grid;text-align:center;gap:3px}.o-mid b{font-size:20px}.o-mid small{color:var(--pd-ink-3);font-size:12px}.o-ib{font-size:30px;width:44px}.dock{display:grid;gap:10px;margin-top:auto;padding-top:20px}.o-btn{display:flex;width:100%;align-items:center;justify-content:center;height:54px;border-radius:16px;font-weight:650;font-size:17px}.pri{background:#111;color:white}.sec{background:white;box-shadow:inset 0 0 0 1px var(--pd-hair)}.v-booth .bt-bezel{margin-top:6px}.v-booth .bt-bezel.sm{margin:0 30px}.bt-bezel canvas{touch-action:none}#crop{width:100%;height:auto}#crop-empty{position:absolute;inset:16px;border-radius:8px;background:#fff}.v-booth .bt-tools button{display:grid;justify-items:center;gap:5px;font-size:11px}.v-booth .bt-tools i{font-style:normal;font-size:22px}.v-booth .bt-frames{overflow-x:auto}.v-booth .bt-ff{flex:0 0 80px;min-width:80px}.v-booth .bt-ff canvas{display:block}.v-booth .bt-ff.more{font-size:27px}.v-booth .bt-ff small{font-size:11px}.o-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:8px;font-size:13px}.o-chip{padding:0 10px;border-radius:22px;border:1px solid var(--pd-hair);min-height:44px}.o-chip.on{background:var(--pd-cream);border:1.5px solid #111;font-weight:650}.o-chip-lab{color:#55544f;margin-right:5px}.palette-select{margin-top:6px;font-size:12px;display:flex;align-items:center;justify-content:space-between}.palette-select select{min-height:44px;background:transparent;border:0}.error{color:#bc2741;margin-top:8px;font-size:13px}.scan::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 75%,#f14f6344 99%,#f14f63);animation:scan 1.2s linear infinite;transform:translateY(-100%);pointer-events:none}@keyframes scan{to{transform:translateY(100%)}}.reveal canvas{animation:print 2.2s steps(var(--grid),end)}@keyframes print{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}dialog{width:min(480px,100%);max-height:85dvh;border:0;border-radius:26px 26px 0 0;padding:24px 20px calc(20px + env(safe-area-inset-bottom));position:fixed;inset:auto 0 0;margin:0 auto;background:#fff;box-shadow:0 -10px 30px #0002}dialog::backdrop{background:#1115}dialog h2{font-size:18px;margin:0 0 12px}dialog p{color:#55544f;font-size:13px;line-height:1.6;margin-bottom:12px}dialog button.choice{display:block;width:100%;text-align:left;padding:12px 16px;min-height:50px;background:#f4f3ef;border-bottom:1px solid #1111}dialog button.choice:first-of-type{border-radius:14px 14px 0 0}dialog .danger{color:#d33149}dialog .cancel{margin-top:12px;width:100%}dialog input,dialog select{width:100%;padding:12px;border:1px solid #aaa;border-radius:10px;margin-bottom:14px;min-height:48px}#toast{position:fixed;bottom:calc(44px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:448px;margin:auto;background:#111;color:#fff;min-height:48px;border-radius:14px;padding:4px 16px;display:flex;align-items:center;justify-content:space-between;z-index:100;font-size:14px}#toast button{color:#f5e293}.work-mount{margin:12px 12px 20px;padding:14px;background:#fff;transform:rotate(-.6deg);box-shadow:0 4px 18px #0002}.work-mount canvas{width:100%;height:auto;display:block;border:1px solid #111}.work-mount footer{display:flex;justify-content:space-between;font-size:11px;margin-top:12px}.work-stats{font-size:12px;line-height:1.8;border-top:1px solid #111;padding-top:10px}.work-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px}.chart-preview{width:100%;max-height:300px;object-fit:contain;background:white}.color-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px 0}.color-list span{display:flex;gap:8px;align-items:center;font-size:12px}.color-list i,.brush i{width:18px;height:18px;border-radius:3px;display:inline-block;border:1px solid #aaa}.share-preview{width:100%;display:block;box-shadow:0 4px 16px #0001}.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.library-card{min-width:0;text-align:left}.library-card canvas{width:100%;height:auto;display:block;background:white;padding:6px}.library-card b,.library-card small{display:block;margin-top:6px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-card small{font-size:11px;color:#777}.library-card .options{float:right}.repair-viewport{overflow:auto;background:#deddd8;max-height:48dvh;border-radius:12px}.repair-viewport canvas{display:block;touch-action:pan-x pan-y}.brushes{display:flex;overflow:auto;gap:6px;margin-top:8px}.brush{min-width:48px;font-size:11px;display:grid;justify-items:center;gap:4px}.brush.on{background:#f5e293;border-radius:8px}.repair-hint{font-size:13px;color:#555;margin:10px 0}.readonly{padding:12px;background:#fbf3cf;font-size:13px}.crop-indicator{text-align:center;margin-top:12px;font-size:16px}.bt-brand img{width:22px;height:22px}.sample-note{font-size:11px;color:#777}.v-booth .bt-gal{margin-bottom:30px}.v-booth .bt-gal canvas{aspect-ratio:1}.v-booth .bt-two-m{margin-bottom:8px}.page-crop .dock{margin-top:24px}.page-pick .dock{min-height:90px}.download-link{display:block;text-align:center;padding:16px;background:#111;color:#fff;border-radius:16px;text-decoration:none}.size-pills{display:flex;gap:8px;margin-bottom:14px}.size-pills button{flex:1;border:1px solid #ddd;border-radius:12px}.size-pills .on{background:#f5e293}.qa-badge{position:fixed;right:4px;bottom:2px;font:9px monospace;color:#999;pointer-events:none}[hidden]{display:none!important}@media(max-width:359px){.v-booth .bt-stage.compact{padding:0 18px}.v-booth .bt-after{padding-left:18px;padding-right:18px}.v-booth .bt-bezel.sm{margin:0 15px}.v-booth .bt-cap.big span{font-size:13px}.v-booth .bt-ff{flex-basis:70px;min-width:70px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Keep primary actions reachable on smaller iPhones; only the editing area scrolls. */
#app.page-crop,#app.page-pick,#app.page-repair{height:100dvh;min-height:0!important;overflow:hidden}
#app.page-crop .page-body,#app.page-pick .page-body,#app.page-repair .page-body{min-height:0;overflow-y:auto;padding-bottom:10px}
#app.page-crop .dock,#app.page-pick .dock,#app.page-repair .dock{flex-shrink:0;min-height:0;margin-top:0;padding-top:10px;background:var(--pd-paper)}
