*{box-sizing:border-box;margin:0;padding:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(17% .012 255);--bg-deep:oklch(13% .012 255);--surface:oklch(22% .013 255);--surface-2:oklch(26% .014 255);--surface-hi:oklch(30% .015 255);--border:oklch(34% .012 255);--border-soft:oklch(28% .011 255);--text:oklch(95% .006 80);--text-2:oklch(72% .012 80);--text-3:oklch(55% .013 80);--text-4:oklch(42% .012 80);--accent:oklch(80% .12 72);--accent-2:oklch(65% .11 72);--accent-hover:oklch(85% .12 72);--accent-soft:oklch(35% .06 72);--accent-glow:oklch(80% .12 72/.15);--danger:oklch(68% .17 30);--danger-bg:oklch(24% .04 20);--danger-bg-hi:oklch(28% .05 20);--info:oklch(72% .1 240);--info-bg:oklch(24% .04 240);--info-bg-hi:oklch(28% .05 240);--ok:oklch(72% .16 150);--ok-bg:oklch(24% .05 150);--ok-bg-hi:oklch(28% .06 150);--warning:oklch(85% .14 90);--warning-bg:oklch(24% .04 80);--tool-active:oklch(78% .12 200);--tool-active-bg:oklch(22% .05 200);--measure:oklch(90% .18 100);--pivot:oklch(65% .22 25);--shadow:0 6px 18px -6px #00000073, 0 1px 3px #0000004d;--shadow-lg:0 24px 48px -12px #0000008c, 0 2px 8px -2px #00000059;--overlay:#0009;--label-bg:#c4a46ce6;--label-text:#1a1a2e;--measure-label-bg:#000c;--cutsheet-bg:#2a2a3e;--cutsheet-stroke:#4a4a6a;--cutsheet-text:#fff;--cutsheet-text-2:#e0e0f0;--cutsheet-dim:#8080a0}[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(95% .012 80);--bg-deep:oklch(91% .014 80);--surface:oklch(97% .008 80);--surface-2:oklch(93% .012 80);--surface-hi:oklch(89% .014 80);--border:oklch(78% .018 70);--border-soft:oklch(85% .014 70);--text:oklch(22% .02 50);--text-2:oklch(40% .018 50);--text-3:oklch(55% .016 50);--text-4:oklch(65% .014 50);--accent:oklch(58% .16 38);--accent-2:oklch(48% .16 38);--accent-hover:oklch(52% .16 38);--accent-soft:oklch(85% .05 38);--accent-glow:oklch(58% .16 38/.12);--danger:oklch(55% .2 25);--danger-bg:oklch(92% .04 25);--danger-bg-hi:oklch(88% .06 25);--info:oklch(52% .14 240);--info-bg:oklch(92% .04 240);--info-bg-hi:oklch(88% .06 240);--ok:oklch(52% .16 150);--ok-bg:oklch(92% .05 150);--ok-bg-hi:oklch(88% .06 150);--warning:oklch(60% .16 80);--warning-bg:oklch(92% .04 80);--tool-active:oklch(50% .14 200);--tool-active-bg:oklch(92% .04 200);--measure:oklch(55% .18 80);--pivot:oklch(55% .22 25);--shadow:0 4px 12px -4px #46321e26;--shadow-lg:0 18px 36px -12px #46321e2e, 0 1px 4px #46321e1a;--overlay:#46321e66;--label-bg:#785a32e0;--label-text:#faf5ee;--measure-label-bg:#3c2814d9;--cutsheet-bg:#f0ebe3;--cutsheet-stroke:#c0b5a5;--cutsheet-text:#3a2a1a;--cutsheet-text-2:#6a5a4a;--cutsheet-dim:#8a7a6a}html,body,#root{font-feature-settings:"cv11", "ss01", "ss03";letter-spacing:-.005em;-webkit-font-smoothing:antialiased;background:var(--bg-deep);width:100%;height:100%;color:var(--text);font-family:Inter,-apple-system,system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}.mono,.lumber-dims,.dim-value,.length-total{font-feature-settings:"zero", "ss01";letter-spacing:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.print-root{z-index:9999;background:#555;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow:auto}.print-toolbar{background:#2a2a2a;justify-content:center;gap:10px;width:100%;padding:12px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0006}.print-toolbar button{cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-weight:600}.print-toolbar .print-btn-go{color:#fff;background:#c4894a}.print-toolbar .print-btn-close{color:#ddd;background:#444}.print-document{color:#1a1a1a;background:#fff;width:8.5in;max-width:96vw;margin:18px 0 40px;padding:.6in .7in;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.45;box-shadow:0 4px 24px #00000080}.print-document h1{margin:0 0 2px;font-size:22px}.print-document h2{border-bottom:2px solid #1a1a1a;margin:22px 0 8px;padding-bottom:3px;font-size:15px}.print-doc-meta{color:#555;margin-bottom:14px;font-size:12px}.print-hero{align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.print-hero img{background:#f7f7f7;border:1px solid #ccc;width:240px;height:auto}.print-cover{text-align:center}.print-cover h1{margin:10px 0 2px;font-size:30px}.print-cover-photo{border:1px solid #ddd;border-radius:8px;width:100%;max-width:640px;margin:14px auto 12px;display:block}.print-cover-specs{text-align:left;grid-template-columns:auto auto;justify-content:center;gap:4px 18px;margin:0 auto 10px;font-size:14px;display:grid}.print-cover-specs span:nth-child(odd){color:#666}@media print{.print-cover{page-break-after:always}}.label-sheet{background:#fff;width:8.5in;height:11in;margin:0 auto 12px;position:relative;box-shadow:0 2px 10px #00000059}.part-label{box-sizing:border-box;color:#111;outline:1px dashed #bbb;align-items:center;gap:.12in;width:4in;height:2in;padding:.12in;display:flex;position:absolute}.part-label-qr{flex:none;width:1.5in;height:1.5in}.part-label-qr svg{width:100%;height:100%}.part-label-text{min-width:0}.part-label-num{font-size:30px;font-weight:800;line-height:1.05}.part-label-stock{font-size:15px;font-weight:600}.part-label-len{margin-top:2px;font-size:18px;font-weight:700}.part-label-cut{color:#444;margin-top:1px;font-size:11px}@media print{.label-sheet{box-shadow:none;page-break-after:always;margin:0}.part-label{outline:none}}.print-summary-grid{grid-template-columns:repeat(2,auto);gap:2px 22px;font-size:13px;display:grid}.print-summary-grid b{font-size:15px}.print-table{border-collapse:collapse;width:100%;font-size:12px}.print-table th,.print-table td{text-align:left;border-bottom:1px solid #ddd;padding:4px 8px}.print-table th{background:#f0e9da}.print-table td.num,.print-table th.num{text-align:right}.print-board{margin:8px 0;font-size:12px}.print-board-head{justify-content:space-between;font-weight:600;display:flex}.print-bar{border:1px solid #999;border-radius:3px;height:22px;margin-top:3px;display:flex;overflow:hidden}.print-seg{color:#3a2c16;white-space:nowrap;background:#d8c4a0;border-right:1px solid #fff;justify-content:center;align-items:center;font-size:10px;display:flex;overflow:hidden}.print-seg.miter{background:#e0b683}.print-waste{color:#888;background:repeating-linear-gradient(45deg,#eee,#eee 4px,#ddd 4px 8px)}.print-diagrams{flex-direction:column;gap:14px;display:flex}.cut-diagram{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc;border-radius:6px;padding:10px 12px}.cut-diagram-title{margin-bottom:6px;font-size:13px;font-weight:700}.cut-diagram-views{flex-wrap:wrap;gap:16px;display:flex}.cut-diagram-view-title{color:#555;align-items:center;gap:8px;margin-bottom:2px;font-size:11px;display:flex}.stencil-btn{color:#6b4f2a;cursor:pointer;background:#f7efe2;border:1px solid #b8956a;border-radius:4px;padding:1px 7px;font-size:10px;line-height:1.5}.stencil-btn:hover{background:#efe2cc}.cut-diagram-spec{border-collapse:collapse;width:100%;margin-top:8px;font-size:11px}.cut-diagram-spec th{text-align:left;color:#444;white-space:nowrap;vertical-align:top;width:130px;padding:2px 8px 2px 0;font-weight:600}.cut-diagram-spec td{padding:2px 0}.cut-diagram-spec tr+tr th,.cut-diagram-spec tr+tr td{border-top:1px solid #eee}.print-notes{white-space:pre-wrap;font-size:12px}@media print{body *{visibility:hidden!important}.print-root,.print-root *{visibility:visible!important}.print-root{background:#fff;display:block;position:absolute;inset:auto}.print-toolbar,.stencil-btn{display:none!important}.print-document{box-shadow:none;width:auto;max-width:none;margin:0;padding:0}.cut-diagram{border-color:#999}}.m-app{color:#eee;background:#1f1f1f;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.m-header{background:#161616;border-bottom:1px solid #333;flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.m-header h1{flex:1;margin:0;font-size:17px}.m-back{color:#c4894a;cursor:pointer;background:0 0;border:none;padding:6px 4px;font-size:15px;font-weight:600}.m-signout{color:#bbb;background:0 0;border:1px solid #444;border-radius:6px;padding:6px 10px;font-size:13px}.m-tabs{background:#161616;flex-shrink:0;gap:8px;padding:10px 16px 0;display:flex}.m-tab{color:#bbb;cursor:pointer;background:#222;border:1px solid #383838;border-radius:8px;flex:1;padding:9px 0;font-size:14px;font-weight:600}.m-tab.active{color:#161616;background:#c4894a;border-color:#c4894a}.m-scroll{-webkit-overflow-scrolling:touch;flex:1;padding:14px 16px 60px;overflow-y:auto}.m-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex}.m-btn{color:#fff;cursor:pointer;background:#c4894a;border:none;border-radius:8px;padding:13px 22px;font-size:16px;font-weight:600}.m-btn-primary{background:linear-gradient(#d49a5e 0%,#b87a3e 100%);box-shadow:0 4px 14px #c4894a59}.m-pro-card{background:#2a2a2a;border:1px solid #3a3a3a;border-radius:14px;flex-direction:column;gap:14px;margin:20px 16px 24px;padding:22px 20px;display:flex}.m-pro-headline{color:#fff;font-size:20px;font-weight:700;line-height:1.25}.m-pro-subline{color:#aaa;font-size:14px;line-height:1.45}.m-pro-benefits{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.m-pro-benefits li{color:#ddd;padding-left:22px;font-size:14px;line-height:1.4;position:relative}.m-pro-benefits li:before{content:"✓";color:#82b658;font-weight:700;position:absolute;top:0;left:0}.m-pro-benefits strong{color:#fff;font-weight:600}.m-pro-pricing{color:#ccc;text-align:center;background:#1f1f1f;border:1px solid #333;border-radius:8px;padding:10px 12px;font-size:14px}.m-pro-pricing strong{color:#d49a5e;font-size:16px}.m-pro-footnote{color:#888;text-align:center;font-size:12px;line-height:1.4}.m-card{cursor:pointer;background:#2a2a2a;border:1px solid #383838;border-radius:12px;align-items:center;gap:12px;margin-bottom:12px;padding:14px;display:flex}.m-card:active{background:#333}.m-card img{object-fit:contain;background:#1c1c1c;border-radius:8px;flex-shrink:0;width:64px;height:64px}.m-card-body{flex:1;min-width:0}.m-card-title{margin:0 0 3px;font-size:16px;font-weight:600}.m-card-meta{color:#999;font-size:12px}.m-section{margin:18px 0}.m-section h2{text-transform:uppercase;letter-spacing:.04em;color:#c4894a;margin:0;padding-bottom:5px;font-size:14px}.m-section-toggle{cursor:pointer;color:#c4894a;text-align:left;background:0 0;border:none;border-bottom:1px solid #333;align-items:center;gap:8px;width:100%;margin-bottom:10px;padding:0 0 5px;display:flex}.m-section-chevron{text-align:center;width:12px;font-size:12px;display:inline-block}.m-summary{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.m-stat{background:#2a2a2a;border-radius:10px;padding:12px}.m-stat .v{font-size:20px;font-weight:700}.m-stat .l{color:#999;font-size:12px}.m-row{border-bottom:1px solid #2e2e2e;justify-content:space-between;padding:9px 2px;font-size:14px;display:flex}.m-row .q{color:#c4894a;margin-right:8px;font-weight:600}.m-check-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px}.m-check-row input[type=checkbox]{accent-color:#c4894a;flex-shrink:0;width:22px;height:22px;margin:0}.m-row-text{flex:1;min-width:0}.m-check-row.done .m-row-text,.m-check-row.done>span:last-child{opacity:.5;text-decoration:line-through}.m-board{margin:10px 0}.m-board.done{opacity:.55}.m-board-head{justify-content:space-between;margin-bottom:4px;font-size:13px;font-weight:600;display:flex}.m-bar{border:1px solid #444;border-radius:5px;height:26px;display:flex;overflow:hidden}.m-cut-list{flex-direction:column;gap:0;margin:6px 0 14px;padding:0;list-style:none;display:flex}.m-cut-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #2a2a2a;align-items:center;gap:10px;padding:7px 4px;font-size:13px;display:flex}.m-cut-item input[type=checkbox]{accent-color:#c4894a;width:20px;height:20px;margin:0}.m-cut-item .q{color:#c4894a;min-width:32px;font-weight:600}.m-cut-len{color:#ddd;flex:1}.m-cut-item.done .q,.m-cut-item.done .m-cut-len{opacity:.5;text-decoration:line-through}.m-cut-waste{color:#888;padding:5px 4px;font-size:12px;font-style:italic}.m-seg{color:#1f1308;white-space:nowrap;background:#b98a52;border-right:1px solid #1f1f1f;justify-content:center;align-items:center;font-size:10px;display:flex;overflow:hidden}.m-seg.miter{background:#d6a866}.m-seg.waste{color:#888;background:#3a3a3a}.m-diagram-wrap{color:#1a1a1a;background:#fff;border-radius:10px;margin-bottom:12px;padding:10px 12px}.m-diagram-wrap.done{opacity:.55}.m-diagram-check{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #eee;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;font-size:13px;font-weight:600;display:flex}.m-diagram-check input[type=checkbox]{accent-color:#c4894a;width:20px;height:20px;margin:0}.m-diagram-wrap .cut-diagram{border:none;padding:0}.m-diagram-wrap .cut-diagram-title{color:#1a1a1a}.m-diagram-wrap .cut-diagram-view-title{color:#555}.m-diagram-wrap .cut-diagram-spec th{color:#444}.m-error{color:#e07a7a;text-align:center;padding:16px}.m-loading{color:#999;text-align:center;padding:28px}.m-install-fab{left:50%;bottom:calc(14px + var(--m-bottomnav-h,0px) + env(safe-area-inset-bottom,0px));z-index:500;color:#23180c;cursor:pointer;background:linear-gradient(#e6b072 0%,#c4894a 100%);border:none;border-radius:999px;align-items:center;gap:8px;padding:11px 20px;font-size:14px;font-weight:700;animation:.35s ease-out m-install-in;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000073,inset 0 0 0 1px #ffffff14}.m-install-fab:active{transform:translate(-50%)scale(.96)}.m-install-icon{font-size:16px;line-height:1}@keyframes m-install-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.m-install-overlay{z-index:600;background:#0000008c;align-items:flex-end;animation:.2s ease-out m-fade-in;display:flex;position:fixed;inset:0}.m-install-sheet{width:100%;padding:22px 20px calc(22px + env(safe-area-inset-bottom,0px));background:#232323;border-top:1px solid #3a3a3a;border-radius:18px 18px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) m-sheet-up}.m-install-sheet-title{margin-bottom:12px;font-size:17px;font-weight:700}.m-install-steps{color:#cfcfcf;margin:0 0 18px;padding-left:20px;font-size:14px;line-height:1.7}.m-install-steps strong{color:#e6b072}.m-install-sheet .m-btn-primary{width:100%}@keyframes m-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes m-fade-in{0%{opacity:0}to{opacity:1}}.m-header{box-shadow:0 1px #c4894a40}.m-card{transition:transform 80ms,background .12s}.m-card:active{transform:scale(.985)}.m-stat{background:linear-gradient(#2e2e2e 0%,#262626 100%);border:1px solid #383838;box-shadow:0 1px 2px #0000004d}.m-stat .v{color:#e6b072}.m-scroll{padding-bottom:84px}.m-brand{filter:drop-shadow(0 1px 1px #0006);flex-shrink:0}.m-bottomnav{z-index:450;padding-bottom:env(safe-area-inset-bottom,0px);background:#141414;border-top:1px solid #333;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #00000059}.m-navitem{color:#8a8a8a;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0 8px;font-size:11px;font-weight:600;transition:color .12s;display:flex}.m-navitem.active{color:#e6b072}.m-navitem:active{background:#ffffff0a}.m-skeleton{pointer-events:none}.m-skel-thumb{border-radius:8px;flex-shrink:0;width:64px;height:64px}.m-skel-line{border-radius:5px;height:14px;margin-bottom:8px}.m-skel-line-sm{height:10px}.m-skel-thumb,.m-skel-line{background:linear-gradient(100deg,#2a2a2a 30%,#3a3a3a 50%,#2a2a2a 70%) 0 0/200% 100%;animation:1.3s ease-in-out infinite m-shimmer}@keyframes m-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.m-card-community{align-items:flex-start}.m-card-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.m-vote,.m-report,.m-delete{cursor:pointer;border-radius:8px;min-height:34px;padding:7px 12px;font-size:13px;font-weight:600}.m-vote{color:#e6b072;background:#232323;border:1px solid #3a3a3a}.m-vote.voted{color:#161616;background:#c4894a;border-color:#c4894a}.m-vote:disabled{opacity:.5}.m-report{color:#c79a3a;background:0 0;border:1px solid #4a3a2a}.m-report:disabled{opacity:.6}.m-delete{color:#e08a8a;background:#b06a6a24;border:1px solid #b06a6a80}.m-report-count{color:#c79a3a;background:#c79a3a1f;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:600}.m-owner-substats{color:#aaa;flex-wrap:wrap;gap:6px 14px;margin:4px 2px 14px;font-size:13px;display:flex}.m-owner-substats b{color:#ddd}.m-owner-search{box-sizing:border-box;color:#eee;background:#232323;border:1px solid #383838;border-radius:8px;width:100%;margin-bottom:10px;padding:11px 12px;font-size:15px}.m-owner-filters{gap:6px;margin-bottom:14px;display:flex}.m-owner-filter{color:#bbb;cursor:pointer;background:#222;border:1px solid #383838;border-radius:8px;flex:1;padding:8px 0;font-size:13px;font-weight:600}.m-owner-filter.active{color:#161616;background:#c4894a;border-color:#c4894a}.m-owner-users{flex-direction:column;display:flex}.m-owner-user{border-bottom:1px solid #2e2e2e;padding:11px 2px}.m-owner-user-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.m-owner-user-name{color:#eee;font-size:15px;font-weight:600}.m-owner-user-plan{flex-shrink:0;font-size:13px;font-weight:600}.m-owner-badge{text-transform:uppercase;color:#e6b072;background:#e6b07229;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.m-owner-user-meta{color:#888;justify-content:space-between;gap:10px;margin-top:3px;font-size:12px;display:flex}.m-owner-user-email{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.m-owner-footnote{color:#777;margin:12px 2px 0;font-size:12px;line-height:1.4}.m-view3d{color:#1a1200;letter-spacing:.01em;cursor:pointer;background:linear-gradient(#c4894a,#b1783b);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;margin:12px 0 4px;padding:13px 16px;font-size:15px;font-weight:700;display:flex;box-shadow:0 2px 10px #c4894a40}.m-view3d:active{transform:translateY(1px)}.m-view3d-icon{font-size:17px;line-height:1}.m-viewer{z-index:3000;background:#1a1a2e;flex-direction:column;display:flex;position:fixed;inset:0}.m-viewer canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.m-viewer-close{top:max(12px, env(safe-area-inset-top));z-index:3001;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;border:1px solid #ffffff2e;border-radius:50%;width:40px;height:40px;font-size:18px;line-height:1;position:absolute;right:12px}.m-viewer-close:active{background:#000000a6}.m-viewer-hint{bottom:max(16px, env(safe-area-inset-bottom));text-align:center;color:#fff9;pointer-events:none;font-size:12px;position:absolute;left:0;right:0}.m-viewer-empty{z-index:3000;pointer-events:none;color:#aaa;text-align:center;padding:24px;font-size:14px;position:absolute;top:38%;left:0;right:0}.m-viewer-bar{top:max(10px, env(safe-area-inset-top));z-index:3001;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;left:12px;right:12px}.m-viewer-bar>*{pointer-events:auto}.m-viewer-save{color:#1a1200;cursor:pointer;background:linear-gradient(#c4894a,#b1783b);border:1px solid #ffffff2e;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:700}.m-viewer-save:disabled{color:#ffffff73;cursor:default;background:#ffffff14;border-color:#ffffff1f}.m-viewer-error{bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:3002;color:#ffd7d7;text-align:center;background:#4a1f1f;border:1px solid #7a3a3a;border-radius:8px;padding:10px 12px;font-size:13px;position:absolute;left:12px;right:12px}.m-edit-panel{z-index:3001;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 16px calc(env(safe-area-inset-bottom) + 14px);background:#16161ef5;border-top:1px solid #ffffff1f;border-radius:16px 16px 0 0;flex-direction:column;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.m-edit-head{justify-content:space-between;align-items:center;display:flex}.m-edit-title{color:#e6b072;font-size:14px;font-weight:700}.m-edit-deselect{color:#ccc;cursor:pointer;background:0 0;border:1px solid #555;border-radius:6px;padding:5px 12px;font-size:13px}.m-edit-grid{gap:14px;display:flex}.m-edit-group{flex:1}.m-edit-label{text-transform:uppercase;letter-spacing:.06em;color:#8a8a8a;margin-bottom:6px;font-size:11px}.m-edit-pad{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.m-edit-pad.two{grid-template-columns:repeat(2,1fr)}.m-edit-pad button{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:8px;padding:12px 0;font-size:14px;font-weight:600}.m-edit-pad button:active{background:#37374a}.m-edit-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.m-edit-check{cursor:pointer}.m-edit-input{color:#fff;text-align:right;background:#14141c;border:1px solid #3a3a46;border-radius:8px;width:110px;padding:9px 10px;font-size:15px}.m-edit-actions{gap:10px;margin-top:2px;display:flex}.m-edit-btn{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:9px;flex:1;padding:12px 0;font-size:14px;font-weight:600}.m-edit-btn:active{background:#37374a}.m-edit-danger{color:#ff9d9d;background:#3a1e1e;border-color:#5a2c2c}.m-edit-danger:active{background:#4a2525}.m-edit-panel{max-height:40vh;overflow-y:auto}.m-edit-tabs{background:#101018;border-radius:10px;gap:6px;padding:4px;display:flex}.m-edit-tabs button{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:9px 0;font-size:14px;font-weight:600}.m-edit-tabs button.on{color:#fff;background:#2f2f3d}.m-edit-body{flex-direction:column;gap:12px;display:flex}.m-edit-step{color:#8a8a8a;align-items:center;gap:4px;display:flex}.m-edit-step-input{color:#fff;text-align:right;background:#14141c;border:1px solid #3a3a46;border-radius:8px;width:68px;padding:8px;font-size:15px}.m-edit-rot button{flex:1}.m-edit-row-between{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.m-edit-select{color:#fff;background:#14141c;border:1px solid #3a3a46;border-radius:8px;min-width:84px;padding:8px 10px;font-size:14px}.m-edit-rot{align-items:center;gap:8px;margin-top:8px;display:flex}.m-edit-rot-name{color:#ccc;flex:none;width:40px;font-size:13px;font-weight:600}.m-edit-rot button{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:8px;flex:none;padding:10px 11px;font-size:13px;font-weight:600}.m-edit-rot button:active{background:#37374a}.m-edit-rot-input{color:#fff;text-align:right;background:#14141c;border:1px solid #3a3a46;border-radius:8px;flex:1;min-width:0;padding:9px 8px;font-size:15px}.m-edit-rot-deg{color:#8a8a8a;flex:none;margin-left:-4px;font-size:13px}.m-viewer-actions{align-items:center;gap:8px;display:flex}.m-viewer-add{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006;border:1px solid #ffffff38;border-radius:9px;padding:9px 14px;font-size:14px;font-weight:700}.m-viewer-add:active{background:#0009}.m-tpl{z-index:2900;color:#eee;background:#1f1f1f;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;position:fixed;inset:0}.m-tpl-bar{padding:14px 16px;padding-top:max(14px, env(safe-area-inset-top));background:#161616;border-bottom:1px solid #333;flex-shrink:0;align-items:center;gap:10px;display:flex}.m-tpl-bar h1{margin:0;font-size:17px}.m-tpl-scroll{-webkit-overflow-scrolling:touch;padding:10px 16px calc(env(safe-area-inset-bottom) + 30px);flex:1;overflow-y:auto}.m-tpl-cat{margin-top:14px}.m-tpl-cat-name{text-transform:uppercase;letter-spacing:.06em;color:#c4894a;margin-bottom:6px;padding-left:2px;font-size:12px;font-weight:700}.m-tpl-row{text-align:left;color:#eee;cursor:pointer;background:#2a2a2a;border:1px solid #383838;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:8px;padding:14px;font-size:15px;font-weight:600;display:flex}.m-tpl-row:active{background:#333}.m-tpl-chev{color:#888;flex:none;font-size:18px}.m-new-row{gap:10px;display:flex}.m-new-row .m-view3d{flex:1;width:auto}.m-view3d-alt{color:#eee;box-shadow:none;background:#2a2a2a;border:1px solid #3a3a3a}.m-view3d-alt:active{background:#333}.m-edit-head-actions{align-items:center;gap:8px;display:flex}.m-edit-trash{color:#ff9d9d;cursor:pointer;background:#3a1e1e;border:1px solid #5a2c2c;border-radius:8px;width:38px;height:34px;font-size:16px}.m-edit-trash:active{background:#4a2525}.m-viewer-add.on{color:#1a1200;background:linear-gradient(#c4894a,#b1783b);border-color:#0000}.m-new-row{flex-wrap:wrap}.m-new-row .m-view3d{min-width:30%}.m-qa-card{background:#2a2a2a;border:1px solid #383838;border-radius:12px;margin-bottom:10px;overflow:hidden}.m-qa-head{text-align:left;color:#eee;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px;display:flex}.m-qa-head:active{background:#333}.m-qa-title{font-size:15px;font-weight:700;display:block}.m-qa-blurb{color:#999;margin-top:2px;font-size:12px;display:block}.m-qa-chev{color:#888;flex:none;font-size:18px}.m-qa-form{border-top:1px solid #333;flex-direction:column;gap:10px;padding:4px 14px 16px;display:flex}.m-viewer-add.m-icon{min-width:40px;padding:9px 12px;font-size:17px;line-height:1}.m-viewer-add:disabled{opacity:.4}.m-edit-tabs button{padding:9px 2px;font-size:13px}.m-edit-pad button.on{color:#1a1200;background:#c4894a;border-color:#c4894a}.m-measure{bottom:max(16px, env(safe-area-inset-bottom));z-index:3001;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#16161ef0;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex;position:absolute;left:12px;right:12px}.m-measure-val{color:#e6b072;font-size:24px;font-weight:800}.m-measure-sub{color:#aaa;font-size:12px}.m-dup-msg{color:#cfe6c2;text-align:center;background:#23301f;border:1px solid #3c5233;border-radius:8px;margin:6px 0 2px;padding:9px 12px;font-size:13px}.m-tools-pop{top:calc(max(10px, env(safe-area-inset-top)) + 46px);z-index:3002;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#181820f7;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;gap:2px;min-width:190px;padding:6px;display:flex;position:absolute;right:12px;box-shadow:0 8px 24px #0006}.m-tools-pop button{color:#eee;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:12px;font-size:15px;font-weight:600}.m-tools-pop button:active{background:#33333f}.m-tools-pop button.on{color:#1a1200;background:#c4894a}.m-sheet-backdrop{z-index:3500;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.m-sheet{width:100%;padding:14px 14px calc(env(safe-area-inset-bottom) + 14px);background:#1f1f27;border-top:1px solid #3a3a46;border-radius:16px 16px 0 0;flex-direction:column;gap:8px;display:flex}.m-sheet-title{color:#999;text-align:center;border-bottom:1px solid #333;margin-bottom:4px;padding-bottom:6px;font-size:13px}.m-sheet-err{color:#ffd7d7;text-align:center;background:#4a1f1f;border:1px solid #7a3a3a;border-radius:8px;padding:9px 12px;font-size:13px}.m-sheet-btn{color:#eee;text-align:left;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:10px;padding:15px 14px;font-size:16px;font-weight:600}.m-sheet-btn:active{background:#363644}.m-sheet-btn:disabled{opacity:.5}.m-sheet-danger{color:#ff9d9d;background:#3a1e1e;border-color:#5a2c2c}.m-sheet-cancel{text-align:center;color:#bbb;background:0 0;border-color:#444}.m-edit-center{color:#ddd;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:8px;width:38px;height:34px;font-size:15px}.m-edit-center:active{background:#37374a}.m-edit-grip{cursor:ns-resize;touch-action:none;background:#4a4a58;border-radius:3px;flex:none;align-self:center;width:44px;height:5px;margin:-4px 0 6px}.m-edit-grip:after{content:"";height:34px;margin:-14px -40px;display:block}.m-row-pair{gap:8px}.m-row-pair .m-edit-label{flex:none;margin:0}.m-row-pair .m-edit-select{flex:1;min-width:0}.m-input-sm{width:74px}.m-place-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.m-place-grid button{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:8px;padding:11px 0;font-size:14px;font-weight:600}.m-place-grid button:active{background:#37374a}.m-place-grid button.on{color:#1a1200;background:#c4894a;border-color:#c4894a}.m-rot-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.m-rot-cell{background:#23232c;border:1px solid #33333e;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;display:flex}.m-rot-cell .m-edit-rot-name{flex:1;width:auto;font-size:13px}.m-rot-cell button{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:7px;flex:none;width:38px;padding:9px 0;font-size:15px;font-weight:700}.m-rot-cell button:active{background:#37374a}.m-tools-backdrop{z-index:3001;background:0 0;position:fixed;inset:0}.m-rot-cell .m-edit-step-input{flex:1;width:auto;min-width:0}.m-analysis{max-height:62vh}.m-an-empty,.m-an-note{color:#999;margin:2px 0;font-size:13px;line-height:1.45}.m-an-headline{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.m-an-big{color:#e6b072;font-size:26px;font-weight:800}.m-an-sub{color:#aaa;flex:1;font-size:13px}.m-an-clear{color:#bbb;cursor:pointer;background:0 0;border:1px solid #4a4a56;border-radius:7px;padding:6px 12px;font-size:13px}.m-an-add{color:#1a1200;cursor:pointer;background:linear-gradient(#c4894a,#b1783b);border:none;border-radius:8px;flex:none;padding:10px 14px;font-size:14px;font-weight:700}.m-an-verdict{border:1px solid #0000;border-radius:10px;padding:11px 13px;font-size:15px;font-weight:700}.m-an-verdict.ok{color:#9fe0b8;background:#1e2f26;border-color:#2f5a41}.m-an-verdict.warn{color:#f0cf86;background:#33290f;border-color:#6b5520}.m-an-verdict.bad{color:#ff9d9d;background:#3a1e1e;border-color:#5a2c2c}.m-an-pill{border-radius:20px;padding:2px 10px;font-size:13px;font-weight:700}.m-an-pill.ok{color:#9fe0b8;background:#1e2f26}.m-an-pill.warn{color:#f0cf86;background:#33290f}.m-an-pill.bad{color:#ff9d9d;background:#3a1e1e}.m-rot-cell button{flex:none;width:40px}.m-rot-cell .m-edit-step-input{background:#101018;border:1px solid #2f2f3a;flex:1;width:auto;min-width:0;font-weight:500}.m-rot-cell .m-edit-rot-name{flex:none;width:34px}.m-rot-cell .m-edit-rot-deg{flex:none;margin-left:0}.m-aim-bar{left:12px;right:12px;bottom:max(16px, env(safe-area-inset-bottom));z-index:3001;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#16161ef2;border:1px solid #ffffff24;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex;position:absolute}.m-aim-txt{color:#e6b072;flex:1;font-size:13.5px;font-weight:600}.m-rot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.m-rot-cell{min-width:0}.m-check-finding{text-align:left;color:#eee;cursor:pointer;background:#23232c;border:1px solid #33333e;border-radius:9px;align-items:flex-start;gap:10px;width:100%;padding:10px 11px;display:flex}.m-check-finding:active{background:#2c2c37}.m-check-text{flex-direction:column;gap:2px;min-width:0;display:flex}.m-check-title{font-size:13.5px;font-weight:650}.m-check-detail{color:#9aa1ae;font-size:12.5px;line-height:1.4}.m-an-capacity{background:#1b1e25;border:1px solid #3a3a46;border-radius:10px;flex-direction:column;gap:3px;padding:12px 13px;display:flex}.m-an-cap-num{color:#e6b072;font-size:25px;font-weight:800;line-height:1.1}.m-an-cap-sub{color:#9aa1ae;font-size:12px;line-height:1.45}.m-step-bar{left:12px;right:12px;bottom:max(16px, env(safe-area-inset-bottom));z-index:3001;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#16161ef5;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;gap:5px;padding:11px 13px 12px;display:flex;position:absolute}.m-step-head{justify-content:space-between;align-items:center;display:flex}.m-step-count{letter-spacing:.08em;text-transform:uppercase;color:#9aa1ae;font-size:11px;font-weight:600}.m-step-title{color:#e6b072;font-size:15px;font-weight:700}.m-step-detail{color:#cfd4dd;font-size:13px;line-height:1.45}.m-step-nav{gap:8px;margin-top:4px;display:flex}.m-step-nav button{color:#eee;cursor:pointer;background:#2a2a34;border:1px solid #3a3a46;border-radius:9px;flex:1;padding:11px 0;font-size:14px;font-weight:650}.m-step-nav button:disabled{opacity:.45}.app{-webkit-user-select:none;user-select:none;flex-direction:column;width:100%;height:100%;display:flex}.app input,.app textarea,.app select,.app [contenteditable=true]{-webkit-user-select:text;user-select:text}.app-header{background:linear-gradient(to bottom, var(--surface), var(--bg));border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;min-height:48px;padding:0 14px 0 16px;display:flex}.header-left{align-items:center;gap:10px;display:flex}.brand{align-items:center;gap:9px;min-width:0;display:flex}.brand-mark{object-fit:contain;border-radius:5px;flex-shrink:0;width:24px;height:24px;display:block;box-shadow:0 1px 2px #0000004d}.app-header h1{color:var(--text);letter-spacing:-.012em;white-space:nowrap;margin:0;font-size:14px;font-weight:600}.pro-badge{letter-spacing:.06em;background:var(--accent);color:var(--bg-deep);text-transform:uppercase;cursor:pointer;border:none;border-radius:3px;padding:2px 6px;font-size:9.5px;font-weight:700;line-height:1.4}.topbar-divider{background:var(--border-soft);flex-shrink:0;width:1px;height:22px}.user-chip{background:var(--surface-2);border:1px solid var(--border-soft);height:28px;color:var(--text);border-radius:999px;align-items:center;gap:8px;max-width:180px;padding:0 10px 0 4px;font-size:12.5px;font-weight:500;display:inline-flex}.user-avatar{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);width:20px;height:20px;color:var(--bg-deep);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-actions{gap:4px;margin-left:auto;display:flex}.btn-history{width:28px;height:28px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn-history:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--border-soft)}.btn-history:disabled{opacity:.35;cursor:default}.app-body{flex:1;min-height:0;display:flex}.sidebar{background:var(--bg);border-color:var(--border-soft);width:260px;min-width:260px;padding:16px;overflow-y:auto}.sidebar-left{border-right:1px solid var(--border-soft)}.sidebar-right{border-left:1px solid var(--border-soft)}.viewport{flex:1;min-width:0;position:relative}.lumber-catalog h2{text-transform:uppercase;letter-spacing:.085em;color:var(--text-3);margin-bottom:12px;font-size:10.5px;font-weight:600}.settings-section-header{border:none;border-bottom:1px solid var(--border-soft);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:6px;width:100%;padding:8px 0;display:flex}.settings-section-header h2{margin-bottom:0}.settings-section-header:hover h2{color:var(--text-2)}.build-space-settings h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);margin:10px 0 6px;font-size:11px;font-weight:600}.build-space-settings h3:first-child{margin-top:4px}.lumber-list{flex-direction:column;gap:2px;margin-bottom:20px;display:flex}.lumber-category{flex-direction:column;display:flex}.lumber-category-header{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);cursor:pointer;letter-spacing:.01em;border-radius:5px;align-items:center;gap:8px;margin-bottom:6px;padding:9px 10px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:flex}.lumber-category-header:hover{background:var(--surface-2);border-color:var(--border)}.lumber-category-header.has-selected{border-color:color-mix(in oklch, var(--accent), transparent 47%);color:var(--text)}.lumber-category-arrow{width:12px;color:var(--text-3);flex-shrink:0;font-size:10px}.lumber-category-header.has-selected .lumber-category-arrow{color:var(--accent)}.lumber-category-label{flex:1}.lumber-category-count{color:var(--text-3);font-variant-numeric:tabular-nums;background:var(--bg-deep);text-align:center;border-radius:999px;min-width:22px;padding:2px 7px;font-size:10.5px;font-weight:500}.lumber-category-header.has-selected .lumber-category-count{color:var(--accent)}.lumber-category-items{flex-direction:column;gap:2px;padding:4px 0 4px 12px;display:flex}.lumber-item{cursor:pointer;text-align:left;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:10px;padding:7px 10px 7px 7px;transition:background .12s,border-color .12s;display:flex}.lumber-item:hover{background:var(--surface);border-color:var(--border-soft)}.lumber-item.selected{background:color-mix(in oklch, var(--accent), transparent 88%);border-color:color-mix(in oklch, var(--accent), transparent 60%)}.lumber-swatch{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:3px;flex-shrink:0;width:28px;height:22px;box-shadow:inset 0 0 0 1px #00000026,0 1px #00000026}.lumber-item.selected .lumber-swatch{box-shadow:inset 0 0 0 1px #0003, 0 0 0 1.5px var(--accent), 0 1px 0 #00000026}.lumber-info{flex-direction:column;gap:1px;display:flex}.lumber-name{letter-spacing:-.005em;font-size:13px;font-weight:600}.lumber-dims{color:var(--text-3);font-size:10.5px}.lumber-item.selected .lumber-dims{color:var(--text-2)}.length-input{margin-bottom:16px}.length-input h3{text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:8px;font-size:12px}.length-fields{gap:8px;display:flex}.field{flex:1;align-items:center;gap:4px;display:flex}.field input{background:var(--surface);border:1px solid var(--border-soft);width:100%;color:var(--text);border-radius:4px;padding:6px 8px;font-size:14px}.field input:focus{border-color:var(--accent);outline:none}.app input:not([type=checkbox]):not([type=radio]):focus,.app select:focus,.app textarea:focus{box-shadow:0 0 0 3px var(--accent-glow)}.field label{color:var(--text-3);min-width:16px;font-size:12px}.length-total{color:var(--text-3);margin-top:6px;font-size:12px}.btn{cursor:pointer;border:none;border-radius:5px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:all .15s}.btn:active{transform:translateY(.5px)}.place-buttons{gap:4px;display:flex}.place-buttons .btn{flex:1}.btn-place{background:var(--accent);color:var(--bg-deep)}.btn-place:hover{background:var(--accent-hover)}.btn-place-end{background:var(--accent-2);color:var(--bg-deep)}.btn-place-end:hover{background:var(--accent-hover)}.btn-cancel{background:var(--border-soft);color:var(--text)}.btn-cancel:hover{background:var(--border)}.btn-rotate{background:var(--info-bg);color:var(--info);padding:6px 10px;font-size:12px}.btn-rotate:hover{background:var(--info-bg-hi)}.btn-delete{background:var(--danger-bg);color:var(--danger);padding:6px 10px;font-size:12px}.btn-delete:hover{background:var(--danger-bg-hi)}.place-actions{flex-direction:column;gap:8px;display:flex}.placing-indicator{background:var(--accent-glow);border:1px solid var(--accent);color:var(--accent);text-align:center;border-radius:6px;padding:8px;font-size:13px}.placing-hint{color:var(--text-3);text-align:center;font-size:12px}.settings-panel{flex-direction:column;gap:16px;display:flex}.settings-grid{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.settings-grid label{color:var(--text-2);font-size:13px}.settings-grid input[type=number],.settings-grid select{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);border-radius:4px;padding:6px 8px;font-size:13px}.settings-grid input[type=number]:focus,.settings-grid select:focus{border-color:var(--accent);outline:none}.settings-grid input[type=checkbox]{accent-color:var(--accent)}.selected-piece-info p{color:var(--text-2);margin-bottom:10px;font-size:12px}.piece-type-label{font-weight:600;color:var(--text)!important;font-size:14px!important}.edit-length{margin-bottom:10px}.edit-length-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:6px;font-size:12px;display:block}.edit-length .length-fields{align-items:center;gap:6px;display:flex}.edit-length .field input{width:48px;min-width:48px}.btn-apply{background:var(--info-bg);color:var(--info);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:6px 10px;font-size:12px;font-weight:600}.btn-apply:hover{background:var(--info-bg-hi)}.piece-actions{flex-wrap:wrap;gap:6px;display:flex}.piece-actions .btn{flex:1;width:auto}.pt-toggle{margin-bottom:16px}.toggle-label{cursor:pointer;color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.toggle-label input[type=checkbox]{accent-color:var(--ok);width:16px;height:16px}.toggle-text{flex:1}.pt-badge{background:var(--ok-bg-hi);color:var(--ok);letter-spacing:.5px;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:700}.supply-list-trigger{z-index:10;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.btn-supply-toggle{background:color-mix(in oklch, var(--surface), transparent 8%);width:auto;color:var(--text);border:1px solid var(--border-soft);cursor:pointer;white-space:nowrap;-webkit-backdrop-filter:blur(12px)saturate(140%);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:8px 8px 8px 16px;font-size:12.5px;font-weight:500;transition:background .15s,transform .15s;display:inline-flex}.btn-supply-toggle:hover{background:var(--surface-2);transform:translateY(-1px)}.supply-pieces{background:var(--accent);color:var(--bg-deep);font-feature-settings:"zero";border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;font-weight:600;display:inline-flex}.supply-list-overlay{background:var(--overlay);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.supply-list-panel{background:var(--bg);border:1px solid var(--border-soft);border-radius:12px;width:600px;max-width:90vw;max-height:85vh;padding:24px;overflow-y:auto}.supply-list-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.supply-list-header h2{color:var(--accent);margin:0;font-size:20px}.btn-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:24px;line-height:1}.btn-close:hover{color:var(--text)}.supply-summary{background:var(--surface);border-radius:8px;margin-bottom:20px;padding:16px}.supply-total{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.total-label{color:var(--text-3);text-transform:uppercase;letter-spacing:1px;font-size:14px}.total-price{color:var(--ok);font-size:28px;font-weight:700}.supply-stats{color:var(--text-3);gap:16px;font-size:13px;display:flex}.link-button{font-size:inherit;color:var(--accent,#4a7c59);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.link-button:hover{color:var(--text)}.supply-section{margin-bottom:20px}.supply-section h3{text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:10px;font-size:13px;font-weight:600}.supply-empty{color:var(--text-3);text-align:center;padding:40px 20px;font-size:14px}.shopping-list{flex-direction:column;gap:4px;display:flex}.shopping-item{background:var(--surface);border-radius:6px;align-items:center;gap:10px;padding:8px 12px;display:flex}.shopping-qty{color:var(--accent);min-width:30px;font-weight:700}.shopping-label{color:var(--text);flex:1;font-size:14px}.shopping-price{color:var(--ok);font-weight:600}.cut-plan{flex-direction:column;gap:10px;display:flex}.cut-board,.cut-board-group{background:var(--surface);border-radius:6px;padding:10px 12px}.cut-board-group-done{opacity:.55}.cut-board-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.cut-board-name{color:var(--text);flex:1;min-width:0;font-size:13px}.cut-board-qty{color:var(--accent);margin-left:4px;font-weight:600}.cut-board-progress{color:var(--text-3);font-variant-numeric:tabular-nums;text-align:right;min-width:36px;font-size:11px}.cut-board-price{color:var(--ok);font-size:13px}.cut-board-check{cursor:pointer;align-items:center;padding:2px;display:flex}.cut-board-check input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.cut-board-expand{border:1px solid var(--border-soft);color:var(--text-2);cursor:pointer;background:0 0;border-radius:4px;padding:2px 7px;font-size:12px;line-height:1}.cut-board-expand:hover{border-color:var(--accent);color:var(--text)}.cut-board-instances{border-top:1px dashed var(--border-soft);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.cut-board-instance{color:var(--text-2);align-items:center;gap:8px;font-size:12px;display:flex}.cut-board-instance-done{color:var(--text-3);text-decoration:line-through}.cut-board-instance-label{flex:1}.cut-bar{background:var(--bg-deep);border-radius:4px;height:24px;display:flex;overflow:hidden}.cut-segment{background:var(--accent);border-right:1px solid var(--bg-deep);justify-content:center;align-items:center;min-width:2px;display:flex}.cut-waste{background:var(--danger-bg);justify-content:center;align-items:center;min-width:2px;display:flex}.cut-label{color:var(--bg-deep);white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:10px;font-weight:600;overflow:hidden}.cut-waste .cut-label{color:var(--danger)}.cut-segment-miter{background:var(--accent);border-left:2px solid var(--pivot);border-right:2px solid var(--pivot)}.cut-miter-notes{flex-direction:column;gap:3px;margin-top:6px;display:flex}.cut-miter-note{align-items:center;gap:8px;font-size:11px;display:flex}.miter-note-length{color:var(--text-2);min-width:48px}.miter-tag{background:var(--warning-bg);color:var(--warning);letter-spacing:.3px;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.cut-checklist{flex-direction:column;gap:2px;margin-top:6px;display:flex}.cut-line{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;padding:1px 0;font-size:12px;display:flex}.cut-line input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--accent);flex:none}.cut-line-label{flex:1;align-items:baseline;gap:6px;min-width:0;display:flex}.cut-line-num{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.cut-line-done .cut-line-label{color:var(--text-3);text-decoration:line-through}.cut-board-instance-block{padding-bottom:4px}.cut-board-instance-block .cut-checklist{margin-top:2px;margin-bottom:4px;margin-left:24px}.cut-segment-done{opacity:.4}.step-show-btn{border:1px solid var(--border-soft);color:var(--text-2);cursor:pointer;background:0 0;border-radius:4px;padding:3px 9px;font-size:11px;line-height:1.2}.step-show-btn:hover{border-color:var(--accent);color:var(--text)}.settings-panel h2,.control-group-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);border-bottom:1px solid var(--border-soft);margin:18px 0 10px;padding-bottom:7px;font-size:12px;font-weight:600}.control-group-heading--divider{border-top:none;margin-top:18px;padding-top:0}.assembly-steps{flex-direction:column;gap:10px;display:flex}.assembly-step{background:var(--surface);border-radius:6px;align-items:flex-start;gap:10px;padding:10px;display:flex}.assembly-step-num{background:var(--accent);width:24px;height:24px;color:var(--bg-deep);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.assembly-step-thumb{background:var(--bg-deep);object-fit:contain;border-radius:4px;flex:none;width:84px;height:84px}.assembly-step-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.assembly-step-title{color:var(--text);font-size:13px;font-weight:600}.assembly-step-detail{color:var(--text-2);font-size:12px;line-height:1.4}.assembly-step-fasteners{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.fastener-chip{background:var(--bg-deep);color:var(--text-2);border-radius:10px;padding:1px 7px;font-size:11px}.assembly-step .step-show-btn{align-self:flex-start;margin-top:2px}.assembly-steps-print .assembly-step{break-inside:avoid;background:#f5f5f5}.assembly-steps-print .assembly-step-num{color:#fff;background:#333}.assembly-steps-print .assembly-step-title{color:#111}.assembly-steps-print .assembly-step-detail{color:#333}.assembly-steps-print .fastener-chip{color:#333;background:#e4e4e4}.piece-buried-info{color:var(--accent-2);font-size:11px;font-weight:600}.piece-miter-info{color:var(--warning);font-size:11px;font-weight:600}.pieces-list{flex-direction:column;gap:2px;display:flex}.piece-row{background:var(--surface);border-radius:4px;justify-content:space-between;padding:6px 12px;font-size:13px;display:flex}.piece-type{color:var(--text)}.piece-length{color:var(--text-3)}.build-dimensions{z-index:10;background:color-mix(in oklch, var(--surface), transparent 12%);border:1px solid var(--border-soft);pointer-events:none;-webkit-backdrop-filter:blur(12px)saturate(140%);min-width:130px;box-shadow:var(--shadow);border-radius:8px;padding:8px 11px;position:absolute;top:14px;left:14px}.build-watermark{z-index:9;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:.3px;color:#ffffff4a;text-shadow:0 1px 3px #0000008c;white-space:nowrap;font-size:14px;font-weight:600;position:absolute;bottom:198px;left:50%;transform:translate(-50%)}.build-watermark span{color:#e6b0728a}:root[data-theme=paper] .build-watermark{color:#281e145c;text-shadow:0 1px 2px #ffffff80}:root[data-theme=paper] .build-watermark span{color:#966428a1}.dim-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:6px;font-size:9.5px;font-weight:600}.dim-row{align-items:center;gap:8px;margin-bottom:2px;display:flex}.dim-axis{border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;display:flex}.dim-x{color:var(--bg-deep);background:oklch(72% .16 25)}.dim-y{color:var(--bg-deep);background:oklch(78% .16 145)}.dim-z{color:var(--bg-deep);background:oklch(72% .14 240)}.dim-wt{background:var(--border-soft);color:var(--text);opacity:.8}.dim-weight{border-top:1px solid var(--border-soft);margin-top:4px;padding-top:4px}.dim-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.miter-controls{margin-bottom:10px}.miter-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.miter-row label{color:var(--text-2);min-width:32px;font-size:12px}.miter-row input[type=number]{background:var(--surface);border:1px solid var(--border-soft);width:56px;color:var(--text);border-radius:4px;padding:4px 6px;font-size:13px}.miter-row input[type=number]:focus{border-color:var(--accent);outline:none}.miter-row select{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);border-radius:4px;padding:4px 6px;font-size:12px}.miter-row select:focus{border-color:var(--accent);outline:none}.miter-actions{gap:4px;margin-top:6px;display:flex}.btn-miter-action{background:var(--info-bg);color:var(--info);border:1px solid var(--info-bg-hi);flex:1;padding:4px 8px;font-size:11px}.btn-miter-action:hover{background:var(--info-bg-hi)}.btn-miter-clear{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bg-hi);padding:4px 8px;font-size:11px}.btn-miter-clear:hover{background:var(--danger-bg-hi)}.gizmo-toggle{gap:4px;margin-bottom:10px;display:flex}.btn-gizmo{background:var(--surface);color:var(--text-3);border:1px solid var(--border-soft);padding:6px 12px;font-size:12px}.btn-gizmo:hover{background:var(--surface-2)}.btn-gizmo-active{background:var(--info-bg);color:var(--info);border:1px solid var(--info);padding:6px 12px;font-size:12px}.rotation-inputs{margin-bottom:10px}.rotation-fields{align-items:center;gap:6px;display:flex}.rotation-fields .field input{width:56px;min-width:48px}.align-controls{margin-bottom:10px}.btn-align{background:var(--info-bg);color:var(--info);padding:6px 10px;font-size:12px}.btn-align:hover{background:var(--info-bg-hi)}.auto-miter-info{margin-bottom:10px}.btn-miter{background:var(--ok-bg);color:var(--ok);padding:8px 12px;font-size:13px}.btn-miter:hover{background:var(--ok-bg-hi)}.auto-miter-hint{color:var(--text-3);margin-top:4px;font-size:11px}.lock-toggle{margin-top:6px}.lock-toggle .toggle-label{gap:6px;font-size:12px}.lock-toggle input[type=checkbox]{accent-color:var(--warning);width:14px;height:14px}.pivot-info{background:color-mix(in oklch, var(--pivot), transparent 92%);border:1px solid var(--pivot);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.pivot-label{color:var(--danger);font-size:12px;font-weight:600}.lock-info{margin-bottom:10px}.lock-row{justify-content:space-between;align-items:center;gap:6px;padding:3px 0;display:flex}.lock-label{color:var(--warning);font-size:12px}.btn-clear-build{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bg-hi)}.btn-clear-build:hover:not(:disabled){background:var(--danger-bg-hi);border-color:var(--danger)}.btn-clear-build:disabled{opacity:.3;cursor:default}.tool-buttons-stack{flex-direction:column;gap:4px;display:flex}.tool-buttons-row{grid-template-columns:1fr 1fr;gap:4px;display:grid}.tool-btn-full{width:100%}.tool-buttons-stack .btn{white-space:nowrap;text-align:center;padding:6px 8px;font-size:12px}.btn-tool{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-soft)}.btn-tool:hover{background:var(--surface-hi);color:var(--text);border-color:var(--border)}.btn-tool-active{background:var(--tool-active-bg);color:var(--tool-active);border:1px solid var(--tool-active)}.btn-tool-active:hover{background:var(--tool-active-bg)}.tool-status{background:color-mix(in oklch, var(--tool-active), transparent 94%);border:1px solid var(--tool-active);border-radius:6px;margin-top:8px;padding:10px}.tool-prompt{color:var(--tool-active);text-align:center;margin:0;font-size:13px;font-weight:500}.tool-prompt-step2{color:var(--warning)}.btn-measure{background:var(--info-bg);color:var(--info)}.btn-measure:hover{background:var(--info-bg-hi)}.btn-measure-active{background:var(--info);color:var(--bg-deep)}.btn-measure-active:hover{background:var(--info)}.measure-info{margin-top:8px}.measure-type-select{margin-bottom:10px}.measure-type-select select{background:var(--surface);border:1px solid var(--border-soft);width:100%;color:var(--text);border-radius:4px;padding:6px 8px;font-size:13px}.measure-type-select select:focus{border-color:var(--info);outline:none}.measure-prompt{color:var(--text-2);align-items:center;gap:6px;font-size:13px;display:flex}.measure-dot-a{background:var(--info);border-radius:50%;width:10px;height:10px;display:inline-block}.measure-dot-b{background:#ff4a9e;border-radius:50%;width:10px;height:10px;display:inline-block}.measure-result{background:var(--surface);border-radius:8px;padding:12px}.measure-distance{color:var(--measure);margin-bottom:6px;font-size:24px;font-weight:700}.measure-pieces{color:var(--text-2);align-items:center;gap:8px;font-size:13px;display:flex}.measure-pieces span{align-items:center;gap:4px;display:flex}.measure-label{background:var(--measure-label-bg);color:var(--measure);border:1px solid var(--measure);white-space:nowrap;border-radius:4px;padding:4px 10px;font-family:system-ui,sans-serif;font-size:14px;font-weight:700}.template-builder{margin-bottom:16px}.template-builder h2{text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:10px;font-size:13px;font-weight:600}.template-search{gap:4px;margin-bottom:4px;display:flex}.template-input{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);border-radius:6px;flex:1;padding:8px 10px;font-size:13px}.template-input:focus{border-color:var(--accent);outline:none}.template-input::placeholder{color:var(--text-4);font-size:12px}.template-browse-btn{white-space:nowrap;background:var(--surface);min-width:44px;color:var(--text-3);border:1px solid var(--border-soft);padding:0 10px!important;font-size:12px!important}.template-browse-btn:hover{background:var(--surface-2);color:var(--accent)}.template-suggestions{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;margin-bottom:6px;display:flex;overflow:hidden}.template-suggestion{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--surface-2);background:0 0;flex-direction:column;padding:8px 10px;transition:background .1s;display:flex}.template-suggestion:last-child{border-bottom:none}.template-suggestion:hover,.template-suggestion.focused{background:var(--surface-2)}.suggestion-name{color:var(--text);font-size:14px;font-weight:600}.suggestion-category{color:var(--text-4);text-transform:uppercase;letter-spacing:.5px;margin-top:1px;font-size:10px}.suggestion-desc{color:var(--text-3);margin-top:2px;font-size:11px}.template-no-results{color:var(--text-4);text-align:center;padding:12px 8px;font-size:12px}.template-browse{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.browse-header{color:var(--text-3);margin-bottom:2px;padding:4px 0;font-size:12px;font-weight:600}.browse-category-btn{background:var(--surface);color:var(--text-2);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:5px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.browse-category-btn:hover{background:var(--surface-2);border-color:var(--border)}.browse-count{color:var(--text-4);font-size:11px}.browse-back-btn{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;margin-bottom:4px;padding:4px 0;font-size:12px}.browse-back-btn:hover{color:var(--accent-hover)}.browse-template-btn{background:var(--surface);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:5px;flex-direction:column;padding:8px 10px;display:flex}.browse-template-btn:hover{background:var(--surface-2);border-color:var(--border)}.template-editor{background:var(--bg);border:1px solid var(--border-soft);border-radius:8px;margin-top:6px;padding:12px}.template-editor-header{justify-content:space-between;align-items:center;display:flex}.template-editor h3{color:var(--accent);margin:0;font-size:16px;font-weight:600}.template-close{padding:0 4px;font-size:20px;line-height:1}.template-desc{color:var(--text-3);margin:4px 0 10px;font-size:12px}.template-params{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.template-param{justify-content:space-between;align-items:center;gap:8px;display:flex}.template-param label{color:var(--text-2);flex-shrink:0;font-size:13px}.template-param input[type=number]{background:var(--surface);border:1px solid var(--border-soft);width:70px;color:var(--text);text-align:right;border-radius:4px;padding:5px 6px;font-size:13px}.template-param input[type=number]:focus{border-color:var(--accent);outline:none}.template-param select{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);text-overflow:ellipsis;border-radius:4px;flex-shrink:0;width:116px;min-width:0;padding:5px 6px;font-size:13px}.template-param select:focus{border-color:var(--accent);outline:none}.param-number{align-items:center;gap:4px;display:flex}.param-unit{color:var(--text-4);min-width:18px;font-size:11px}.param-checkbox input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.template-actions{gap:6px;display:flex}.btn-template-generate,.btn-template-add{background:var(--accent);color:var(--bg-deep);flex:1}.btn-template-generate:hover,.btn-template-add:hover{background:var(--accent-hover)}.btn-template-replace{background:var(--accent-soft);color:var(--accent);flex:1}.btn-template-replace:hover{background:var(--accent-soft)}.template-hint{color:var(--text-4);text-align:center;padding:12px 8px;font-size:12px;line-height:1.5}.auth-overlay{background:var(--overlay);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:12px;width:380px;max-width:90vw;padding:24px;position:relative}.auth-close{position:absolute;top:12px;right:12px}.auth-tabs{border-bottom:1px solid var(--border-soft);gap:0;margin-bottom:20px;display:flex}.auth-tab{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-size:14px;font-weight:600;transition:all .15s}.auth-tab:hover{color:var(--text-2)}.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-field label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.auth-field input{background:var(--surface);border:1px solid var(--border-soft);color:var(--text);border-radius:6px;padding:10px 12px;font-size:14px;transition:border-color .15s}.auth-field input:focus{border-color:var(--accent);outline:none}.auth-field input::placeholder{color:var(--text-4)}.auth-error{background:color-mix(in oklch, var(--danger), transparent 90%);border:1px solid var(--danger-bg-hi);color:var(--danger);border-radius:6px;padding:10px 12px;font-size:13px}.btn-auth-submit{background:var(--accent);color:var(--bg-deep);margin-top:4px;padding:12px;font-size:15px}.btn-auth-submit:hover:not(:disabled){background:var(--accent-hover)}.btn-auth-submit:disabled{opacity:.5;cursor:default}.header-user{align-items:center;gap:8px;margin-left:16px;display:flex}.header-username{color:var(--text-2);font-size:13px;font-weight:500}.btn-header{height:28px;color:var(--text-2);border:1px solid var(--border-soft);white-space:nowrap;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 11px;font-family:inherit;font-size:12.5px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn-header:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-header-primary,.btn-header-signin{background:var(--accent);color:var(--bg-deep);border-color:#0000;font-weight:600}.btn-header-primary:hover,.btn-header-signin:hover{background:var(--accent);filter:brightness(1.08);border-color:#0000}.btn-header-signout{color:var(--text-3);background:0 0;border-color:#0000}.btn-header-signout:hover{color:var(--danger);background:var(--danger-bg)}.saveload-panel{background:var(--bg);border:1px solid var(--border-soft);border-radius:12px;width:460px;max-width:90vw;max-height:85vh;padding:24px;overflow-y:auto}.saveload-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.saveload-header h2{color:var(--accent);margin:0;font-size:20px}.saveload-success{background:color-mix(in oklch, var(--ok), transparent 90%);border:1px solid var(--ok-bg-hi);color:var(--ok);border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.saveload-form{flex-direction:column;gap:14px;display:flex}.saveload-checkbox{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.saveload-checkbox input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.saveload-meta{color:var(--text-4);font-size:12px}.btn-save-new{background:var(--border-soft);color:var(--text-2);font-size:13px}.btn-save-new:hover{background:var(--border)}.saveload-list{flex-direction:column;gap:6px;display:flex}.saveload-loading{color:var(--text-3);text-align:center;padding:20px;font-size:13px}.saveload-empty{color:var(--text-4);text-align:center;padding:30px 16px;font-size:13px}.saveload-item{background:var(--surface);border:1px solid var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.saveload-item:hover{border-color:var(--border)}.saveload-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.saveload-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.saveload-item-meta{color:var(--text-4);font-size:11px}.saveload-item-actions{flex-shrink:0;gap:4px;display:flex}.btn-load{background:var(--info-bg);color:var(--info);width:auto;padding:5px 12px;font-size:12px}.btn-load:hover{background:var(--info-bg-hi)}.btn-delete-small{background:var(--danger-bg);color:var(--danger);width:auto;padding:5px 10px;font-size:12px}.btn-delete-small:hover{background:var(--danger-bg)}.legal-footer{background:color-mix(in oklch, var(--bg), transparent 15%);border-top:1px solid var(--border-soft);border-left:1px solid var(--border-soft);border-right:1px solid var(--border-soft);z-index:50;border-radius:8px 8px 0 0;align-items:center;gap:8px;padding:4px 12px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.legal-link{color:var(--text-4);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px;text-decoration:none;transition:color .15s}.legal-link:hover{color:var(--accent)}.legal-sep{color:var(--border);font-size:11px}.legal-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:12px;width:640px;max-width:90vw;max-height:85vh;padding:32px;position:relative;overflow-y:auto}.legal-content{color:var(--text-2);font-size:14px;line-height:1.65}.legal-content h2{color:var(--accent);margin:0 0 4px;font-size:22px}.legal-content h3{color:var(--text);margin:20px 0 6px;font-size:15px}.legal-content p{margin:6px 0}.legal-content ul{margin:6px 0;padding-left:20px}.legal-content li{margin:4px 0}.legal-updated{color:var(--text-4);font-size:12px;font-style:italic}.auth-terms{margin-top:4px}.auth-terms-label{color:var(--text-2);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}.auth-terms-label input[type=checkbox]{accent-color:var(--accent);margin-top:3px}.legal-inline-link{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.legal-inline-link:hover{color:var(--accent-hover)}.pricing-modal{background:var(--surface);border-radius:14px;width:600px;max-width:95vw;padding:32px 28px;position:relative;box-shadow:0 20px 60px #00000080}.pricing-modal-wide{width:880px}.pricing-title{text-align:center;color:var(--text);margin:0 0 24px;font-size:22px}.pricing-cards{gap:16px;display:flex}.pricing-card{background:var(--surface-2);border:2px solid #0000;border-radius:10px;flex-direction:column;flex:1;align-items:center;padding:24px 20px;transition:border-color .2s;display:flex}.pricing-card h3{color:var(--text);margin:0 0 8px;font-size:18px}.pricing-card-pro{border-color:var(--accent)}.pricing-card-lifetime{border-color:var(--ok)}.pricing-save-badge{background:var(--accent-glow);color:var(--accent);text-transform:uppercase;letter-spacing:.5px;border-radius:12px;margin-bottom:8px;padding:3px 12px;font-size:11px;font-weight:700}.pricing-save-best{background:color-mix(in oklch, var(--ok), transparent 85%);color:var(--ok)}.pricing-per-month{color:var(--text-3);margin-top:-12px;margin-bottom:16px;font-size:12px}.pricing-warning{text-align:center;background:color-mix(in oklch, var(--danger), transparent 90%);border:1px solid color-mix(in oklch, var(--danger), transparent 70%);color:var(--danger);border-radius:8px;margin-top:16px;padding:10px 16px;font-size:13px}.pricing-current{border-color:var(--border)}.pricing-price{color:var(--text);margin-bottom:16px;font-size:32px;font-weight:700}.pricing-period{color:var(--text-3);font-size:14px;font-weight:400}.pricing-features{width:100%;margin:0 0 20px;padding:0;list-style:none}.pricing-features li{color:var(--text-2);border-bottom:1px solid var(--border-soft);padding:6px 0;font-size:13px}.pricing-features li:last-child{border-bottom:none}.pricing-features li:before{content:"✓ ";color:var(--accent);font-weight:700}.pricing-badge{background:var(--border-soft);color:var(--text-3);border-radius:20px;margin-bottom:8px;padding:4px 14px;font-size:12px;font-weight:600}.pricing-badge-pro{background:var(--accent-glow);color:var(--accent)}.pricing-badge-warn{color:var(--danger);background:#dc783c26}.btn-pricing-primary{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:8px;margin-top:auto;padding:10px 24px;font-size:14px;font-weight:600;transition:background .2s}.btn-pricing-primary:hover{background:var(--accent-hover)}.btn-pricing-secondary{color:var(--text-2);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:8px 20px;font-size:13px;transition:border-color .2s,color .2s}.btn-pricing-secondary:hover{border-color:var(--accent);color:var(--text)}.donate-modal{background:var(--surface);border-radius:14px;width:400px;max-width:95vw;padding:32px 28px;position:relative;box-shadow:0 20px 60px #00000080}.donate-title{text-align:center;color:var(--text);margin:0 0 8px;font-size:20px}.donate-desc{text-align:center;color:var(--text-3);margin:0 0 20px;font-size:13px}.donate-presets{gap:10px;margin-bottom:16px;display:flex}.btn-donate-preset{border:2px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:12px 0;font-size:16px;font-weight:600;transition:border-color .2s,background .2s}.btn-donate-preset:hover{border-color:var(--accent);background:var(--accent-glow)}.btn-donate-preset:disabled{opacity:.5;cursor:not-allowed}.donate-custom{align-items:stretch;gap:10px;display:flex}.donate-custom-input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex:1;align-items:center;padding:0 12px;display:flex}.donate-dollar{color:var(--text-3);margin-right:4px;font-size:16px}.donate-custom-input input{color:var(--text);background:0 0;border:none;outline:none;flex:1;width:80px;padding:10px 0;font-size:15px}.donate-custom-input input::placeholder{color:var(--text-4)}.btn-donate-custom{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .2s}.btn-donate-custom:hover{background:var(--accent-hover)}.btn-donate-custom:disabled{opacity:.5;cursor:not-allowed}.btn-header-donate{border:1px solid var(--danger);color:var(--danger);background:0 0;border-radius:6px;padding:4px 12px;font-size:13px}.btn-header-donate:hover{background:color-mix(in oklch, var(--danger) 12%, transparent)}.btn-header-upgrade{background:var(--accent);color:var(--bg);border:none;border-radius:6px;padding:4px 14px;font-size:13px;font-weight:600}.btn-header-upgrade:hover{background:var(--accent-hover)}.template-locked{position:relative}.template-locked-overlay{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:32px 16px;display:flex}.template-locked-icon{margin-bottom:12px;font-size:36px}.template-locked-overlay p{color:var(--text-2);margin:0;font-size:14px}.template-locked-price{color:var(--text-3)!important;margin-top:4px!important;margin-bottom:16px!important;font-size:13px!important}.toast{background:var(--accent);color:var(--bg);text-align:center;cursor:pointer;z-index:9999;border-radius:8px;max-width:80vw;padding:12px 26px;font-size:14px;font-weight:600;animation:.3s ease-out toast-in;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 28px #00000073}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,calc(16px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}.session-restore-banner{background:var(--panel-bg,#23262e);color:var(--text,#e8e8e8);border:1px solid var(--accent);z-index:10000;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;max-width:92vw;padding:10px 16px;font-size:13px;animation:.3s ease-out toast-in;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000073}.session-restore-text{opacity:.9}.session-restore-actions{gap:8px;display:flex}.session-restore-actions .btn{padding:5px 14px;font-size:12px}.session-restore-upsell{text-align:center;color:var(--accent);cursor:pointer;opacity:.85;background:0 0;border:none;flex-basis:100%;margin:0;padding:2px 0 0;font-size:12px;font-weight:600}.session-restore-upsell:hover{opacity:1;text-decoration:underline}.shortcuts-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px 28px;display:grid}.shortcuts-group-title{margin:0 0 8px;font-size:14px}.shortcuts-row{align-items:baseline;gap:10px;font-size:13px;line-height:1.7;display:flex}.shortcuts-keys{flex-wrap:wrap;flex-shrink:0;gap:3px;min-width:92px;display:flex}.shortcuts-kbd{border:1px solid var(--border,#444);background:var(--panel-bg-alt,#ffffff0f);border-radius:5px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;display:inline-block}.shortcuts-what{opacity:.85}.tool-group{margin-top:4px}.tool-group-header{width:100%;color:inherit;cursor:pointer;text-align:left;opacity:.85;background:0 0;border:none;align-items:center;gap:8px;padding:6px 4px;font-size:12px;font-weight:600;display:flex}.tool-group-header:hover{opacity:1}.tool-group-caret{opacity:.7;flex-shrink:0;width:12px}.tool-group-title{flex:1}.tool-group-count{opacity:.55;border:1px solid var(--border,#444);border-radius:9px;padding:1px 7px;font-size:10px;font-weight:600}.tool-group-body{flex-direction:column;gap:6px;padding:2px 0 4px;display:flex}@media (width<=900px){.pricing-cards{flex-wrap:wrap}.pricing-card{min-width:calc(50% - 12px)}.pricing-modal-wide{width:600px}}@media (width<=600px){.pricing-cards{flex-direction:column}.pricing-card{min-width:100%}.pricing-modal,.pricing-modal-wide{width:95vw;padding:20px 16px}}.lshape-controls{border-top:1px solid var(--border-soft);margin-top:8px;padding:8px 0}.lshape-toggle{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.lshape-toggle input[type=checkbox]{accent-color:var(--accent)}.lshape-params{flex-direction:column;gap:6px;margin-top:8px;display:flex}.lshape-corner{align-items:center;gap:8px;display:flex}.lshape-corner label{color:var(--text-3);min-width:48px;font-size:12px}.lshape-corner select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:4px;flex:1;padding:3px 6px;font-size:12px}.lshape-dims{gap:8px;display:flex}.lshape-dims .field{flex:1}.lshape-dims .field input{width:100%}.lshape-dims .field label{font-size:11px}.cut-sheet-overlay{background:var(--overlay);z-index:5000;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.cut-sheet-panel{background:var(--bg);border-radius:12px;width:90vw;max-width:1000px;max-height:85vh;padding:24px;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000080}.cut-sheet-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.cut-sheet-header h2{color:var(--text);margin:0;font-size:20px}.cut-sheet-summary{color:var(--text-2);flex:1;gap:8px;font-size:13px;display:flex}.cut-sheet-sep{color:var(--border)}.cut-sheet-close{position:absolute;top:16px;right:16px}.cut-sheet-empty{text-align:center;color:var(--text-4);padding:40px;font-size:14px}.cut-sheet-grid{flex-direction:column;gap:24px;display:flex}.cut-sheet-diagram{background:var(--bg);border-radius:8px;padding:12px}.cut-sheet-label{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cut-sheet-label-name{color:var(--text);font-size:14px;font-weight:600}.cut-sheet-label-info{color:var(--text-3);font-size:12px}.cut-sheet-svg{margin:0 auto;display:block}.cut-sheet-piece-label{pointer-events:none;font-family:monospace;font-weight:600}.btn-cutsheet{background:var(--accent);width:100%;color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:10px;font-size:14px;font-weight:600;transition:background .2s}.btn-cutsheet:hover{background:var(--accent-hover)}.gallery-overlay{background:var(--overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gallery-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(900px,95vw);max-height:85vh;padding:24px;overflow-y:auto}.gallery-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.gallery-header h2{color:var(--text);margin:0;font-size:20px}.gallery-loading,.gallery-empty{text-align:center;color:var(--text-3);padding:40px 0;font-size:15px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.gallery-winner{border:1px solid var(--accent);background:#c98a4b1a;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.gallery-winner-badge{color:var(--accent);white-space:nowrap;font-weight:700}.gallery-winner-name{font-weight:700}.gallery-winner-by{color:var(--text-muted,#999);font-size:13px}.gallery-winner .btn-gallery-load{margin-left:auto}.gallery-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.gallery-sort-tab{border:1px solid var(--border);color:var(--text,inherit);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:13px}.gallery-sort-tab.is-active{background:var(--accent);border-color:var(--accent);color:#1e1a16;font-weight:600}.gallery-leader{color:var(--text-muted,#999);margin-left:auto;font-size:12px}.btn-vote{border:1px solid var(--border);color:var(--text,inherit);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 10px;font-size:13px;font-weight:600}.btn-vote:hover:not(:disabled){border-color:var(--accent)}.btn-vote.is-voted{background:var(--accent);border-color:var(--accent);color:#1e1a16}.btn-vote:disabled{opacity:.5;cursor:default}.btn-report{color:var(--text-muted,#999);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:12px}.btn-report:hover:not(:disabled){color:#d15b5b}.btn-report:disabled{color:#d15b5b;cursor:default}.gallery-report-count{color:#d15b5b;white-space:nowrap;font-size:12px;font-weight:700}.btn-owner-delete{color:#d15b5b;cursor:pointer;background:0 0;border:1px solid #d15b5b;border-radius:8px;padding:4px 10px;font-size:12px}.btn-owner-delete:hover{color:#fff;background:#d15b5b}.gallery-card{background:var(--border-soft);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;padding:16px;transition:border-color .15s;display:flex}.gallery-card:hover{border-color:var(--accent)}.gallery-card-thumb{background:var(--bg);border-radius:4px;justify-content:center;align-items:center;min-height:100px;display:flex;overflow:hidden}.gallery-card-thumb img{object-fit:contain;width:100%;max-height:140px}.gallery-card-info{flex-direction:column;gap:4px;display:flex}.gallery-card-name{color:var(--text);font-size:15px;font-weight:600}.gallery-card-author{color:var(--accent);font-size:13px}.gallery-card-desc{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.gallery-card-meta{color:var(--text-4);margin-top:4px;font-size:12px}.btn-gallery-load{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s}.btn-gallery-load:hover{background:var(--accent-hover)}.btn-gallery-load:disabled{opacity:.6;cursor:default}.gallery-pagination{border-top:1px solid var(--border-soft);justify-content:center;align-items:center;gap:16px;margin-top:20px;padding-top:16px;display:flex}.gallery-page-info{color:var(--text-2);font-size:13px}.btn-gallery-page{background:var(--border-soft);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px;transition:background .15s}.btn-gallery-page:hover:not(:disabled){background:var(--border)}.btn-gallery-page:disabled{opacity:.4;cursor:default}.btn-header-gallery{color:var(--accent)!important}@media (width<=600px){.gallery-grid{grid-template-columns:1fr}.gallery-panel{padding:16px}}.notes-section{margin-top:12px}.notes-textarea{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border-soft);resize:vertical;box-sizing:border-box;border-radius:4px;outline:none;min-height:60px;max-height:200px;padding:8px;font-family:inherit;font-size:12px}.notes-textarea:focus{border-color:var(--accent)}.notes-textarea::placeholder{color:var(--text-4)}.connector-section{margin-top:3px}.connector-add{align-items:center;gap:6px;display:flex}.connector-type-select{background:var(--surface);color:var(--text);border:1px solid var(--border-soft);border-radius:4px;outline:none;flex:1;padding:4px 6px;font-size:12px}.connector-type-select:focus{border-color:var(--accent)}.connector-list{flex-direction:column;gap:3px;max-height:150px;margin-top:6px;display:flex;overflow-y:auto}.connector-item{background:var(--surface);border:1px solid var(--border-soft);cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:12px;display:flex}.connector-item-selected{border-color:#4a90d9;box-shadow:inset 0 0 0 1px #4a90d9}.connector-editor{background:var(--surface);border:1px solid #4a90d9;border-top:none;border-radius:0 0 4px 4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:flex}.connector-editor input[type=number]{width:52px}.connector-item-label{color:var(--text);flex-direction:column;gap:1px;display:flex}.connector-item-pieces{color:var(--text-4);font-size:10px}.connector-add-form{flex-direction:column;gap:4px;display:flex}.connector-row{align-items:center;gap:4px;display:flex}.connector-row select{flex:1;min-width:0}.supply-tabs{border-bottom:1px solid var(--border-soft);gap:0;margin-bottom:12px;display:flex}.supply-tab{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:13px;font-weight:600;transition:all .15s}.supply-tab:hover{color:var(--text)}.supply-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.instructions-content{overflow-y:auto}.instructions-list{flex-direction:column;gap:3px;display:flex}.instruction-item{border-bottom:1px solid var(--surface);align-items:baseline;gap:8px;padding:4px 0;font-size:12px;display:flex}.instruction-label{color:var(--accent);flex-shrink:0;min-width:32px;font-weight:700}.instruction-detail{color:var(--text);flex:1}.instruction-miter{color:var(--danger);font-size:11px}.instruction-notes{color:var(--text);white-space:pre-wrap;background:var(--surface);border:1px solid var(--border-soft);border-radius:4px;max-height:200px;padding:8px;font-size:12px;overflow-y:auto}.theme-toggle{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:999px;flex-shrink:0;align-items:center;gap:0;height:28px;padding:2px;display:inline-flex}.theme-seg{height:100%;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:12.5px;font-weight:500;line-height:1;transition:color .12s,background .12s;display:inline-flex}.theme-seg:hover{color:var(--text)}.theme-seg.active{background:var(--accent);color:var(--bg-deep);font-weight:600}.theme-seg svg{flex-shrink:0}body,.app-header,.sidebar,.panel,.btn-header,.btn-history{transition:background-color .15s,color .15s,border-color .15s}.splash-overlay{background:var(--overlay);z-index:250;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.splash-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:16px;width:520px;max-width:92vw;padding:32px 32px 24px;position:relative;box-shadow:0 24px 64px #00000073}.splash-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;line-height:1;position:absolute;top:12px;right:14px}.splash-close:hover{color:var(--text);background:var(--bg-soft)}.splash-title{color:var(--text);margin:0 0 8px;font-size:22px}.splash-subtitle{color:var(--text-2);margin:0 0 24px;font-size:14px;line-height:1.5}.splash-ctas{flex-direction:column;gap:10px;display:flex}.splash-cta{background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;transition:border-color .15s,background-color .15s,transform 50ms;display:flex}.splash-cta:hover{border-color:var(--accent)}.splash-cta:active{transform:translateY(1px)}.splash-cta-primary{border-color:color-mix(in oklch, var(--accent), transparent 35%);background:color-mix(in oklch, var(--accent), transparent 88%)}.splash-cta-primary:hover{border-color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 80%)}.splash-cta-label{font-size:15px;font-weight:600}.splash-cta-hint{color:var(--text-3);font-size:12px;line-height:1.4}.splash-footer{flex-direction:column;align-items:center;gap:8px;margin-top:18px;display:flex}.splash-skip-link{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px}.splash-skip-link:hover{color:var(--text);text-decoration:underline}.splash-reopen-hint{color:var(--text-4);text-align:center;margin:0;font-size:11px}.box-select-rect{z-index:15;pointer-events:none;border:1px solid var(--accent);background:color-mix(in oklch, var(--accent), transparent 85%);box-shadow:0 0 0 1px color-mix(in oklch, var(--bg-deep), transparent 40%);border-radius:2px;position:absolute}.view-presets{background:color-mix(in oklch, var(--bg), transparent 18%);border:1px solid var(--border-soft);z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;gap:4px;padding:4px;display:flex;position:absolute;top:12px;right:12px}.view-preset-btn{color:var(--text-2);cursor:pointer;letter-spacing:.02em;background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 10px;font-size:12px;font-weight:600;transition:background-color .1s,color .1s,border-color .1s}.view-preset-btn:hover{color:var(--text);background:var(--bg-soft);border-color:var(--border-soft)}.view-preset-btn:active{background:color-mix(in oklch, var(--accent), transparent 80%)}.nav-hint{z-index:12;background:color-mix(in oklch, var(--bg), transparent 10%);border:1px solid var(--border-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;max-width:280px;color:var(--text);border-radius:10px;padding:14px 16px;font-size:13px;transition:opacity .25s ease-out,transform .25s ease-out;position:absolute;bottom:24px;right:24px;box-shadow:0 8px 24px #0000004d}.nav-hint-fading{opacity:0;transform:translateY(8px)}.nav-hint-row{grid-template-columns:22px auto 1fr;align-items:baseline;gap:8px;margin-bottom:6px;display:grid}.nav-hint-row:last-of-type{margin-bottom:8px}.nav-hint-icon{text-align:center;color:var(--accent);font-size:14px;line-height:1}.nav-hint-label{color:var(--text);font-weight:600}.nav-hint-text{color:var(--text-2)}.nav-hint-footer{border-top:1px solid var(--border-soft);color:var(--text-3);margin-top:6px;padding-top:8px;font-size:11px;line-height:1.4}.btn-shop-drawings{background:color-mix(in oklch, var(--accent), transparent 86%);border-color:color-mix(in oklch, var(--accent), transparent 50%);color:var(--text);font-weight:600}.btn-shop-drawings:hover:not(:disabled){background:color-mix(in oklch, var(--accent), transparent 78%);border-color:var(--accent)}.btn-shop-drawings:disabled{opacity:.4;cursor:not-allowed}.starter-picker-overlay{background:var(--overlay);z-index:240;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.starter-picker-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:16px;width:720px;max-width:94vw;max-height:90vh;padding:28px 28px 22px;position:relative;overflow-y:auto;box-shadow:0 24px 64px #00000073}.starter-picker-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;position:absolute;top:12px;right:14px}.starter-picker-close:hover{color:var(--text);background:var(--bg-soft)}.starter-picker-title{color:var(--text);margin:0 0 6px;font-size:20px}.starter-picker-subtitle{color:var(--text-2);margin:0 0 18px;font-size:13px;line-height:1.5}.starter-picker-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.starter-card{text-align:left;background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px;transition:border-color .15s,background-color .15s,transform 50ms;display:flex}.starter-card:hover{border-color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 92%)}.starter-card:active{transform:translateY(1px)}.starter-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.starter-card-name{font-size:15px;font-weight:600}.starter-card-pill{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border-soft);color:var(--text-2);background:var(--bg);border-radius:99px;padding:3px 8px;font-size:10px;font-weight:600}.starter-pill-beginner{color:color-mix(in oklch, var(--accent), white 30%);border-color:color-mix(in oklch, var(--accent), transparent 50%)}.starter-pill-easy{color:var(--text-2)}.starter-pill-medium{color:var(--text-3)}.starter-card-caption{color:var(--text-2);margin:0;font-size:13px;line-height:1.45}.starter-card-teaches{color:var(--text-3);margin:0;font-size:11px;font-style:italic}.starter-picker-footer{justify-content:center;margin-top:18px;display:flex}.starter-picker-skip{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-size:13px}.starter-picker-skip:hover{color:var(--text);text-decoration:underline}.tour-overlay{background:var(--overlay);z-index:260;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tour-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:16px;width:480px;max-width:92vw;padding:28px 28px 22px;position:relative;box-shadow:0 24px 64px #00000073}.tour-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;position:absolute;top:12px;right:14px}.tour-close:hover{color:var(--text);background:var(--bg-soft)}.tour-progress{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:8px;font-size:11px}.tour-heading{color:var(--text);margin:0 0 12px;font-size:20px}.tour-body{color:var(--text);white-space:pre-line;margin:0 0 14px;font-size:14px;line-height:1.55}.tour-sidenote{background:var(--bg-soft);border-left:3px solid var(--accent);color:var(--text-2);border-radius:4px;margin:0 0 14px;padding:10px 12px;font-size:12px;line-height:1.5}.tour-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.tour-footer-right{gap:8px;display:flex}.tour-footer-completion{justify-content:flex-end}.tour-btn{background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:500}.tour-btn:hover{border-color:var(--accent)}.tour-btn-primary{background:color-mix(in oklch, var(--accent), transparent 80%);border-color:color-mix(in oklch, var(--accent), transparent 50%);font-weight:600}.tour-btn-primary:hover{background:color-mix(in oklch, var(--accent), transparent 70%);border-color:var(--accent)}.tour-btn-finish{background:color-mix(in oklch, var(--accent), transparent 65%)}.tour-btn-link{color:var(--text-3);background:0 0;border:none;padding:6px 8px}.tour-btn-link:hover{color:var(--text);text-decoration:underline}.glossary-overlay{background:var(--overlay);z-index:220;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.glossary-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:16px;flex-direction:column;width:860px;max-width:96vw;max-height:92vh;padding:24px 24px 18px;display:flex;position:relative;box-shadow:0 24px 64px #00000073}.glossary-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;position:absolute;top:12px;right:14px}.glossary-close:hover{color:var(--text);background:var(--bg-soft)}.glossary-header{flex-shrink:0}.glossary-support{background:color-mix(in oklch, var(--accent), transparent 90%);border-left:3px solid var(--accent);color:var(--text-2);border-radius:0 4px 4px 0;margin:0 0 12px;padding:8px 12px;font-size:12px;line-height:1.5}.glossary-support a{color:var(--accent);font-weight:600}.glossary-title{color:var(--text);margin:0 0 4px;font-size:20px}.glossary-subtitle{color:var(--text-3);margin:0 0 12px;font-size:12px}.glossary-search{background:var(--bg-soft);border:1px solid var(--border-soft);width:100%;color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}.glossary-search:focus{border-color:var(--accent);outline:none}.glossary-body{flex:1;grid-template-columns:160px 1fr;gap:16px;min-height:0;margin-top:14px;display:grid}.glossary-categories{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.glossary-cat{color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;padding:7px 10px;font-size:13px;display:flex}.glossary-cat:hover{background:var(--bg-soft);color:var(--text)}.glossary-cat.active{background:color-mix(in oklch, var(--accent), transparent 86%);border-color:color-mix(in oklch, var(--accent), transparent 60%);color:var(--text);font-weight:600}.glossary-cat-count{color:var(--text-4);font-size:11px;font-weight:400}.glossary-list{flex-direction:column;gap:10px;padding-right:4px;display:flex;overflow-y:auto}.glossary-term-card{background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:10px;padding:14px 16px;transition:border-color .4s,background-color .4s}.glossary-term-card.glossary-term-highlight{border-color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 88%)}.glossary-term-head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.glossary-term-name{color:var(--text);margin:0;font-size:16px}.glossary-term-category{text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);font-size:10px}.glossary-term-def{color:var(--text);margin:0 0 6px;font-size:14px;line-height:1.5}.glossary-term-detail{color:var(--text-2);margin:0 0 6px;font-size:13px;line-height:1.5}.glossary-term-example{color:var(--text-2);margin:0 0 6px;font-size:12px;font-style:italic}.glossary-term-example-label{color:var(--text-3);font-style:normal;font-weight:600}.glossary-term-aliases{color:var(--text-4);margin:0;font-size:11px}.glossary-empty{text-align:center;color:var(--text-3);padding:32px;font-size:13px}.btn-help{width:28px;padding:0;font-size:13px;font-weight:700}.explain-this-link{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:4px;padding:2px 0;font-size:11px;text-decoration:underline}.explain-this-link:hover{color:var(--text)}.empty-state-hint{pointer-events:none;z-index:8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.empty-state-card{pointer-events:auto;background:color-mix(in oklch, var(--bg), transparent 14%);border:1px solid var(--border-soft);text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;max-width:380px;padding:28px 32px;position:relative;box-shadow:0 12px 32px #00000059}.empty-state-close{width:28px;height:28px;color:var(--text-4);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:22px;line-height:1;transition:color .12s,background-color .12s;position:absolute;top:8px;right:10px}.empty-state-close:hover{color:var(--text);background:color-mix(in oklch, var(--text), transparent 90%)}.empty-state-heading{color:var(--text);margin:0 0 8px;font-size:18px}.empty-state-body{color:var(--text-2);margin:0 0 18px;font-size:13px;line-height:1.5}.empty-state-cta{background:color-mix(in oklch, var(--accent), transparent 65%);border:1px solid color-mix(in oklch, var(--accent), transparent 30%);color:var(--text);cursor:pointer;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s}.empty-state-cta:hover{background:color-mix(in oklch, var(--accent), transparent 50%);border-color:var(--accent)}.empty-state-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.empty-state-cta-secondary{background:color-mix(in oklch, var(--accent), transparent 82%);border-color:color-mix(in oklch, var(--accent), transparent 55%)}.empty-state-dismiss{color:var(--text-3);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:12px auto 0;font-size:12.5px;text-decoration:underline;display:block}.empty-state-dismiss:hover{color:var(--text)}.empty-state-tip{color:var(--text-4);margin:14px 0 0;font-size:11px}.selected-piece-card{background:color-mix(in oklch, var(--accent), transparent 92%);border:1px solid color-mix(in oklch, var(--accent), transparent 60%);border-radius:10px;margin:4px 0 14px;padding:12px 14px}.spc-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.spc-label{color:var(--text);font-size:15px;font-weight:700}.spc-stock{color:var(--text-2);font-size:12px}.spc-stats{grid-template-columns:1fr 1fr;gap:6px 12px;margin:0;display:grid}.spc-stat{justify-content:space-between;gap:8px;margin:0;font-size:12px;display:flex}.spc-stat dt{color:var(--text-3);margin:0}.spc-stat dd{color:var(--text);margin:0;font-weight:600}.spc-help-link{text-align:center;border:1px solid var(--text-4);width:14px;height:14px;color:var(--text-3);cursor:pointer;background:0 0;border-radius:50%;margin-left:2px;padding:0;font-size:9px;font-weight:700;line-height:12px;display:inline-block}.spc-help-link:hover{background:var(--bg-soft);color:var(--text)}.spc-secondary{border-top:1px solid color-mix(in oklch, var(--accent), transparent 80%);color:var(--text-3);margin:10px 0 0;padding-top:8px;font-size:11px;font-style:italic}.auto-distance-label{color:#062231;letter-spacing:.02em;-webkit-user-select:none;user-select:none;background:#7adfffeb;border-radius:4px;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;font-weight:600;box-shadow:0 1px 4px #00000059}.spacing-snap-label{color:#04210f;letter-spacing:.02em;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#3a9e5cf0;border-radius:4px;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;font-weight:600;box-shadow:0 1px 4px #00000059}.joint-picker{flex-direction:column;gap:10px;margin-top:8px;display:flex}.joint-picker-help{color:var(--text-2);margin:0 0 4px;font-size:11px;line-height:1.45}.joint-category-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:6px 0 4px;font-size:10px}.joint-cards{grid-template-columns:1fr 1fr;gap:6px;display:grid}.joint-card{background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:stretch;gap:4px;padding:8px 10px;transition:border-color .15s,background-color .15s;display:flex;position:relative}.joint-card:hover{border-color:var(--accent)}.joint-card-active{border-color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 86%)}.joint-card-head{align-items:center;gap:6px;display:flex}.joint-card-icon{color:var(--text);font-size:16px}.joint-card-name{font-size:12px;font-weight:600}.joint-card-desc{color:var(--text-2);margin:0;font-size:11px;line-height:1.35}.joint-card-when{color:var(--text-3);margin:0;font-size:10px;font-style:italic}.joint-card-glossary{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:2px;padding:0;font-size:10px;text-decoration:underline}.joint-card-glossary:hover{color:var(--text)}.joint-apply-bar{flex-direction:column;gap:4px;margin-top:6px;display:flex}.joint-apply-btn{width:100%}.joint-apply-btn:disabled{opacity:.4;cursor:not-allowed}.joint-apply-hint{color:var(--text-3);text-align:center;font-size:10px;font-style:italic}.fractional-length-input{letter-spacing:.01em;background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);box-sizing:border-box;border-radius:4px;width:100%;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;transition:border-color .1s,background-color .4s}.fractional-length-input:focus{border-color:var(--accent);outline:none}.fractional-length-input.fli-error{background:oklch(58.6865% .165471 23.7176/.08);border-color:#cc4a4a;animation:.4s ease-in-out fli-shake}@keyframes fli-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.edit-length-hint{color:var(--text-3);margin:4px 0 8px;font-size:10px;font-style:italic;line-height:1.4}.piece-context-menu{z-index:230;background:var(--bg);border:1px solid var(--border-soft);border-radius:8px;flex-direction:column;gap:1px;min-width:220px;padding:4px;display:flex;position:fixed;box-shadow:0 12px 32px #00000073}.pcm-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;font-size:13px;display:flex}.pcm-item:hover:not(:disabled){background:var(--bg-soft)}.pcm-item:disabled{color:var(--text-4);cursor:not-allowed}.pcm-danger{color:#cc4a4a}.pcm-danger:hover{background:oklch(58.6865% .165471 23.7176/.08)}.pcm-shortcut{color:var(--text-4);font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px}.pcm-hint{color:var(--text-3);font-size:10px;font-style:italic}.pcm-divider{border:none;border-top:1px solid var(--border-soft);margin:4px 0}.tour-overlay-bg{background:var(--overlay);z-index:255;pointer-events:auto;position:fixed;inset:0}.tour-highlight{z-index:256;border:2px solid var(--accent);pointer-events:none;background:0 0;border-radius:10px;transition:left .2s,top .2s,width .2s,height .2s,border-color .3s;animation:1.6s ease-in-out infinite tour-highlight-pulse;position:fixed;box-shadow:0 0 0 9999px #0000008c,0 0 24px #7adfff73}@keyframes tour-highlight-pulse{0%,to{box-shadow:0 0 0 9999px #0000008c,0 0 18px #7adfff59}50%{box-shadow:0 0 0 9999px #0000008c,0 0 32px #7adfffb3}}.tour-modal-with-target{z-index:260;position:fixed}.tour-modal-center{z-index:260;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.tour-modal-top-left{z-index:260;position:fixed;top:24px;left:24px}.tour-modal-top-right{z-index:260;position:fixed;top:24px;right:24px}.tour-modal-bottom-left{z-index:260;position:fixed;bottom:24px;left:24px}.tour-modal-bottom-right{z-index:260;position:fixed;bottom:24px;right:24px}.quickadd-overlay{background:var(--overlay);z-index:245;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.quickadd-modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:14px;width:460px;max-width:92vw;padding:26px 26px 20px;position:relative;box-shadow:0 24px 64px #00000073}.quickadd-modal-wide{width:540px}.quickadd-pattern-row{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.quickadd-pattern-btn{background:var(--bg-soft);border:1px solid var(--border-soft);min-width:80px;color:var(--text-2);cursor:pointer;border-radius:6px;flex:auto;padding:8px 10px;font-size:12px;font-weight:500;transition:border-color .12s,color .12s,background .12s}.quickadd-pattern-btn:hover{border-color:color-mix(in oklch, var(--accent), transparent 40%);color:var(--text)}.quickadd-pattern-btn.active{background:color-mix(in oklch, var(--accent), transparent 85%);border-color:var(--accent);color:var(--text)}.quickadd-row input[type=number]{background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);box-sizing:border-box;border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.quickadd-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;position:absolute;top:12px;right:14px}.quickadd-close:hover{color:var(--text);background:var(--bg-soft)}.quickadd-title{color:var(--text);margin:0 0 6px;font-size:18px}.quickadd-subtitle{color:var(--text-2);margin:0 0 18px;font-size:13px;line-height:1.5}.quickadd-row{grid-template-columns:90px 1fr;align-items:center;gap:10px;margin-bottom:8px;display:grid}.quickadd-row>label{color:var(--text-2);font-size:13px;font-weight:500}.quickadd-row select{background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text);border-radius:4px;padding:6px 8px;font-size:13px}.quickadd-checkbox-row{grid-template-columns:1fr}.quickadd-checkbox-row label{cursor:pointer;align-items:center;gap:8px;display:flex}.quickadd-hint{color:var(--text-3);margin:2px 0 14px 100px;font-size:10px;font-style:italic}.quickadd-summary{background:color-mix(in oklch, var(--accent), transparent 90%);border:1px solid color-mix(in oklch, var(--accent), transparent 60%);color:var(--text);border-radius:6px;margin:12px 0 18px;padding:10px 12px;font-size:13px}.quickadd-footer{justify-content:flex-end;gap:8px;display:flex}.btn-quick-add{background:var(--bg-soft);border-color:var(--border-soft);color:var(--text)}.btn-quick-add:hover{border-color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 90%)}.share-wrap{display:inline-block;position:relative}.share-menu{z-index:1000;background:var(--panel-bg,#23262e);border:1px solid var(--border-soft,#444);border-radius:10px;flex-direction:column;gap:2px;min-width:172px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 8px 28px #00000073}.share-item{text-align:left;width:100%;color:var(--text,#e8e8e8);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.share-item:hover{background:color-mix(in oklch, var(--accent), transparent 82%)}.share-note{opacity:.8;padding:8px 10px;font-size:12px;line-height:1.4}.gallery-card-actions{align-items:center;gap:8px;display:flex}.btn-gallery-share{background:color-mix(in oklch, var(--accent), transparent 82%);border:1px solid color-mix(in oklch, var(--accent), transparent 45%);color:var(--text,#eee);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.btn-gallery-share:hover{background:color-mix(in oklch, var(--accent), transparent 65%);border-color:var(--accent)}.btn-share-community{background:color-mix(in oklch, var(--accent), transparent 80%);border:1px solid color-mix(in oklch, var(--accent), transparent 45%);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.btn-share-community:hover{background:color-mix(in oklch, var(--accent), transparent 62%)}.btn-unshare{border:1px solid var(--border-soft,#555);color:var(--text-3,#bbb);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.btn-unshare:hover{border-color:var(--danger,#c06a6a);color:var(--danger,#d88)}.admin-panel{background:var(--panel-bg,#23262e);color:var(--text,#e8e8e8);border-radius:12px;flex-direction:column;width:min(920px,94vw);max-height:90vh;padding:18px 20px;display:flex;box-shadow:0 12px 40px #00000080}.admin-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.admin-header h2{margin:0;font-size:18px}.admin-loading{text-align:center;opacity:.7;padding:40px}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.admin-stat{background:color-mix(in oklch, var(--bg,#1a1a1a), transparent 20%);border:1px solid var(--border-soft,#3a3a3a);border-radius:9px;padding:10px 12px}.admin-stat-accent{border-color:color-mix(in oklch, var(--accent), transparent 45%)}.admin-stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.admin-stat-label{opacity:.65;margin-top:2px;font-size:11px}.admin-substats{opacity:.8;flex-wrap:wrap;gap:6px 16px;margin:10px 2px 4px;font-size:12px;display:flex}.admin-substats b{color:var(--text)}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 8px;display:flex}.admin-search{border:1px solid var(--border-soft,#444);background:var(--bg,#1a1a1a);min-width:160px;color:var(--text);border-radius:8px;flex:1;padding:7px 10px;font-size:13px}.admin-filters{gap:4px;display:flex}.admin-filter{border:1px solid var(--border-soft,#444);color:var(--text-3,#aaa);cursor:pointer;background:0 0;border-radius:7px;padding:6px 12px;font-size:12px}.admin-filter.is-active{background:var(--accent);border-color:var(--accent);color:#1a1a1a;font-weight:600}.admin-table-wrap{border:1px solid var(--border-soft,#3a3a3a);border-radius:8px;flex:1;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{background:var(--panel-bg,#23262e);text-align:left;text-transform:uppercase;letter-spacing:.03em;opacity:.6;border-bottom:1px solid var(--border-soft,#3a3a3a);padding:9px 12px;font-size:11px;position:sticky;top:0}.admin-table td{border-bottom:1px solid color-mix(in oklch, var(--border-soft,#333), transparent 45%);padding:9px 12px}.admin-table tr:hover td{background:color-mix(in oklch, var(--accent), transparent 92%)}.admin-email{opacity:.75;text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.admin-muted{opacity:.65}.admin-owner-badge{color:#e6b072;background:#e6b07226;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.admin-empty{text-align:center;opacity:.6;padding:24px}.admin-footnote{opacity:.55;margin-top:8px;font-size:11px;line-height:1.45}.app select{appearance:none;background-color:var(--surface);border:1px solid var(--border-soft);color:var(--text);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%238a8a8a' d='M0 0h10L5 6z'/></svg>");background-position:right 9px center;background-repeat:no-repeat;border-radius:5px;padding-right:26px;transition:border-color .12s,box-shadow .12s,background-color .12s}.app select:hover{border-color:var(--border)}.app select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.app input[type=checkbox]{appearance:none;vertical-align:middle;border:1.2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:4px;flex-shrink:0;place-content:center;width:16px;height:16px;margin:0;transition:background .12s,border-color .12s;display:inline-grid}.app input[type=checkbox]:hover{border-color:var(--accent)}.app input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.app input[type=checkbox]:checked:after{content:"";border-left:1.8px solid var(--bg-deep);border-bottom:1.8px solid var(--bg-deep);width:8px;height:5px;transform:translateY(-1px)rotate(-45deg)}.app input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--accent-glow);outline:none}.rail-switch{background:#1b1e25;border:1px solid #31353f;border-radius:7px;gap:3px;margin:0 0 8px;padding:3px;display:flex}.rail-switch button{color:#9aa1ae;cursor:pointer;font:inherit;background:0 0;border:none;border-radius:5px;flex:1;padding:5px 6px;font-size:11.5px;font-weight:600}.rail-switch button.on{color:#1a1200;background:#c4894a}.rail-tabs{border-bottom:1px solid #31353f;margin-bottom:10px;display:flex}.rail-tabs button{cursor:pointer;font:inherit;color:#9aa1ae;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:5px;padding:9px 4px 8px;font-size:12.5px;font-weight:650;display:flex}.rail-tabs button:hover{color:#cfd4dd}.rail-tabs button.on{color:#e6b072;border-bottom-color:#e6b072}.rail-dot{background:0 0;border-radius:50%;flex:none;width:6px;height:6px}.rail-dot.warn{background:#e8c169}.rail-dot.bad{background:#e07a7a}.rail-pane{flex-direction:column;gap:9px;display:flex}.rail-h{letter-spacing:.12em;text-transform:uppercase;color:#7c8391;margin:6px 0 0;font-size:10.5px;font-weight:600}.rail-row{color:#e8e8e8;border-bottom:1px solid #2b2f38;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.rail-num{font-variant-numeric:tabular-nums;color:#c6ccd6;font-size:12.5px}.rail-qty{color:#e6b072;font-variant-numeric:tabular-nums;margin-right:6px;font-weight:600}.rail-note{color:#9aa1ae;margin:2px 0;font-size:12.5px;line-height:1.5}.rail-stat-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.rail-stat{background:#1b1e25;border:1px solid #31353f;border-radius:8px;padding:8px 10px}.rail-stat .v{color:#e8e8e8;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.rail-stat .l{color:#9aa1ae;font-size:11px}.rail-verdict{border:1px solid;border-radius:8px;padding:9px 11px;font-size:13.5px;font-weight:700}.rail-verdict.hold{color:#a7e3c0;background:#172a20;border-color:#2f5a41}.rail-verdict.tight{color:#f0d58f;background:#2c2510;border-color:#64521f}.rail-verdict.fail{color:#f0a3a3;background:#2e1919;border-color:#5c2e2e}.rail-pill{font-variant-numeric:tabular-nums;border-radius:20px;padding:1px 8px;font-size:12px;font-weight:700}.rail-pill.hold{color:#8fd9ae;background:#172a20}.rail-pill.tight{color:#e8c169;background:#2c2510}.rail-pill.fail{color:#e79b9b;background:#2e1919}.rail-ctl{color:#cfd4dd;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.rail-seg{background:#15171d;border:1px solid #31353f;border-radius:7px;gap:4px;padding:3px;display:flex}.rail-seg button{color:#9aa1ae;cursor:pointer;font:inherit;background:0 0;border:none;border-radius:5px;flex:1;padding:5px 6px;font-size:12px;font-weight:600}.rail-seg button.on{color:#1a1200;background:#c4894a}.phone-install{color:#e8e8e8;background:#23262e;border:1px solid #31353f;border-radius:14px;flex-direction:column;gap:14px;width:calc(100% - 32px);max-width:380px;padding:26px 26px 22px;display:flex;position:relative}.phone-install-title{letter-spacing:-.01em;margin:0;font-size:20px}.phone-install-lead{color:#9aa1ae;margin:0;font-size:14px;line-height:1.5}.phone-install-qr{background:#fff;border-radius:10px;align-self:center;padding:12px;line-height:0}.phone-install-qr svg{width:190px;height:190px;display:block}.phone-install-url{background:#1b1e25;border:1px solid #31353f;border-radius:8px;align-items:center;gap:8px;padding:7px 8px 7px 11px;display:flex}.phone-install-url code{color:#cfd4dd;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.phone-install-steps{color:#9aa1ae;flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:13px;line-height:1.45;display:flex}.phone-install-steps b{color:#e8e8e8;font-weight:650}
