:root{--ink:#0a0907;--panel:#15120d;--panel-2:#201b13;--line:#2a241a;--gold:#c9a23f;--gold-deep:#a8822a;--bone:#f4efe6;--muted:#a69c8c;--danger:#e5675a;--danger-bg:#3a1512;--ok:#5fb878;--radius:14px;--touch:48px;--display:"Fraunces", "Cooper Black", Georgia, serif;--body:"Figtree", "Segoe UI", system-ui, sans-serif;font-family:var(--body);color:var(--bone);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:300 900;src:url(/fonts/figtree-latin-wght-normal.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-full-normal.woff2)format("woff2")}.brand-name,.empty-card h1,.library-head h2,.install-help h2,.pdf-side h2,.pdf-name{font-family:var(--display);font-variation-settings:"SOFT" 100;letter-spacing:-.01em;font-weight:900}*{box-sizing:border-box}html,body{background:var(--ink);overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{flex-direction:column;height:100dvh;display:flex}button{font:inherit}a{color:var(--gold)}.data-link{min-height:44px;color:var(--gold);align-items:center;font-weight:700;display:inline-flex}.data-link:hover{color:var(--bone)}:focus-visible{outline-color:var(--gold)}.topbar{padding:6px 16px;padding-top:max(6px, env(safe-area-inset-top));background:var(--ink);border-bottom:1px solid var(--line);color:var(--bone);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.brand-logo{flex:none;width:auto;height:56px;display:block}.brand-text{flex-direction:column;gap:2px;min-width:0;line-height:1.15;display:flex}.brand-name{color:var(--bone);white-space:nowrap;text-overflow:ellipsis;font-size:1.35rem;overflow:hidden}.brand-by{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:600;overflow:hidden}.actions{flex:none;gap:8px;display:flex}.btn{min-height:var(--touch);border:1.5px solid var(--gold-deep);background:var(--panel);color:var(--bone);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;display:inline-flex}.btn:hover{background:var(--panel-2);border-color:var(--gold)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:22px;height:22px}.btn-primary{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn-primary:hover{background:var(--bone);border-color:var(--bone);color:var(--ink)}.topbar .btn:not(.btn-primary){background:0 0}.topbar .btn:not(.btn-primary):hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn-large{min-height:56px;padding:0 24px;font-size:1.05rem}.btn-icon{width:var(--touch);padding:0}.stage{background:#fff;flex:1;min-height:0;position:relative}.viewer-wrap{position:absolute;top:0;bottom:0;left:0;right:0}.viewer{touch-action:none;width:100%;height:100%}.viewer canvas{display:block}.viewer-wrap.inactive{visibility:hidden;pointer-events:none}.view-bar{pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.view-bar>*{pointer-events:auto}.view-switch{background:var(--panel);border:1.5px solid var(--gold-deep);border-radius:999px;flex:none;margin-left:auto;padding:3px;display:inline-flex;box-shadow:0 2px 8px #00000040}.view-switch button{min-width:56px;min-height:42px;color:var(--muted);cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:999px;font-weight:700}.view-switch button[aria-pressed=true]{background:var(--gold);color:var(--ink)}.btn-chip{flex:none;box-shadow:0 2px 8px #00000040}.notice-3d{border:1px solid var(--gold-deep);max-width:calc(100% - 24px);color:var(--bone);text-align:center;pointer-events:none;background:#15120df0;border-radius:12px;padding:8px 14px;font-size:.9rem;position:absolute;top:72px;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0000004d}.view-presets{flex-wrap:wrap;gap:6px;max-width:calc(100% - 100px);display:flex;position:absolute;bottom:16px;left:12px}.view-presets .btn{min-width:64px;box-shadow:0 2px 8px #00000040}.measure-card{background:var(--panel);width:min(380px,100% - 100px);color:var(--bone);border:2px solid var(--gold);border-radius:var(--radius);z-index:4;padding:14px 16px;position:absolute;bottom:16px;left:12px;box-shadow:0 4px 20px #00000059}.measure-card p{margin:0 0 10px;line-height:1.45}.measure-apply label{margin-bottom:6px;font-weight:600;display:block}.measure-apply select,.units-row select{width:100%;min-height:var(--touch);border:1px solid var(--line);font:inherit;background:var(--ink);color:var(--bone);border-radius:10px;padding:0 10px}.measure-buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.btn-link{color:var(--muted);background:0 0;border:none;min-height:40px;margin-top:6px;padding:0 4px}.btn-link:hover{color:var(--gold);background:0 0}.zoom-controls .btn[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}.drawing-name{min-width:0;color:var(--bone);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#15120deb;border-radius:999px;padding:8px 14px;font-weight:600;overflow:hidden;box-shadow:0 2px 8px #00000040}.zoom-controls{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-controls .btn{width:56px;min-height:56px;box-shadow:0 2px 8px #0000004d}.empty-state{background:var(--ink);justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.empty-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:640px;margin:auto 0;padding:32px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 8px!important;font-size:.8rem!important}.empty-card h1{color:var(--bone);margin:0 0 12px;font-size:2.1rem;line-height:1.08}.empty-card h1 em{color:var(--gold);font-style:normal}.empty-card p{margin:0 0 16px;font-size:1.05rem;line-height:1.5}.empty-actions{flex-wrap:wrap;gap:12px;margin:24px 0;display:flex}.hint{background:var(--ink);border-left:4px solid var(--gold);color:var(--bone);border-radius:6px;padding:12px 14px;font-size:.95rem!important}.recent h2{color:var(--muted);margin:24px 0 8px;font-size:1rem}.drawing-list{margin:0;padding:0;list-style:none}.drawing-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.drawing-list li:last-child{border-bottom:none}.drawing-item{text-align:left;cursor:pointer;min-width:0;min-height:60px;color:var(--bone);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:2px;padding:8px 4px;display:flex}.drawing-item:hover .drawing-title{color:var(--gold);text-decoration:underline}.drawing-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.drawing-meta{color:var(--muted);font-size:.85rem}.btn-remove{color:var(--muted);background:0 0;border-color:#0000}.btn-remove:hover{color:var(--danger);background:var(--danger-bg);border-color:#0000}.library{width:min(420px,100%);padding:16px;padding-top:max(16px, env(safe-area-inset-top));background:var(--panel);color:var(--bone);border-left:1px solid var(--line);z-index:20;visibility:hidden;transition:transform .2s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-4px 0 24px #00000073}.library.open{visibility:visible;transform:none}.library-head{justify-content:space-between;align-items:center;display:flex}.library-head h2{color:var(--bone);margin:0;font-size:1.6rem}.library-note{color:var(--muted);font-size:.95rem;line-height:1.4}.scrim{z-index:10;background:#0a090799;position:fixed;top:0;bottom:0;left:0;right:0}.loading{z-index:5;background:#0a0907bf;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.loading-card{background:var(--panel);color:var(--bone);border:1px solid var(--gold-deep);border-radius:var(--radius);align-items:center;gap:14px;padding:18px 24px;font-weight:600;display:flex;box-shadow:0 4px 20px #0006}.loading-card p{margin:0}.spinner{border:4px solid var(--line);border-top-color:var(--gold);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.drop-hint{border:3px dashed var(--gold);border-radius:var(--radius);color:var(--gold);z-index:6;pointer-events:none;background:#0a0907d9;justify-content:center;align-items:center;font-size:1.3rem;font-weight:700;display:flex;position:absolute;top:16px;bottom:16px;left:16px;right:16px}.toast{background:var(--panel);width:max-content;max-width:calc(100% - 32px);color:var(--bone);border:1px solid var(--gold);z-index:30;border-radius:12px;padding:14px 18px;line-height:1.4;position:fixed;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000073}.toast-error{background:var(--danger-bg);border-color:var(--danger)}.statusbar{padding:4px 16px;padding-bottom:max(4px, env(safe-area-inset-bottom));background:var(--ink);border-top:1px solid var(--line);color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.net-status{align-items:center;gap:6px;display:inline-flex}.net-status .dot{background:var(--ok);border-radius:50%;width:9px;height:9px}.net-status.offline{color:var(--bone);font-weight:600}.net-status.offline .dot{background:var(--gold)}.offline-ready{color:var(--muted)}[hidden]{display:none!important}@media (max-width:640px){.topbar{gap:6px;padding-left:10px;padding-right:10px}.actions{gap:6px}.brand{gap:7px}.brand-logo{height:36px}.brand-name{letter-spacing:-.02em;font-size:.98rem}.brand-by{letter-spacing:.06em;font-size:.56rem}.actions .btn span{display:none}.actions .btn{width:var(--touch);padding:0}.empty-card{padding:20px}.empty-card h1{font-size:1.6rem}.empty-actions .btn{flex:100%}}@media (max-width:380px){.brand-logo{height:34px}.brand-name{font-size:.95rem}}.install-help{border:1px solid var(--gold-deep);border-radius:var(--radius);background:var(--panel);width:min(440px,100% - 32px);color:var(--bone);padding:24px;box-shadow:0 12px 40px #0009}.install-help::backdrop{background:#0a0907b3}.install-help h2{color:var(--bone);margin:0 0 12px;font-size:1.5rem}.install-help p{font-size:1.05rem;line-height:1.5}.install-help form{justify-content:flex-end;margin-top:8px;display:flex}.layers-panel{z-index:15;box-shadow:-4px 0 24px #00000059}.units-row{margin:12px 0;font-weight:600;display:block}.units-row select{margin-top:6px}.layers-actions{gap:8px;margin-bottom:8px;display:flex}.layers-actions .btn{flex:1}.layers-head{text-transform:uppercase;letter-spacing:.06em;color:var(--gold);border-bottom:1px solid var(--line);justify-content:space-between;padding:6px 2px;font-size:.8rem;font-weight:700;display:flex}.layers-list{margin:0;padding:0;list-style:none}.layer-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 0;display:grid}.layer-row label.layer-show{min-height:var(--touch);cursor:pointer;align-items:center;gap:10px;min-width:0;display:flex}.layer-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold);flex:none}.layer-swatch{border:1px solid #f4efe64d;border-radius:4px;flex:none;width:14px;height:14px}.layer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.layer-height{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.layer-height-input{align-items:center;gap:4px;display:flex}.layer-height input{border:1px solid var(--line);width:76px;min-height:44px;font:inherit;text-align:right;background:var(--ink);color:var(--bone);border-radius:8px;padding:0 8px}.layer-height input:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.layer-source{color:var(--muted);font-size:.75rem}.layer-source.measured{color:var(--gold);font-weight:600}.layer-source.typed{color:var(--bone);font-weight:600}@media (max-width:640px){.btn-chip span{display:none}.btn-chip{width:var(--touch);padding:0}.notice-3d{font-size:.8rem;top:68px}.view-presets .btn{min-width:52px;padding:0 12px}}.paid-badge{background:var(--gold);color:var(--ink);letter-spacing:.04em;vertical-align:middle;border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:800;display:inline-block}.pdf-screen{background:var(--ink);z-index:8;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pdf-head{background:var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.pdf-name{min-width:0;color:var(--bone);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1.25rem;overflow:hidden}.pdf-head a.btn{text-decoration:none}.pdf-body{flex:1;grid-template-columns:minmax(0,1fr) minmax(320px,440px);min-height:0;display:grid}.pdf-pages{flex-direction:column;align-items:center;gap:12px;padding:12px;display:flex;overflow:auto}.pdf-page{background:#fff;width:100%;max-width:1400px;height:auto;box-shadow:0 1px 10px #00000080}.pdf-side{background:var(--panel);border-left:1px solid var(--line);padding:16px;overflow-y:auto}.pdf-side h2{color:var(--bone);margin:0 0 10px;font-size:1.45rem}.pdf-side .btn-large{width:100%}.btn-locked{border-color:var(--gold);color:var(--gold);background:0 0}.btn-locked:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.ai-warning{background:var(--ink);border:1px solid var(--gold);color:var(--bone);border-left-width:5px;border-radius:8px;padding:10px 12px;font-weight:600;line-height:1.4}.pdf-status{min-height:1.4em;color:var(--muted);font-weight:600}.pdf-result p{line-height:1.5}.kind-banner{background:var(--ink);border:1px solid var(--gold-deep);border-radius:8px;flex-direction:column;gap:4px;margin:12px 0;padding:10px 12px;display:flex}.kind-banner.kind-other{background:var(--danger-bg);border-color:var(--danger)}.kind-banner span{color:var(--bone);font-size:.92rem}.reading-title{font-weight:700}.reading-fields{border-top:1px solid var(--line);grid-template-columns:max-content 1fr;gap:0;margin:12px 0;display:grid}.reading-fields dt,.reading-fields dd{border-bottom:1px solid var(--line);margin:0;padding:10px 6px}.reading-fields dt{color:var(--gold);padding-right:14px;font-weight:700}.reading-fields dd{flex-direction:column;gap:4px;line-height:1.4;display:flex}.reading-fields dd small{color:var(--muted)}.reading-fields dd.not-shown{color:var(--muted);font-style:italic}.pdf-result h3{color:var(--gold);margin:16px 0 6px;font-size:1rem}.pdf-result ul{margin:0 0 12px;padding-left:20px;line-height:1.45}.reading-meta{color:var(--muted);font-size:.8rem}.plan-link{color:var(--gold);font:inherit;cursor:pointer;background:0 0;border:none;min-height:40px;font-weight:600;text-decoration:underline}.plan-form{flex-direction:column;gap:10px;display:flex}.plan-choice{min-height:var(--touch);align-items:center;gap:10px;font-weight:600;display:flex}.plan-choice input{width:22px;height:22px;accent-color:var(--gold)}.plan-code{width:100%;min-height:var(--touch);border:1px solid var(--line);font:inherit;background:var(--ink);color:var(--bone);border-radius:10px;margin-top:6px;padding:0 10px}@media (max-width:900px){.pdf-body{grid-template-rows:minmax(200px,40%) 1fr;grid-template-columns:1fr}.pdf-side{border-left:none;border-top:1px solid var(--line)}}.mark-card{border-color:var(--gold)}.mark-card p{font-size:1.02rem}.notice-3d{pointer-events:auto;max-height:45%;overflow:auto}.notice-more{min-height:0;color:var(--gold);margin:0 0 0 6px;padding:0;font-weight:700;text-decoration:underline}.notice-notes{text-align:left;margin:8px 0 0;padding-left:18px;line-height:1.4}@media (max-width:640px){.notice-stats{display:none}.notice-notes{font-size:.8rem}}.notice-3d.expanded .notice-stats{display:inline}
