@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@400;600&display=swap";html{--mat-sys-background: light-dark(#f7faf9, #101414);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#eff1f0, #2d3131);--mat-sys-inverse-primary: light-dark(#00dddd, #006a6a);--mat-sys-inverse-surface: light-dark(#2d3131, #e0e3e2);--mat-sys-on-background: light-dark(#191c1c, #e0e3e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #003737);--mat-sys-on-primary-container: light-dark(#004f4f, #00fbfb);--mat-sys-on-primary-fixed: light-dark(#002020, #002020);--mat-sys-on-primary-fixed-variant: light-dark(#004f4f, #004f4f);--mat-sys-on-secondary: light-dark(#ffffff, #1b3534);--mat-sys-on-secondary-container: light-dark(#324b4b, #cce8e7);--mat-sys-on-secondary-fixed: light-dark(#051f1f, #051f1f);--mat-sys-on-secondary-fixed-variant: light-dark(#324b4b, #324b4b);--mat-sys-on-surface: light-dark(#191c1c, #e0e3e2);--mat-sys-on-surface-variant: light-dark(#3f4948, #dae5e4);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#6f7979, #889392);--mat-sys-outline-variant: light-dark(#bec9c8, #3f4948);--mat-sys-primary: light-dark(#006a6a, #00dddd);--mat-sys-primary-container: light-dark(#00fbfb, #004f4f);--mat-sys-primary-fixed: light-dark(#00fbfb, #00fbfb);--mat-sys-primary-fixed-dim: light-dark(#00dddd, #00dddd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#4a6363, #b0cccb);--mat-sys-secondary-container: light-dark(#cce8e7, #324b4b);--mat-sys-secondary-fixed: light-dark(#cce8e7, #cce8e7);--mat-sys-secondary-fixed-dim: light-dark(#b0cccb, #b0cccb);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#f7faf9, #101414);--mat-sys-surface-bright: light-dark(#f7faf9, #363a39);--mat-sys-surface-container: light-dark(#ebefed, #1c2020);--mat-sys-surface-container-high: light-dark(#e6e9e7, #272b2a);--mat-sys-surface-container-highest: light-dark(#e0e3e2, #313635);--mat-sys-surface-container-low: light-dark(#f1f4f3, #191c1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0b0f0e);--mat-sys-surface-dim: light-dark(#d7dbd9, #101414);--mat-sys-surface-tint: light-dark(#006a6a, #00dddd);--mat-sys-surface-variant: light-dark(#dae5e4, #3f4948);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #293232;--mat-sys-neutral10: #191c1c}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-body-large: 400 1rem / 1.5rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-large-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-medium-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-small-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-large-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-medium-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-small-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-large-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-medium-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-small-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-large-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-medium-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-small-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-large-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-medium-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-small-font: Plus Jakarta Sans, Inter, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root,.sv-dark{color-scheme:dark;--color-primary: #17d4c6;--color-primary-rgb: 23, 212, 198;--color-primary-light: #4de7db;--color-primary-strong: #0fa89b;--color-primary-soft: rgba(23, 212, 198, .16);--color-primary-bg: rgba(23, 212, 198, .14);--color-accent: #3b82f6;--color-accent-soft: rgba(59, 130, 246, .18);--color-bg: #08111f;--color-bg-strong: #0b1626;--color-surface: rgba(15, 29, 50, .86);--color-surface-strong: #0f1d32;--color-border: rgba(148, 163, 184, .2);--color-border-strong: rgba(148, 163, 184, .34);--color-text: #e8eef6;--color-text-secondary: #aeb9cc;--color-text-muted: #7e8ba2;--color-success: #36e59a;--color-success-bg: rgba(54, 229, 154, .13);--color-warning: #ffb020;--color-warning-bg: rgba(255, 176, 32, .13);--color-error: #ff5a5a;--color-error-bg: rgba(255, 90, 90, .12);--color-info: #60a5fa;--color-info-bg: rgba(96, 165, 250, .12);--topbar-bg: rgba(8, 17, 31, .78);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .45), 0 2px 4px -2px rgb(0 0 0 / .45);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .55), 0 8px 10px -6px rgb(0 0 0 / .55)}html[data-theme=light]{color-scheme:light;--color-primary: #0fa89b;--color-primary-rgb: 15, 168, 155;--color-primary-light: #0d9488;--color-primary-strong: #0a7f74;--color-primary-soft: rgba(23, 212, 198, .14);--color-primary-bg: rgba(23, 212, 198, .1);--color-accent: #2563eb;--color-accent-soft: rgba(37, 99, 235, .12);--color-bg: #eef2f8;--color-bg-strong: #e3e9f2;--color-surface: #ffffff;--color-surface-strong: #ffffff;--color-border: rgba(15, 23, 42, .12);--color-border-strong: rgba(15, 23, 42, .22);--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-success: #059669;--color-success-bg: rgba(5, 150, 105, .1);--color-warning: #b45309;--color-warning-bg: rgba(180, 83, 9, .1);--color-error: #dc2626;--color-error-bg: rgba(220, 38, 38, .08);--color-info: #2563eb;--color-info-bg: rgba(37, 99, 235, .1);--topbar-bg: rgba(255, 255, 255, .85);--shadow-sm: 0 1px 3px 0 rgb(15 23 42 / .08), 0 1px 2px -1px rgb(15 23 42 / .08);--shadow-md: 0 4px 6px -1px rgb(15 23 42 / .1), 0 2px 4px -2px rgb(15 23 42 / .08);--shadow-lg: 0 10px 15px -3px rgb(15 23 42 / .12), 0 4px 6px -4px rgb(15 23 42 / .08);--shadow-xl: 0 20px 25px -5px rgb(15 23 42 / .14), 0 8px 10px -6px rgb(15 23 42 / .1)}:root{--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--sidebar-width: 280px;--sidebar-collapsed: 80px;--topbar-height: 72px;--font-sans: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, sans-serif;--font-display: "Space Grotesk", "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.02em}*,*:before,*:after{box-sizing:border-box}app-root{display:block;min-height:100%}html,body{height:100%;margin:0;font-family:var(--font-sans);background:radial-gradient(circle at top left,rgba(23,212,198,.1),transparent 28%),radial-gradient(circle at top right,rgba(59,130,246,.1),transparent 26%),linear-gradient(180deg,#08111f,#060c16);background-attachment:fixed;color:var(--color-text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary-light);text-decoration:none}.sv-state-banner{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;margin-bottom:1rem;border-radius:var(--radius-md);border:1px solid var(--color-border)}.sv-state-banner.error{border-color:#ff5a5a59;background:var(--color-error-bg)}.sv-state-banner.empty{border-color:var(--color-border);background:var(--color-bg-strong)}.sv-state-banner.success{border-color:#36e59a59;background:var(--color-success-bg)}.sv-state-banner mat-icon:first-child{margin-top:2px;color:var(--color-text-muted)}.sv-state-banner.error mat-icon:first-child{color:var(--color-error)}.mat-mdc-card{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;border:1px solid var(--color-border)!important;background:var(--color-surface)!important;color:var(--color-text)!important;backdrop-filter:blur(18px);overflow:hidden}.mat-mdc-raised-button.mat-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light))!important;color:#04201c!important;border-radius:var(--radius-sm)!important}.mat-mdc-raised-button.mat-accent{background-color:var(--color-accent)!important;border-radius:var(--radius-sm)!important}.mat-mdc-raised-button.mat-warn,.mat-mdc-outlined-button,.mat-mdc-unelevated-button,.mat-mdc-stroked-button{border-radius:var(--radius-sm)!important}.mat-mdc-stroked-button{border-color:var(--color-border-strong)!important}.mat-mdc-form-field .mdc-notched-outline__leading{border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important}.mat-mdc-form-field .mdc-notched-outline__trailing{border-radius:0 var(--radius-sm) var(--radius-sm) 0!important}.mat-mdc-chip{border-radius:999px!important;font-size:12px!important;font-weight:700!important}.mat-mdc-table{border-radius:var(--radius-md)!important;overflow:hidden}.mat-mdc-paginator{border-radius:0 0 var(--radius-md) var(--radius-md)!important;border-top:1px solid var(--color-border)}.mat-mdc-progress-spinner circle{stroke:var(--color-primary)!important}.error-message{display:flex;align-items:center;gap:8px;background:var(--color-error-bg);border:1px solid rgba(255,90,90,.4);color:var(--color-error);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin:8px 0}.surface-panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);backdrop-filter:blur(18px)}.camera-page .step-state{margin-left:10px;font-size:.72rem;text-transform:uppercase;border-radius:999px;padding:4px 10px;border:1px solid rgba(255,255,255,.18);color:#ffffffbf}.camera-page .step-state.success{border-color:#36e59a73;color:#6ee7b7}.camera-page .step-state.error{border-color:#ff5a5a73;color:#fca5a5}.camera-page .step-state.loading{border-color:#38bdf873;color:#7dd3fc}.camera-page .wizard-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.camera-page .wizard-actions{display:flex;justify-content:flex-end;margin-top:-24px}.camera-page .btn-reset-wizard{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-surface-strong);color:var(--color-text-secondary);padding:8px 12px;font-size:.82rem;font-weight:700;cursor:pointer}.camera-page .btn-reset-wizard:hover{border-color:var(--color-primary);color:var(--color-text)}.camera-page .reset-modal-backdrop{position:fixed;inset:0;background:#0206179e;display:flex;align-items:center;justify-content:center;z-index:1200}.camera-page .reset-modal{width:min(460px,100% - 32px);background:var(--color-surface-strong);border-radius:16px;border:1px solid var(--color-border);box-shadow:var(--shadow-xl);padding:20px 22px}.camera-page .reset-modal p{margin:10px 0 0;color:var(--color-text-secondary);line-height:1.5;font-size:.93rem}.camera-page .reset-modal-header{display:flex;align-items:center;gap:10px}.camera-page .reset-modal-header mat-icon{color:var(--color-warning)}.camera-page .reset-modal-header h3{margin:0;font-size:1.05rem;font-weight:800;color:var(--color-text)}.camera-page .reset-modal-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:10px}.camera-page .btn-cancel,.camera-page .btn-confirm{border-radius:10px;padding:8px 14px;font-size:.84rem;font-weight:700;cursor:pointer}.camera-page .btn-cancel{border:1px solid var(--color-border-strong);background:transparent;color:var(--color-text-secondary)}.camera-page .btn-confirm{border:1px solid var(--color-error);background:var(--color-error);color:#2a0a0a}.camera-page .stepper-item{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-strong);color:var(--color-text-secondary);height:48px;font-size:.88rem;font-weight:700;cursor:pointer}.camera-page .stepper-item .dot{width:22px;height:22px;border-radius:999px;border:1px solid var(--color-border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:.72rem}.camera-page .stepper-item.active{border-color:#17d4c680;color:var(--color-primary-light);background:var(--color-primary-bg)}.camera-page .stepper-item.locked{color:var(--color-text-muted)}.camera-page .state-banner{display:flex;align-items:center;gap:16px;padding:16px 24px;border-radius:12px;background:var(--color-surface-strong);border-left:4px solid var(--color-border-strong);box-shadow:var(--shadow-sm)}.camera-page .state-banner.error{border-color:var(--color-error);background:var(--color-error-bg)}.camera-page .state-banner.error mat-icon{color:var(--color-error)}.camera-page .state-banner.loading{border-color:var(--color-primary);background:var(--color-info-bg)}.camera-page .state-banner.loading mat-icon{color:var(--color-primary)}.camera-page .state-banner strong{display:block;font-size:.95rem;margin-bottom:2px}.camera-page .state-banner p{margin:0;font-size:.88rem;color:var(--color-text-muted)}.camera-page .section-header{margin-bottom:24px}.camera-page .section-header .header-main{display:flex;align-items:center;gap:16px;margin-bottom:4px}.camera-page .section-header .header-main .step-badge{padding:4px 10px;background:var(--color-primary-bg);color:var(--color-primary-light);border-radius:6px;font-size:.7rem;font-weight:800;text-transform:uppercase}.camera-page .section-header .header-main h2{font-size:1.5rem;font-weight:800;color:var(--color-text);margin:0}.camera-page .section-header p{font-size:.95rem;color:var(--color-text-secondary);margin:0}.camera-page .surface-panel{background:var(--color-surface);padding:32px;border-radius:24px;border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.camera-page .surface-panel.active-step{border-color:#17d4c640;box-shadow:var(--shadow-lg)}.camera-page .surface-panel.locked-step .step-lock-hint{display:flex}.camera-page .step-lock-hint{display:none;align-items:center;gap:10px;margin-bottom:16px;padding:10px 12px;border-radius:10px;border:1px dashed var(--color-border-strong);color:var(--color-text-muted);background:var(--color-bg-strong)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b880}
