:root{--bg: #f4f1ec;--panel: #ffffff;--ink: #2b2620;--muted: #7a7065;--line: #e2dbd1;--accent: #b5762e;--accent-ink: #fff}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1d1b19;--panel: #272421;--ink: #efe9e1;--muted: #a89d90;--line: #3a3530;--accent: #d39248;--accent-ink: #1d1b19}}:root[data-theme=dark]{--bg: #1d1b19;--panel: #272421;--ink: #efe9e1;--muted: #a89d90;--line: #3a3530;--accent: #d39248;--accent-ink: #1d1b19}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.app{display:grid;grid-template-columns:minmax(0,1fr) 360px;height:100vh}#view{position:relative;min-height:360px}#view canvas{display:block;width:100%;height:100%}.hint{position:absolute;left:16px;bottom:12px;font-size:12px;color:#fff;background:#00000059;padding:4px 8px;border-radius:6px}aside{background:var(--panel);border-left:1px solid var(--line);padding:20px 18px;overflow:auto}h1{font-size:20px;margin:0 0 2px}.top{display:flex;justify-content:space-between;align-items:center;gap:8px}#lang{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:5px 10px;font:600 13px system-ui,Arial,sans-serif;cursor:pointer}.sub{color:var(--muted);font-size:13px;margin:0 0 18px}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.fact{background:var(--bg);border-radius:8px;padding:8px 10px}.fact b{display:block;font-size:16px}.fact span{font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}td.n,th.n{text-align:right;white-space:nowrap}h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:22px 0 0;padding-top:14px;border-top:1px solid var(--line)}.help{font-size:12px;color:var(--muted);margin:4px 0 0}.chk{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:14px;margin:12px 0 0;cursor:pointer}.chk input{width:18px;height:18px;accent-color:var(--accent)}.chk small{color:var(--muted)}.glass{font-size:13px;color:var(--muted);margin:8px 0 0}.glassTip{color:var(--ink);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid var(--accent);border-radius:10px;padding:10px 12px;margin-top:10px}.glassTip:before{content:"◆ ";color:var(--accent)}#viewTip{position:absolute;left:50%;top:14px;transform:translate(-50%);background:var(--accent);color:var(--accent-ink);font:600 13px system-ui,Arial,sans-serif;padding:7px 14px;border-radius:20px;box-shadow:0 4px 14px #0000004d;pointer-events:none;max-width:calc(100% - 32px);text-align:center}#viewTip[hidden]{display:none}.glass #glassCount{color:var(--ink);font-weight:600}#glassReset{border:0;background:none;color:var(--accent);font:600 13px system-ui,Arial,sans-serif;cursor:pointer;padding:0 0 0 4px}.arbtn{width:100%;margin-top:10px;padding:11px 12px;border-radius:10px;border:1px solid var(--accent);background:transparent;color:var(--ink);font:600 14px system-ui,Arial,sans-serif;cursor:pointer}#arLay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141210b8;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}#arLay[hidden]{display:none}.arbox{position:relative;background:var(--panel);color:var(--ink);border-radius:14px;padding:22px 20px 18px;width:min(420px,100%);text-align:center;box-shadow:0 10px 40px #0006}#arAnim{width:100%;height:auto;display:block}#arAnim polygon{fill:#d9a8662e;stroke:#c98a3d;stroke-width:2.2;stroke-linejoin:round;opacity:0;transform-box:fill-box;transform-origin:center;transform:translateY(-14px) scale(.85);transition:opacity .25s ease,transform .35s ease}#arAnim polygon.on{opacity:1;transform:none}#arAnim line{stroke:var(--muted);stroke-width:1.5}#arMsg{margin:12px 0 4px;font-size:14px}.arGo{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}#arClose{position:absolute;right:8px;top:6px;border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}.note{font-size:12px;color:var(--muted);margin-top:10px}.struts{font-size:13px;color:var(--muted)}@media (max-width: 820px){.app{grid-template-columns:1fr;height:auto}#view{height:62vh}aside{border-left:0;border-top:1px solid var(--line);padding:16px}}input[type=text],input[type=email],input[type=tel],textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}textarea{resize:vertical}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.sendForm h2{margin-top:18px}.arbtn:disabled{opacity:.6;cursor:wait}a{color:var(--accent)}.printSheet{display:none}@media print{body{background:#fff;color:#000}.app,#arLay{display:none!important}.printSheet{display:block;color:#000}.printSheet img{width:100%;max-height:11cm;object-fit:cover;border-radius:8px;margin:8px 0 12px}.printSheet th,.printSheet td{border-color:#ccc}.printSheet h2{color:#b5762e;border-color:#ccc}.printSheet .sub,.printSheet .note{color:#555}}.saved:before{content:none}.saved p{margin:0 0 4px}.reqs tr{cursor:pointer}.reqs tr:hover td,.reqs tr.on td{background:color-mix(in srgb,var(--accent) 14%,transparent)}.st{font-size:12px;padding:2px 8px;border-radius:10px;background:var(--line);white-space:nowrap}.st0{background:var(--accent);color:var(--accent-ink)}.st2{background:#3f7a3a;color:#fff}.st3{opacity:.6}.only3d{position:absolute;right:16px;bottom:12px;font-size:12px;color:#fff;background:#00000059;padding:4px 8px;border-radius:6px}@media (max-width: 820px){.hint{bottom:42px}}.linkish{border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:0}.prices label{margin-top:10px}.prices input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;margin-top:4px}.onshape{margin-top:10px}.onshape th{color:var(--accent)}.code{font:12px/1.4 Consolas,monospace;margin-top:8px}.cut td,.cut th{font-size:12px;padding:4px 3px}
