:root{
  --bg:#f4f7fb;--surface:#fff;--surface2:#eef3f8;--text:#15202b;--muted:#667587;--line:#dce5ee;
  --accent:#0c6cf2;--accent2:#eaf2ff;--good:#0c8b5b;--danger:#be3a3a;--shadow:0 14px 40px rgba(26,45,76,.08);
  --radius:18px;
}
:root[data-theme="dark"]{
  --bg:#0f141a;--surface:#171e26;--surface2:#202934;--text:#eef4fa;--muted:#94a5b7;--line:#2c3947;
  --accent:#6aa8ff;--accent2:#1c2e48;--good:#58d6a3;--danger:#ff7979;--shadow:0 18px 50px rgba(0,0,0,.28);
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0;min-height:100vh;background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(16px,4vw,46px);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center}.brand-mark{width:38px;height:38px;border-radius:11px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800}.brand span:last-child{display:flex;flex-direction:column}.brand small{color:var(--muted);font-size:11px}.topbar nav{display:flex;align-items:center;gap:16px}.topbar nav a{font-size:14px;color:var(--muted)}.topbar nav a:hover{color:var(--text)}.icon-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);width:38px;height:38px;border-radius:12px}.hero{max-width:1500px;margin:0 auto;padding:56px clamp(16px,4vw,46px) 28px;display:flex;gap:30px;align-items:flex-end;justify-content:space-between}.hero.compact{padding-top:34px}.hero h1,.detail-hero h1{font-size:clamp(32px,5vw,64px);line-height:.98;margin:7px 0 12px;letter-spacing:-.04em}.hero p,.detail-hero p{color:var(--muted);max-width:780px}.eyebrow{font-size:11px!important;font-weight:800;letter-spacing:.16em;color:var(--accent)!important;margin:0}.hero-stat{display:flex;flex-direction:column;align-items:flex-end}.hero-stat strong{font-size:46px}.hero-stat span{color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.catalog-layout{max-width:1500px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 60px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px}.filters{padding:20px;align-self:start;position:sticky;top:76px}.filters label,.import-form label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:14px}.filters input,.filters select,.import-form input,.import-form select{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--surface2);color:var(--text);font-size:15px;outline:none}.filters input:focus,.filters select:focus,.import-form input:focus,.import-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.two-col,.angle-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filters h3{font-size:13px;margin:18px 0 10px}.primary,.secondary,.ghost,.danger{border:0;border-radius:12px;padding:10px 14px;font-weight:800}.primary{background:var(--accent);color:#fff}.secondary{background:var(--surface);color:var(--text);border:1px solid var(--line)}.ghost{background:transparent;color:var(--muted)}.danger{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent)}.full{width:100%;display:block}.center{text-align:center}.toolbar{display:flex;align-items:center;justify-content:space-between;margin:3px 0 14px}.toolbar div{color:var(--muted)}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.scope-card{padding:20px;display:flex;flex-direction:column;gap:17px}.scope-head{position:relative}.compare-check{position:absolute;right:0;top:0;font-size:11px;color:var(--muted)}.manufacturer{font-size:11px;font-weight:900;letter-spacing:.11em;color:var(--accent)}.scope-head h2{font-size:28px;margin:5px 0 2px;letter-spacing:-.03em}.scope-head p{margin:0;color:var(--muted);font-size:13px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric-row>div{background:var(--surface2);padding:12px;border-radius:12px;display:flex;flex-direction:column}.metric-row strong{font-size:21px}.metric-row span{font-size:10px;color:var(--muted)}.mini-angle{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;color:var(--muted);font-size:13px}.mini-angle .lr{display:flex;justify-content:center;gap:12px;align-items:center;margin:5px 0}.mini-angle .dot{font-size:9px;color:var(--accent)}.chips{display:flex;gap:6px;flex-wrap:wrap;min-height:24px}.chips span,.pill,.verified{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;background:var(--accent2);color:var(--accent)}.verified{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}.detail-hero{max-width:1500px;margin:0 auto;padding:32px clamp(16px,4vw,46px) 20px}.breadcrumbs{font-size:12px;color:var(--muted)}.detail-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.key-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}.key-metrics>div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column}.key-metrics strong{font-size:32px}.key-metrics span{font-size:11px;color:var(--muted)}.source-dot{display:inline-grid;width:18px;height:18px;place-items:center;border-radius:50%;font-size:10px;background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good);vertical-align:middle}.detail-grid{max-width:1500px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 60px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-grid>.card{padding:22px}.full-span{grid-column:1/-1}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section-head h2{margin:4px 0 0;font-size:22px}.angle-cross.large{display:grid;grid-template-rows:auto 1fr auto;min-height:290px;place-items:center;padding:28px}.angle-cross .au,.angle-cross .ad{font-size:18px}.angle-cross .am{width:100%;display:grid;grid-template-columns:1fr 64px 1fr;align-items:center;text-align:center;font-size:18px}.axis-dot{width:38px;height:38px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 12px var(--accent2);justify-self:center}.distal-schematic{display:grid;place-items:center;padding:26px}.scope-tip{width:min(310px,75vw);aspect-ratio:1;border-radius:50%;background:linear-gradient(145deg,#1d252e,#44515f);position:relative;box-shadow:inset 0 0 0 9px #0c1117,0 18px 40px rgba(0,0,0,.2)}.port{position:absolute;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:900;color:#fff;border:3px solid rgba(255,255,255,.22);background:#171b20}.objective{width:30%;height:30%;left:15%;top:22%;background:radial-gradient(circle at 35% 30%,#7bc8ff,#263c67 52%,#111)}.light{width:18%;height:18%;background:radial-gradient(circle,#f5e8a7,#9c7b22 60%,#292111)}.light.a{right:15%;top:16%}.light.b{left:16%;bottom:15%}.channel{width:28%;height:28%;right:14%;bottom:14%;background:#080b0e}.nozzle{width:17%;height:17%;left:42%;top:48%;border-radius:40%}.jet{width:11%;height:11%;right:28%;top:42%;background:#275d8c}.muted{color:var(--muted)}.small{font-size:11px}.spec-table{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.spec-table>div{display:flex;justify-content:space-between;gap:24px;padding:13px 0;border-bottom:1px solid var(--line)}.spec-table span{color:var(--muted);font-size:13px}.spec-table b{text-align:right;font-size:13px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:14px}.feature-list>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.feature-list .yes{color:var(--good)}.feature-list .unknown{color:var(--muted)}.compat{display:grid;grid-template-columns:130px 1fr;gap:12px;margin-top:14px}.compat span{color:var(--muted)}.note{background:var(--surface2);border-radius:12px;padding:12px;font-size:12px}.source-list{display:grid;gap:8px;margin-top:14px}.source-list>a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px;border-radius:12px;background:var(--surface2)}.source-list a div{display:flex;flex-direction:column}.source-list span{font-size:11px;color:var(--muted)}.source-list strong{font-size:12px;color:var(--good)}.compare-wrap{max-width:1500px;margin:0 auto 60px;padding:20px;overflow:auto}.compare-table{width:100%;border-collapse:collapse;min-width:740px}.compare-table th,.compare-table td{padding:13px;border-bottom:1px solid var(--line);text-align:left}.compare-table th{font-size:12px;color:var(--muted)}.compare-table td:first-child{color:var(--muted)}.admin-grid{max-width:1500px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 60px;display:grid;grid-template-columns:360px 1fr;gap:18px}.admin-grid>.card{padding:20px}.candidate-list{display:grid;gap:10px}.candidate{display:flex;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:14px}.candidate.accepted{opacity:.6}.candidate.rejected{opacity:.45}.candidate-main{display:flex;flex-direction:column;gap:5px}.candidate-main>span{font-size:12px;color:var(--muted)}.candidate-main>a{font-size:11px;color:var(--accent)}.change{display:flex;align-items:center;gap:8px}.change code{padding:4px 6px;border-radius:7px;background:var(--surface2)}.candidate-actions{display:flex;gap:7px;align-items:center}.candidate-actions form{margin:0}.status{font-size:11px;color:var(--muted);text-transform:uppercase}
@media(max-width:1100px){.scope-grid{grid-template-columns:repeat(2,1fr)}.catalog-layout{grid-template-columns:260px 1fr}.key-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar nav a{display:none}.hero,.detail-title{align-items:flex-start;flex-direction:column}.hero-stat{align-items:flex-start}.catalog-layout,.admin-grid{grid-template-columns:1fr}.filters{position:static}.scope-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.full-span{grid-column:auto}.key-metrics{grid-template-columns:1fr 1fr}.spec-table{grid-template-columns:1fr}.angle-cross.large{min-height:230px;padding:20px 5px}.angle-cross .am{grid-template-columns:1fr 44px 1fr;font-size:15px}.axis-dot{width:26px;height:26px;box-shadow:0 0 0 8px var(--accent2)}.candidate{flex-direction:column}.candidate-actions{justify-content:flex-start}.topbar{padding:10px 14px}.brand small{display:none}.hero,.detail-hero{padding-left:16px;padding-right:16px}.catalog-layout,.detail-grid,.admin-grid{padding-left:16px;padding-right:16px}.key-metrics strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v4 — simple card editor */
.nav-secondary{opacity:.68}.admin-hero,.form-hero{align-items:center}.big-action{padding:14px 18px;font-size:15px}.admin-cards-wrap{max-width:1500px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 64px}.admin-list-toolbar{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.admin-list-toolbar form{display:flex;gap:8px;flex:1;max-width:720px}.admin-list-toolbar input,.scope-editor input,.scope-editor select,.scope-editor textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--surface2);color:var(--text);font:inherit;outline:none}.admin-list-toolbar input{min-width:220px}.admin-list-toolbar input:focus,.scope-editor input:focus,.scope-editor select:focus,.scope-editor textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.admin-count{display:flex;align-items:baseline;gap:7px}.admin-count strong{font-size:24px}.admin-count span{font-size:12px;color:var(--muted)}.admin-card-list{display:grid;gap:10px}.admin-model-row{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(360px,1.5fr) auto;gap:18px;align-items:center;padding:16px 18px}.admin-model-main h2{margin:3px 0 1px;font-size:23px}.admin-model-main p{margin:0;color:var(--muted);font-size:12px}.admin-model-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-model-metrics span{padding:9px 10px;background:var(--surface2);border-radius:10px;font-size:11px;color:var(--muted)}.admin-model-metrics b{color:var(--text);font-size:14px}.admin-model-metrics .angles-inline{white-space:nowrap;color:var(--text);font-weight:700}.admin-model-actions{display:flex;gap:8px}.empty-state{padding:36px;text-align:center}.scope-editor{max-width:1320px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 28px;display:grid;gap:14px}.editor-section{padding:22px}.editor-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.editor-title>span{width:34px;height:34px;border-radius:11px;background:var(--accent2);color:var(--accent);font-size:12px;font-weight:900;display:grid;place-items:center;flex:0 0 auto}.editor-title h2{margin:1px 0 2px;font-size:20px}.editor-title p{margin:0;color:var(--muted);font-size:12px}.form-grid{display:grid;gap:13px}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.scope-editor label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:750}.scope-editor textarea{resize:vertical;min-height:72px}.span-2{grid-column:1/-1}.new-manufacturer{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.new-manufacturer summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:800;margin-bottom:12px}.angle-editor-section{overflow:hidden}.angle-entry{display:grid;grid-template-columns:1fr 120px 1fr;grid-template-rows:auto 90px auto;grid-template-areas:". up ." "left center right" ". down .";gap:10px;align-items:center;max-width:670px;margin:8px auto}.angle-entry label{position:relative;background:var(--surface2);border:1px solid var(--line);padding:13px;border-radius:14px}.angle-entry label span{font-size:11px;color:var(--muted);font-weight:900}.angle-entry input{font-size:22px;font-weight:850;text-align:center;padding-right:28px}.angle-entry em{position:absolute;right:23px;bottom:22px;font-style:normal;color:var(--muted)}.angle-up{grid-area:up}.angle-down{grid-area:down}.angle-left{grid-area:left}.angle-right{grid-area:right}.angle-center{grid-area:center;width:64px;height:64px;justify-self:center;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:900;box-shadow:0 0 0 12px var(--accent2)}.feature-editor select{font-weight:700}.source-editor{border-style:dashed}.editor-actions{position:sticky;bottom:12px;z-index:4;display:flex;justify-content:flex-end;gap:10px;padding:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.save-big{padding:12px 20px}.form-alert{max-width:1320px;margin:-6px auto 14px;padding:12px 18px;border-radius:13px;background:color-mix(in srgb,#d98b00 12%,var(--surface));border:1px solid color-mix(in srgb,#d98b00 35%,var(--line));font-size:13px}.danger-zone{max-width:1320px;margin:0 auto 60px;padding:18px clamp(16px,4vw,24px);display:flex;justify-content:space-between;align-items:center;gap:20px}.danger-zone h3{margin:0 0 3px}.danger-zone p{margin:0;color:var(--muted);font-size:12px}.distal-real-image{display:block;max-width:420px;width:100%}.distal-real-image img{display:block;width:100%;max-height:340px;object-fit:contain;border-radius:16px;background:var(--surface2)}
@media(max-width:1050px){.admin-model-row{grid-template-columns:1fr auto}.admin-model-metrics{grid-column:1/-1;grid-row:2}.form-grid.cols-4{grid-template-columns:repeat(2,1fr)}.form-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.admin-list-toolbar{align-items:stretch;flex-direction:column}.admin-list-toolbar form{max-width:none}.admin-model-row{grid-template-columns:1fr}.admin-model-metrics{grid-column:auto;grid-row:auto;grid-template-columns:1fr 1fr}.admin-model-actions{width:100%}.admin-model-actions a{flex:1;text-align:center}.form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}.span-2{grid-column:auto}.angle-entry{grid-template-columns:1fr 64px 1fr;grid-template-rows:auto 80px auto}.angle-entry input{font-size:18px}.angle-center{width:48px;height:48px;box-shadow:0 0 0 8px var(--accent2)}.editor-actions{bottom:6px}.danger-zone{margin-left:16px;margin-right:16px;flex-direction:column;align-items:flex-start}}
@media(max-width:760px){.topbar nav a{display:inline-flex!important;font-size:12px}.topbar nav .nav-secondary{display:none!important}.topbar nav{gap:9px}.brand b{font-size:13px}}
.toolbar-actions{display:flex;gap:8px;align-items:center}
@media(max-width:520px){.toolbar{align-items:flex-start;gap:10px}.toolbar-actions{flex-direction:column;align-items:stretch}.toolbar-actions a,.toolbar-actions button{text-align:center}}

/* Distal end editor */
.hero-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.form-alert.success{background:color-mix(in srgb,#1aa36f 12%,var(--surface));border-color:color-mix(in srgb,#1aa36f 38%,var(--line));color:var(--text)}
.distal-editor-page{max-width:1500px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 60px;display:grid;gap:14px}.distal-source-panel{padding:22px}.distal-source-panel .checkbox-line{display:flex;align-items:center;gap:9px;align-self:end;padding:12px 13px;background:var(--surface2);border:1px solid var(--line);border-radius:12px}.distal-source-panel .checkbox-line input{width:auto;margin:0}.distal-workspace{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(480px,1.65fr) minmax(240px,.8fr);gap:14px;align-items:start}.distal-toolbox,.distal-canvas-card,.distal-properties,.distal-list-card{padding:20px}.distal-add-grid{display:grid;gap:8px}.distal-add-btn{border:1px solid var(--line);background:var(--surface2);color:var(--text);padding:10px 11px;border-radius:11px;text-align:left;font-size:12px;font-weight:780;transition:.14s ease}.distal-add-btn:hover{border-color:var(--accent);transform:translateY(-1px)}.distal-help{display:grid;gap:5px;margin-top:15px;padding:12px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:11px}.distal-help b{color:var(--text)}.distal-canvas-actions{display:flex;gap:7px;flex-wrap:wrap}.distal-canvas-actions button{font-size:11px;padding:8px 10px}
.distal-editor-stage{position:relative;overflow:hidden;width:100%;aspect-ratio:1/1;border-radius:22px;border:1px solid var(--line);background:radial-gradient(circle at 38% 32%,color-mix(in srgb,var(--surface2) 70%,#fff),var(--surface2));touch-action:none;user-select:none}.distal-editor-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--surface2)}.distal-editor-stage.has-image{background:var(--surface2)}.distal-fallback{position:absolute;inset:0;display:grid;place-items:center}.distal-face-ring{width:76%;height:76%;border-radius:50%;border:10px solid color-mix(in srgb,var(--text) 16%,var(--surface2));box-shadow:inset 0 0 0 2px var(--line),0 18px 60px color-mix(in srgb,#000 10%,transparent);background:radial-gradient(circle at 42% 35%,color-mix(in srgb,var(--surface) 92%,#fff),var(--surface2));display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.12em;text-align:center}.distal-marker-layer{position:absolute;inset:0}.distal-edit-marker{position:absolute;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 5px 18px color-mix(in srgb,#000 25%,transparent);display:grid;place-items:center;color:#fff;font-weight:900;z-index:2;cursor:grab;transition:box-shadow .12s ease,transform .12s ease}.distal-edit-marker:active{cursor:grabbing}.distal-edit-marker.selected{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 28%,transparent),0 7px 20px color-mix(in srgb,#000 28%,transparent);transform:scale(1.09);z-index:5}.distal-edit-marker span{font-size:10px;pointer-events:none}.distal-edit-marker em{position:absolute;right:-6px;top:-6px;width:20px;height:20px;border-radius:50%;background:var(--text);color:var(--surface);font-size:10px;font-style:normal;display:grid;place-items:center;border:2px solid var(--surface);pointer-events:none}.type-objective{background:#3559e0!important}.type-light_guide{background:#da8a00!important}.type-working_channel{background:#169468!important}.type-air_water{background:#00a0b5!important}.type-water_jet{background:#7356cf!important}.type-aux_water{background:#b04ca2!important}.type-suction{background:#5e6877!important}.type-other{background:#7c4e42!important}
.marker-properties{display:grid;gap:11px}.marker-properties.disabled{opacity:.44}.marker-properties label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:750}.marker-properties textarea{resize:vertical}.marker-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}.marker-coords span{padding:10px;border-radius:10px;background:var(--surface2);color:var(--muted);font-size:11px}.marker-coords b{float:right;color:var(--text)}.distal-list-card{margin-top:0}.distal-editor-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.distal-legend-row{display:grid;grid-template-columns:24px 35px 1fr;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface2);padding:9px;border-radius:12px;color:var(--text);text-align:left}.distal-legend-row.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent2)}.legend-num{width:22px;height:22px;border-radius:50%;background:var(--text);color:var(--surface);font-size:10px;font-weight:900;display:grid;place-items:center}.legend-type{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:9px;font-weight:900}.distal-legend-row b{display:block;font-size:12px}.distal-legend-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.empty-inline{padding:18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.distal-savebar{position:sticky;bottom:10px}
.distal-editor-link-card{border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}.distal-editor-link-row{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:center}.distal-editor-link-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.mini-distal-preview{width:76px;height:76px;border-radius:18px;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.mini-distal-preview img{width:100%;height:100%;object-fit:cover}.mini-distal-circle{width:55px;height:55px;border-radius:50%;border:5px solid color-mix(in srgb,var(--text) 20%,transparent);display:grid;place-items:center;color:var(--muted);font-size:10px;font-weight:900}
.section-actions{display:flex;gap:8px;align-items:center}.tiny-link{font-size:11px;color:var(--accent);font-weight:800}.distal-viewer{display:grid;gap:12px}.distal-viewer-stage{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:18px;background:var(--surface2);border:1px solid var(--line)}.distal-viewer-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.distal-viewer-fallback{position:absolute;inset:0;display:grid;place-items:center}.distal-viewer-fallback:before{content:"";width:72%;height:72%;border-radius:50%;border:9px solid color-mix(in srgb,var(--text) 17%,transparent);background:radial-gradient(circle at 40% 35%,var(--surface),var(--surface2))}.distal-viewer-fallback span{position:absolute;font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.12em}.distal-hotspot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.28);color:#fff;padding:0;z-index:2}.distal-hotspot span{font-size:9px;font-weight:900}.distal-public-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.distal-public-legend>div{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;padding:8px;background:var(--surface2);border-radius:10px}.distal-public-legend b{display:block;font-size:11px}.distal-public-legend small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.distal-empty-note{padding:12px;border:1px dashed var(--line);border-radius:11px;display:grid;gap:3px}.distal-empty-note b{font-size:12px}.distal-empty-note span{color:var(--muted);font-size:11px}.scope-editor label small{color:var(--muted);font-weight:500;font-size:10px;line-height:1.35}

@media(max-width:1100px){.distal-workspace{grid-template-columns:220px 1fr}.distal-properties{grid-column:1/-1}.distal-editor-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.hero-actions{width:100%}.hero-actions a{flex:1;text-align:center}.distal-workspace{grid-template-columns:1fr}.distal-toolbox,.distal-canvas-card,.distal-properties,.distal-list-card{padding:15px}.distal-editor-legend{grid-template-columns:1fr}.distal-editor-link-row{grid-template-columns:64px 1fr}.distal-editor-link-row>a{grid-column:1/-1;text-align:center}.mini-distal-preview{width:60px;height:60px}.distal-public-legend{grid-template-columns:1fr}.distal-edit-marker{width:42px;height:42px;margin:-21px 0 0 -21px}.distal-source-panel .form-grid.cols-2{grid-template-columns:1fr}}

/* v7: distal dimensions + orientation axes */
.distal-axis-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.distal-axis{position:absolute;opacity:.78}.distal-axis.axis-v{left:50%;top:5%;bottom:5%;border-left:1.5px dashed color-mix(in srgb,var(--text) 56%,transparent)}.distal-axis.axis-h{top:50%;left:5%;right:5%;border-top:1.5px dashed color-mix(in srgb,var(--text) 56%,transparent)}.axis-label{position:absolute;padding:4px 7px;border-radius:8px;background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid color-mix(in srgb,var(--line) 85%,transparent);font-size:9px;font-weight:900;letter-spacing:.06em;color:var(--text);white-space:nowrap}.axis-up{top:7px;left:50%;transform:translateX(-50%)}.axis-down{bottom:7px;left:50%;transform:translateX(-50%)}.axis-left{left:7px;top:50%;transform:translateY(-50%)}.axis-right{right:7px;top:50%;transform:translateY(-50%)}.distal-dimension-line{position:absolute;left:17%;right:17%;bottom:11%;height:24px;display:flex;align-items:center;justify-content:center;border-top:2px solid color-mix(in srgb,var(--accent) 70%,var(--text));opacity:.7}.distal-dimension-line>i{position:absolute;top:-6px;width:2px;height:12px;background:color-mix(in srgb,var(--accent) 75%,var(--text))}.distal-dimension-line>i:first-child{left:0}.distal-dimension-line>i:last-child{right:0}.distal-dimension-line>span{margin-top:-23px;padding:3px 8px;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-size:11px;font-weight:900;color:var(--text)}.distal-dimension-line.has-value{opacity:1}.distal-marker-layer{z-index:3}.public-axis{z-index:1}.distal-hotspot{z-index:4}.distal-editor-stage>img,.distal-viewer-stage>img{z-index:0}.distal-fallback,.distal-viewer-fallback{z-index:0}

/* v7: technical editor links */
.technical-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.technical-editor-tile{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:17px;border-radius:15px;border:1px solid var(--line);background:var(--surface2);color:var(--text);text-decoration:none;transition:.15s ease}.technical-editor-tile:hover{border-color:var(--accent);transform:translateY(-1px)}.technical-editor-tile p{margin:3px 0 0;color:var(--muted);font-size:11px}.technical-editor-tile strong{font-size:11px;color:var(--accent)}.editor-icon{width:50px;height:50px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;font-size:22px}.page-back-row{display:flex;margin-top:14px}

/* v7: service diagram list/editor */
.diagram-list-wrap{max-width:1380px}.diagram-admin-grid{display:grid;gap:10px}.diagram-admin-card{display:grid;grid-template-columns:100px 1fr auto;gap:16px;align-items:center;padding:15px}.diagram-thumb{width:100px;height:78px;border-radius:12px;background:var(--surface2);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center;font-size:28px;color:var(--muted)}.diagram-thumb img{width:100%;height:100%;object-fit:cover}.diagram-admin-main h2{font-size:17px;margin:5px 0 2px}.diagram-admin-main p{font-size:11px;color:var(--muted);margin:0}.diagram-type-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--accent2);color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.05em}.diagram-editor-page{max-width:1580px;margin:0 auto;padding:0 clamp(16px,4vw,46px) 60px;display:grid;gap:14px}.diagram-meta-panel{padding:20px}.diagram-meta-panel .checkbox-line{display:flex;align-items:center;gap:8px;padding:12px;background:var(--surface2);border:1px solid var(--line);border-radius:12px}.diagram-meta-panel .checkbox-line input{width:auto}.diagram-workspace{display:grid;grid-template-columns:210px minmax(520px,1fr) 250px;gap:14px;align-items:start}.diagram-tools,.diagram-canvas-card,.diagram-properties{padding:18px}.diagram-tools h2,.diagram-properties h2{font-size:16px;margin:0 0 12px}.diagram-tools h3{font-size:12px;margin:12px 0 8px}.diagram-tools hr{border:0;border-top:1px solid var(--line);margin:14px 0}.diagram-tool-grid{display:grid;grid-template-columns:1fr;gap:7px}.diagram-tool{padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);color:var(--text);text-align:left;font-size:11px;font-weight:800}.diagram-tool.active{border-color:var(--accent);background:var(--accent2);color:var(--accent)}.matrix-grid-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.matrix-grid-controls label{font-size:10px;color:var(--muted)}.matrix-grid-controls input{margin-top:5px}.diagram-stage{position:relative;width:100%;aspect-ratio:10/7;overflow:hidden;border-radius:16px;border:1px solid var(--line);background-image:linear-gradient(color-mix(in srgb,var(--line) 40%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 40%,transparent) 1px,transparent 1px);background-size:25px 25px;background-color:var(--surface2);touch-action:none;user-select:none}.diagram-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:0;pointer-events:none}.diagram-stage>svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;cursor:crosshair}.diagram-stage[data-tool="select"]>svg{cursor:default}.de-shape{pointer-events:stroke}.de-contact{fill:color-mix(in srgb,var(--accent) 38%,var(--surface));stroke:var(--accent);stroke-width:4;pointer-events:all}.de-stroke{fill:none;stroke:var(--text);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.de-text{fill:var(--text);font-weight:800;pointer-events:all}.de-contact-text{fill:var(--text);font-size:16px;font-weight:950;pointer-events:none}.de-shape.selected{stroke:var(--accent)!important;stroke-width:6!important;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 60%,transparent))}.shape-props{display:grid;gap:9px}.shape-props label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:750}.diagram-properties .marker-coords{margin-top:12px}.diagram-editor-page .distal-savebar{position:sticky;bottom:8px}

/* public service diagrams */
.diagram-public-section{overflow:hidden}.public-diagram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-diagram-card{border:1px solid var(--line);background:var(--surface2);border-radius:15px;padding:12px}.diagram-card-head h3{font-size:14px;margin:5px 0 10px}.public-diagram-stage{position:relative;width:100%;aspect-ratio:10/7;border-radius:12px;overflow:hidden;background:var(--surface);border:1px solid var(--line);background-image:linear-gradient(color-mix(in srgb,var(--line) 28%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 28%,transparent) 1px,transparent 1px);background-size:24px 24px}.public-diagram-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.public-diagram-stage svg{position:absolute;inset:0;width:100%;height:100%}.pd-contact{fill:color-mix(in srgb,var(--accent) 32%,var(--surface));stroke:var(--accent);stroke-width:4}.pd-stroke{fill:none;stroke:var(--text);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.pd-text{fill:var(--text);font-weight:800}.pd-contact-text{font-size:15px;font-weight:950}

@media(max-width:1120px){.diagram-workspace{grid-template-columns:190px 1fr}.diagram-properties{grid-column:1/-1}.technical-editor-grid{grid-template-columns:1fr}.public-diagram-grid{grid-template-columns:1fr}}
@media(max-width:760px){.diagram-admin-card{grid-template-columns:70px 1fr}.diagram-thumb{width:70px;height:60px}.diagram-admin-card .admin-model-actions{grid-column:1/-1}.diagram-workspace{grid-template-columns:1fr}.diagram-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.diagram-tools,.diagram-canvas-card,.diagram-properties{padding:14px}.technical-editor-tile{grid-template-columns:46px 1fr}.technical-editor-tile strong{grid-column:1/-1}.editor-icon{width:44px;height:44px}.axis-label{font-size:7px;padding:3px 5px}.distal-dimension-line{left:20%;right:20%;bottom:13%}}
.de-contact-group{pointer-events:all}.de-contact-group.selected .de-contact{stroke:var(--accent)!important;stroke-width:7;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 60%,transparent))}
.distal-edit-marker.scaled{margin:0;transform:translate(-50%,-50%);min-width:26px;min-height:26px;max-width:38%;max-height:38%;aspect-ratio:1/1}.distal-edit-marker.scaled.selected{transform:translate(-50%,-50%) scale(1.06)}.distal-hotspot.scaled{margin:0;transform:translate(-50%,-50%);min-width:20px;min-height:20px;max-width:38%;max-height:38%;aspect-ratio:1/1}.distal-hotspot.scaled span{font-size:9px}
