*{box-sizing:border-box;margin:0;padding:0}html,body,#root{color:#e0e0e0;background:#0d0d1a;width:100%;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.app{flex-direction:column;width:100%;height:100%;display:flex}.app-header{background:#12122a;border-bottom:1px solid #2a2a4a;align-items:center;padding:8px 20px;display:flex}.app-header h1{color:#c4a46c;letter-spacing:.5px;margin:0;font-size:18px;font-weight:600}.header-actions{gap:4px;margin-left:auto;display:flex}.btn-history{color:#c4a46c;cursor:pointer;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;padding:4px 12px;font-size:16px;line-height:1;transition:all .12s}.btn-history:hover:not(:disabled){background:#2a2a4a;border-color:#c4a46c}.btn-history:disabled{opacity:.3;cursor:default}.app-body{flex:1;min-height:0;display:flex}.sidebar{background:#12122a;border-color:#2a2a4a;width:260px;min-width:260px;padding:16px;overflow-y:auto}.sidebar-left{border-right:1px solid #2a2a4a}.sidebar-right{border-left:1px solid #2a2a4a}.viewport{flex:1;min-width:0;position:relative}.lumber-catalog h2,.settings-panel h2{text-transform:uppercase;letter-spacing:1px;color:#88a;margin-bottom:12px;font-size:13px;font-weight:600}.lumber-list{flex-direction:column;gap:2px;margin-bottom:20px;display:flex}.lumber-category{flex-direction:column;display:flex}.lumber-category-header{color:#c0c0d0;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:#1a1a2e;border:1px solid #335;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.lumber-category-header:hover{background:#224;border-color:#446}.lumber-category-header.has-selected{color:#e0d0b0;border-color:#c4a46c88}.lumber-category-arrow{color:#88a;flex-shrink:0;width:12px;font-size:10px}.lumber-category-label{flex:1}.lumber-category-count{color:#668;font-size:10px;font-weight:400}.lumber-category-items{flex-direction:column;gap:2px;padding:4px 0 4px 12px;display:flex}.lumber-item{cursor:pointer;text-align:left;color:#e0e0e0;background:#1a1a36;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:6px 8px;transition:all .15s;display:flex}.lumber-item:hover{background:#224}.lumber-item.selected{background:#1e1e3a;border-color:#c4a46c}.lumber-swatch{border-radius:4px;flex-shrink:0;width:28px;height:28px}.lumber-info{flex-direction:column;display:flex}.lumber-name{font-size:14px;font-weight:600}.lumber-dims{color:#88a;font-size:11px}.length-input{margin-bottom:16px}.length-input h3{text-transform:uppercase;letter-spacing:1px;color:#88a;margin-bottom:8px;font-size:12px}.length-fields{gap:8px;display:flex}.field{flex:1;align-items:center;gap:4px;display:flex}.field input{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.field input:focus{border-color:#c4a46c;outline:none}.field label{color:#88a;min-width:16px;font-size:12px}.length-total{color:#88a;margin-top:6px;font-size:12px}.btn{cursor:pointer;border:none;border-radius:6px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:all .15s}.place-buttons{gap:4px;display:flex}.place-buttons .btn{flex:1}.btn-place{color:#0d0d1a;background:#c4a46c}.btn-place:hover{background:#d4b47c}.btn-place-end{color:#0d0d1a;background:#8a7a4c}.btn-place-end:hover{background:#9a8a5c}.btn-cancel{color:#e0e0e0;background:#2a2a4a}.btn-cancel:hover{background:#3a3a5a}.btn-rotate{color:#8ab4f8;background:#2a3a5a;padding:6px 10px;font-size:12px}.btn-rotate:hover{background:#3a4a6a}.btn-delete{color:#f88a8a;background:#4a2a2a;padding:6px 10px;font-size:12px}.btn-delete:hover{background:#5a3a3a}.place-actions{flex-direction:column;gap:8px;display:flex}.placing-indicator{color:#c4a46c;text-align:center;background:#c4a46c26;border:1px solid #c4a46c;border-radius:6px;padding:8px;font-size:13px}.placing-hint{color:#88a;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:#aac;font-size:13px}.settings-grid input[type=number],.settings-grid select{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;padding:6px 8px;font-size:13px}.settings-grid input[type=number]:focus,.settings-grid select:focus{border-color:#c4a46c;outline:none}.settings-grid input[type=checkbox]{accent-color:#c4a46c}.selected-piece-info p{color:#aac;margin-bottom:10px;font-size:12px}.piece-type-label{font-weight:600;color:#e0e0e0!important;font-size:14px!important}.edit-length{margin-bottom:10px}.edit-length-label{text-transform:uppercase;letter-spacing:1px;color:#88a;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{color:#8ab4f8;cursor:pointer;white-space:nowrap;background:#2a3a5a;border:none;border-radius:4px;padding:6px 10px;font-size:12px;font-weight:600}.btn-apply:hover{background:#3a4a6a}.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:#e0e0e0;align-items:center;gap:8px;font-size:14px;display:flex}.toggle-label input[type=checkbox]{accent-color:#6d8a5c;width:16px;height:16px}.toggle-text{flex:1}.pt-badge{color:#a0d080;letter-spacing:.5px;background:#4a6a3a;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:700}.supply-list-trigger{z-index:10;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.btn-supply-toggle{color:#c4a46c;cursor:pointer;white-space:nowrap;background:#12122a;border:1px solid #c4a46c;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .15s}.btn-supply-toggle:hover{background:#1e1e3a}.supply-list-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.supply-list-panel{background:#12122a;border:1px solid #2a2a4a;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:#c4a46c;margin:0;font-size:20px}.btn-close{color:#88a;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:24px;line-height:1}.btn-close:hover{color:#e0e0e0}.supply-summary{background:#1a1a36;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:#88a;text-transform:uppercase;letter-spacing:1px;font-size:14px}.total-price{color:#4ade80;font-size:28px;font-weight:700}.supply-stats{color:#88a;gap:16px;font-size:13px;display:flex}.supply-section{margin-bottom:20px}.supply-section h3{text-transform:uppercase;letter-spacing:1px;color:#88a;margin-bottom:10px;font-size:13px;font-weight:600}.supply-empty{color:#88a;text-align:center;padding:40px 20px;font-size:14px}.shopping-list{flex-direction:column;gap:4px;display:flex}.shopping-item{background:#1a1a36;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;display:flex}.shopping-qty{color:#c4a46c;min-width:30px;font-weight:700}.shopping-label{color:#e0e0e0;flex:1;font-size:14px}.shopping-price{color:#4ade80;font-weight:600}.cut-plan{flex-direction:column;gap:10px;display:flex}.cut-board{background:#1a1a36;border-radius:6px;padding:10px 12px}.cut-board-header{justify-content:space-between;margin-bottom:6px;display:flex}.cut-board-name{color:#e0e0e0;font-size:13px}.cut-board-price{color:#4ade80;font-size:13px}.cut-bar{background:#0d0d1a;border-radius:4px;height:24px;display:flex;overflow:hidden}.cut-segment{background:#c4a46c;border-right:1px solid #0d0d1a;justify-content:center;align-items:center;min-width:2px;display:flex}.cut-waste{background:#3a2020;justify-content:center;align-items:center;min-width:2px;display:flex}.cut-label{color:#0d0d1a;white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:10px;font-weight:600;overflow:hidden}.cut-waste .cut-label{color:#844}.cut-segment-miter{background:#b8956a;border-left:2px solid #ff9940;border-right:2px solid #ff9940}.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:#aac;min-width:48px}.miter-tag{color:#ffd740;letter-spacing:.3px;background:#3a3a2a;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.piece-buried-info{color:#8a6040;font-size:11px;font-weight:600}.piece-miter-info{color:#ffd740;font-size:11px;font-weight:600}.pieces-list{flex-direction:column;gap:2px;display:flex}.piece-row{background:#1a1a36;border-radius:4px;justify-content:space-between;padding:6px 12px;font-size:13px;display:flex}.piece-type{color:#e0e0e0}.piece-length{color:#88a}.build-dimensions{z-index:10;pointer-events:none;background:#12122ad9;border:1px solid #2a2a4a;border-radius:8px;padding:10px 14px;position:absolute;top:12px;left:12px}.dim-title{text-transform:uppercase;letter-spacing:1px;color:#88a;margin-bottom:6px;font-size:11px;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:#f88a8a;background:#4a2a2a}.dim-y{color:#8af88a;background:#2a4a2a}.dim-z{color:#8a8af8;background:#2a2a4a}.dim-value{color:#e0e0e0;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:#aac;min-width:32px;font-size:12px}.miter-row input[type=number]{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;width:56px;padding:4px 6px;font-size:13px}.miter-row input[type=number]:focus{border-color:#c4a46c;outline:none}.miter-row select{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;padding:4px 6px;font-size:12px}.miter-row select:focus{border-color:#c4a46c;outline:none}.miter-actions{gap:4px;margin-top:6px;display:flex}.btn-miter-action{color:#8ab4f8;background:#2a3a5a;border:1px solid #3a4a6a;flex:1;padding:4px 8px;font-size:11px}.btn-miter-action:hover{background:#3a4a6a}.btn-miter-clear{color:#f88a8a;background:#4a2a2a;border:1px solid #5a3a3a;padding:4px 8px;font-size:11px}.btn-miter-clear:hover{background:#5a3a3a}.gizmo-toggle{gap:4px;margin-bottom:10px;display:flex}.btn-gizmo{color:#88a;background:#1a1a36;border:1px solid #2a2a4a;padding:6px 12px;font-size:12px}.btn-gizmo:hover{background:#224}.btn-gizmo-active{color:#8ab4f8;background:#2a3a5a;border:1px solid #4a6a8a;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{color:#8ad4f8;background:#2a4a5a;padding:6px 10px;font-size:12px}.btn-align:hover{background:#3a5a6a}.auto-miter-info{margin-bottom:10px}.btn-miter{color:#8af88a;background:#3a5a2a;padding:8px 12px;font-size:13px}.btn-miter:hover{background:#4a6a3a}.auto-miter-hint{color:#88a;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:#ffd740;width:14px;height:14px}.pivot-info{background:#ff404014;border:1px solid #ff4040;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.pivot-label{color:#ff6060;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:#ffd740;font-size:12px}.btn-clear-build{color:#f88a8a;background:#4a2a2a;border:1px solid #5a3a3a}.btn-clear-build:hover:not(:disabled){background:#5a3a3a;border-color:#f88a8a}.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{color:#88a;background:#1a1a36;border:1px solid #2a2a4a}.btn-tool:hover{color:#aac;background:#224}.btn-tool-active{color:#00e5ff;background:#00394d;border:1px solid #00e5ff}.btn-tool-active:hover{background:#004d66}.tool-status{background:#00e5ff0f;border:1px solid #00e5ff;border-radius:6px;margin-top:8px;padding:10px}.tool-prompt{color:#00e5ff;text-align:center;margin:0;font-size:13px;font-weight:500}.tool-prompt-step2{color:#ffd740}.btn-measure{color:#8ab4f8;background:#2a3a5a}.btn-measure:hover{background:#3a4a6a}.btn-measure-active{color:#0d0d1a;background:#4a9eff}.btn-measure-active:hover{background:#5aaaff}.measure-info{margin-top:8px}.measure-type-select{margin-bottom:10px}.measure-type-select select{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.measure-type-select select:focus{border-color:#4a9eff;outline:none}.measure-prompt{color:#aac;align-items:center;gap:6px;font-size:13px;display:flex}.measure-dot-a{background:#4a9eff;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:#1a1a36;border-radius:8px;padding:12px}.measure-distance{color:#ff0;margin-bottom:6px;font-size:24px;font-weight:700}.measure-pieces{color:#aac;align-items:center;gap:8px;font-size:13px;display:flex}.measure-pieces span{align-items:center;gap:4px;display:flex}.measure-label{color:#ff0;white-space:nowrap;background:#000000d9;border:1px solid #ff0;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:#88a;margin-bottom:10px;font-size:13px;font-weight:600}.template-search{gap:4px;margin-bottom:4px;display:flex}.template-input{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:6px;flex:1;padding:8px 10px;font-size:13px}.template-input:focus{border-color:#c4a46c;outline:none}.template-input::placeholder{color:#557;font-size:12px}.template-browse-btn{color:#88a;background:#1a1a36;border:1px solid #2a2a4a;min-width:36px;width:36px!important;padding:0!important;font-size:16px!important}.template-browse-btn:hover{color:#c4a46c;background:#224}.template-suggestions{background:#16162e;border:1px solid #3a3a5a;border-radius:6px;flex-direction:column;margin-bottom:6px;display:flex;overflow:hidden}.template-suggestion{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #224;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:#224}.suggestion-name{color:#e0e0e0;font-size:14px;font-weight:600}.suggestion-category{color:#66a;text-transform:uppercase;letter-spacing:.5px;margin-top:1px;font-size:10px}.suggestion-desc{color:#88a;margin-top:2px;font-size:11px}.template-no-results{color:#668;text-align:center;padding:12px 8px;font-size:12px}.template-browse{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.browse-header{color:#88a;margin-bottom:2px;padding:4px 0;font-size:12px;font-weight:600}.browse-category-btn{color:#c0c0d0;cursor:pointer;text-align:left;background:#1a1a36;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:#224;border-color:#335}.browse-count{color:#668;font-size:11px}.browse-back-btn{color:#c4a46c;cursor:pointer;text-align:left;background:0 0;border:none;margin-bottom:4px;padding:4px 0;font-size:12px}.browse-back-btn:hover{color:#e0c080}.browse-template-btn{cursor:pointer;text-align:left;background:#1a1a36;border:1px solid #0000;border-radius:5px;flex-direction:column;padding:8px 10px;display:flex}.browse-template-btn:hover{background:#224;border-color:#335}.template-editor{background:#16162e;border:1px solid #2a2a4a;border-radius:8px;margin-top:6px;padding:12px}.template-editor-header{justify-content:space-between;align-items:center;display:flex}.template-editor h3{color:#c4a46c;margin:0;font-size:16px;font-weight:600}.template-close{padding:0 4px;font-size:20px;line-height:1}.template-desc{color:#88a;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:#aac;flex-shrink:0;font-size:13px}.template-param input[type=number]{color:#e0e0e0;text-align:right;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;width:70px;padding:5px 6px;font-size:13px}.template-param input[type=number]:focus{border-color:#c4a46c;outline:none}.template-param select{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;padding:5px 6px;font-size:13px}.template-param select:focus{border-color:#c4a46c;outline:none}.param-number{align-items:center;gap:4px;display:flex}.param-unit{color:#668;min-width:18px;font-size:11px}.param-checkbox input[type=checkbox]{accent-color:#c4a46c;width:16px;height:16px}.template-actions{gap:6px;display:flex}.btn-template-generate,.btn-template-add{color:#0d0d1a;background:#c4a46c;flex:1}.btn-template-generate:hover,.btn-template-add:hover{background:#d4b47c}.btn-template-replace{color:#c4a46c;background:#4a3a2a;flex:1}.btn-template-replace:hover{background:#5a4a3a}.template-hint{color:#557;text-align:center;padding:12px 8px;font-size:12px;line-height:1.5}.auth-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:#12122a;border:1px solid #2a2a4a;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 #2a2a4a;gap:0;margin-bottom:20px;display:flex}.auth-tab{color:#88a;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:#c0c0d0}.auth-tab.active{color:#c4a46c;border-bottom-color:#c4a46c}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-field label{color:#88a;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.auth-field input{color:#e0e0e0;background:#1a1a36;border:1px solid #2a2a4a;border-radius:6px;padding:10px 12px;font-size:14px;transition:border-color .15s}.auth-field input:focus{border-color:#c4a46c;outline:none}.auth-field input::placeholder{color:#557}.auth-error{color:#f88a8a;background:#f88a8a1a;border:1px solid #5a2a2a;border-radius:6px;padding:10px 12px;font-size:13px}.btn-auth-submit{color:#0d0d1a;background:#c4a46c;margin-top:4px;padding:12px;font-size:15px}.btn-auth-submit:hover:not(:disabled){background:#d4b47c}.btn-auth-submit:disabled{opacity:.5;cursor:default}.header-user{align-items:center;gap:8px;margin-left:16px;display:flex}.header-username{color:#c0c0d0;font-size:13px;font-weight:500}.btn-header{color:#c4a46c;cursor:pointer;background:#1a1a36;border:1px solid #2a2a4a;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600;transition:all .12s}.btn-header:hover{background:#2a2a4a;border-color:#c4a46c}.btn-header-signin{color:#0d0d1a;background:#c4a46c;border-color:#c4a46c}.btn-header-signin:hover{background:#d4b47c}.btn-header-signout{color:#88a;background:0 0;border-color:#0000}.btn-header-signout:hover{color:#f88a8a;background:#2a1a1a}.saveload-panel{background:#12122a;border:1px solid #2a2a4a;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:#c4a46c;margin:0;font-size:20px}.saveload-success{color:#4ade80;background:#4ade801a;border:1px solid #2a5a3a;border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.saveload-form{flex-direction:column;gap:14px;display:flex}.saveload-checkbox{color:#aac;cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.saveload-checkbox input[type=checkbox]{accent-color:#c4a46c;width:16px;height:16px}.saveload-meta{color:#668;font-size:12px}.btn-save-new{color:#c0c0d0;background:#2a2a4a;font-size:13px}.btn-save-new:hover{background:#3a3a5a}.saveload-list{flex-direction:column;gap:6px;display:flex}.saveload-loading{color:#88a;text-align:center;padding:20px;font-size:13px}.saveload-empty{color:#668;text-align:center;padding:30px 16px;font-size:13px}.saveload-item{background:#1a1a36;border:1px solid #224;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.saveload-item:hover{border-color:#335}.saveload-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.saveload-item-name{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.saveload-item-meta{color:#668;font-size:11px}.saveload-item-actions{flex-shrink:0;gap:4px;display:flex}.btn-load{color:#8ab4f8;background:#2a3a5a;width:auto;padding:5px 12px;font-size:12px}.btn-load:hover{background:#3a4a6a}.btn-delete-small{color:#f88a8a;background:#3a2020;width:auto;padding:5px 10px;font-size:12px}.btn-delete-small:hover{background:#4a2a2a}.legal-footer{z-index:50;background:#12122ad9;border-top:1px solid #2a2a4a;border-left:1px solid #2a2a4a;border-right:1px solid #2a2a4a;border-radius:8px 8px 0 0;align-items:center;gap:8px;padding:4px 16px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.legal-link{color:#6a6a8a;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px;transition:color .15s}.legal-link:hover{color:#c4a46c}.legal-sep{color:#3a3a5a;font-size:11px}.legal-modal{background:#12122a;border:1px solid #2a2a4a;border-radius:12px;width:640px;max-width:90vw;max-height:85vh;padding:32px;position:relative;overflow-y:auto}.legal-content{color:#c0c0d0;font-size:14px;line-height:1.65}.legal-content h2{color:#c4a46c;margin:0 0 4px;font-size:22px}.legal-content h3{color:#e0d0b0;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:#6a6a8a;font-size:12px;font-style:italic}.auth-terms{margin-top:4px}.auth-terms-label{color:#a0a0b8;cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}.auth-terms-label input[type=checkbox]{accent-color:#c4a46c;margin-top:3px}.legal-inline-link{color:#c4a46c;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.legal-inline-link:hover{color:#d4b47c}.pricing-modal{background:#1e1e2e;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:#e0e0f0;margin:0 0 24px;font-size:22px}.pricing-cards{gap:16px;display:flex}.pricing-card{background:#262638;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:#e0e0f0;margin:0 0 8px;font-size:18px}.pricing-card-pro{border-color:#c4a46c}.pricing-card-lifetime{border-color:#8bc48a}.pricing-save-badge{color:#c4a46c;text-transform:uppercase;letter-spacing:.5px;background:#c4a46c26;border-radius:12px;margin-bottom:8px;padding:3px 12px;font-size:11px;font-weight:700}.pricing-save-best{color:#8bc48a;background:#8bc48a26}.pricing-per-month{color:#8080a0;margin-top:-12px;margin-bottom:16px;font-size:12px}.pricing-warning{text-align:center;color:#dc783c;background:#dc783c1a;border:1px solid #dc783c4d;border-radius:8px;margin-top:16px;padding:10px 16px;font-size:13px}.pricing-current{border-color:#4a4a6a}.pricing-price{color:#e0e0f0;margin-bottom:16px;font-size:32px;font-weight:700}.pricing-period{color:#8080a0;font-size:14px;font-weight:400}.pricing-features{width:100%;margin:0 0 20px;padding:0;list-style:none}.pricing-features li{color:#a0a0b8;border-bottom:1px solid #2a2a3e;padding:6px 0;font-size:13px}.pricing-features li:last-child{border-bottom:none}.pricing-features li:before{content:"✓ ";color:#c4a46c;font-weight:700}.pricing-badge{color:#8080a0;background:#2a2a3e;border-radius:20px;margin-bottom:8px;padding:4px 14px;font-size:12px;font-weight:600}.pricing-badge-pro{color:#c4a46c;background:#c4a46c26}.pricing-badge-warn{color:#dc783c;background:#dc783c26}.btn-pricing-primary{color:#1a1a2e;cursor:pointer;background:#c4a46c;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:#d4b47c}.btn-pricing-secondary{color:#a0a0b8;cursor:pointer;background:0 0;border:1px solid #4a4a6a;border-radius:8px;margin-top:8px;padding:8px 20px;font-size:13px;transition:border-color .2s,color .2s}.btn-pricing-secondary:hover{color:#e0e0f0;border-color:#c4a46c}.donate-modal{background:#1e1e2e;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:#e0e0f0;margin:0 0 8px;font-size:20px}.donate-desc{text-align:center;color:#8080a0;margin:0 0 20px;font-size:13px}.donate-presets{gap:10px;margin-bottom:16px;display:flex}.btn-donate-preset{color:#e0e0f0;cursor:pointer;background:0 0;border:2px solid #4a4a6a;border-radius:8px;flex:1;padding:12px 0;font-size:16px;font-weight:600;transition:border-color .2s,background .2s}.btn-donate-preset:hover{background:#c4a46c14;border-color:#c4a46c}.btn-donate-preset:disabled{opacity:.5;cursor:not-allowed}.donate-custom{align-items:stretch;gap:10px;display:flex}.donate-custom-input{background:#262638;border:1px solid #3a3a52;border-radius:8px;flex:1;align-items:center;padding:0 12px;display:flex}.donate-dollar{color:#8080a0;margin-right:4px;font-size:16px}.donate-custom-input input{color:#e0e0f0;background:0 0;border:none;outline:none;flex:1;width:80px;padding:10px 0;font-size:15px}.donate-custom-input input::placeholder{color:#555}.btn-donate-custom{color:#1a1a2e;cursor:pointer;background:#c4a46c;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .2s}.btn-donate-custom:hover{background:#d4b47c}.btn-donate-custom:disabled{opacity:.5;cursor:not-allowed}.btn-header-donate{color:#c4a46c;background:0 0;border:1px solid #c4a46c;border-radius:6px;padding:4px 12px;font-size:13px}.btn-header-donate:hover{background:#c4a46c1f}.btn-header-upgrade{color:#1a1a2e;background:#c4a46c;border:none;border-radius:6px;padding:4px 14px;font-size:13px;font-weight:600}.btn-header-upgrade:hover{background:#d4b47c}.btn-pro-badge{color:#1a1a2e;letter-spacing:1px;cursor:pointer;background:linear-gradient(135deg,#c4a46c,#a0844c);border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700}.btn-pro-badge:hover{background:linear-gradient(135deg,#d4b47c,#b0945c)}.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:#a0a0b8;margin:0;font-size:14px}.template-locked-price{color:#8080a0!important;margin-top:4px!important;margin-bottom:16px!important;font-size:13px!important}.toast{color:#1a1a2e;cursor:pointer;z-index:9999;background:#c4a46c;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;animation:.3s ease-out toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@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 #2a2a4a;margin-top:8px;padding:8px 0}.lshape-toggle{color:#a0a0b8;cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.lshape-toggle input[type=checkbox]{accent-color:#c4a46c}.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:#8080a0;min-width:48px;font-size:12px}.lshape-corner select{color:#e0e0f0;background:#262638;border:1px solid #3a3a52;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{z-index:5000;background:#000000b3;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.cut-sheet-panel{background:#1a1a2e;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:#e0e0f0;margin:0;font-size:20px}.cut-sheet-summary{color:#a0a0b8;flex:1;gap:8px;font-size:13px;display:flex}.cut-sheet-sep{color:#4a4a6a}.cut-sheet-close{position:absolute;top:16px;right:16px}.cut-sheet-empty{text-align:center;color:#6a6a8a;padding:40px;font-size:14px}.cut-sheet-grid{flex-direction:column;gap:24px;display:flex}.cut-sheet-diagram{background:#12122a;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:#e0e0f0;font-size:14px;font-weight:600}.cut-sheet-label-info{color:#8080a0;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{color:#1a1a2e;cursor:pointer;background:#c4a46c;border:none;border-radius:8px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:background .2s}.btn-cutsheet:hover{background:#d4b47c}
