:root{color:#231f20;background:#f7f7f5;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f7f7f5}button,select,a{font:inherit}button,.button{min-height:46px;border:0;border-radius:8px;padding:11px 18px;background:#151312;color:#fff;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:disabled{cursor:not-allowed;opacity:.45}.secondary{background:#e8e6e4;color:#231f20}.tertiary{background:transparent;color:#006e57;border:1px solid #80b8a8}.public-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:38px 0 72px}.public-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding-bottom:26px;border-bottom:1px solid #d7d3d0}.public-header h1,h2,p{margin-block:0}.public-header h1{margin-top:6px;font-size:clamp(2.2rem,5vw,4.2rem);letter-spacing:-.05em}.eyebrow{color:#706965;font-size:.76rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.intro{margin-top:10px;color:#6d6662;font-size:1.08rem}.auth-controls{display:flex;align-items:center;gap:12px;color:#006e57;font-weight:800}.card{border:1px solid #d6d1ce;border-radius:10px;background:#fff;box-shadow:0 5px 18px #231f200a}.auth-gate{max-width:520px;margin:56px auto;padding:34px;text-align:center}.auth-gate h2{margin:7px 0 10px;font-size:2rem}.auth-gate p:not(.eyebrow){color:#6d6662;margin-bottom:22px}.session-card{margin-top:28px;padding:24px}.session-heading,.capture-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.session-heading h2,.capture-heading h2{margin-top:5px;font-size:1.55rem}.muted{color:#77716e}.context-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 18px}label{display:grid;gap:7px;color:#413b38;font-weight:800}select{width:100%;min-height:52px;border:1px solid #aaa39e;border-radius:7px;padding:10px 13px;background:#fff;color:#231f20;font-weight:700}.session-card>.button{width:100%}.error{margin-top:14px;color:#a22b2b;font-weight:800}.capture-card{margin-top:18px;padding:24px}.boundary-status{color:#006e57;font-weight:800;text-align:right}.boundary-flow{display:grid;grid-template-columns:auto minmax(12px,1fr) auto minmax(12px,1fr) auto minmax(12px,1fr) auto;align-items:center;gap:10px;list-style:none;margin:24px 0 14px;padding:0}.boundary-flow li[data-capture-boundary-step]{display:grid;justify-items:center;gap:5px;color:#77716e;font-size:.78rem}.boundary-flow li[data-state=active],.boundary-flow li[data-state=complete]{color:#006e57}.boundary-flow li[data-state=error]{color:#a22b2b}.boundary-flow span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d7d3d0;color:#fff;font-weight:900}.boundary-flow li[data-state=active] span,.boundary-flow li[data-state=complete] span{background:#006e57}.boundary-flow li[data-state=error] span{background:#a22b2b}.boundary-flow li[data-capture-boundary-connector]{height:3px;background:#d7d3d0}.boundary-flow li[data-capture-boundary-connector][data-state=complete]{background:#006e57}.flow-status{min-height:48px;display:flex;align-items:center;padding:12px 15px;border-radius:7px;background:#edf8f3;color:#006e57;font-weight:800}.flow-status[data-state=cancelled],.flow-status[data-state=unavailable]{background:#fff0f0;color:#a22b2b}.capture-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.capture-status{margin-top:14px}.capture-queue-status{margin-top:8px;color:#006e57;font-weight:800}.camera-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:18px;margin-top:18px}.camera-card{padding:12px}.video-wrap{position:relative;min-height:280px;overflow:hidden;border-radius:7px;background:#252222;aspect-ratio:16 / 9}.video-wrap video,.video-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.video-wrap video{transform:scaleX(-1)}.camera-overlay{position:absolute;left:14px;bottom:14px;border-radius:7px;padding:8px 11px;background:#141211d1;color:#fff;font-weight:800}.help-card{padding:24px}.help-card p+p{margin-top:14px}.capture-loading{display:flex;align-items:center;gap:9px;margin:12px 4px 0;color:#006e57;font-weight:800}.spinner{width:18px;height:18px;border:3px solid #b9d9ce;border-top-color:#006e57;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.review-dialog,.guide-dialog{width:min(980px,calc(100% - 28px));max-height:min(90vh,900px);border:0;border-radius:12px;padding:0;box-shadow:0 22px 70px #00000047}.review-dialog::backdrop,.guide-dialog::backdrop{background:#191615ad}.review-dialog-surface,.guide-dialog-surface{overflow:auto;max-height:min(90vh,900px);padding:24px}.review-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:16px;border-bottom:1px solid #ded9d6}.review-header h2{margin-top:5px;font-size:1.7rem}.capture-drafts{display:grid;gap:18px;margin-top:18px}.guide-intro{margin:16px 0;color:#6d6662}.guide-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none}.guide-steps li{display:grid;gap:7px;color:#006e57;font-weight:800}.guide-steps li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#006e57;color:#fff}.guide-steps img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:8px;background:#252222}.guide-steps small{color:#6d6662;font-weight:400}body[data-auth-route=login]{background:#fff}body[data-auth-route=login] .public-shell{display:grid;place-items:center;width:100%;min-height:100dvh;margin:0;padding:24px}body[data-auth-route=login] .public-header,body[data-auth-route=login] #capture-app{display:none}body[data-auth-route=login] .auth-gate{width:min(520px,100%);margin:0}@media(max-width:720px){.public-shell{width:min(100% - 20px,600px);padding-top:22px}.public-header,.session-heading,.capture-heading{display:grid;gap:13px}.boundary-status{text-align:left}.context-fields,.camera-layout,.guide-steps{grid-template-columns:1fr}.boundary-flow{gap:5px}.boundary-flow strong{font-size:.68rem}.review-dialog-surface,.guide-dialog-surface{padding:16px}}@media(max-width:720px){body[data-auth-route=login] .public-shell{width:100%;padding:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.capture-boundary-flow{display:grid;gap:12px;padding:14px;border:1px solid #a7f3d0;border-radius:8px;background:#f0fdf4}.capture-boundary-flow h4{margin:0;color:#065f46;font-size:.95rem}.capture-boundary-steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(28px,.45fr) minmax(0,1fr) minmax(28px,.45fr) minmax(0,1fr) minmax(28px,.45fr) minmax(0,1fr);align-items:start;gap:8px;margin:0;padding:0;list-style:none}.capture-boundary-step{display:grid;justify-items:center;gap:6px;min-width:0;text-align:center}.capture-boundary-step-label{color:#78716c;font-size:.78rem;font-weight:800;letter-spacing:.04em}.capture-boundary-step[data-state=active] .capture-boundary-step-label,.capture-boundary-step[data-state=complete] .capture-boundary-step-label{color:#047857}.capture-boundary-step[data-state=error] .capture-boundary-step-label{color:#991b1b}.capture-boundary-step-marker{display:grid;place-items:center;width:32px;height:32px;border:2px solid #d6d3d1;border-radius:50%;background:#fff;color:#78716c;font-size:.8rem;font-weight:800}.capture-boundary-step[data-state=active] .capture-boundary-step-marker{border-color:#047857;background:#047857;color:#fff;box-shadow:0 0 0 4px #10b98129}.capture-boundary-step[data-state=complete] .capture-boundary-step-marker{border-color:#047857;background:#d1fae5;color:#047857}.capture-boundary-step[data-state=error] .capture-boundary-step-marker{border-color:#b91c1c;background:#fee2e2;color:#991b1b}.capture-boundary-connector{height:3px;margin-top:15px;border-radius:999px;background:#d6d3d1}.capture-boundary-connector[data-state=complete]{background:#34d399}.capture-boundary-status{display:flex;align-items:center;gap:8px;margin:0;color:#047857;font-size:.92rem;font-weight:800}.capture-boundary-status[data-tone=success]{color:#047857}.capture-boundary-status[data-tone=error]{color:#991b1b}.capture-boundary-status-icon{display:inline-grid;flex:0 0 16px;place-items:center;width:16px;height:16px;border-radius:50%;background:#34d399;color:#064e3b;font-size:.7rem;font-weight:900}.capture-boundary-status[data-state=preparing-draft] .capture-boundary-status-icon{border:2px solid #93c5fd;border-top-color:#1d4ed8;background:transparent;animation:capture-boundary-spin .8s linear infinite}.capture-boundary-status[data-state=draft-ready] .capture-boundary-status-icon:before{content:"✓"}.capture-boundary-status[data-tone=error] .capture-boundary-status-icon{background:#fecaca;color:#991b1b}.capture-boundary-status[data-tone=error] .capture-boundary-status-icon:before{content:"!"}.capture-calibration-status[data-status=preparing]{color:#1d4ed8;font-weight:700}.capture-calibration-status[data-status=ready]{color:#047857;font-weight:700}.capture-calibration-status[data-status=error]{color:#991b1b;opacity:.82}.capture-calibration-status[data-status=preparing]:before{content:"";display:inline-block;width:11px;height:11px;margin-right:7px;border:2px solid #bfdbfe;border-top-color:#1d4ed8;border-radius:50%;vertical-align:-1px;animation:capture-boundary-spin .8s linear infinite}@keyframes capture-boundary-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.capture-boundary-status[data-state=preparing-draft] .capture-boundary-status-icon,.capture-calibration-status[data-status=preparing]:before{animation:none}}@media(max-width:760px){.capture-boundary-steps{grid-template-columns:1fr;gap:0;justify-items:start}.capture-boundary-step{grid-template-columns:32px minmax(0,1fr);align-items:center;justify-items:start;gap:10px;width:100%;text-align:left}.capture-boundary-connector{width:3px;height:16px;margin:0 0 0 14px}}.capture-guide-trigger{align-self:start;width:fit-content;background:#065f46}.capture-guide-trigger:hover{background:#047857}.capture-guide-dialog{width:min(920px,calc(100% - 24px));max-height:min(90dvh,860px);margin:auto;padding:0;overflow:hidden;border:1px solid #a8a29e;border-radius:14px;background:#fff;color:#1c1917;box-shadow:0 24px 70px #1c191747}.capture-guide-dialog::backdrop{background:#1c19179e}.capture-guide-dialog-surface{display:grid;min-height:0;max-height:min(90dvh,860px);overflow:hidden}.capture-guide-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid #e7e5e4}.capture-guide-dialog-header .eyebrow{margin:0 0 4px}.capture-guide-dialog-header h2{margin:0}.capture-guide-dialog-content{min-height:0;overflow:auto;padding:16px 22px 24px}.capture-guide-intro{margin:0 0 16px;color:#57534e}.capture-guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}.capture-guide-step{display:grid;gap:8px;min-width:0;opacity:0;transform:translateY(18px);filter:blur(4px);transition:opacity .5s ease,transform .5s ease,filter .5s ease}.capture-guide-step-visible{opacity:1;transform:translateY(0);filter:blur(0)}.capture-guide-step-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#065f46;color:#fff;font-weight:800}.capture-guide-step figure{display:grid;gap:9px;margin:0;min-width:0}.capture-guide-step img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:9px;background:#292524}.capture-guide-step figcaption{display:grid;gap:3px}.capture-guide-step figcaption strong{color:#065f46;font-size:1rem}.capture-guide-step figcaption span{color:#57534e;font-size:.86rem;line-height:1.4}@media(prefers-reduced-motion:reduce){.capture-guide-step{opacity:1;transform:none;filter:none;transition:none}}@media(max-width:760px){.capture-guide-dialog-header{padding:16px}.capture-guide-dialog-content{padding:14px 16px 20px}.capture-guide-steps{grid-template-columns:1fr}.capture-guide-step{grid-template-columns:30px minmax(0,1fr);align-items:start}.capture-guide-step figure{grid-template-columns:minmax(100px,34%) minmax(0,1fr);align-items:center}.capture-guide-step img{aspect-ratio:3 / 4;max-height:220px}}.interval-editor{box-sizing:border-box;display:grid;gap:10px;width:100%;min-width:0;border:1px solid #bfdbfe;border-radius:8px;padding:12px;background:#eff6ff}.interval-editor-heading{display:grid;gap:3px}.interval-editor-heading h4,.interval-editor-heading p{margin:0}.interval-editor-heading h4{color:#1e3a8a;font-size:.95rem}.interval-editor-heading p,.interval-status{color:#475569;font-size:.82rem}.interval-filmstrip{display:grid;grid-template-columns:repeat(var(--interval-frame-count, 12),minmax(0,1fr));gap:0;width:100%;min-height:62px;overflow:hidden;padding:0;box-sizing:border-box;border-radius:5px;background:#1e293b}.interval-filmstrip:empty:after{content:"Generando vista del video…";display:grid;place-items:center;grid-column:1 / -1;color:#cbd5e1;font-size:.75rem}.interval-filmstrip[data-status=thumbnail-error]:after{content:"No se pudieron generar fotogramas; la línea de tiempo sigue disponible.";color:#cbd5e1;font-size:.75rem;padding:20px 8px}.interval-filmstrip-frame{width:100%;min-width:0;height:58px;padding:0;overflow:hidden;border:0;border-radius:3px;background:#0f172a;cursor:pointer}.interval-filmstrip-frame canvas{position:static;inset:auto;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;transform:none}.interval-filmstrip-frame-selected{outline:2px solid #60a5fa;outline-offset:-2px}.interval-filmstrip-frame-outside{opacity:.32;filter:grayscale(.75)}.interval-filmstrip-frame:focus-visible{outline:3px solid #fbbf24;outline-offset:-3px;opacity:1}.interval-timeline{position:relative;width:100%;height:58px;box-sizing:border-box;margin-block-start:22px;border-radius:6px;background:#cbd5e1;outline:none;cursor:crosshair}.interval-timeline:focus-visible{outline:3px solid #2563eb;outline-offset:3px}.interval-selected-range{position:absolute;inset-block:0;z-index:1;background:#2563eb59;pointer-events:none}.interval-selection-edge{position:absolute;top:0;bottom:0;z-index:3;width:2px;transform:translate(-1px);background:#1d4ed8;pointer-events:none}.interval-playhead{position:absolute;top:-4px;bottom:-4px;z-index:4;width:2px;transform:translate(-1px);background:#dc2626;pointer-events:none}.interval-marker{position:absolute;top:-22px;z-index:5;padding:2px 4px;border-radius:3px;color:#fff;font-size:.62rem;font-weight:800;line-height:1.2;pointer-events:none;transform:translate(-50%)}.interval-marker-in{background:#047857}.interval-marker-out{background:#b91c1c}.interval-handle{position:absolute;top:50%;left:0;z-index:6;width:18px;height:38px;box-sizing:border-box;transform:translate(-50%,-50%);border:2px solid #1d4ed8;border-radius:5px;background:#fff;cursor:ew-resize;touch-action:none}.interval-handle:hover,.interval-handle-dragging{border-color:#1e40af;box-shadow:0 0 0 2px #2563eb33}.interval-handle:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}.interval-handle[aria-disabled=true]{cursor:not-allowed;opacity:.55}.interval-toolbar{display:flex;gap:7px;flex-wrap:wrap}.interval-toolbar button{padding:8px 10px;font-size:.78rem}.interval-readout{display:flex;gap:18px;flex-wrap:wrap;color:#334155;font-variant-numeric:tabular-nums}.interval-readout span{display:grid;gap:2px}.interval-readout small{color:#64748b;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.interval-status{margin:0;min-height:1.3em}.capture-draft-media{display:grid;gap:8px;min-width:0}.capture-draft-media .capture-preview{width:min(100%,640px);max-width:100%;max-height:60vh;height:auto;aspect-ratio:16 / 9;object-fit:contain;background:#0f172a}.capture-media-status{margin:0;padding:12px;border:1px dashed #94a3b8;border-radius:6px;color:#334155;background:#f8fafc}.capture-media-status-loading{color:#1e3a8a;background:#dbeafe}.capture-media-status-empty{color:#7c2d12;background:#ffedd5}.interval-filmstrip-status{margin:0;color:#475569;font-size:.78rem}.interval-filmstrip-status[data-status=error]{color:#991b1b}.interval-editor[data-error=media]{border-color:#b91c1c;background:#fef2f2}.capture-session-context{display:grid;gap:0;margin-block:0 14px;padding:12px;border:1px solid #c4b5fd;border-radius:8px;background:#f5f3ff}.capture-session-context[hidden]{display:none}.capture-session-context h3,.capture-session-context p{margin:0}.capture-session-context h3{color:#4c1d95;font-size:1.1rem}.capture-session-context-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:0;border-radius:0;background:transparent;color:#4c1d95;text-align:left}.capture-session-context-toggle:hover{background:transparent;color:#4c1d95}.capture-session-context-toggle span:last-child{font-size:1.25rem;line-height:1}.capture-session-context-content{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .24s ease,opacity .2s ease}.capture-session-context-content[data-collapsed=true]{grid-template-rows:0fr;opacity:.82}.capture-session-context-body{display:grid;min-height:0;gap:10px;overflow:hidden;padding-block-start:10px}.capture-context-field{display:grid;gap:6px;color:#334155;font-size:1rem;font-weight:700}.capture-context-field select{width:100%;max-width:none;min-height:48px;padding:10px 12px;font-size:1rem}.capture-context-suggestion,.capture-context-status{color:#475569;font-size:.95rem;line-height:1.45}@media(max-width:600px){.interval-editor{padding:9px}.interval-filmstrip-frame{height:52px}.interval-timeline{height:54px}.interval-handle{height:36px}.interval-readout{gap:10px}}
