/* Norscribe capture: one clear surface, shared by SPOT and Dash. */
.camera-view{--camera-teal:#74ded7;--camera-gold:#edc67c;--camera-red:#f34339;--camera-font:-apple-system,BlinkMacSystemFont,'DM Sans','Segoe UI',sans-serif;font-family:var(--camera-font);background:#05131b;isolation:isolate}
.camera-view button{font-family:var(--camera-font);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.camera-view button:focus-visible{outline:2px solid var(--camera-gold);outline-offset:4px}
.camera-view button:disabled{cursor:default;opacity:.45}
.camera-view .camera-shade-top{height:220px;background:linear-gradient(#04111be6,#04111b68 60%,transparent)}
.camera-view .camera-topbar{left:20px;right:20px;top:calc(18px + env(safe-area-inset-top,0px));gap:12px;grid-template-columns:44px minmax(0,1fr) 44px;z-index:5}
.camera-view .round-control{display:grid;place-items:center;width:44px;height:44px;font-size:25px;border:1px solid #ffffff26;background:#10252b80;backdrop-filter:blur(18px);box-shadow:inset 0 1px #ffffff0d;color:#fff}
.camera-view .round-control svg{width:21px;height:21px}
.camera-view .round-control.active{background:#edc67c;color:#17252b;border-color:#edc67c}
.camera-view .recording-pill{min-height:42px;padding:10px 13px;gap:8px;border:1px solid #f5eee12b;background:#081921bd;color:#f2f7f3;font-size:10px;font-weight:650;letter-spacing:.03em;box-shadow:0 5px 22px #0002}
.camera-view .recording-pill .timer{font-family:var(--camera-font);font-variant-numeric:tabular-nums;font-size:12px;font-weight:550;min-width:35px;color:#f5eee4;padding-left:7px;border-left:1px solid #ffffff25}
.camera-view .record-dot{width:6px;height:6px;background:var(--camera-red);box-shadow:0 0 0 4px #f343391c}
.camera-view .wave-bars{gap:2px}.camera-view .wave-bars i{background:var(--camera-teal)}
.camera-view .recording-pill.paused{background:#49391eda;border-color:#edc67c70}.camera-view .recording-pill.paused .record-dot{background:var(--camera-gold);box-shadow:none}
.camera-view .capture-wordmark{position:absolute;z-index:4;left:0;right:0;top:calc(79px + env(safe-area-inset-top,0px));margin:0;text-align:center;font-size:10px;font-weight:650;letter-spacing:.1em;color:#f4eee0;text-shadow:0 2px 12px #000;pointer-events:none}
.camera-view .capture-wordmark b{font-weight:750;color:var(--camera-gold)}
.camera-view .capture-guidance{top:calc(108px + env(safe-area-inset-top,0px));left:68px;right:68px;transform:none;gap:6px;white-space:normal;text-align:center;pointer-events:none}
.camera-view .capture-guidance strong{font-size:12px;font-weight:450;line-height:1.4;color:#edf4f0}.camera-view .capture-guidance span{font:550 9px/1.3 var(--camera-font);letter-spacing:.08em;color:#c4e2df}
.camera-view .capture-help,.camera-view .capture-upload{top:calc(75px + env(safe-area-inset-top,0px));min-height:38px;border:1px solid #ffffff2b;background:#0a202980;backdrop-filter:blur(14px);border-radius:50%;font-size:12px;font-weight:500;padding:8px;z-index:6;color:#e6f1ed}
.camera-view .capture-help{right:22px;min-width:38px;width:38px;display:grid;place-items:center;font-size:16px}
.camera-view .capture-upload{left:22px;width:38px;display:grid;place-items:center}.camera-view .capture-upload svg{width:18px;height:18px}.camera-view .capture-upload-label{position:absolute;top:41px;left:-4px;right:-4px;font-size:9px;line-height:1.3;color:#d9e8e3;text-align:center}
.camera-view .camera-bottom{min-height:calc(130px + env(safe-area-inset-bottom,0px));padding:12px 22px calc(22px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr 96px 1fr;gap:16px;background:linear-gradient(#071a22e8,#04131b);border-top:1px solid #c1e5df17;z-index:4;align-items:center}
.camera-view .camera-action{justify-self:center;justify-content:center;align-items:center;width:68px;min-height:64px;gap:8px;color:#ebf2ec;font-size:10px;font-weight:500;letter-spacing:.01em;border-radius:18px;padding:8px;background:transparent;transition:background .18s,transform .18s}
.camera-view .camera-action:active{background:#ffffff12;transform:scale(.96)}.camera-view .action-icon{width:35px;height:30px;display:grid;place-items:center;font-size:26px;font-weight:400;line-height:1}
.camera-view #finishCapture{width:86px;min-height:58px;border:1px solid #edc67c66;background:#edc67c12;color:#f4d594;gap:5px;border-radius:18px}.camera-view #finishCapture .action-icon{font-size:23px;height:23px}.camera-view #finishCapture>span:last-child{font-size:11px;font-weight:650}
.camera-view .shutter{position:relative;justify-self:center;width:82px;height:82px;padding:5px;border:2px solid #f6eee1;border-radius:50%;background:#04121b80;box-shadow:0 0 0 5px #ffffff0a,0 5px 20px #0004;transition:transform .15s,border-color .15s}
.camera-view .shutter>span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 38% 25%,#ff7865,#ef3d35 55%,#bd232a);box-shadow:inset 0 1px 2px #ffc5a56b,0 0 24px #f343392b;transition:transform .15s,border-radius .2s}
.camera-view .shutter svg{width:26px;height:26px;fill:none;stroke:#fff8ed;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.camera-view .shutter:active>span{transform:scale(.89);background:#e93832}.camera-view.video-mode .shutter svg{display:none}.camera-view.video-recording .shutter>span{border-radius:9px;transform:scale(.46);background:#f34339;box-shadow:none}
.camera-view .mode-switch{bottom:calc(145px + env(safe-area-inset-bottom,0px));gap:3px;padding:4px;border:1px solid #ffffff24;background:#081b24bf;backdrop-filter:blur(18px);border-radius:999px;z-index:5;max-width:calc(100% - 36px)}
.camera-view .mode-switch button{min-height:40px;padding:9px 17px;border:0;background:transparent;color:#d9e5e1;border-radius:999px;font-size:12px;font-weight:550;letter-spacing:0;gap:6px;transition:background .2s,color .2s}.camera-view .mode-icon{width:15px;height:15px}.camera-view .mode-switch button.active{background:#f1d49b;color:#152e38;box-shadow:0 2px 12px #0002}
.camera-view .zoom-control{bottom:calc(209px + env(safe-area-inset-bottom,0px));gap:8px;z-index:5}.camera-view .pinch-hint{font:500 9px/1.3 var(--camera-font);letter-spacing:.02em;background:#081c27ad;color:#d8e7e1;padding:5px 9px}
.camera-view .zoom-presets{gap:5px;padding:4px;background:#06192180;border:1px solid #ffffff1f;backdrop-filter:blur(14px);border-radius:999px}.camera-view .zoom-presets button{width:38px;height:38px;min-width:38px;min-height:38px;background:transparent;font-size:11px;font-weight:600;color:#e2ece7}.camera-view .zoom-presets button.active{background:#e3c17c;color:#152c33}
.camera-view .shot-counter{top:calc(158px + env(safe-area-inset-top,0px));right:22px;width:43px;height:53px;padding:2px;border:1px solid #ffffff80;border-radius:11px;background:#09222b;box-shadow:0 3px 16px #0004;z-index:6}.camera-view .shot-counter img{border-radius:8px}.camera-view .shot-counter #shotCounterBadge{background:#edc67c;color:#132f37;font-family:var(--camera-font);font-size:10px;font-weight:700}
.camera-view .audio-only-card{background:#0d2d36bf;border:1px solid #72d6ce33;border-radius:24px;padding:26px;text-align:center;backdrop-filter:blur(20px);max-width:calc(100% - 44px);color:#e9f4ed}.camera-view .audio-only-card strong{font-size:15px;letter-spacing:.05em;color:#e5c48c}.camera-view .audio-only-card>span{font-size:13px;color:#c0dbd8}.camera-view.audio-mode .shutter svg{display:none}.camera-view.audio-mode .shutter>span:after{content:'Ⅱ';font-size:27px;font-weight:700;line-height:1;color:#fff4df}.camera-view.audio-mode.capture-paused .shutter>span:after{content:'▶';font-size:22px}.camera-view.audio-mode #flipButton{visibility:hidden}
.camera-view .camera-error{top:calc(145px + env(safe-area-inset-top,0px));left:72px;right:72px;max-height:120px;overflow:auto;background:#4c2620ed;border:1px solid #f3b6a144;color:#ffeade;font:12px/1.5 var(--camera-font);border-radius:14px;z-index:8}
.camera-view .capture-coach{left:22px;right:22px;bottom:calc(277px + env(safe-area-inset-bottom,0px));max-width:340px;padding:20px;border:1px solid #8fd8d05e;border-radius:22px;background:linear-gradient(145deg,#133846f5,#071f2bf8);box-shadow:0 20px 65px #0006,inset 0 1px #ffffff12;backdrop-filter:blur(24px);z-index:30;max-height:calc(100dvh - 385px);overflow:auto}.camera-view .capture-coach small{font-size:9px;font-weight:650;letter-spacing:.12em;color:#e7c482}.camera-view .capture-coach strong{font-size:21px;letter-spacing:-.04em;line-height:1.15;display:block}.camera-view .capture-coach p{font-size:12px;line-height:1.55;color:#c8dcdf;margin:12px 0 17px}.camera-view .capture-coach div{gap:10px}.camera-view .capture-coach button{min-height:42px;border-radius:11px;font-size:12px;padding:10px 15px;background:#ffffff08;color:#e4efec;border:1px solid #ffffff26}.camera-view .capture-coach [data-next]{background:#edca89;color:#142d37;border-color:#edca89;font-weight:650}.camera-view .capture-guide-target{outline:2px solid #e5c582!important;outline-offset:4px;box-shadow:0 0 0 7px #edc67c12,0 0 20px #edc67c22!important}
.camera-view.is-capturing:after{content:'';position:absolute;inset:0;pointer-events:none;border:2px solid #f2665d;box-shadow:inset 0 0 16px #f343395c,inset 0 0 45px #b326262b;border-radius:0;z-index:18;animation:norscribe-listening 2.4s ease-in-out infinite}
@keyframes norscribe-listening{0%,100%{opacity:.35;box-shadow:inset 0 0 12px #f3433944}50%{opacity:.8;box-shadow:inset 0 0 22px #f3433966,inset 0 0 46px #b326261a}}
@media(min-width:700px){.camera-view{max-width:560px;height:calc(100dvh - 48px);min-height:0;border-radius:28px}.camera-view.is-capturing:after{border-radius:28px}}
@media(max-height:680px){.camera-view .camera-bottom{min-height:calc(112px + env(safe-area-inset-bottom,0px));padding-top:8px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.camera-view .shutter{width:72px;height:72px}.camera-view .mode-switch{bottom:calc(123px + env(safe-area-inset-bottom,0px))}.camera-view .zoom-control{bottom:calc(181px + env(safe-area-inset-bottom,0px))}.camera-view .capture-coach{bottom:calc(242px + env(safe-area-inset-bottom,0px));padding:15px;max-height:calc(100dvh - 290px)}.camera-view .capture-coach strong{font-size:18px}.camera-view .capture-coach p{margin:9px 0;font-size:11px}.camera-view .capture-guidance{top:calc(102px + env(safe-area-inset-top,0px))}}
@media(max-width:360px){.camera-view .camera-topbar{left:14px;right:14px;gap:7px}.camera-view .recording-pill{gap:6px;font-size:9px;padding:9px}.camera-view .mode-switch button{padding:9px 13px}.camera-view .mode-icon{display:none}}
@media(prefers-reduced-motion:reduce){.camera-view.is-capturing:after,.camera-view .wave-bars i,.camera-view .capture-coach{animation:none!important}.camera-view *{transition:none!important}}

.camera-view.is-listening:not(.is-capturing):after{display:none}.camera-view.capture-paused:after{display:none}
.camera-view.audio-mode .shutter{visibility:visible}
