@font-face{font-family:Friendship Circle;font-weight:300;src:url(/fonts/FriendshipCircle-Light.ttf) format("truetype");font-display:swap}@font-face{font-family:Friendship Circle;font-weight:600;src:url(/fonts/FriendshipCircle-SemiBold.ttf) format("truetype");font-display:swap}:root{--gold: #F8A818;--navy: #203860;--cream: #FFF7E8;--bg: #F6F5F1;--card: #FFFFFF;--ink: #1B2436;--muted: #6A748A;--rule: #E2E4EA;--ok: #2E7D32;--warn: #B7791F;--bad: #B3261E;--radius: 14px;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.4 -apple-system,system-ui,Helvetica Neue,sans-serif;overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}#root{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}button{font:inherit;touch-action:manipulation}.screen{min-height:100%;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 12px) 16px max(calc(env(safe-area-inset-bottom) + 14px),28px);gap:16px}.actions{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;padding-top:6px}.actions .row{width:100%;max-width:560px;justify-content:center}.actions .grid2{width:100%;max-width:560px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn.equal{min-height:56px;font-size:16px;padding:0 12px;white-space:nowrap}.actions .status-line{display:flex;align-items:center;justify-content:center;gap:14px;font-size:15px;min-height:32px}.screen.dark{background:#0f1420;color:#f3f4f7}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.topbar h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em}.topbar .sub{font-size:14px;color:var(--muted)}.brand{display:flex;align-items:center;gap:10px}.brand img{width:36px;height:36px;border-radius:9px}.brand-word{font-family:Friendship Circle,-apple-system,sans-serif;font-size:24px;letter-spacing:-.005em}.brand-word b{font-weight:600;color:var(--navy)}.brand-word span{font-weight:300;color:var(--gold)}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}label.field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted);font-weight:600}input.text,input[type=date]{width:100%;min-height:54px;border:1px solid var(--rule);border-radius:12px;padding:0 14px;font-size:18px;background:#fff;color:var(--ink)}input.text:focus,input[type=date]:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--rule);background:#fff;color:var(--ink);border-radius:999px;min-height:40px;padding:0 14px;font-size:15px}.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:14px;min-height:60px;padding:0 20px;font-size:18px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.btn:disabled{opacity:.5}.btn.primary{background:var(--navy);color:#fff}.btn.gold{background:var(--gold);color:#1b2436}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--rule)}.btn.ghost{background:transparent;color:var(--navy);min-height:44px;font-weight:600}.btn.danger{background:transparent;color:var(--bad);border:1px solid #F0C4C0}.btn.block{width:100%}.btn.huge{min-height:76px;font-size:22px}.row{display:flex;gap:12px}.row>.btn{flex:1 1 0}.btn:focus-visible,.chip:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.status{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:15px}.status dt{color:var(--muted)}.status dd{margin:0;font-weight:600}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.hint{color:var(--muted);font-size:14px;margin:0}.error{color:var(--bad);font-size:15px;margin:0}.center{text-align:center}.spacer{flex:1 1 auto}.capture-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;width:min(78vw,300px);aspect-ratio:1.35;border-radius:28px;background:var(--gold);color:#1b2436;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:22px;font-weight:700;box-shadow:0 10px 30px #f8a81840}.capture-btn:active{transform:scale(.98)}.capture-btn:focus-visible{outline:3px solid #FFF;outline-offset:3px}.frame-preview{width:100%;aspect-ratio:3 / 2;border-radius:8px;overflow:hidden;background:#eef0f3;border:1px solid var(--rule)}.frame-preview img{display:block;width:100%;height:100%;object-fit:contain}.frame-preview-empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}label.field .field-title{display:flex;align-items:baseline;gap:6px}label.field .opt{font-weight:400;color:#98a2b3}.camera-stage{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.camera-hint{color:#ffffffbf;font-size:16px;text-align:center;max-width:320px}.print-preview{width:100%;aspect-ratio:3 / 2;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 6px 24px #00000059;touch-action:none;user-select:none;-webkit-user-select:none}.print-preview img,.print-preview canvas{display:block;width:100%;height:100%;object-fit:contain}.processing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;color:#fff}.spinner{width:34px;height:34px;border-radius:50%;border:4px solid rgba(255,255,255,.25);border-top-color:var(--gold);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.step-label{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:-6px 2px -8px}.card.wizard h2{margin:0;font-size:22px}.wizard-nav{margin-top:4px;justify-content:space-between}.wizard-nav>span{flex:1 1 0}.wizard-nav>.btn{flex:1 1 0}.choices{display:flex;flex-direction:column;gap:10px}.choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;border:1px solid var(--rule);background:#fff;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;cursor:pointer;color:var(--ink);font-size:18px}.choice:active{background:var(--cream)}.frame-list{display:flex;flex-direction:column;gap:8px}.frame-row{display:flex;align-items:center;gap:8px;border:1px solid var(--rule);border-radius:12px;padding:6px 8px 6px 6px;background:#fff}.frame-row.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}.frame-pick{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;flex:1 1 auto;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;color:var(--ink);padding:0;min-width:0}.frame-pick img{width:72px;height:48px;object-fit:contain;background:#eef0f3;border-radius:6px;flex:0 0 auto}.frame-pick>span{display:flex;flex-direction:column;min-width:0}.frame-pick b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choice.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}.choice-row{display:flex;align-items:center;gap:8px}.choice-row .choice{flex:1 1 auto}.choice.off{opacity:.55}.dock{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-around;align-items:stretch;background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--rule);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px)}.dock button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;border-radius:10px}.dock button.on{color:var(--navy)}.dock button:active{background:var(--bg)}.screen.with-dock{padding-bottom:calc(env(safe-area-inset-bottom) + 92px)}.group-list{display:flex;flex-direction:column;gap:10px}.group-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--rule);background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer;color:var(--ink)}.group-thumbs{display:flex;gap:4px}.group-thumb{width:54px;height:36px;border-radius:6px;overflow:hidden;background:#eef0f3;display:block}.group-thumb img{width:100%;height:100%;object-fit:contain;display:block}.group-text{display:flex;flex-direction:column;min-width:0;gap:2px}.group-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count{font-size:13px;color:var(--muted);white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{position:relative;border:0;padding:0;background:#fff;border-radius:10px;overflow:hidden;aspect-ratio:3 / 2;cursor:pointer}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile.contain{background:#1b2436}.tile.contain img{object-fit:contain}.tile .badge{position:absolute;left:8px;bottom:8px;background:#0f1420bf;color:#fff;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:600}.tile .badge.ok{color:#9be7a1}.tile .badge.warn{color:#ffd27a}.tile .badge.bad{color:#ffb4ad}.banner{border-radius:12px;padding:12px 14px;font-size:15px;background:var(--cream);color:#5a4300;border:1px solid #F3DDA8;display:flex;justify-content:space-between;align-items:center;gap:12px}.banner.bad{background:#fdecea;color:#7a1c15;border-color:#f0c4c0}.banner .btn{min-height:40px;font-size:15px;padding:0 14px}.adjust{display:flex;flex-direction:column;gap:10px;background:#ffffff0f;border-radius:12px;padding:12px 14px}.adjust label{display:grid;grid-template-columns:84px 1fr 56px;align-items:center;gap:12px;color:#fff;font-size:15px;font-weight:600}.adjust output{text-align:right;font-variant-numeric:tabular-nums;color:#ffd27a;font-weight:600}.adjust input[type=range]{width:100%;min-height:44px;accent-color:var(--gold);margin:0}.adjust-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.adjust-foot .hint{margin:0}.adjust .chips .chip{background:#ffffff14;color:#fff;border-color:#ffffff40;min-height:40px;font-size:14px;padding:0 12px}.adjust .chips .chip.active{background:var(--gold);color:#1b2436;border-color:var(--gold)}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -14px;padding:0 14px}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:0 0 auto}.adjust-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;color:#fff}.adjust-name{font-size:15px;font-weight:600;color:#ffffffd9}.stepper{display:inline-flex;align-items:center;gap:2px;background:#ffffff14;border-radius:999px;padding:2px}.stepper button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:48px;height:44px;border-radius:999px;background:#ffffff1f;color:#fff;font-size:24px;line-height:1;cursor:pointer}.stepper button:disabled{opacity:.35}.stepper output{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:#ffd27a;font-weight:700;font-size:17px}.btn.ghost.small{min-height:44px;padding:0 10px;font-size:15px}.frame-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:0;font-size:15px;cursor:pointer;text-align:left}.frame-toggle b{flex:1 1 auto;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen.admin{max-width:760px;margin:0 auto}.screen.admin h2{margin:0;font-size:20px}.screen.admin h3{margin:8px 0 0;font-size:16px}.screen.admin pre{background:var(--code, #EEF0F3);border-radius:8px;padding:10px 12px;font-size:13px;overflow-x:auto;margin:6px 0}.screen.admin code{background:#eef0f3;border-radius:5px;padding:1px 5px;font-size:14px}.screen.admin textarea.text{min-height:96px;padding:12px 14px;font-size:16px;resize:vertical;font-family:ui-monospace,Menlo,monospace}.screen.admin select.text{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.screen.admin ol{padding-left:20px;margin:0;display:grid;gap:10px}label.field.check{flex-direction:row;align-items:center;gap:10px;color:var(--ink);font-weight:500}label.field.check input{width:22px;height:22px;accent-color:var(--navy)}.table{display:grid;gap:8px}.trow{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--rule);border-radius:10px;font-size:15px}@media(max-width:640px){.trow{grid-template-columns:1fr auto}.trow>.hint:nth-child(3){display:none}}a.btn{text-decoration:none}.code-pill{font-family:ui-monospace,Menlo,monospace;font-size:17px;letter-spacing:.08em;background:var(--cream);color:var(--navy);border:1px solid #F3DDA8;border-radius:8px;padding:6px 10px;cursor:copy;user-select:all;-webkit-user-select:all}
