:root{--primary:#6750a4;--on-primary:#fff;--primary-focus:#6750a447;--surface:#fffbfe;--surface-container-low:#f7f2fa;--surface-container:#f3edf7;--secondary-container:#e8def8;--on-secondary-container:#1d192b;--on-surface:#1c1b1f;--on-surface-variant:#49454f;--outline:#79747e;--outline-variant:#cac4d0;--error:#b3261e;--shadow-1:0 1px 3px #0000002e;--shadow-2:0 2px 6px #00000029, 0 1px 2px #00000014;color:var(--on-surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f0fa;font-family:Roboto,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{min-height:100%}body{background:#f6f0fa;min-height:100svh;margin:0}button,input,textarea,select{font:inherit}#root{min-height:100svh}.camera-screen{--camera-top-clearance:calc(max(16px, env(safe-area-inset-top)) + 88px);--camera-bottom-clearance:calc(max(24px, env(safe-area-inset-bottom)) + 168px);--camera-side-padding:20px;--camera-available-height:calc(100svh - var(--camera-top-clearance) - var(--camera-bottom-clearance));color:#fff;background:#000;position:fixed;inset:0;overflow:hidden}.camera-screen__topbar,.camera-screen__bottomsheet{z-index:2;position:absolute;left:0;right:0}.camera-screen__topbar{padding:max(16px, env(safe-area-inset-top)) 16px 16px;justify-content:space-between;align-items:center;gap:12px;display:flex;top:0}.camera-screen__topbar-group{flex-wrap:nowrap;gap:8px;min-width:0;display:flex}.camera-screen__quality-chip{color:#fff;background:#00000047;border:1px solid #ffffff2e;border-radius:999px;flex:none;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-size:.875rem;font-weight:500;display:inline-flex}.camera-screen__quality-chip span{text-transform:uppercase;letter-spacing:.04em;background:#ffffff29;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:.75rem;display:inline-flex}.camera-screen__viewport{position:absolute;inset:0}.camera-screen__video{object-fit:cover;width:100%;height:100%;display:block}.camera-screen__overlay{padding:var(--camera-top-clearance) var(--camera-side-padding) var(--camera-bottom-clearance);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.camera-screen__frame{width:min(100%, calc(var(--camera-available-height) * .92));max-width:calc(100vw - (var(--camera-side-padding) * 2));max-height:var(--camera-available-height);border:2px solid #ffffffeb;border-radius:28px;overflow:hidden;box-shadow:0 0 0 999px #00000085}.camera-screen__message{text-align:center;background:#000000b8;place-content:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.camera-screen__message strong{font-size:1.25rem;font-weight:500}.camera-screen__message p{color:#ffffffd1;margin:0}.camera-screen__fallback-actions,.camera-screen__actions{gap:10px;display:grid}.camera-screen__bottomsheet{padding-bottom:max(16px, env(safe-area-inset-bottom));background:linear-gradient(#0000,#0000008f 22%,#000000d1);padding-top:32px;bottom:0}.camera-screen__capture-bar{place-items:center;padding-top:8px;display:grid}.camera-toggle{color:#fff;min-height:40px;font:inherit;background:#00000047;border:1px solid #ffffff52;border-radius:999px;padding:0 14px;font-size:.875rem;font-weight:500}.camera-toggle--active{color:#1c1b1f;background:#ffffffeb;border-color:#ffffffeb}.camera-toggle:focus-visible{outline-offset:2px;outline:3px solid #ffffff4d}.capture-button{width:84px;min-width:84px;height:84px;min-height:84px;color:var(--on-primary);box-shadow:none;-webkit-tap-highlight-color:transparent;background:#ffffff2e;border:3px solid #ffffffeb;border-radius:50%;place-items:center;padding:0;transition:background-color .18s,box-shadow .18s,transform .18s;display:grid}.capture-button:focus-visible{outline:3px solid var(--primary-focus);outline-offset:2px}.capture-button:active{transform:scale(.99)}.capture-button:disabled{background:var(--surface-container);color:#1c1b1f61;box-shadow:none}.capture-button__inner{background:#fff;border-radius:50%;width:64px;height:64px;transition:transform .18s}.capture-button:active .capture-button__inner{transform:scale(.94)}.camera-screen .helper-text,.camera-screen .status-message{color:#ffffffdb}.camera-screen .status-message.error{color:#ffb4ab}@media (width>=768px){.camera-screen__actions,.camera-screen__fallback-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.camera-screen{--camera-top-clearance:calc(max(16px, env(safe-area-inset-top)) + 104px);--camera-bottom-clearance:calc(max(24px, env(safe-area-inset-bottom)) + 176px)}.camera-screen__quality-chip{width:auto}}.app-shell{place-items:center;min-height:100svh;padding:16px;display:grid}.setup-card{background:var(--surface);width:min(100%,36rem);box-shadow:var(--shadow-2);border-radius:28px;padding:24px 20px}.hero-card{text-align:center}.eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.75rem;font-weight:600}.setup-card h1{color:var(--on-surface);margin:0;font-size:clamp(1.75rem,6vw,2.5rem);font-weight:500;line-height:1.15}.setup-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.description{color:var(--on-surface-variant);margin:16px 0 24px;font-size:1rem;line-height:1.5}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.field{gap:8px;display:grid}.field span{color:var(--on-surface-variant);font-size:.875rem;font-weight:500}.field input{border:1px solid var(--outline);background:var(--surface);width:100%;min-height:56px;color:var(--on-surface);border-radius:16px;padding:0 16px}.field input:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible,.chip:focus-visible,.ghost-action:focus-visible,.download-link:focus-visible{outline:3px solid var(--primary-focus);outline-offset:2px}.preset-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.primary-action,.secondary-action,.chip,.ghost-action,.download-link{min-height:48px;font:inherit;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;font-weight:500;transition:background-color .18s,box-shadow .18s,transform .18s}.primary-action{background:var(--primary);width:100%;color:var(--on-primary);box-shadow:var(--shadow-1);padding:0 24px}.secondary-action,.ghost-action,.download-link{background:var(--secondary-container);color:var(--on-secondary-container);padding:0 18px;text-decoration:none}.chip{background:var(--surface-container);color:var(--on-surface-variant);border:1px solid var(--outline-variant);padding:0 14px}.ghost-action{background:var(--surface-container)}.primary-action:active,.secondary-action:active,.chip:active,.ghost-action:active,.download-link:active{transform:scale(.99)}.primary-action:disabled,.secondary-action:disabled{background:var(--surface-container);color:#1c1b1f61;box-shadow:none}.framing-card{background:var(--surface-container-low);border-radius:24px;padding:16px}.framing-header,.capture-meta{color:var(--on-surface-variant);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.framing-preview{background:var(--surface-container);border-radius:20px;place-items:center;height:240px;padding:16px;display:grid}.framing-safe-zone{border:2px solid var(--primary);background:#6750a414;border-radius:20px;flex:none;overflow:hidden}.framing-grid{background-image:linear-gradient(90deg,#6750a429 1px,#0000 1px),linear-gradient(#6750a429 1px,#0000 1px);background-size:33.333% 100%,100% 33.333%;width:100%;height:100%}.helper-text,.status-message{color:var(--on-surface-variant);margin:10px 0 0;font-size:.875rem;line-height:1.45}.status-message.error{color:var(--error)}.capture-result{border-top:1px solid var(--outline-variant);margin-top:20px;padding-top:20px}.update-banner{background:var(--secondary-container);border-radius:20px;gap:12px;margin-bottom:16px;padding:16px;display:grid}.update-banner__content strong{color:var(--on-secondary-container);font-size:1rem;font-weight:600;display:block}.update-banner__content p{color:var(--on-secondary-container);margin:6px 0 0;font-size:.92rem}.push-card{background:var(--surface-container-low);border-radius:24px;margin-top:20px;padding:16px}.push-card__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.push-card__header h2{color:var(--on-surface);margin:0;font-size:1.25rem;font-weight:500}.push-card__description{margin-bottom:16px}.push-pill{background:var(--secondary-container);min-height:32px;color:var(--on-secondary-container);border-radius:999px;align-items:center;padding:0 12px;font-size:.8125rem;font-weight:500;display:inline-flex}.push-support-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.push-support-item{background:var(--surface);border:1px solid var(--outline-variant);border-radius:16px;gap:4px;padding:12px 14px;display:grid}.push-support-item span{color:var(--on-surface-variant);font-size:.8125rem}.push-support-item strong{color:var(--on-surface);font-size:.95rem;font-weight:500}.push-actions{gap:10px;margin-bottom:8px;display:grid}.push-details{margin-top:14px}.push-details summary{cursor:pointer;color:var(--primary);font-weight:500}.push-details pre{color:#f4eff4;background:#1c1b1f;border-radius:16px;margin:12px 0 0;padding:14px;font-size:.75rem;overflow:auto}.setup-action{margin-top:20px}.capture-image{border-radius:20px;width:100%;margin-bottom:12px;display:block}@media (width>=768px){.app-shell{padding:24px}.setup-card{padding:32px 28px}.push-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.control-grid,.preset-row,.push-support-grid{grid-template-columns:1fr}.framing-header,.capture-meta,.setup-header,.push-card__header{grid-template-columns:1fr;display:grid}}
