:root{--bg:#080c12;--bg-elev:#111823;--bg-elev-2:#18212e;--line:#24303f;--line-soft:#1b2430;--text:#e8eef6;--text-dim:#9fb0c4;--text-faint:#6d8098;--accent:#e0a08c;--accent-strong:#f0b9a6;--accent-soft:#e0a08c24;--info:#74b6d6;--ok:#6fce9f;--warn:#e7b765;--danger:#ef8b7d;--btn-hover:#202b3a;--btn-hover-line:#35465b;--seg-hover:#222d3c;--track:#33414f;--thumb-ring:#1a222e;--header-bg:linear-gradient(180deg, #101825, #0a1018);--viewer-bg:#0b111a;--axis:#2f3d4e;--before-line:#66788d;--backdrop:#04070bb8;--measure-text:#ffe8de;--measure-halo:#000000a6;--primary-top:#f3c2b0;--primary-bottom:#e0a08c;--primary-text:#2b160f;--radius:12px;--radius-sm:8px;--shadow:0 12px 32px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none}:root[data-theme=light]{--bg:#eef1f5;--bg-elev:#fff;--bg-elev-2:#f3f5f8;--line:#cfd7e2;--line-soft:#e1e7ef;--text:#17222e;--text-dim:#4b5b6e;--text-faint:#75849a;--accent:#b9634a;--accent-strong:#cf765b;--accent-soft:#b9634a1f;--info:#2c7fa6;--ok:#2f8f5f;--warn:#a8731c;--danger:#c4483a;--btn-hover:#e8ecf2;--btn-hover-line:#b9c4d2;--seg-hover:#e6eaf0;--track:#c9d2de;--thumb-ring:#fff;--header-bg:linear-gradient(180deg, #fff, #f4f6f9);--viewer-bg:#dfe5ec;--axis:#c3ccd8;--before-line:#7c8a9c;--backdrop:#1e283773;--measure-text:#2a1a14;--measure-halo:#ffffffd9;--primary-top:#b4583f;--primary-bottom:#9a4732;--primary-text:#fff;--shadow:0 12px 32px #141e2d2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--bg-elev-2);border-radius:var(--radius-sm);padding:7px 12px;transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--btn-hover);border-color:var(--btn-hover-line)}button.primary{background:linear-gradient(180deg, var(--primary-top), var(--primary-bottom));color:var(--primary-text);border-color:#0000;font-weight:600}button.primary:hover{filter:brightness(1.06)}button.ghost{color:var(--ok);border-color:#6fce9f59}button.danger{color:var(--danger);border-color:#ef8b7d4d}button.icon{color:var(--text-dim);background:0 0;border:none;padding:2px 8px;font-size:22px;line-height:1}.app{flex-direction:column;height:100%;min-height:0;display:flex}.app-header{border-bottom:1px solid var(--line-soft);background:var(--header-bg);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.logo{background:#f4f4f4;border-radius:10px;align-items:center;padding:4px 10px;line-height:0;display:inline-flex}.logo img{width:auto;height:30px;display:block}.logo-auth{align-self:center;padding:8px 16px}.logo-auth img{height:64px}.logo-report{background:0 0;padding:0}.logo-report img{height:44px}.auth-brand{flex-direction:column;align-items:center;gap:8px;display:flex}.auth-brand p{color:var(--text-faint);margin:0;font-size:12.5px}.brand h1{font-size:15px}.brand p{color:var(--text-faint);margin:1px 0 0;font-size:12px}.header-actions{flex-wrap:wrap;gap:8px;display:flex}.badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.layout{flex:1;grid-template-columns:340px minmax(0,1fr) 370px;gap:14px;min-height:0;padding:14px;display:grid}.col-left,.col-right{scrollbar-width:thin;scrollbar-color:#2b3a4d transparent;min-height:0;overflow-y:auto}.col-center{flex-direction:column;gap:10px;min-height:0;display:flex}.panel{flex-direction:column;gap:14px;display:flex}.panel-section{background:var(--bg-elev);border:1px solid var(--line-soft);border-radius:var(--radius);padding:14px}.panel-section>header{margin-bottom:12px}.panel-section h2{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:13px}.panel-section>header p{color:var(--text-faint);margin:3px 0 0;font-size:12px}.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.field-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.field-head label{color:var(--text-dim);align-items:center;font-size:12.5px;display:inline-flex}.field-head output{color:var(--text);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.text-input{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev-2);width:100%;color:var(--text);font:inherit;padding:8px 10px}.text-input:focus,input[type=range]:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px}input[type=range]::-webkit-slider-runnable-track{background:var(--track);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-strong);border:2px solid var(--thumb-ring);border-radius:50%;width:16px;height:16px;margin-top:-6px;box-shadow:0 1px 4px #00000059}input[type=range]::-moz-range-track{background:var(--track);border-radius:999px;height:4px}input[type=range]::-moz-range-thumb{background:var(--accent-strong);border:2px solid var(--thumb-ring);border-radius:50%;width:14px;height:14px}input[type=range]:disabled{opacity:.4}.hint{color:var(--text-faint);margin:6px 0 0;font-size:11.5px;line-height:1.45}.hint.ok,.ok{color:var(--ok)}.hint.warn,.warn{color:var(--warn)}.link{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.segmented{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:3px;display:grid}.seg{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;padding:6px 4px;font-size:11.5px;overflow:hidden}.seg:hover{background:var(--seg-hover)}.seg.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600;box-shadow:inset 0 0 0 1px #e0a08c4d}.quick-volumes{flex-wrap:wrap;gap:6px;margin:-6px 0 12px;display:flex}.chip{color:var(--text-dim);border-radius:999px;padding:4px 10px;font-size:11.5px}.chip.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#e0a08c59}.switch{color:var(--text-dim);cursor:pointer;align-items:center;gap:8px;margin-bottom:14px;font-size:12.5px;display:flex}.switch input{width:16px;height:16px;accent-color:var(--accent)}.tones{gap:8px;display:flex}.tone{border:2px solid #0000;border-radius:50%;width:28px;height:28px;padding:0}.tone.active{border-color:var(--accent-strong);box-shadow:0 0 0 2px #e0a08c40}.implant-dims{border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;padding-top:12px;display:grid}.implant-dims div{flex-direction:column;gap:2px;display:flex}.implant-dims span{color:var(--text-faint);font-size:11px}.implant-dims strong{font-variant-numeric:tabular-nums;font-size:14px}.auth{background:radial-gradient(circle at 30% 20%, var(--accent-soft), transparent 55%), var(--bg);justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-card{background:var(--bg-elev);border:1px solid var(--line);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:18px;padding:26px;display:flex}.auth-tabs{grid-template-columns:1fr 1fr}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.auth-form .hint{margin:0}.auth-form button.primary{margin-top:4px;padding:10px}.auth-error{border-radius:var(--radius-sm);color:var(--danger);background:#ef8b7d1f;margin:0;padding:8px 10px;font-size:12.5px}.auth-foot{text-align:center}.account{position:relative}.account-btn{align-items:center;gap:8px;padding:5px 10px 5px 5px;display:inline-flex}.account-avatar{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-strong);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.account-caret{color:var(--text-faint);font-size:11px}.account-menu{z-index:70;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.account-head{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:1px;margin-bottom:4px;padding:8px 10px 10px;font-size:12.5px;display:flex}.account-head strong{font-size:13px}.account-head span{color:var(--text-dim);text-overflow:ellipsis;overflow:hidden}.account-menu button[role=menuitem]{text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px 10px}.account-menu button[role=menuitem]:hover{background:var(--btn-hover)}.account-form .row-actions{margin-top:4px}.auth-notice{border-radius:var(--radius-sm);color:var(--ok);background:#6fce9f1f;margin:0;padding:8px 10px;font-size:12.5px}.auth-pending{flex-direction:column;gap:10px;display:flex}.auth-pending h2{font-size:16px}.auth-pending p{margin:0}.code-input{letter-spacing:.12em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.captcha{flex-direction:column;gap:8px;display:flex}.captcha-image{align-items:center;gap:8px;display:flex}.captcha-image svg{border:1px solid var(--line);border-radius:8px;display:block}.captcha label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.admin-alert{border-radius:var(--radius-sm);border-left-width:4px}.admin-alert code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.admin{flex-direction:column;gap:16px;min-height:100%;padding:18px 22px 40px;display:flex;overflow-y:auto}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-head h1{font-size:18px}.admin-head p{color:var(--text-faint);margin:2px 0 0;font-size:12.5px}.admin-tabs{grid-template-columns:repeat(4,1fr);min-width:360px}.admin-section{background:var(--bg-elev);border:1px solid var(--line-soft);border-radius:var(--radius);flex-direction:column;gap:14px;padding:16px;display:flex}.admin-stats{grid-template-columns:repeat(4,1fr)}.admin-notes{color:var(--text-dim);margin:0;padding-left:18px;font-size:13px;line-height:1.6}.admin-form{grid-template-columns:2fr 1fr 1fr 1.5fr auto;align-items:end;gap:10px;display:grid}.admin-form label{color:var(--text-dim);flex-direction:column;gap:5px;font-size:12px;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:12.5px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);border-bottom:1px solid var(--line);padding:6px 8px;font-size:11px}.admin-table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:8px}.admin-table code{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.admin-table .row-actions{flex-wrap:wrap;justify-content:flex-end}.admin-table .row-actions button{padding:4px 9px;font-size:11.5px}.badge-status{background:var(--bg-elev-2);color:var(--text-dim);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-status.activo{color:var(--ok)}.badge-status.pendiente,.badge-status.caducado,.badge-status.agotado{color:var(--warn)}.badge-status.desactivado{color:var(--danger)}@media (width<=900px){.admin-form,.admin-stats{grid-template-columns:1fr 1fr}.admin-tabs{width:100%;min-width:0}.admin-table{display:block;overflow-x:auto}}.notice{z-index:80;background:var(--bg-elev-2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;padding:9px 14px;font-size:12.5px;position:fixed;top:14px;left:50%;transform:translate(-50%)}.legacy-box{border-radius:var(--radius-sm);border:1px dashed var(--accent);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;font-size:12.5px;display:flex}.center-mode{max-width:360px}.center-model{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.center-model.hidden{display:none}.photos{flex-direction:column;gap:14px;min-height:0;display:flex;overflow-y:auto}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.photo-card{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-elev-2);flex-direction:column;display:flex;overflow:hidden}.photo-thumb{aspect-ratio:3/4;background:var(--bg);justify-content:center;align-items:center;display:flex;position:relative}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-guide{fill:none;height:78%;stroke:var(--text-faint);stroke-width:1.6px;stroke-linejoin:round;opacity:.8}.photo-required{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:600;position:absolute;top:8px;left:8px}.photo-body{flex-direction:column;gap:6px;padding:10px;font-size:12.5px;display:flex}.photo-body .hint{margin:0}.photo-body .row-actions{flex-wrap:wrap;margin-top:4px}.photo-body button,.file-btn{padding:5px 10px;font-size:12px}.file-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elev-2);cursor:pointer;display:inline-block}.file-btn:hover{background:var(--btn-hover)}.file-btn.busy{opacity:.6}.file-btn input{display:none}.swatch{vertical-align:middle;border:1px solid var(--line);border-radius:50%;width:12px;height:12px;display:inline-block}.tone.photo{border-style:dashed}.landmark-modal{max-width:1040px}.landmark-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px;display:grid}.landmark-image{-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;background:var(--bg);border-radius:var(--radius-sm);justify-content:center;max-height:70vh;display:flex;position:relative;overflow:hidden}.landmark-image img{pointer-events:none;max-width:100%;max-height:70vh;display:block}.landmark-dot{background:var(--accent-strong);color:#2b160f;cursor:grab;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin:-11px 0 0 -11px;font-size:11px;font-weight:700;display:flex;position:absolute;box-shadow:0 0 0 2px #ffffffd9,0 2px 6px #00000080}.landmark-side{flex-direction:column;gap:12px;display:flex}.landmark-next{border-radius:var(--radius-sm);background:var(--accent-soft);flex-direction:column;gap:4px;margin:0;padding:10px 12px;font-size:12.5px;display:flex}.landmark-next span{color:var(--text-dim)}.landmark-list{color:var(--text-faint);margin:0;padding-left:22px;font-size:12.5px;line-height:1.7}.landmark-list li.done{color:var(--ok)}.landmark-list li.current{color:var(--accent-strong);font-weight:600}.photo-sim{background:var(--bg);border-radius:var(--radius-sm);justify-content:center;display:flex;position:relative;overflow:hidden}.photo-sim canvas{max-width:100%;max-height:62vh;display:block}.photo-sim .hint{position:absolute;top:12px;left:12px}@media (width<=900px){.landmark-layout{grid-template-columns:1fr}}.landing{scroll-behavior:smooth;min-height:100%;overflow-y:auto}.landing-nav{z-index:20;background:var(--header-bg);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;padding:12px 6vw;display:flex;position:sticky;top:0}.landing-nav nav{gap:18px;display:flex}.landing-nav nav .link{color:var(--text-dim);font-size:13.5px;text-decoration:none}.landing-nav nav .link:hover{color:var(--accent-strong)}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;padding:64px 6vw 48px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:14px;font-size:12px;display:inline-block}.hero h1{letter-spacing:-.02em;margin-bottom:18px;font-size:clamp(30px,4.2vw,50px);line-height:1.08}.hero-text>p{color:var(--text-dim);max-width:560px;font-size:16.5px;line-height:1.6}.hero-actions{margin:22px 0 8px}.hero-actions button{padding:11px 18px;font-size:14.5px}.hero-media img{border:1px solid var(--line-soft);width:100%;box-shadow:var(--shadow);border-radius:18px}.landing-section{padding:56px 6vw}.landing-section.alt{background:var(--bg-elev);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.landing-section h2{letter-spacing:-.02em;margin-bottom:8px;font-size:28px}.section-lead{color:var(--text-dim);max-width:640px;margin:0 0 26px;font-size:15.5px}.steps,.features,.audience{gap:16px;display:grid}.steps{grid-template-columns:repeat(4,1fr)}.features,.audience{grid-template-columns:repeat(3,1fr)}.step,.feature,.audience article{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius);padding:20px}.step h3,.feature h3,.audience h3{margin:8px 0;font-size:15.5px}.step p,.feature p,.audience p{color:var(--text-dim);margin:0;font-size:13.5px;line-height:1.55}.step-n{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.landing-figure{max-width:900px;margin:32px auto 0}.landing-figure img{border:1px solid var(--line-soft);width:100%;box-shadow:var(--shadow);border-radius:14px}.landing-figure figcaption{text-align:center;color:var(--text-faint);margin-top:10px;font-size:12.5px}.faq{flex-direction:column;gap:10px;max-width:800px;display:flex}.faq details{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:12px 16px}.faq summary{cursor:pointer;font-size:14.5px;font-weight:600}.faq p{color:var(--text-dim);margin:10px 0 0;line-height:1.55}.contact-wrap{max-width:640px}.contact-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contact-form textarea{resize:vertical;min-height:120px}.contact-done{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius);max-width:640px;padding:18px}.contact-done p{color:var(--text-dim);margin:6px 0 0}.landing-footer{border-top:1px solid var(--line-soft);flex-direction:column;align-items:flex-start;gap:12px;padding:36px 6vw 48px;display:flex}.landing-footer p{max-width:760px;color:var(--text-dim);margin:0;font-size:13px;line-height:1.55}.pricing{flex-direction:column;gap:20px;display:flex}.pricing-interval{max-width:360px}.pricing-save{color:var(--ok);margin-left:6px;font-size:10.5px;font-weight:600}.pricing-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:16px;display:grid}.plan{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius);flex-direction:column;gap:10px;padding:22px;display:flex;position:relative}.plan.highlight{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.plan-badge{background:var(--accent);color:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;position:absolute;top:-11px;left:18px}.plan h3{font-size:18px}.plan-tagline{color:var(--text-dim);min-height:38px;margin:0;font-size:13px}.plan-price{flex-wrap:wrap;align-items:baseline;gap:4px;margin:6px 0;display:flex}.plan-price strong{letter-spacing:-.02em;font-size:32px}.plan-price span{color:var(--text-dim)}.plan-price small{color:var(--text-faint);flex-basis:100%;font-size:11.5px}.plan-features{color:var(--text-dim);flex:1;margin:0;padding-left:18px;font-size:13px;line-height:1.7}.plan button{margin-top:6px;padding:10px}.pricing.compact .pricing-grid{gap:10px}.pricing.compact .plan{padding:16px}.pricing.compact .plan-price strong{font-size:26px}.upgrade-modal{max-width:980px}.plan-banner{z-index:40;background:var(--bg-elev);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:8px 10px 8px 16px;font-size:12.5px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.plan-banner button{white-space:nowrap;padding:6px 12px}.message-cell{white-space:pre-wrap;max-width:420px}@media (width<=1100px){.steps{grid-template-columns:1fr 1fr}}@media (width<=900px){.landing-nav nav{display:none}.hero{grid-template-columns:1fr;gap:24px;padding:36px 16px 28px}.landing-section{padding:36px 16px}.steps,.features,.audience,.pricing-grid,.contact-row{grid-template-columns:1fr}.plan-banner{border-radius:var(--radius);text-align:center;flex-direction:column;align-items:stretch;bottom:10px}}.tour-block{z-index:90;position:fixed;inset:0}.tour-dim{z-index:91;pointer-events:none;background:#04070b9e;position:fixed;inset:0}.tour-spot{z-index:91;box-shadow:0 0 0 9999px #04070b9e, 0 0 0 2px var(--accent-strong);pointer-events:none;border-radius:12px;position:fixed}:root[data-theme=light] .tour-dim,:root[data-theme=light] .tour-spot{--tour-shade:#141c2880}:root[data-theme=light] .tour-dim{background:#141c2880}:root[data-theme=light] .tour-spot{box-shadow:0 0 0 9999px #141c2880, 0 0 0 2px var(--accent)}.tour-card{z-index:92;background:var(--bg-elev);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:8px;padding:16px 18px 14px;display:flex;position:fixed}.tour-count{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:11px}.tour-card h2{font-size:15px}.tour-card p{color:var(--text-dim);margin:0;font-size:13px;line-height:1.55}.tour-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.tour-dots{justify-content:center;gap:5px;margin-top:2px;display:flex}.tour-dots span{background:var(--line);border-radius:50%;width:6px;height:6px}.tour-dots span.on{background:var(--accent-strong)}.info{vertical-align:middle;margin-left:6px;display:inline-block;position:relative}.info-btn{border:1px solid var(--line);background:var(--bg-elev-2);width:16px;height:16px;color:var(--text-faint);cursor:help;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:Georgia,Times New Roman,serif;font-size:10px;font-style:italic;font-weight:700;line-height:1;display:inline-flex}.info-btn:hover,.info.open .info-btn{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.info-pop{z-index:60;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);width:min(300px,78vw);color:var(--text-dim);box-shadow:var(--shadow);text-transform:none;letter-spacing:0;white-space:normal;padding:10px 12px;font-size:12px;font-style:normal;font-weight:400;line-height:1.5;display:block;position:fixed}.theme-toggle{width:36px;padding:7px 0;font-size:15px;line-height:1}.viewer{border-radius:var(--radius);border:1px solid var(--line-soft);background:var(--viewer-bg);flex:1;min-height:360px;position:relative;overflow:hidden}.viewer canvas{width:100%;height:100%;display:block}.viewer-overlay{pointer-events:none;position:absolute;inset:0}.measure-line{stroke:#e0a08cd9;stroke-width:1.2px;stroke-dasharray:5 4}.measure-dot{fill:var(--accent-strong)}.measure-text{fill:var(--measure-text);paint-order:stroke;stroke:var(--measure-halo);stroke-width:3px;font-size:11px;font-weight:600}.viewer-compare-labels{pointer-events:none;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);justify-content:space-around;font-size:12px;display:flex;position:absolute;bottom:12px;left:0;right:0}.viewer-toolbar,.viewer-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar-group{gap:6px;display:flex}.tool{color:var(--text-dim);padding:6px 12px;font-size:12px}.tool.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#e0a08c66}.morph-control{min-width:240px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;flex:1;align-items:center;gap:10px;font-size:11.5px;display:flex}.viewer-note{color:var(--text-faint);margin:0;font-size:11px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--bg-elev-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:10px;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:2px;font-size:10.5px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.stat-sub{color:var(--text-dim);font-size:11px}.profile-compare svg{width:100%;height:200px;display:block}.axis{stroke:var(--axis);stroke-width:1px}.axis.dashed{stroke-dasharray:4 4}.axis-label{fill:var(--text-faint);letter-spacing:.04em;font-size:7px}.silhouette{fill:none;stroke-width:2px;stroke-linejoin:round}.silhouette.before{stroke:var(--before-line);stroke-dasharray:5 4}.silhouette.after{stroke:var(--accent-strong)}.profile-legend{color:var(--text-faint);align-items:center;gap:14px;font-size:11px;display:flex}.legend:before{content:"";vertical-align:middle;width:14px;height:2px;margin-right:6px;display:inline-block}.legend.before:before{background:var(--before-line)}.legend.after:before{background:var(--accent-strong)}.legend-scale{margin-left:auto}.alerts{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.alert{border-left:3px solid var(--info);background:var(--bg-elev-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;flex-direction:column;gap:3px;padding:9px 11px;display:flex}.alert strong{font-size:12.5px}.alert span{color:var(--text-dim);font-size:11.5px;line-height:1.5}.alert.info{border-color:var(--info)}.alert.warn{border-color:var(--warn)}.alert.danger{border-color:var(--danger)}.modal-backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;width:100%;max-width:560px;max-height:88vh;padding:24px;overflow-y:auto}.modal.wide{max-width:720px}.modal h2{margin-bottom:10px;font-size:17px}.modal p,.modal li{color:var(--text-dim);font-size:13px;line-height:1.6}.modal ul{margin:10px 0 18px;padding-left:18px}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.row-actions{align-items:center;gap:8px;display:flex}.case-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.case{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg-elev-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.case.current{border-color:#e0a08c66}.case div:first-child{flex-direction:column;gap:2px;display:flex}.case span{color:var(--text-dim);font-size:12px}.case small{color:var(--text-faint);font-size:10.5px}.case-actions{gap:6px;display:flex}.case-actions button{padding:5px 10px;font-size:12px}.report-modal{max-width:860px}.report{color:#1d2733;background:#fdfbf9;border-radius:10px;padding:26px 30px}.report h1{color:#12202e;font-size:20px}.report h3{text-transform:uppercase;letter-spacing:.07em;color:#9a6853;border-bottom:1px solid #e7ddd6;margin-bottom:6px;padding-bottom:4px;font-size:12px}.report-head{border-bottom:2px solid #12202e;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:10px;display:flex}.report-images{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;display:grid}.report-images figure{margin:0}.report-images figcaption{color:#6b7885;text-align:center;margin-top:4px;font-size:11px}.report-head p{color:#5d6b7a;margin:4px 0 0;font-size:12.5px}.report-image{object-fit:contain;background:#0b111a;border-radius:8px;width:100%;max-height:340px;display:block}.report-cols{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.report dl{flex-direction:column;gap:4px;margin:0;display:flex}.report dl div{border-bottom:1px dotted #e2d8d1;justify-content:space-between;gap:10px;padding-bottom:2px;font-size:12px;display:flex}.report dt{color:#6b7885}.report dd{text-align:right;margin:0;font-weight:600}.report-alerts{margin-top:18px}.report-alerts li{color:#3b4754;margin-bottom:6px;font-size:12px;line-height:1.55}.report-notes{margin-top:18px}.report-notes textarea{width:100%;font:inherit;color:#1d2733;resize:vertical;background:#fff;border:1px solid #ddd2cb;border-radius:6px;padding:8px;font-size:12.5px}.report-disclaimer{color:#6b7885;border-top:1px solid #e7ddd6;margin-top:18px;padding-top:10px;font-size:10.5px;line-height:1.5}@media (width<=1280px){html,body,#root{height:auto}.app{height:auto;min-height:100%}.layout{grid-template-columns:320px minmax(0,1fr);align-content:start;overflow:visible}.col-left,.col-right,.col-center{align-self:start;min-height:0;overflow:visible}.col-right{grid-column:1/-1}.viewer{flex:none;height:64vh}}@media (width<=900px){.layout{flex-direction:column;gap:16px;display:flex}.col-center{order:-1}.viewer{height:52vh;min-height:300px}.report-cols,.report-images{grid-template-columns:1fr}.app-header{flex-wrap:wrap;gap:10px;padding:10px 12px}.brand p{display:none}.brand h1{font-size:14px}.logo img{height:24px}.header-actions{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;padding-bottom:2px;overflow-x:auto}.header-actions::-webkit-scrollbar{display:none}.header-actions button{flex:none;padding:7px 10px;font-size:13px}.account-name{max-width:90px}.layout{padding:10px}.modal-backdrop{align-items:flex-start;padding:10px}.modal{max-height:calc(100vh - 20px);padding:16px}.modal-head h2{font-size:16px}.report{padding:16px}.report-head{flex-direction:column;align-items:flex-start}.report h1{font-size:17px}.logo-report img{height:32px}.stat-grid{grid-template-columns:1fr 1fr}.viewer-toolbar,.viewer-footer{gap:8px}.tool{padding:7px 10px}.morph-control{width:100%;min-width:0}.photo-grid{grid-template-columns:1fr}.photo-thumb{aspect-ratio:4/3}}@media (pointer:coarse){button,.file-btn{min-height:40px}.seg{min-height:34px}input[type=range]{height:32px}input[type=range]::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px}.info-btn{width:22px;height:22px;font-size:12px}.landmark-dot{width:28px;height:28px;margin:-14px 0 0 -14px}}@media print{body{background:#fff}.no-print,.app-header,.layout{display:none!important}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;position:static}.modal{max-width:none;max-height:none;box-shadow:none;border:none;padding:0;overflow:visible}.report{border-radius:0;padding:0}.report-notes textarea{border:none;padding:0}}
