@charset "UTF-8";
/* AstroCube design system supplied by the owner. No external fonts or assets. */
:root{
  --void:#04050d;--abyss:#070913;--depth:#0b0f19;--panel:#111827;
  --card:#1d1f2a;--card-high:#272935;--card-highest:#323440;
  --ink:#e1e1f1;--muted:#94a3b8;--ink-soft:#bdc8d1;
  --primary:#8ed5ff;--brand:#38bdf8;--on-brand:#004965;--glow:rgba(14,165,233,.22);
  --amber:#f59e0b;--gold:#f0c060;--line:rgba(56,189,248,.12);--line-strong:rgba(56,189,248,.4);
  --ok:#7fe0b0;--ok-bg:#0f2a1f;--err:#ffb4ab;--err-bg:#3a1518;
  --accent:var(--brand);--danger:var(--err);--bg:var(--void);--mint:#0c2b3e;
  --radius:12px;--radius-sm:8px;--font-head:"Space Grotesk","Inter",system-ui,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;font-family:var(--font-body);font-size:14px;color:var(--ink);
}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(60rem 30rem at -10% -10%,rgba(14,165,233,.10),transparent 60%),radial-gradient(50rem 28rem at 110% 40%,rgba(245,158,11,.05),transparent 60%),var(--void);background-attachment:fixed;line-height:1.5}
button,input,select,textarea{font:inherit}button,summary{cursor:pointer}button{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;min-height:44px;background:var(--card);color:var(--primary);font-family:var(--font-head);font-size:11px;font-weight:600;letter-spacing:.055em;text-transform:uppercase;transition:background .15s,color .15s,border-color .15s}
button:hover{background:var(--card-high);border-color:var(--line-strong)}button:active{filter:brightness(1.1)}button:disabled{opacity:.45;cursor:default}
:is(button,input,select,textarea,summary,svg,canvas):focus-visible{outline:2px solid var(--brand);outline-offset:3px}a{color:var(--primary)}[hidden]{display:none!important}
h1,h2,h3{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.03em;color:var(--ink);margin:0}h1,h2{font-size:20px;font-weight:600}h3{font-size:14px}
input:not([type=checkbox]):not([type=range]):not([type=color]),select,textarea{width:100%;min-height:44px;border:1px solid rgba(56,189,248,.22);border-radius:9px;background:var(--abyss);color:var(--ink);padding:10px 11px;font-variant-numeric:tabular-nums}
input::placeholder,textarea::placeholder{color:#64748b}input[type=range]{width:100%;accent-color:var(--brand);cursor:pointer;min-height:28px}input[type=checkbox]{accent-color:var(--brand);width:17px;height:17px;flex-shrink:0}input[type=color]{height:36px;width:38px;border:1px solid var(--line);background:var(--abyss);border-radius:6px}textarea{resize:vertical;min-height:90px}
.button-accent{background:var(--brand);color:var(--on-brand);border-color:var(--brand);box-shadow:0 10px 25px -8px var(--glow);font-weight:700}.button-accent:hover{background:var(--brand);color:var(--on-brand);filter:brightness(1.1);border-color:var(--brand)}
.topbar{min-height:88px;padding:14px 24px;display:flex;align-items:center;gap:20px;background:rgba(7,9,19,.88);backdrop-filter:blur(24px);border-bottom:1px solid var(--line);position:relative;z-index:12}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;flex-shrink:0}.brand .brand-logo{display:block;width:200px;height:48px;overflow:hidden;border-radius:6px;background:#fff}.brand-logo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.brand>small{max-width:90px;color:var(--muted);font:600 9px/1.6 var(--font-head);letter-spacing:.12em}
.project-name{display:flex;align-items:center;gap:10px;flex:1;min-width:100px}.project-name input{max-width:180px}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--brand);flex-shrink:0}.version-tag,.tiny-tag,.unit-tag{border:1px solid var(--line);background:var(--card-high);color:var(--primary);border-radius:20px;padding:4px 7px;font-size:9px;letter-spacing:.08em;white-space:nowrap}
.file-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.header-button{background:var(--depth);border-color:var(--line-strong);color:var(--primary)}#print-plan{background:var(--card);border-color:var(--line-strong);box-shadow:none;color:var(--primary)}#price-request{white-space:nowrap}
.workspace{display:grid;grid-template-columns:300px minmax(0,1fr) 292px;max-width:2400px;margin:auto;height:calc(100dvh - 88px);min-height:0;align-items:stretch}
.configuration,.results{background:var(--panel);display:flex;flex-direction:column;min-height:0;min-width:0}.configuration{border-right:1px solid var(--line)}.results{border-left:1px solid var(--line)}
.panel-heading{padding:24px 20px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.eyebrow{font:600 10px/1.5 var(--font-head);text-transform:uppercase;letter-spacing:.22em;color:var(--amber);margin:0 0 6px}.icon-button{width:44px;padding:0;font-size:22px;background:var(--card-high);color:var(--primary)}
.tabs{display:flex;padding:0 12px;border-bottom:1px solid var(--line);gap:3px}.tabs button{flex:1;border:0;border-radius:0;background:none;padding:12px 6px;position:relative;font-size:10px;letter-spacing:.04em;color:var(--muted)}.tabs [aria-selected=true]{color:var(--brand)}.tabs [aria-selected=true]:after{content:"";position:absolute;bottom:-1px;height:2px;background:var(--brand);left:8px;right:8px}
.settings-scroll,.results-scroll{overflow:auto;flex:1;min-height:0;scrollbar-width:none;overscroll-behavior:contain}.settings-scroll::-webkit-scrollbar,.results-scroll::-webkit-scrollbar{display:none}.settings-scroll{padding:20px}.results-scroll{padding:0 18px 22px}
.field-section{margin-bottom:28px}.section-title{display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-size:12px;font-weight:600;letter-spacing:.02em;margin-bottom:14px;color:var(--ink)}.section-number{border:1px solid var(--line);background:var(--card-high);border-radius:5px;font-size:10px;padding:3px 5px;color:var(--amber)}
.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 10px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--ink-soft);min-width:0}.field.full{grid-column:1/-1}.input-unit{position:relative}.input-unit input{padding-right:33px!important}.suffix{position:absolute;right:9px;top:15px;font-size:10px;color:var(--muted);pointer-events:none}.field-help,.motion-help{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 0 0}.inline-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);margin:12px 0;line-height:1.5}
.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.preset-grid button{padding:13px 10px;text-align:left;text-transform:none;letter-spacing:0}.preset-grid strong{display:block;font-family:var(--font-head);font-size:14px;color:var(--ink);margin-bottom:6px}.preset-grid span{color:var(--muted);font-size:11px;font-weight:400}.preset-grid .active{border-color:var(--brand);background:var(--mint)}
.radio-row,.segmented{display:flex;gap:5px}.radio-row button{flex:1}.radio-row .active,.segmented .selected,.scope-chips .selected{background:var(--mint);border-color:var(--line-strong);color:var(--brand)}.segmented button{font-size:10px;padding:8px 10px;white-space:nowrap}.advanced,.setup-presets{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}.advanced summary,.setup-presets summary{color:var(--primary);font-size:12px;margin-bottom:12px}.advanced .field-grid{margin-bottom:12px}
.color-swatches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;min-height:28px;border:2px solid var(--card-highest);padding:0;border-radius:50%}.swatch.active{outline:2px solid var(--brand);outline-offset:3px}
.configuration-footer,.results-footer{border-top:1px solid var(--line);padding:13px 16px;color:var(--muted);font-size:9px;display:flex;gap:7px;align-items:center}.configuration-footer #autosave{margin-left:auto}.results-footer span{color:var(--primary)}
.viewport-panel{display:flex;flex-direction:column;min-height:0;min-width:0;position:relative;background:var(--void)}
.viewport-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 10px;flex-shrink:0}.viewport-heading{min-width:0}.viewport-top .eyebrow{font-size:9px;color:var(--brand);margin-bottom:2px}#model-title{font:600 16px/1.4 var(--font-head);letter-spacing:.025em;color:var(--ink)}#active-place-label{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.viewport-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.view-controls{display:flex;border:1px solid var(--line);border-radius:8px;padding:3px;background:var(--abyss)}.view-controls button{font-size:10px;border:0;background:none;min-height:38px;padding:6px 9px;color:var(--muted)}.view-controls .selected{background:var(--card-highest);color:var(--primary)}#expand-view{border-color:var(--line-strong);color:var(--primary);white-space:nowrap}
.camera-navigation{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0 18px 10px;flex-shrink:0}.camera-navigation button{font-size:10px;padding:8px 10px}.camera-navigation .segmented button[aria-pressed=true]{background:var(--mint);color:var(--brand);border-color:var(--line-strong)}.pan-shortcuts{display:flex;gap:3px}.pan-shortcuts button{width:36px;min-height:44px;padding:0;font-size:18px}
.scene-wrap{flex:1;min-height:300px;position:relative;overflow:hidden;background:var(--void)}.scene-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.scene-wrap canvas:active{cursor:grabbing}#dimension-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.dimension-line{stroke:var(--primary);stroke-width:1;opacity:.7}.dimension-label{font:600 11px var(--font-body);fill:var(--ink-soft);text-anchor:middle;paint-order:stroke;stroke:var(--void);stroke-width:5px;stroke-linejoin:round}.compass-label{font:700 13px var(--font-head);fill:var(--brand);text-anchor:middle}
.scene-toolbar{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:3px;padding:5px;background:rgba(7,9,19,.88);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(16px)}.scene-toolbar button{width:40px;min-height:40px;padding:0;border:0;background:transparent;font-size:20px;color:var(--primary)}.scene-toolbar button[aria-pressed=true]{background:var(--mint);color:var(--brand)}.toolbar-divider{height:1px;background:var(--line);margin:3px}
.scene-badge{position:absolute;left:18px;top:16px;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:20px;background:rgba(7,9,19,.85);color:var(--ink-soft);font-size:10px}.scene-badge i{width:5px;height:5px;border-radius:50%;background:var(--brand)}.scene-hint{position:absolute;bottom:10px;width:100%;padding:0 72px 0 18px;font-size:10px;color:var(--muted);pointer-events:none}.scene-hint span{color:var(--amber);padding:0 4px}
.roof-console{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:12px 16px;margin:0 14px 8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.roof-label{display:flex;align-items:center;gap:8px;min-width:118px}.roof-label strong{display:block;font:600 11px var(--font-head);text-transform:uppercase;letter-spacing:.05em}.roof-label small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.roof-icon{display:none}.play-button{width:44px;min-width:44px;min-height:44px;border-radius:50%;background:var(--mint);color:var(--brand);padding:0}.roof-slider{flex:1;min-width:60px}.roof-slider>div{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.roof-slider output{color:var(--brand);font:600 12px var(--font-head)}
.planning-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 14px 8px;flex-shrink:0}#optimization-status{font-size:11px;color:var(--amber);flex:1}.scene-controls-panel{position:relative;flex-shrink:0;border-top:1px solid var(--line);background:var(--abyss)}.scene-controls-panel>summary{padding:13px 18px;font:600 11px/1.5 var(--font-head);color:var(--primary);letter-spacing:.04em;text-transform:uppercase;min-height:44px}.scene-controls-panel[open] .scene-controls-body{position:absolute;bottom:48px;left:12px;right:12px;max-height:min(55vh,440px);overflow:auto;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--radius);box-shadow:0 10px 30px -10px #000;z-index:8;scrollbar-width:thin}
.placement-console,.hull-console,.telescope-console{padding:14px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.placement-console .inline-check{margin:0}.hull-console{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px}.hull-console label{display:flex;align-items:center;gap:7px}.hull-console select{width:190px}.hull-console input[type=number]{width:70px}.hull-console small,.hull-console p{width:100%;margin:0;line-height:1.6;color:var(--muted)}#hull-status{display:flex;gap:6px;flex-wrap:wrap}#hull-status span{padding:6px 8px;border:1px solid;border-radius:6px;font-size:11px}.hull-good{color:var(--ok);background:var(--ok-bg)}.hull-warning{color:var(--amber);background:#2b2112}.hull-danger{color:var(--err);background:var(--err-bg)}
.motion-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.motion-heading>strong{font-family:var(--font-head);text-transform:uppercase;font-size:12px}.pointing-controls{display:grid;grid-template-columns:48px minmax(60px,1fr) 88px;gap:5px 10px;align-items:center}.pointing-controls>label{font-size:12px;color:var(--ink-soft)}.angle-number{display:flex;align-items:center;gap:5px;color:var(--muted)}.angle-number input{min-width:0}.pointing-nudges{display:flex;gap:6px;justify-content:center;margin-top:10px}.pointing-nudges button{min-width:54px}
.model-picker{margin-bottom:14px}.model-note,.combination-note,.door-summary{background:var(--abyss);border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink-soft);font-size:11px;line-height:1.6;margin:12px 0}.door-summary{display:flex;flex-direction:column;gap:5px}.door-summary strong{color:var(--primary)}.scope-position{padding:12px 0;border-block:1px solid var(--line);margin:12px 0}.scope-position>strong{display:block;font-size:12px;color:var(--primary);margin-bottom:10px}.scope-card{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;background:var(--card)}.scope-card-head{display:flex;align-items:center;gap:6px;padding:10px;background:var(--card-high)}.scope-card-head input[type=text]{flex:1;min-width:20px;font-size:12px;border:0;background:var(--abyss)}.scope-card-head button{padding:0;min-width:32px;color:var(--err);font-size:18px}.scope-card-body{padding:12px}.scope-card-body .field-grid{gap:10px}.add-scope{width:100%;border-style:dashed;background:var(--abyss);color:var(--primary)}.obj-tools{display:flex;gap:6px;margin:10px 0;flex-wrap:wrap}.obj-tools button{flex:1;font-size:10px;padding:8px}.file-badge{font-size:10px;color:var(--muted);padding:9px;background:var(--abyss);border-radius:6px;overflow-wrap:anywhere}.customer-record{padding:12px 0;border-bottom:1px solid var(--line)}.customer-record strong,.customer-record small{display:block}.customer-record strong{color:var(--ink-soft);font-size:12px}.customer-record small{font-size:10px;color:var(--muted);margin-bottom:6px}
.wall-fields{display:flex;flex-direction:column;gap:6px}.wall-field-row{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);background:var(--abyss);border-radius:6px;font-size:11px;color:var(--muted)}.wall-field-row strong{color:var(--ink-soft)}.wall-field-row.invalid,.layout-warning{background:#2b2112;color:var(--amber);border-color:rgba(245,158,11,.4)}.layout-warning{padding:10px;border:1px solid rgba(245,158,11,.25);border-radius:8px;font-size:11px;line-height:1.6;margin:10px 0}.layout-warning:empty{display:none}
.computing{width:8px;height:8px;border-radius:50%;background:var(--ok)}.computing.busy{background:var(--amber);animation:pulse 1s infinite}.calculation-status{font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:14px}.standard-status{font-size:11px;padding:10px;border:1px solid var(--line);border-radius:8px;color:var(--ink-soft);background:var(--abyss);margin-bottom:12px}.standard-status.special{color:var(--amber);background:#2b2112;border-color:rgba(245,158,11,.4)}.checks{display:flex;flex-direction:column;gap:10px}.check-card{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:var(--card);box-shadow:0 10px 30px -18px rgba(0,0,0,.8)}.check-card>div:first-child{display:flex;align-items:center;gap:8px;font:600 12px var(--font-head);text-transform:uppercase}.check-symbol{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;color:var(--ok);background:var(--ok-bg)}.check-card.warning .check-symbol{color:var(--amber);background:#2b2112}.check-card.danger .check-symbol{color:var(--err);background:var(--err-bg)}.check-value{font:600 24px/1.3 var(--font-head);margin:12px 0 5px;padding-left:30px;font-variant-numeric:tabular-nums}.check-value small{font:400 11px var(--font-body);color:var(--muted);margin-left:5px}.check-card p{font-size:11px;line-height:1.6;color:var(--muted);margin:0;padding-left:30px}.check-card button{margin:10px 0 0 30px;padding:8px;font-size:9px;background:var(--abyss)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:26px 0 12px}.tiny-tag{color:var(--amber);font-size:8px}.scope-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.scope-chips button{font-size:10px;padding:7px 8px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:20px}.sky-wrap{position:relative}.sky-wrap svg{width:100%;display:block;cursor:crosshair}.sky-percentage{position:absolute;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-30%);padding:6px 10px;border-radius:8px;background:rgba(7,9,19,.85);text-align:center}.sky-percentage strong{display:block;color:var(--primary);font:700 32px/1.1 var(--font-head);letter-spacing:-.02em}.sky-percentage span{font-size:10px;color:var(--muted)}.sky-readout{font-size:11px;text-align:center;color:var(--ink-soft);margin:6px 0}.muted,.notes-section{color:var(--muted)}.micro{font-size:11px;line-height:1.6}.export-section{border:1px solid var(--line);background:var(--abyss);border-radius:8px;padding:12px;margin-top:14px}.export-section summary{font-size:12px;color:var(--primary)}.export-section summary span{float:right}.export-buttons{display:flex;flex-direction:column;gap:6px;margin-top:12px}.export-buttons button{text-align:left}.export-buttons small{float:right;color:var(--muted)}.summary-list{font-size:11px;margin:0}.summary-list>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;text-align:right;color:var(--ink-soft)}.notes-section{font-size:11px;line-height:1.6;margin-top:22px}.notes-section summary{font-size:12px;color:var(--primary)}.notes-section p{margin:10px 0}
dialog{color:var(--ink);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);width:min(620px,94vw);max-height:90dvh;overflow:auto;padding:28px;box-shadow:0 20px 70px rgba(0,0,0,.8)}dialog::backdrop{background:rgba(4,5,13,.78);backdrop-filter:blur(6px)}dialog h2{padding-right:28px;margin-bottom:18px}dialog p{font-size:13px;line-height:1.7;color:var(--ink-soft)}.dialog-close{position:absolute;top:10px;right:12px;width:36px;min-height:36px;font-size:22px;padding:0;background:var(--card-high);color:var(--primary)}dialog table{width:100%;border-collapse:collapse;font-size:12px}dialog th,dialog td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}dialog th{font-family:var(--font-head);text-transform:uppercase;color:var(--muted)}dialog tr:hover{background:rgba(56,189,248,.04)}#planning-request-form>.field{margin:12px 0}#customer-measure-form>.field{margin-bottom:14px}#customer-measure-form .field-grid{margin-top:14px}#request-status{color:var(--ok)}#request-error:not(:empty),#measurement-error:not(:empty){color:var(--err);background:var(--err-bg);border-color:rgba(255,180,171,.35)}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 18px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card-high);color:var(--ink);font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.6);z-index:150}#scene-error{position:absolute;top:28%;left:8%;right:8%;padding:22px;border:1px solid rgba(255,180,171,.4);background:var(--err-bg);color:var(--err);border-radius:var(--radius);font-size:14px;line-height:1.6}.pending{opacity:.5;pointer-events:none}.danger-text{color:var(--err)}#print-output{display:none}.full-button,.scope-action{width:100%}
body.detail-view-open{overflow:hidden}.viewport-panel.is-expanded{position:fixed;inset:0;z-index:100;width:100vw;height:100dvh;min-height:0;margin:0;box-shadow:0 0 0 100vmax var(--void);background:var(--void)}.viewport-panel.is-expanded .viewport-top{padding:12px 18px 8px}.viewport-panel.is-expanded .scene-wrap{min-height:0;flex:1}.viewport-panel.is-expanded :is(.roof-console,.planning-actions,.scene-controls-panel){display:none}.viewport-panel.is-expanded #expand-view{background:var(--brand);color:var(--on-brand)}
@keyframes pulse{50%{opacity:.4}}
@media(min-width:1700px){.workspace{grid-template-columns:320px minmax(0,1fr) 310px}.settings-scroll{padding:24px}}
@media(max-width:1240px){.topbar{padding:12px 16px;gap:12px}.brand>small,.version-tag{display:none}.project-name input{max-width:140px}.file-actions{gap:6px}.file-actions button{font-size:10px;padding:9px}.workspace{grid-template-columns:270px minmax(0,1fr) 260px}.settings-scroll{padding:16px}.results-scroll{padding:0 14px 18px}.viewport-top{flex-wrap:wrap;align-items:flex-start}.viewport-actions{margin-left:auto}.camera-navigation{padding-inline:12px;gap:5px}.camera-navigation button{padding:8px}.pan-shortcuts{display:none}}
@media(max-width:1080px){.workspace{grid-template-columns:270px minmax(0,1fr);height:auto;min-height:0}.viewport-panel{min-height:650px;height:calc(100dvh - 88px)}.configuration{height:calc(100dvh - 88px);min-height:650px}.results{grid-column:1/-1;border-top:1px solid var(--line);border-left:0}.results-scroll{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 28px;overflow:visible;padding:0 24px 24px}.calculation-status,.standard-status{grid-column:1/-1}.checks{grid-row:3/9}.results-scroll>.section-heading,.scope-chips,.sky-wrap,.sky-readout,.results-scroll>.micro,.export-section{grid-column:2}.sky-wrap{max-width:320px;width:100%;margin:auto}.summary-list,.notes-section{grid-column:1/-1}.project-name{display:none}.results-footer{display:none}.viewport-panel.is-expanded{min-height:0;height:100dvh}}
@media(max-width:760px){.topbar{min-height:84px;flex-wrap:wrap;gap:10px;padding:10px 14px}.brand .brand-logo{width:170px;height:44px}.file-actions{flex:1;gap:5px}.file-actions button{font-size:9px;padding:8px}.header-button span{display:none}.workspace{display:flex;flex-direction:column}.viewport-panel{order:1;height:auto;min-height:0}.configuration{order:2;height:auto;min-height:0;border-right:0;border-top:1px solid var(--line)}.settings-scroll{max-height:75dvh;padding:20px}.results{order:3}.results-scroll{display:block;padding:0 20px 24px}.viewport-top{padding:14px}.viewport-actions{gap:6px}.view-controls button{font-size:9px;padding:6px 8px}.camera-navigation{padding:0 14px 10px}.camera-navigation button{font-size:9px;padding:8px}.scene-wrap{height:460px;min-height:460px;flex:auto}.scene-toolbar{right:12px;top:12px}.scene-badge{left:14px;top:12px;max-width:calc(100% - 80px);font-size:9px}.scene-hint{font-size:9px;line-height:1.6}.roof-console{margin:0 12px 8px;padding:10px;gap:9px}.roof-label{min-width:96px}.roof-label strong{font-size:10px}.roof-label small{font-size:9px}.planning-actions{padding:0 12px 8px}.scene-controls-panel>summary{font-size:10px}.scene-controls-panel[open] .scene-controls-body{max-height:60dvh}.configuration-footer{display:none}.section-heading{margin:24px 0 12px}.scope-chips button{max-width:none}.viewport-panel.is-expanded{height:100dvh;min-height:0}.viewport-panel.is-expanded .scene-wrap{height:auto;min-height:0;flex:1}.viewport-panel.is-expanded .viewport-top{padding:10px 12px}.viewport-panel.is-expanded .camera-navigation{padding:0 12px 8px}}
@media(max-width:420px){.file-actions{flex-basis:100%}.topbar{justify-content:center}.file-actions button{flex:1}.viewport-top{gap:8px}#model-title{font-size:14px}.viewport-actions{gap:5px}.view-controls button{padding:5px 6px;min-height:38px}#expand-view{font-size:9px;padding:8px}.scene-wrap{height:420px;min-height:420px}.scene-hint{max-width:320px;padding-right:18px}.motion-heading{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{:root{color-scheme:light}body{background:white;color:#20343a}.topbar,.workspace,#toast,dialog{display:none!important}#print-output{display:block;padding:12mm;font:11pt/1.5 system-ui,sans-serif;color:#20343a}#print-output :is(h1,h2,h3){color:#20343a}#print-output h1{font-size:24pt;margin-bottom:6mm}#print-output h2{font-size:15pt;margin:8mm 0 3mm}#print-output img{width:100%;max-height:100mm;object-fit:contain}#print-output table{width:100%;border-collapse:collapse;margin:5mm 0}#print-output td,#print-output th{border-bottom:1px solid #d8e2e4;padding:2mm;text-align:left}#print-output small{font-size:9pt;color:#607e87}#print-output tr{break-inside:avoid}@page{size:A4;margin:10mm}}

/* Two illustrated questionnaires and contextual request actions. */
.language-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--abyss)}.language-switch button{min-width:38px;padding:8px 6px;background:transparent;border:0;font-size:11px}.language-switch [aria-pressed=true]{background:var(--brand);color:var(--on-brand)}
.cta-card{border:1px solid var(--line-strong);border-radius:10px;padding:15px;background:linear-gradient(135deg,rgba(56,189,248,.09),var(--abyss));margin:18px 0}.cta-card strong{display:block;font:600 13px/1.5 var(--font-head);color:var(--primary)}.cta-card p{font-size:11px;line-height:1.6;color:var(--muted);margin:8px 0 12px}.cta-card button{margin-top:10px}.result-cta{grid-column:1/-1}
dialog.measurement-modal{width:min(1130px,96vw);padding:28px}.measurement-intro{max-width:85ch}.measurement-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:28px;align-items:start}.measurement-figure{position:sticky;top:0;background:var(--abyss);border:1px solid var(--line);border-radius:10px;padding:10px}.measurement-figure>small{display:block;color:var(--muted);font-size:11px}.measurement-diagram{width:100%;height:auto;display:block;color:var(--primary);font:12px system-ui,sans-serif}.measure-body{fill:var(--card-highest);stroke:var(--muted);stroke-width:1.5}.measure-body path[ d*="M325"]{stroke-width:6}.measure-guide{fill:var(--muted);stroke:none;font-size:11px}.measure-guide path{fill:none;stroke:var(--muted);stroke-dasharray:4 4;stroke-width:.7}.measure-dimension{color:var(--primary);stroke:currentColor;stroke-width:1.4;fill:none}.measure-dimension circle{fill:var(--abyss);stroke:currentColor}.measure-dimension text{stroke:none;fill:currentColor;text-anchor:middle;font-size:12px;font-weight:700}.measure-extra-dim .measure-dimension{color:var(--amber)}.measurement-field{padding:12px 0;border-bottom:1px solid var(--line)}.measurement-field>span{display:flex;align-items:center;gap:9px;line-height:1.4}.measurement-field>span>small{margin-left:auto;color:var(--muted)}.measure-code{display:inline-grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;border:1px solid var(--brand);color:var(--primary)}.measurement-field>small{font-size:11px;line-height:1.55;color:var(--muted)}.measurement-field input:focus{border-color:var(--brand)}.measurement-fields .advanced .field-grid{display:block}.measurement-fields .advanced .measure-code{border-color:var(--amber);color:var(--amber)}.measurement-fields>.field,.camera-name{margin:14px 0}.measurement-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.measurement-figure:has(+.measurement-fields input:focus){border-color:var(--line-strong)}
@media(max-width:760px){.language-switch{margin-left:auto}.measurement-layout{grid-template-columns:1fr;gap:16px}.measurement-figure{position:relative}.measurement-diagram{max-height:350px}.measurement-actions{flex-direction:column}dialog.measurement-modal{padding:20px}.measurement-actions button{width:100%}}

/* Motion controls live in their own column and never cover the preview. */
.workspace{grid-template-columns:270px 230px minmax(0,1fr) 270px}.motion-panel{background:var(--panel);border-right:1px solid var(--line);min-width:0;min-height:0;display:flex;flex-direction:column}.motion-panel h2{font-size:15px}.motion-panel .panel-heading{padding:24px 16px 12px}.motion-scroll{overflow:auto;flex:1;min-height:0;padding:0 14px 20px;scrollbar-width:thin}.motion-intro{margin:0 0 14px}.motion-panel .scene-controls-panel{border:0;margin:0;position:static;background:none}.motion-panel .scene-controls-panel>summary{font-size:11px;padding:10px 0;line-height:1.5}.motion-panel .scene-controls-panel[open] .scene-controls-body{display:block;position:static;max-height:none;overflow:visible;border:0;box-shadow:none;background:none;padding:0;width:auto}.motion-panel .placement-console{padding:0;border:0}.motion-panel .inline-check{font-size:11px;align-items:flex-start;line-height:1.5}.motion-panel .hull-console{display:flex;flex-direction:column;align-items:stretch;padding:10px 0;margin:0;border:0;border-block:1px solid var(--line);gap:10px}.motion-panel .hull-console label{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px}.motion-panel #hull-mode{width:100%;margin-top:3px}.motion-panel #hull-margin{width:70px}.motion-panel .hull-console>small{font-size:10px;line-height:1.6}.motion-panel #hull-status{margin:0;line-height:1.6}.motion-panel .telescope-console{padding:14px 0 0;border:0;margin:0}.motion-panel .motion-heading{display:flex;flex-direction:column;align-items:stretch;gap:10px}.motion-panel .motion-heading>strong{font-size:12px}.motion-panel .segmented{display:flex}.motion-panel .segmented button{flex:1;padding:7px 5px;font-size:9px}.motion-panel .pointing-controls{display:grid;grid-template-columns:1fr 68px;gap:8px;align-items:center;margin-top:14px}.motion-panel .pointing-controls>label{grid-column:1/-1;font-size:11px}.motion-panel .angle-number input{padding:9px 14px 9px 7px}.motion-panel .pointing-nudges{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0}.motion-panel .pointing-nudges button{font-size:10px;min-height:38px;padding:7px}.motion-panel .motion-help{font-size:10px}.viewport-panel{min-width:0}.scene-wrap{min-height:260px}.viewport-panel.is-expanded .scene-wrap{min-height:0}.result-cta{grid-column:1/-1}
@media(min-width:1700px){.workspace{grid-template-columns:300px 240px minmax(0,1fr) 290px}}
@media(max-width:1440px) and (min-width:901px){.workspace{grid-template-columns:250px 220px minmax(0,1fr);height:auto;min-height:0;align-items:stretch}.configuration,.motion-panel,.viewport-panel{height:calc(100dvh - 88px);min-height:520px}.results{grid-column:1/-1;border-top:1px solid var(--line);border-left:0}.results-scroll{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;overflow:visible;padding:0 24px 24px}.calculation-status,.standard-status,.result-cta,.summary-list,.notes-section{grid-column:1/-1}.checks{grid-row:3/9}.results-scroll>.section-heading,.scope-chips,.sky-wrap,.sky-readout,.results-scroll>.micro,.export-section{grid-column:2}.sky-wrap{max-width:320px;width:100%;margin:auto}.project-name{display:none}.viewport-panel.is-expanded{min-height:0;height:100dvh}}
@media(max-width:900px){.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:auto}.viewport-panel{grid-column:1/-1;grid-row:1;min-height:0;height:auto}.scene-wrap{height:clamp(340px,62vw,620px);min-height:340px}.configuration{grid-column:1;grid-row:2;height:auto;min-height:0;border-top:1px solid var(--line)}.motion-panel{grid-column:2;grid-row:2;border-top:1px solid var(--line)}.settings-scroll,.motion-scroll{max-height:75dvh}.results{grid-column:1/-1;grid-row:3}.results-scroll{display:block}.viewport-panel.is-expanded{height:100dvh}.viewport-panel.is-expanded .scene-wrap{height:auto;min-height:0}.motion-panel .scene-controls-panel[open] .scene-controls-body{position:static;max-height:none}}
@media(max-width:520px){.workspace{display:flex}.viewport-panel{order:1}.motion-panel{order:2}.configuration{order:3}.results{order:4}.motion-scroll{max-height:70dvh}.motion-panel .pointing-controls{grid-template-columns:1fr 90px}.scene-wrap{height:400px;min-height:400px}.topbar{height:auto}.language-switch{margin-left:auto}}

.measurement-layout .measure-extra-dim{display:none}.measurement-layout:has(.advanced[open]) .measure-extra-dim{display:inline}

.motion-panel .pointing-controls{grid-template-columns:minmax(0,1fr) 90px}.motion-panel .angle-number input{padding:9px 5px;font-size:12px}.motion-panel .telescope-console{padding-top:5px}.measure-dimension.is-active{color:var(--gold);stroke-width:2.7}.measure-dimension.is-active circle{fill:var(--card-high)}

/* Compact checks leave the horizon in view. Detail controls remain 44px tall. */
.results .panel-heading{padding:15px 16px 12px}.results .panel-heading h2{font-size:18px}.results-scroll{padding:0 14px 18px}.results .calculation-status{font-size:10px;line-height:1.3;margin:0 0 6px}.results .standard-status{padding:6px 8px;font-size:10px;line-height:1.4;margin:0 0 8px}.results .checks{gap:6px}.results .check-card{display:grid;grid-template-columns:minmax(0,1fr) auto 30px;gap:2px 6px;align-items:center;padding:7px 8px;border-radius:8px;min-height:60px}.results .check-card>div:first-child{font-size:10px;gap:5px;line-height:1.2;grid-column:1;grid-row:1}.results .check-symbol{width:17px;height:17px;flex:0 0 17px;font-size:10px}.results .check-value{font-size:19px;line-height:1.2;margin:0;padding:0;grid-column:2;grid-row:1;white-space:nowrap}.results .check-value small{font-size:9px;margin-left:3px}.results .check-card p{grid-column:1/3;grid-row:2;padding:0;margin:0;font-size:9px;line-height:1.3}.results .check-card button{grid-column:3;grid-row:1/3;padding:0;margin:0;width:30px;min-height:44px;font-size:18px;align-self:center}.results .horizon-heading{margin:12px 0 7px}.results .horizon-heading h3{font-size:12px}.horizon-panel{min-width:0}.results .horizon-panel .scope-chips{gap:4px;margin:0 0 3px}.results .horizon-panel .scope-chips button{padding:4px 8px;min-height:28px;font-size:9px;max-width:100%}.results .sky-wrap{width:clamp(170px,calc(100dvh - 530px),226px);max-width:100%;margin:0 auto}.results .sky-percentage{padding:3px 7px;background:rgba(7,9,19,.72)}.results .sky-percentage strong{font-size:23px}.results .sky-percentage span{font-size:8px}.results .sky-readout{font-size:10px;line-height:1.4;margin:4px 0}.horizon-legend{display:flex;justify-content:center;gap:5px 10px;flex-wrap:wrap;color:var(--ink-soft);font-size:9px;line-height:1.4;margin:3px 0}.horizon-legend span{display:inline-flex;gap:4px;align-items:center}.horizon-legend i{display:inline-block;width:12px;height:2px}.legend-computed{background:var(--brand)}.legend-measured{background:var(--amber)}.measured-horizon-tools{margin:8px 0 0}.measured-horizon-tools>button{font-size:10px;min-height:44px;padding:8px}.measured-horizon-tools #measured-controls{display:flex;align-items:center;gap:5px;justify-content:space-between}.measured-horizon-tools .inline-check{font-size:10px;line-height:1.3;margin:6px 0}.measured-horizon-tools #remove-horizon{width:32px;min-height:36px;padding:3px;font-size:20px}.measured-horizon-tools p{font-size:9px;line-height:1.45;margin:3px 0;overflow-wrap:anywhere;color:var(--muted)}#horizon-import-error{color:var(--err);padding:6px 8px;background:var(--err-bg);border-radius:6px}.results .horizon-panel>.micro{font-size:9px;line-height:1.45;margin:7px 0}.results .export-section{margin-top:8px;padding:8px 10px}.results .export-section summary{font-size:10px}.results .result-cta{padding:12px;margin:14px 0}.results .result-cta strong{font-size:11px}.results .result-cta p{font-size:10px;margin:5px 0}.results .result-cta button{font-size:10px}.horizon-panel [hidden],.horizon-legend [hidden],.measured-horizon-tools [hidden]{display:none!important}
@media(min-width:1180px) and (max-width:1440px){.workspace{grid-template-columns:240px 210px minmax(0,1fr) 270px;height:calc(100dvh - 88px)}.configuration,.motion-panel,.viewport-panel{height:auto;min-height:0}.results{grid-column:auto;grid-row:auto;border-top:0;border-left:1px solid var(--line)}.results-scroll{display:block;overflow:auto;min-height:0;flex:1;padding:0 14px 18px}.results-scroll>*{grid-column:auto;grid-row:auto}.project-name{display:none}.viewport-panel.is-expanded{height:100dvh}}
@media(min-width:901px) and (max-width:1179px){.results-scroll{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 24px}.results .calculation-status,.results .standard-status{grid-column:1/-1}.results .checks{grid-column:1;grid-row:3}.results .horizon-panel{grid-column:2;grid-row:3/8}.results .result-cta{grid-column:1;grid-row:4}.results-scroll>.section-heading{grid-column:1;grid-row:5}.results .summary-list{grid-column:1;grid-row:6}.results .notes-section{grid-column:1/-1;grid-row:8}.results .sky-wrap{width:230px}}
@media(max-width:900px){.results-scroll{display:block}.results .sky-wrap{width:240px}.results .check-card{grid-template-columns:minmax(0,1fr) auto 36px}.results .check-card>div:first-child{font-size:12px}.results .check-card p{font-size:10px}.results .horizon-legend{font-size:10px}.results .sky-readout{font-size:11px}}
@media(min-width:1180px) and (max-height:780px){.results .panel-heading{padding:12px 14px 9px}.results .panel-heading h2{font-size:17px}.results .eyebrow{margin-bottom:3px}.results .check-card{min-height:54px;padding:4px 7px}.results .checks{gap:4px}.results .sky-wrap{width:174px}.results .horizon-heading{margin:9px 0 5px}.results .sky-readout{font-size:9px}.results .horizon-legend{font-size:8px}.measured-horizon-tools{margin-top:5px}}

@media(min-width:1180px) and (max-height:780px){.results .panel-heading{padding:10px 14px 6px}.results .check-card{min-height:50px;padding:2px 7px}.results .sky-wrap{width:170px}.results .horizon-heading{margin-top:6px}}

/* Website-Anbindung: Speichern, Anfragedialog */
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:center}
.link-button{display:inline-block;padding:10px 16px;border-radius:8px;border:1px solid rgba(56,189,248,.4);text-decoration:none;color:inherit;font-weight:700}
.link-button.button-accent{background:#38bdf8;color:#004965;border-color:transparent}
.request-summary{border:1px solid rgba(56,189,248,.18);border-radius:10px;padding:10px 14px;margin:8px 0 12px}
.request-summary h3{margin:0 0 6px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.plan-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.plan-item{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:space-between;align-items:center;border:1px solid rgba(56,189,248,.18);border-radius:10px;padding:10px 12px}
.plan-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rename-form{display:flex;gap:8px}
@media (max-width:640px){.field-row{grid-template-columns:1fr}}
.project-name{min-width:210px;flex:0 1 280px}
.request-summary .summary-list{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0}.request-summary dt{opacity:.7}.request-summary dd{margin:0}
.planning-disclaimer{margin:8px 0 0;font-size:11px;line-height:1.45;color:var(--muted,#94a3b8)}.model-status{margin:2px 0 0}
/* Anleitung */
dialog.guide-modal{width:min(860px,96vw)}
.guide h2{margin:0 0 8px}.guide-intro{color:var(--muted,#9fb3bd);max-width:70ch;margin:0 0 12px}
.guide-tools{display:flex;gap:8px;margin:0 0 12px}.guide-tools button{font-size:11px;padding:6px 10px}
.guide-section{border:1px solid var(--line-strong);border-radius:8px;margin:0 0 8px;background:rgba(255,255,255,.02)}
.guide-section>summary{cursor:pointer;padding:11px 14px;font-weight:600;letter-spacing:.02em}
.guide-section[open]>summary{border-bottom:1px solid var(--line-strong)}
.guide-body{padding:10px 16px 12px;line-height:1.55;font-size:14px}.guide-body ul,.guide-body ol{margin:0;padding-left:20px}.guide-body li{margin:0 0 7px}
.guide-body b{color:var(--primary,#38bdf8);font-weight:600}.guide-body i{font-style:normal;border-bottom:1px dotted var(--line-strong)}
.guide-lang{display:inline-flex;gap:0;margin-right:auto}.guide-lang button{border-radius:6px 0 0 6px}.guide-lang button+button{border-radius:0 6px 6px 0;border-left:0}.guide-lang button[aria-pressed="true"]{background:var(--primary,#38bdf8);color:#04050d}
/* Nummernmarken über den Plätzen */
.station-badge{pointer-events:auto;cursor:pointer}.station-badge circle{fill:rgba(4,5,13,.88);stroke:var(--brand);stroke-width:1.6}.station-badge text{font:700 13px var(--font-body);fill:#e6f1f6;text-anchor:middle;pointer-events:none}
.station-badge.active circle{fill:var(--amber);stroke:#fff3d0;stroke-width:2}.station-badge.active text{fill:#04050d}.station-badge:hover circle{stroke:#fff}
