.access-page{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,30%);background:var(--brand-navy)}.access-hero{position:relative;overflow:hidden;min-height:100%;background-color:#0a121c;background-image:linear-gradient(155deg,#080e16d1,#12203094 46%,#080e16bd),url(/auth_back.png);background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--white)}.access-hero-brand{position:absolute;z-index:1;left:3rem;bottom:2.25rem;width:min(220px,36%);height:auto}.access-hero-sub{margin:0;opacity:.85;max-width:28rem;font-size:1.05rem;color:var(--white)}.access-panel{background:var(--white);display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;overflow:auto}.access-panel-inner{width:100%;max-width:400px}.access-panel-logo{display:block;margin-bottom:1.75rem;width:min(100%,340px)!important;height:auto!important;max-width:100%;object-fit:contain;object-position:left center}.access-panel h1{font-size:1.7rem;margin-bottom:.35rem}.access-sub{color:var(--gray-400);margin:0 0 1.35rem}.access-panel form{display:flex;flex-direction:column}.access-panel .btn-primary{width:100%;margin-top:1.1rem}.access-captcha{margin-top:.85rem}.access-footer{margin-top:1.35rem;font-size:.85rem;color:var(--gray-400)}@media (max-width: 960px){.access-page{grid-template-columns:1fr;grid-template-rows:minmax(200px,34vh) 1fr}.access-hero{min-height:200px;padding:1.5rem;justify-content:flex-end}.access-hero-brand{left:1.5rem;bottom:1.25rem;width:min(168px,48%)}.access-panel{padding:1.75rem 1.35rem 2rem;align-items:flex-start}.access-panel-logo{width:min(100%,280px)!important}}.byte-conv{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:1.5rem;align-items:start}.byte-conv-fields{display:flex;flex-direction:column;gap:1rem;min-width:0}.byte-conv-field{display:flex;flex-direction:column;gap:.3rem}.byte-conv-label{font-weight:600;font-size:.92rem;color:var(--near-black)}.byte-conv-hint{font-size:.78rem;color:var(--gray-500, #6b7280);line-height:1.35}.byte-conv-input{width:100%;box-sizing:border-box;border:1px solid var(--gray-200);border-radius:.55rem;padding:.55rem .7rem;font-size:.92rem;line-height:1.4;color:var(--onyx);background:var(--white);resize:vertical;min-height:4.5rem;font-family:inherit}.byte-conv-input--mono,.byte-conv-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;letter-spacing:.02em}.byte-conv-input:focus{outline:2px solid var(--egyptian-blue);outline-offset:1px;border-color:var(--egyptian-blue)}.byte-conv-input--error{border-color:#c0392b;background:#fff8f7}.byte-conv-input--error:focus{outline-color:#c0392b}.byte-conv-error{font-size:.8rem;color:#c0392b;font-weight:500}.byte-conv-table-wrap{min-width:0;border:1px solid var(--gray-200);border-radius:.75rem;background:var(--white);padding:1rem 1.1rem 1.1rem;overflow:auto}.byte-conv-table-title{margin:0 0 .75rem;font-size:1rem;font-weight:650;color:var(--near-black)}.byte-conv-empty{margin:0;font-size:.9rem;color:var(--gray-500, #6b7280)}.byte-conv-table{width:100%;border-collapse:collapse;font-size:.86rem}.byte-conv-table th,.byte-conv-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid var(--gray-100, #f3f4f6);white-space:nowrap}.byte-conv-table th{font-weight:600;color:var(--gray-600, #4b5563);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.byte-conv-glyph{text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.byte-conv-utf8-mark{display:inline-flex;align-items:center;gap:.35rem}.byte-conv-utf8-char{font-weight:600}.byte-conv-utf8-span{display:inline-block;font-size:.72rem;font-weight:600;color:var(--egyptian-blue);background:color-mix(in srgb,var(--egyptian-blue) 12%,white);border-radius:999px;padding:.1rem .4rem}.byte-conv-row--utf8 td{background:color-mix(in srgb,var(--egyptian-blue) 5%,white)}.byte-conv-row--utf8-start td:first-child{box-shadow:inset 3px 0 0 var(--egyptian-blue)}@media (max-width: 860px){.byte-conv{grid-template-columns:1fr}}.ohm{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.1fr);gap:1.5rem;align-items:start}.ohm-controls{display:flex;flex-direction:column;gap:1.1rem;min-width:0}.ohm-solve{display:flex;flex-wrap:wrap;gap:.4rem}.ohm-solve-btn{border:1px solid var(--gray-200);background:var(--white);color:var(--onyx);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer}.ohm-solve-btn:hover{background:var(--gray-100)}.ohm-solve-btn[aria-pressed=true]{background:var(--egyptian-blue);border-color:var(--egyptian-blue);color:var(--white)}.ohm-field{display:flex;flex-direction:column;gap:.4rem}.ohm-field-head{display:flex;align-items:center;gap:.5rem}.ohm-field-label{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.92rem;color:var(--near-black)}.ohm-symbol{font-family:var(--mono);font-weight:700;color:var(--egyptian-blue)}.ohm-field-value{margin-left:auto;display:flex;align-items:baseline;gap:.25rem}.ohm-number{width:7rem;padding:.35rem .5rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--mono);text-align:right}.ohm-number:focus{outline:2px solid var(--egyptian-blue);outline-offset:1px}.ohm-number[aria-invalid=true]{border-color:var(--alarm);background:#fdf5f5}.ohm-field-error{margin:0;font-size:.8rem;font-weight:600;color:var(--alarm)}.ohm-slider-range{margin:0;font-size:.78rem;color:var(--gray-400);font-family:var(--mono)}.ohm-unit{font-family:var(--mono);color:var(--gray-400);font-size:.85rem;width:1.5rem}.ohm-slider{width:100%;accent-color:var(--egyptian-blue);cursor:pointer}.ohm-field.is-solved{background:#eef4fb;border:1px solid #cfe0f2;border-radius:var(--radius-md);padding:.75rem}.ohm-field.is-solved.is-invalid{background:#fdf5f5;border-color:#f0c9c9}.ohm-solved-value{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--egyptian-blue-dark);overflow-wrap:anywhere}.ohm-field.is-solved.is-invalid .ohm-solved-value{color:var(--alarm)}.ohm-solved-note{font-size:.8rem;color:var(--gray-400);margin:0}.ohm-formulas{display:flex;flex-wrap:wrap;gap:.5rem}.ohm-formula{font-family:var(--mono);font-size:.95rem;padding:.4rem .7rem;border-radius:var(--radius-md);background:var(--gray-100);color:var(--gray-400);border:1px solid transparent}.ohm-formula.is-active{background:var(--white);color:var(--near-black);border-color:var(--egyptian-blue);box-shadow:0 0 0 2px #336cb31f}.ohm-visual{display:flex;flex-direction:column;gap:.75rem;min-width:0}.ohm-svg{width:100%;height:auto;background:#0f1c2b;border-radius:var(--radius-md);display:block}.ohm-wire{stroke:#4d7dbd;stroke-width:3;fill:none}.ohm-charge{fill:#ffd166}.ohm-label{font-family:var(--mono);font-size:11px;fill:#cbd5e1}.ohm-readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem}.ohm-readout{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.6rem .7rem}.ohm-readout-label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gray-400);display:flex;align-items:center;gap:.3rem}.ohm-readout-value{font-family:var(--mono);font-size:1.15rem;font-weight:700;color:var(--near-black);margin-top:.15rem;overflow-wrap:anywhere}.ohm-readout-value.is-invalid{color:var(--alarm);font-size:1rem}.ohm-hint{margin:0;font-size:.85rem;color:var(--gray-400)}.ohm-warning{margin:0;font-size:.85rem;color:var(--caution);font-weight:600}@media (max-width: 860px){.ohm{grid-template-columns:1fr}}.orbit{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(380px,1.35fr);gap:2rem;align-items:start}.orbit-controls{display:flex;flex-direction:column;gap:1.1rem;min-width:0}.orbit-hint{margin:0;font-size:.85rem;color:var(--gray-400)}.orbit-body-select{display:flex;flex-direction:column;gap:.4rem}.orbit-body-label{font-weight:600;font-size:.92rem;color:var(--near-black)}.orbit-body-select select{width:100%;padding:.5rem .65rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);color:var(--near-black);font-size:.95rem;font-weight:600;cursor:pointer}.orbit-body-select select:focus{outline:2px solid var(--egyptian-blue);outline-offset:1px}.orbit-solve{display:flex;flex-wrap:wrap;gap:.4rem}.orbit-solve-btn{border:1px solid var(--gray-200);background:var(--white);color:var(--onyx);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer}.orbit-solve-btn:hover{background:var(--gray-100)}.orbit-solve-btn[aria-pressed=true]{background:var(--egyptian-blue);border-color:var(--egyptian-blue);color:var(--white)}.orbit-formulas{display:flex;flex-wrap:wrap;gap:.5rem}.orbit-formula{font-family:var(--mono);font-size:.9rem;padding:.4rem .7rem;border-radius:var(--radius-md);background:var(--gray-100);color:var(--gray-400);border:1px solid transparent}.orbit-formula.is-active{background:var(--white);color:var(--near-black);border-color:var(--egyptian-blue);box-shadow:0 0 0 2px #336cb31f}.orbit-field{display:flex;flex-direction:column;gap:.4rem}.orbit-field-head{display:flex;align-items:center;gap:.5rem}.orbit-field-label{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.92rem;color:var(--near-black)}.orbit-symbol{font-family:var(--mono);font-weight:700;color:var(--egyptian-blue)}.orbit-field-value{margin-left:auto;display:flex;align-items:baseline;gap:.25rem}.orbit-number{width:7rem;padding:.35rem .5rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--mono);text-align:right}.orbit-number:focus{outline:2px solid var(--egyptian-blue);outline-offset:1px}.orbit-number[aria-invalid=true]{border-color:var(--alarm);background:#fdf5f5}.orbit-field-error{margin:0;font-size:.8rem;font-weight:600;color:var(--alarm)}.orbit-slider-range{margin:0;font-size:.78rem;color:var(--gray-400);font-family:var(--mono)}.orbit-unit{font-family:var(--mono);color:var(--gray-400);font-size:.85rem;min-width:2.5rem}.orbit-slider{width:100%;accent-color:var(--egyptian-blue);cursor:pointer}.orbit-field.is-solved{background:#eef4fb;border:1px solid #cfe0f2;border-radius:var(--radius-md);padding:.75rem}.orbit-field.is-solved.is-invalid{background:#fdf5f5;border-color:#f0c9c9}.orbit-solved-value{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--egyptian-blue-dark);overflow-wrap:anywhere}.orbit-field.is-solved.is-invalid .orbit-solved-value{color:var(--alarm)}.orbit-solved-note{font-size:.8rem;color:var(--gray-400);margin:0}.orbit-visual{display:flex;flex-direction:column;gap:.75rem;min-width:0}.orbit-svg{width:100%;height:auto;background:#0a1220;border-radius:var(--radius-md);display:block}.orbit-path{fill:none;stroke:#4d7dbd;stroke-width:1.5;stroke-dasharray:4 3;opacity:.85}.orbit-body-disk{stroke:#ffffff40;stroke-width:1}.orbit-sat{fill:#ffd166;stroke:#fff3c4;stroke-width:1}.orbit-label{font-family:var(--mono);font-size:11px;fill:#cbd5e1}.orbit-readouts{display:flex;flex-direction:column;gap:.85rem}.orbit-readouts-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden;background:#f7f9fc}.orbit-readouts-primary .orbit-readout{padding:.95rem 1.1rem;border-right:1px solid var(--gray-200)}.orbit-readouts-primary .orbit-readout:last-child{border-right:none}.orbit-readouts-secondary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem 1.25rem;padding:.15rem .15rem 0}.orbit-readout{min-width:0}.orbit-readout-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-400)}.orbit-readout-value{font-family:var(--mono);font-size:1.05rem;font-weight:700;color:var(--near-black);margin-top:.2rem;overflow-wrap:anywhere;line-height:1.25}.orbit-readout.is-emphasis .orbit-readout-value{font-size:1.35rem;color:var(--egyptian-blue-dark)}.orbit-readout-value.is-invalid{color:var(--alarm);font-size:1rem}.orbit-readout.is-emphasis .orbit-readout-value.is-invalid{font-size:1.15rem}@media (max-width: 1100px){.orbit-readouts-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.orbit,.orbit-readouts-primary{grid-template-columns:1fr}.orbit-readouts-primary .orbit-readout{border-right:none;border-bottom:1px solid var(--gray-200)}.orbit-readouts-primary .orbit-readout:last-child{border-bottom:none}}.ox{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(360px,1.3fr);gap:1.75rem;align-items:start}.ox-controls{display:flex;flex-direction:column;gap:1rem;min-width:0}.ox-missions{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:0;padding:0}.ox-mission-btn{display:flex;align-items:flex-start;gap:.65rem;width:100%;text-align:left;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-md);padding:.65rem .75rem;cursor:pointer;color:var(--near-black)}.ox-mission-btn:hover{background:var(--gray-100)}.ox-mission-btn.is-active{border-color:var(--egyptian-blue);background:#eef4fb;box-shadow:0 0 0 2px #336cb31f}.ox-mission-btn.is-done:not(.is-active){border-color:#b7d7b0;background:#f4faf3}.ox-mission-check{flex:0 0 auto;width:1.35rem;height:1.35rem;border-radius:999px;border:2px solid var(--gray-200);display:grid;place-items:center;font-size:.75rem;font-weight:700;color:transparent;margin-top:.1rem}.ox-mission-btn.is-done .ox-mission-check{border-color:#3b8c3a;background:#3b8c3a;color:#fff}.ox-mission-meta{min-width:0}.ox-mission-title{display:block;font-weight:700;font-size:.92rem;line-height:1.25}.ox-mission-blurb{display:block;margin-top:.15rem;font-size:.8rem;color:var(--gray-400);line-height:1.35}.ox-brief{margin:0;font-size:.9rem;color:var(--onyx);line-height:1.45}.ox-locked{margin:0;font-size:.8rem;color:var(--gray-400)}.ox-field{display:flex;flex-direction:column;gap:.4rem}.ox-field-head{display:flex;align-items:center;gap:.5rem}.ox-field-label{font-weight:600;font-size:.92rem;color:var(--near-black)}.ox-field-value{margin-left:auto;display:flex;align-items:baseline;gap:.25rem;font-family:var(--mono);font-weight:700;font-size:1.05rem;color:var(--egyptian-blue-dark)}.ox-unit{font-family:var(--mono);color:var(--gray-400);font-size:.85rem;font-weight:600}.ox-slider{width:100%;accent-color:var(--egyptian-blue);cursor:pointer}.ox-hint{margin:0;font-size:.88rem;line-height:1.4;color:var(--onyx);background:#f7f9fc;border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.75rem .85rem}.ox-hint.is-success{background:#f4faf3;border-color:#b7d7b0;color:#1f5c1e}.ox-hint.is-warn{background:#fff8ef;border-color:#f0d2a8}.ox-actions{display:flex;flex-wrap:wrap;gap:.5rem}.ox-visual{display:flex;flex-direction:column;gap:.75rem;min-width:0}.ox-svg{width:100%;height:auto;background:#0a1220;border-radius:var(--radius-md);display:block}.ox-path{fill:none;stroke:#4d7dbd;stroke-width:1.5;stroke-dasharray:4 3;opacity:.85}.ox-path.is-fall{stroke:#f07167}.ox-path.is-climb{stroke:#ffd166}.ox-path.is-escape{stroke:#9b87f5;stroke-dasharray:2 4}.ox-path.is-guide{stroke:#64748b;stroke-dasharray:3 5;opacity:.55}.ox-trail{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 4;pointer-events:none}.ox-trail.is-fall{stroke:#f07167}.ox-trail.is-climb{stroke:#ffd166}.ox-body-disk{stroke:#ffffff40;stroke-width:1}.ox-ground-mark,.ox-sat{fill:#ffd166;stroke:#fff3c4;stroke-width:1}.ox-sat.is-crashed{fill:#f07167;stroke:#ffb4ae}.ox-impact{fill:none;stroke:#f07167;stroke-width:2.5;pointer-events:none}.ox-label{font-family:var(--mono);font-size:11px;fill:#cbd5e1}.ox-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden;background:#f7f9fc}.ox-readout{padding:.85rem .9rem;border-right:1px solid var(--gray-200);min-width:0}.ox-readout:last-child{border-right:none}.ox-readout-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-400)}.ox-readout-value{font-family:var(--mono);font-size:1rem;font-weight:700;color:var(--near-black);margin-top:.2rem;overflow-wrap:anywhere;line-height:1.25}.ox-footnote{margin:0;font-size:.8rem;color:var(--gray-400);line-height:1.4}@media (max-width: 960px){.ox{grid-template-columns:1fr}.ox-readouts{grid-template-columns:repeat(2,minmax(0,1fr))}.ox-readout:nth-child(2){border-right:none}.ox-readout:nth-child(1),.ox-readout:nth-child(2){border-bottom:1px solid var(--gray-200)}}@media (max-width: 520px){.ox-readouts{grid-template-columns:1fr}.ox-readout{border-right:none;border-bottom:1px solid var(--gray-200)}.ox-readout:last-child{border-bottom:none}}.mission-link{display:flex;flex-direction:column;gap:1rem;width:100%}.ml-toolbar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;padding-bottom:.25rem;border-bottom:1px solid var(--gray-200)}.ml-field{display:flex;flex-direction:column;gap:.3rem;min-width:7.5rem}.ml-field label{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--gray-400)}.ml-field select,.ml-field input[type=range]{width:100%}.ml-field select{border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.4rem .55rem;background:var(--white);font:inherit}.ml-segmented{display:inline-flex;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden;background:var(--gray-100)}.ml-segmented button{border:none;background:transparent;padding:.4rem .7rem;font:inherit;font-weight:600;font-size:.85rem;color:var(--gray-400);cursor:pointer}.ml-segmented button+button{border-left:1px solid var(--gray-200)}.ml-segmented button.is-active{background:var(--white);color:var(--egyptian-blue)}.ml-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.ml-status-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem}.ml-stat{border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.55rem .7rem;background:#fafbfe}.ml-stat .ml-stat-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-400);margin-bottom:.2rem}.ml-stat .ml-stat-value{font-weight:700;font-size:.95rem;color:var(--near-black)}.ml-stat.is-warn .ml-stat-value{color:#b45309}.ml-stat.is-bad .ml-stat-value{color:#b42318}.ml-stat.is-ok .ml-stat-value{color:#027a48}.ml-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:1rem;align-items:start}@media (max-width: 980px){.ml-workspace{grid-template-columns:1fr}}.ml-panel{border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:.85rem;background:var(--white);display:flex;flex-direction:column;gap:.75rem;min-width:0}.ml-panel h3{margin:0;font-size:.95rem}.ml-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.ml-link-panel{padding:.75rem .85rem}.ml-link-graphic{display:flex;flex-direction:column;gap:.45rem}.ml-link-graphic-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.ml-link-svg{width:100%;height:auto;max-height:200px;display:block;background:linear-gradient(180deg,#0b1220,#152238);border-radius:var(--radius-md);border:1px solid #1e293b}.ml-link-caption{fill:#94a3b8;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.ml-link-body-label{fill:#e2e8f0;font-size:11px;font-weight:700}.ml-link-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;font-size:.75rem;color:var(--gray-400);font-weight:600}.ml-link-legend span{display:inline-flex;align-items:center;gap:.35rem}.ml-dot{width:.55rem;height:.55rem;border-radius:2px;display:inline-block}.ml-dot-cmd{background:#3b82f6}.ml-dot-tlm{background:#94a3b8}.ml-dot-img{background:#f59e0b}.ml-dot-ack{background:#10b981}.ml-dot-bad{background:#f04438}.ml-grid-wrap{display:flex;flex-direction:column;gap:.4rem}.ml-grid-svg{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid #1e293b;display:block}.ml-grid-title{fill:#e2e8f0;font-size:13px;font-weight:700}.ml-grid-tick{fill:#94a3b8;font-size:11px;font-weight:600}.ml-grid-action{fill:#cbd5e1;font-size:10px;font-weight:700;text-transform:uppercase}.ml-grid-wait{fill:#94a3b8;font-size:14px;font-weight:600}.ml-grid-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;font-size:.75rem;font-weight:600;color:var(--gray-400)}.ml-grid-legend span{display:inline-flex;align-items:center;gap:.35rem}.ml-swatch{width:.7rem;height:.7rem;border-radius:2px;display:inline-block}.ml-map-wrap{position:relative;width:100%;aspect-ratio:3 / 2;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--gray-200);background:#1a120e}.ml-map-wrap img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.92}.ml-map-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:10% 10%;mix-blend-mode:soft-light}.ml-map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ml-map-coords{position:absolute;bottom:.55rem;left:.55rem;padding:.25rem .5rem;border-radius:var(--radius-md);background:#141820c7;color:#fff;font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums}.ml-capture-block{display:flex;flex-direction:column;gap:.55rem;padding:.75rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:#f8fafc}.ml-capture-btn{width:100%}.ml-capture-progress{display:flex;flex-direction:column;gap:.35rem}.ml-capture-track{height:.7rem;border-radius:999px;background:var(--gray-100);border:1px solid var(--gray-200);overflow:hidden}.ml-capture-fill{height:100%;width:0;border-radius:999px;background:var(--gray-200);transition:width .15s linear}.ml-capture-fill.is-active{background:linear-gradient(90deg,var(--egyptian-blue),#5b8def)}.ml-capture-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;font-size:.78rem;color:var(--gray-400);font-weight:600}.ml-rover-marker{position:absolute;width:22px;height:22px;margin-left:-11px;margin-top:-11px;transform-origin:center center}.ml-rover-marker svg{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.65))}.ml-rover-marker.is-stale{opacity:.55}.ml-viewpoint-badge{position:absolute;top:.55rem;left:.55rem;padding:.25rem .55rem;border-radius:999px;background:#141820b8;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.ml-inflight{position:absolute;bottom:.55rem;left:.55rem;right:.55rem;display:flex;flex-wrap:wrap;gap:.35rem}.ml-chip{padding:.2rem .5rem;border-radius:999px;background:#141820b8;color:#fff;font-size:.72rem;font-weight:600}.ml-commands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.ml-command-row{display:flex;gap:.4rem;align-items:center}.ml-command-row input{width:4.5rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.4rem .45rem;font:inherit}.ml-side-stack{display:flex;flex-direction:column;gap:1rem;min-width:0}.ml-meter-bars{display:flex;flex-direction:column;gap:.55rem}.ml-meter-row{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.5rem;align-items:center;font-size:.82rem}.ml-meter-track{height:.55rem;border-radius:999px;background:var(--gray-100);overflow:hidden;border:1px solid var(--gray-200)}.ml-meter-fill{height:100%;border-radius:999px;background:var(--egyptian-blue);transition:width .15s ease}.ml-meter-fill.is-warn{background:#f79009}.ml-meter-fill.is-bad{background:#f04438}.ml-counts{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.82rem}.ml-counts span{padding:.2rem .5rem;border-radius:var(--radius-md);background:var(--gray-100);border:1px solid var(--gray-200);font-weight:600}.ml-packet-list{display:flex;flex-direction:column;gap:.35rem;max-height:320px;overflow:auto}.ml-packet{border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:.45rem .55rem;cursor:pointer;text-align:left;background:var(--white);font:inherit}.ml-packet:hover,.ml-packet.is-selected{border-color:var(--egyptian-blue);background:#f5f7ff}.ml-packet.is-bad{border-color:#fda29b;background:#fef3f2}.ml-packet-top{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;font-weight:700}.ml-packet-meta{margin-top:.15rem;font-size:.75rem;color:var(--gray-400)}.ml-inspector{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;background:#0f172a;color:#e2e8f0;border-radius:var(--radius-md);padding:.65rem .75rem;min-height:22rem;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:36rem}.ml-inspector .ml-crc-bad{color:#fda29b}.ml-inspector .ml-crc-ok{color:#6ee7b7}.ml-image-preview{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--gray-200);background:#1a120e}.ml-image-preview img{width:100%;height:100%;object-fit:cover;image-rendering:auto;display:block}.ml-image-caption{position:absolute;left:.5rem;right:.5rem;bottom:.5rem;padding:.25rem .45rem;border-radius:var(--radius-md);background:#0f172abf;color:#e2e8f0;font-size:.72rem;font-weight:600}.ml-image-blocks{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);pointer-events:none}.ml-image-blocks .pending{background:#0b1220}.ml-image-blocks .bad{background:repeating-linear-gradient(45deg,#0000008c,#0000008c 4px,#f8717173 4px,#f8717173 8px)}.ml-chart{width:100%;height:160px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:#fafbfe}.ml-chart text{fill:var(--gray-400);font-size:10px}.ml-chart-empty{display:flex;align-items:center;justify-content:center;height:160px;color:var(--gray-400);font-size:.88rem;border:1px dashed var(--gray-200);border-radius:var(--radius-md)}.ml-log-table-wrap{max-height:180px;overflow:auto;border:1px solid var(--gray-200);border-radius:var(--radius-md)}.ml-log-table{width:100%;border-collapse:collapse;font-size:.75rem}.ml-log-table th,.ml-log-table td{padding:.35rem .45rem;border-bottom:1px solid var(--gray-100);text-align:right;white-space:nowrap}.ml-log-table th:first-child,.ml-log-table td:first-child{text-align:left}.ml-log-table th{position:sticky;top:0;background:#f8fafc;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:.02em;font-size:.68rem}.ml-log-table tr.is-bad td{color:#b42318;background:#fef3f2}.ml-hint{margin:0;font-size:.82rem;color:var(--gray-400)}.ml-mars-distance{min-width:12rem}.ml-mars-distance .ml-range-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--gray-400)}:root{--brand-navy: #1e3041;--egyptian-blue: #336cb3;--egyptian-blue-dark: #275896;--egyptian-blue-light: #4d7dbd;--pigment-green: #0ca427;--pigment-green-dark: #0a8a20;--smoke: #f5f6f7;--gray-100: #eceeef;--gray-200: #d8dbde;--gray-400: #7f8181;--onyx: #404040;--near-black: #1e3041;--white: #ffffff;--caution: #c47f00;--alarm: #c62828;--stale: #9aa0a6;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .06), 0 4px 12px rgba(0, 0, 0, .04);--font: "Titillium Web", system-ui, sans-serif;--mono: ui-monospace, "Cascadia Code", Consolas, monospace;--sidebar-width: 220px}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);font-size:16px;color:var(--onyx);background:var(--smoke);line-height:1.45}a{color:var(--egyptian-blue)}button,input,select{font:inherit}h1,h2,h3{color:var(--near-black);margin:0 0 .5rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell-body{display:flex;flex:1;min-height:0}.topbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--white);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:20}.topbar-logo{display:block;height:36px;width:auto;max-width:min(280px,55vw);object-fit:contain;object-position:left center;flex-shrink:0;border-radius:var(--radius-sm)}.topbar-brand{font-weight:700;font-size:1.1rem;color:var(--near-black);text-decoration:none;letter-spacing:.02em}.topbar-meta{color:var(--gray-400);font-size:.9rem}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:.75rem}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--white);border-right:1px solid var(--gray-200);padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.sidebar a{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--onyx);font-weight:600;font-size:.95rem;padding:.55rem .75rem;border-radius:var(--radius-md);white-space:nowrap}.sidebar a svg{flex-shrink:0;color:var(--gray-400)}.sidebar a:hover svg,.sidebar a.active svg{color:var(--egyptian-blue)}.sidebar a:hover{background:var(--gray-100)}.sidebar a.active{background:#eef0fb;color:var(--egyptian-blue)}.main{flex:1;padding:1.25rem;max-width:1100px;width:100%}.main.tool-main{max-width:none;padding:1.25rem 1.75rem 2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-md);padding:.65rem 1.1rem;font-weight:600;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--egyptian-blue);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--egyptian-blue-dark)}.btn-secondary{background:var(--gray-100);color:var(--near-black);border:1px solid var(--gray-200)}.btn-ghost{background:transparent;color:var(--egyptian-blue)}.btn-sm{padding:.45rem .75rem;font-size:.88rem}.panel-links{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:auto}.panel-links .btn{max-width:100%}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.25rem}.panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1.25rem}.panel-placeholder{min-height:160px;display:flex;flex-direction:column;gap:.5rem;scroll-margin-top:5rem}.panel-placeholder h3{margin:0;font-size:1.05rem}.panel-placeholder p{margin:0;color:var(--gray-400);font-size:.92rem}.panel-head{display:flex;align-items:center;gap:.6rem}.panel-head h2,.panel-head h3{margin:0}.panel-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);background:#eef0fb;color:var(--egyptian-blue);flex-shrink:0}.section-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.section-head h2{margin:0;font-size:1.2rem}.tools-section{margin-top:1.75rem;scroll-margin-top:5rem}.tool-card{scroll-margin-top:5rem}.tool-blurb{color:var(--gray-400);font-size:.92rem;margin:.5rem 0 1.25rem}.tool-link-card{display:flex;flex-direction:column;gap:.5rem;min-height:160px;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.tool-link-card:hover,.tool-link-card:focus-visible{border-color:var(--egyptian-blue);box-shadow:0 2px 6px #1e304114,0 10px 24px #1e304114;transform:translateY(-2px)}.tool-link-card h3{margin:0;font-size:1.05rem}.tool-link-card p{margin:0;color:var(--gray-400);font-size:.92rem}.tool-link-cta{margin-top:auto;font-weight:600;font-size:.9rem;color:var(--egyptian-blue)}.back-link{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .85rem;margin:0 0 1rem -.85rem;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;text-decoration:none;color:var(--egyptian-blue)}.back-link:hover{background:#eef0fb;text-decoration:none}.tool-page-head{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;max-width:56rem}.tool-main .tool-card{width:100%}.tool-main .tool-card-wide{max-width:none;padding:1rem 1.1rem 1.25rem}.tool-main:has(.tool-card-wide) .tool-page-head{max-width:none}.tool-page-head h1{margin:0}.panel-icon-lg{width:2.5rem;height:2.5rem}.tool-page-blurb{margin:.25rem 0 0;color:var(--gray-400);font-size:.95rem}.skeleton-bar{height:.65rem;border-radius:999px;background:linear-gradient(90deg,var(--gray-100),var(--gray-200),var(--gray-100));background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;margin-top:auto}.skeleton-bar.w-60{width:60%}.skeleton-bar.w-80{width:80%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.form-input{width:100%;padding:.75rem .9rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--white);font-family:var(--mono);letter-spacing:.06em}.form-input:focus{outline:2px solid var(--egyptian-blue);outline-offset:2px}.form-error{color:var(--alarm);font-size:.9rem;margin-top:.5rem}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--gray-400);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 720px){.app-shell-body{flex-direction:column}.sidebar{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--gray-200)}.topbar{flex-wrap:wrap}.topbar-actions{width:100%;margin-left:0}}
