:root{--ink: #1d2430;--muted: #6b7686;--line: #dfe4ea;--bg: #eef1f5;--card: #ffffff;--accent: #1f6f78;--accent-ink: #ffffff;--danger: #b42318;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg)}button{font:inherit;cursor:pointer}.muted{color:var(--muted);font-weight:400}.gate{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#d9e6ea,var(--bg))}.gate-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:32px 28px;box-shadow:0 10px 30px #141e3214;display:flex;flex-direction:column}.gate-icon{font-size:30px;color:var(--accent);line-height:1}.gate-card h1{font-size:20px;margin:10px 0 4px}.gate-card p{margin:0 0 20px;font-size:14px}.gate-card label{font-size:13px;font-weight:600;margin-bottom:6px}.gate-card input{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;outline:none}.gate-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f6f7826}.gate-card button{margin-top:16px;padding:10px 12px;border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:600}.gate-card button:disabled{opacity:.55;cursor:default}.error{color:var(--danger);font-size:13px;margin-top:10px}.viewer{position:fixed;top:0;right:0;bottom:0;left:0}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);font-size:14px}.ghost{background:transparent;border:1px solid var(--line);border-radius:6px;padding:5px 10px}.hover-tag{position:absolute;left:16px;bottom:16px;background:#1d2430d9;color:#fff;padding:6px 10px;border-radius:6px;font-size:13px;pointer-events:none}.panel{position:absolute;top:56px;left:12px;width:290px;max-height:calc(100% - 72px);overflow:auto;background:#fffffff0;border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 20px #141e3214;font-size:13px}.panel section{padding:12px 14px;border-bottom:1px solid var(--line)}.panel section:last-child{border-bottom:0}.panel h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.row{display:flex;gap:6px}.row button,.seg button{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}.row button:hover,.seg button:hover{border-color:#b9c2ce}.field{display:block;margin-top:10px;font-weight:600}.field input[type=range]{width:100%;margin-top:6px;accent-color:var(--accent)}.seg{display:flex;gap:4px;margin-top:6px}.seg button{text-transform:capitalize;font-weight:400}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}.hint{color:var(--muted);margin:10px 0 0;line-height:1.4}.info .sel-name{font-weight:600;margin-bottom:6px}.info dl{display:grid;grid-template-columns:70px 1fr;gap:3px 8px;margin:0}.info dt{color:var(--muted)}.info dd{margin:0}.parts ul{list-style:none;margin:0;padding:0}.parts li{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:6px}.parts li.active{background:#fff3d6}.parts input{accent-color:var(--accent)}.link{background:none;border:0;padding:0;text-align:left;color:var(--ink)}.link:hover{color:var(--accent)}.no{display:inline-block;min-width:36px;color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width: 640px){.panel{left:8px;right:8px;width:auto;top:auto;bottom:8px;max-height:45%}.topbar .muted{display:none}}.topbar .title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar{gap:12px}.seg.modes{margin:0;flex:0 0 auto}.seg.modes button{padding:5px 12px}.mode-measure canvas{cursor:crosshair}.small{font-size:12px}.ghost.small{padding:3px 8px;font-size:12px}.ghost:disabled{opacity:.4;cursor:default}.measure-card{position:absolute;right:12px;top:56px;width:300px;max-height:calc(100% - 220px);overflow:auto;background:#fffffff5;border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 6px 20px #141e3214;font-size:13px}.mc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.measure-card p{margin:4px 0;line-height:1.4}.pick{border-left:3px solid #e85d04;padding:4px 0 4px 8px;margin:8px 0}.pick-1{border-left-color:#118a7e}.pick-title{font-weight:600}.results{margin:10px 0 0;border-top:1px solid var(--line);padding-top:8px}.results .res{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.results dt{color:var(--muted)}.results dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.results .res.main dt{color:var(--ink);font-weight:600}.results .res.main dd{font-weight:700;color:var(--accent);font-size:15px}.warn{color:#9a6700;background:#fff8e1;border-radius:6px;padding:6px 8px}.dim-label{background:#1d2430;color:#fff;padding:3px 8px;border-radius:5px;font:600 12px/1.3 -apple-system,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 2px 6px #0003}.drawings{margin-top:10px}.drawings .primary{width:100%;padding:7px 10px;border:0;border-radius:6px;background:var(--accent);color:#fff;font-weight:600;margin-bottom:8px}.drawings .primary:disabled{opacity:.6}.dwg-list{list-style:none;margin:0;padding:0;max-height:180px;overflow:auto}.dwg-list li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dashed var(--line)}.dwg-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dwg-actions{display:flex;gap:8px;flex:0 0 auto}.dwg-actions .link{color:var(--accent);font-weight:600}.info .drawings .dwg-list{max-height:none}@media (max-width: 640px){.measure-card{left:8px;right:8px;width:auto;top:56px;max-height:40%}.seg.modes button{padding:5px 8px}}.check-all{display:flex;align-items:center;gap:6px;padding:4px 4px 8px;margin-bottom:4px;border-bottom:1px solid var(--line);font-weight:600;cursor:pointer}.check-all input{accent-color:var(--accent)}.tol-label{background:#fffffff0;border:1px solid currentColor;border-radius:4px;padding:0 4px;font:600 10px/1.3 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;white-space:nowrap;box-shadow:0 1px 3px #0000001f}.tol-dim{color:#1d2430}.tol-dia{color:#1f5fbf}.tol-note{color:#1b7f4b}.tol-gdt{color:#7a3db8}.tol-label.verify{border-color:#d97706;border-style:dashed;background:#fff7e6}.warn-ico{color:#d97706;margin-right:3px}.seg.modes button.tol-on{background:#7a3db8;border-color:#7a3db8;color:#fff}.tol-legend{position:absolute;left:12px;bottom:12px;max-width:330px;background:#fffffff5;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;box-shadow:0 6px 20px #141e3214}.tol-legend .keys{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.tol-legend p{margin:4px 0 0;line-height:1.4}.panel:not(:empty)~.tol-legend{left:314px}@media (max-width: 640px){.tol-legend{left:8px;right:8px;bottom:auto;top:56px;max-width:none}}.seg.modes button{white-space:nowrap}.gate-icon{margin-bottom:14px}
