html,body,#app{height:100%;margin:0}body{min-height:100vh;background:var(--background-color-default, #ffffff);color:var(--text-color-default, #1f2328);font-family:var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:var(--text-body-medium, 13px);display:flex;flex-direction:column}#app{display:flex;flex:1;min-height:0;flex-direction:column}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;border-bottom:1px solid var(--border-color-default, #d1d9e0);position:relative;z-index:20}.field{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.field.grow{flex:1 1 180px;min-width:140px}select{font:inherit;flex:1 1 auto;min-width:0;padding:5px 8px;border:1px solid var(--border-color-default, #d1d9e0);border-radius:6px;background:var(--background-color-default, #ffffff);color:var(--text-color-default, #1f2328)}option{background:var(--background-color-default, #ffffff);color:var(--text-color-default, #1f2328)}input[type=range]{flex:1 1 80px;min-width:70px}.tool-drawer{position:relative;margin-left:auto}.tool-drawer>summary,.meta-panel>summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.tool-drawer>summary::-webkit-details-marker,.meta-panel>summary::-webkit-details-marker{display:none}.tool-drawer>summary{min-height:28px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border-color-default, #d1d9e0);border-radius:6px;background:var(--background-color-default, #ffffff);font-size:12px;font-weight:600}.tool-drawer>summary:after{content:"▾";color:var(--text-color-muted, #57606a);font-size:10px;transition:transform .16s ease-out}.tool-drawer[open]>summary:after{transform:rotate(180deg)}.tool-drawer>summary:hover{border-color:var(--border-color-emphasis, #8c959f)}.tool-drawer>summary:focus-visible,.meta-panel>summary:focus-visible{outline:2px solid var(--color-focus-outline, #0969da);outline-offset:2px}.tool-drawer-panel{position:absolute;top:calc(100% + 7px);right:0;width:min(920px,calc(100vw - 24px));display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 12px;border:1px solid var(--border-color-default, #d1d9e0);border-radius:8px;background:var(--background-color-default, #ffffff);box-shadow:0 10px 28px #01040947}.group{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.group.grow-controls{flex:1 1 360px}.zoom-field{flex:1 1 170px}.group>.group-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-color-muted, #57606a);margin-right:2px}button{font:inherit;font-size:12px;padding:4px 8px;border:1px solid var(--border-color-default, #d1d9e0);border-radius:6px;background:var(--background-color-default, #ffffff);color:var(--text-color-default, #1f2328);cursor:pointer}button:hover{border-color:var(--border-color-emphasis, #8c959f)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--color-focus-outline, #0969da);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}.action-status{max-width:32ch;color:var(--text-color-muted, #57606a);white-space:normal;overflow-wrap:anywhere}.print-summary{display:flex;flex-wrap:wrap;align-items:center;gap:3px 22px;min-height:32px;padding:3px 12px;border-bottom:1px solid var(--border-color-default, #d1d9e0);background:var(--background-color-muted, rgba(175, 184, 193, .12))}.print-summary[hidden]{display:none}.print-card{min-width:0;display:flex;align-items:baseline;gap:5px}.print-card span{color:var(--text-color-muted, #57606a);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.print-card strong{overflow-wrap:anywhere;font-size:12px;color:var(--text-color-default, #1f2328)}.viewer-container{flex:1;min-height:0;padding:10px 12px;position:relative}#info{position:absolute;top:18px;left:20px;padding:8px 10px;border-radius:6px;background:#0d1117c7;color:#e6edf3;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);font-size:11px;line-height:1.5;pointer-events:none;white-space:pre}#info[hidden]{display:none}#measurePanel{position:absolute;top:18px;right:20px;max-width:260px;padding:8px 10px;border-radius:6px;background:#0d1117d9;color:#e6edf3;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);font-size:11px;line-height:1.55;white-space:pre-wrap;pointer-events:none}#measurePanel[hidden]{display:none}#view.measuring{cursor:crosshair}#view{display:block;width:100%;height:100%;border:1px solid var(--border-color-default, #d1d9e0);border-radius:6px;background:#0d1117;cursor:grab;touch-action:none}#view:active{cursor:grabbing}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px 24px;border-radius:10px;background:#0d1117e6;border:1px solid var(--border-color-default, #30363d);color:#e6edf3;font-size:13px;font-weight:500;box-shadow:0 10px 28px #01040973;pointer-events:none;z-index:15;-webkit-user-select:none;user-select:none}.loading-spinner[hidden]{display:none}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top-color:#58a6ff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.meta-panel{position:absolute;right:20px;bottom:18px;z-index:8;width:min(560px,calc(100% - 40px));max-height:min(42vh,360px);overflow:hidden;border:1px solid var(--border-color-default, #30363d);border-radius:4px;background:#0d1117f5;color:#e6edf3;box-shadow:0 10px 28px #0104096b}.meta-panel>summary{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px;font-size:12px;font-weight:600}.meta-panel>summary:after{content:"▾";color:#8c959f;font-size:10px;transition:transform .16s ease-out}.meta-panel[open]>summary:after{transform:rotate(180deg)}#meta{max-height:calc(min(42vh,360px) - 33px);overflow:auto;padding:8px 10px 10px;border-top:1px solid #30363d;font-size:12px;line-height:1.45;color:#b1bac4;display:flex;flex-wrap:wrap;gap:5px 14px}#meta strong{color:#e6edf3;font-weight:600}.plate-print-details{flex:1 0 100%;min-width:0;border-top:1px solid #30363d;padding-top:8px}.plate-print-details>summary{cursor:pointer;padding:4px 0;color:#e6edf3;font-weight:600}.plate-print-details>summary:focus-visible,.plate-table-scroll:focus-visible{outline:2px solid var(--color-focus-outline, #58a6ff);outline-offset:2px}.plate-table-scroll{max-width:100%;overflow-x:auto;margin-top:8px}.plate-print-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.plate-print-table caption{text-align:left;padding-bottom:8px;color:#b1bac4}.plate-print-table th,.plate-print-table td{padding:8px;border-bottom:1px solid #30363d;vertical-align:top}.plate-print-table th{color:#e6edf3}.plate-print-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.plate-print-table th[scope=row]{min-width:100px;overflow-wrap:anywhere}.plate-data-notice{flex:1 0 100%;margin:8px 0 0}.plate-support-preview{white-space:nowrap}.plate-support-actions{display:flex;flex-wrap:wrap;gap:6px}.project-image-dialog{width:min(96vw,1440px);max-width:96vw;max-height:94vh;padding:10px;border:1px solid #30363d;border-radius:10px;background:#0d1117;color:#e6edf3}.project-image-dialog::backdrop{background:#010409c7}.project-image-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.project-image-dialog img{display:block;max-width:100%;max-height:calc(94vh - 60px);object-fit:contain;margin:0 auto}@media (max-width: 760px){.toolbar{align-items:stretch}.tool-drawer{margin-left:0}.tool-drawer-panel{right:auto;left:0;width:min(680px,calc(100vw - 24px));max-height:min(62vh,520px);overflow:auto}.print-summary{column-gap:14px}.meta-panel{right:16px;bottom:14px;width:calc(100% - 32px)}}:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;line-height:1.5;font-weight:400;background:#0d1117;color:#e6edf3}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#0d1117;color:#e6edf3}.print-summary{--text-color-default: #e6edf3;--text-color-muted: #9da7b3;--background-color-muted: #161b22;--border-color-default: #30363d}button,input,select,textarea{font:inherit}button{cursor:pointer}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}#app{min-height:100vh}.page-shell{max-width:1600px;margin:0 auto;padding:20px}.card{background:#161b22;border:1px solid #30363d;border-radius:18px;padding:18px;box-shadow:0 12px 30px #01040938}.hero{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.hero-copy{min-width:0}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.eyebrow{margin:0 0 8px;color:#7d8590;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}h1,h2,p{margin-top:0}.hero h1{margin-bottom:10px}.lede,.muted{color:#9da7b3}.section-header{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.viewer-root{min-height:78vh}.viewer-root .viewer-container{min-height:min(72vh,960px)}.icon-link,.action-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 14px;border-radius:999px;border:1px solid #30363d;background:#0d1117;color:#e6edf3;text-decoration:none}.icon-link svg{width:18px;height:18px;flex:0 0 18px}.action-link.primary{background:#1f6feb;border-color:#1f6feb;color:#fff}.action-link[aria-disabled=true]{opacity:.55;pointer-events:none}@media (max-width: 900px){.page-shell{padding:14px}.hero{flex-direction:column;align-items:stretch}.hero-actions{justify-content:flex-start}.hero-actions>*{flex:1 1 220px}.viewer-root{min-height:70vh}}@media (max-width: 720px){.card{padding:14px;border-radius:16px}.viewer-root{min-height:64vh}.viewer-root .viewer-container{min-height:56vh}}
