.pdf-preview-dialog{background:var(--panel-bg);z-index:1000;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.pdf-preview-header{border-bottom:1px solid var(--border-color);background:var(--panel-bg);z-index:1001;padding:16px 24px}.pdf-preview-header h3{color:var(--text-color);margin:0;font-size:18px;font-weight:600}.pdf-preview-container{background:#f5f5f5;flex-direction:column;flex:1;display:flex;overflow:hidden}.pdf-preview-iframe{background:#fff;border:none;flex:1;width:100%}.pdf-preview-buttons{border-top:1px solid var(--border-color);background:var(--panel-bg);z-index:1001;justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}.pdf-preview-btn{cursor:pointer;border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-color);border-radius:4px;padding:7px 16px;font-size:13px;font-weight:500}.pdf-preview-btn:hover{background:var(--hover-bg)}.pdf-preview-loading,.pdf-preview-error{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.spinner{border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;width:36px;height:36px;margin-bottom:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pdf-preview-error p{color:#ef4444;margin-bottom:16px}.hvr-frame [data-profile=frame],.hvr-leaf [data-profile=leaf],.hvr-threshold [data-profile=threshold],.hvr-transom [data-profile=transom],.hvr-lp [data-profile=lp]{fill:#1976d22e!important}.dim-editor{z-index:3000;width:170px;color:var(--text-color,#333);background:#fff;border:1.5px solid #1976d2;border-radius:5px;padding:8px 10px;font-family:sans-serif;position:fixed;box-shadow:0 3px 10px #0000002e}.dim-editor-label{color:#555;margin-bottom:6px;font-size:11px;font-weight:600}.dim-editor-input-row{align-items:center;gap:4px;margin-bottom:8px;display:flex}.dim-editor-input{border:1px solid #ccc;border-radius:3px;width:80px;padding:4px 6px;font-size:14px}.dim-editor-unit{color:#999;font-size:12px}.dim-editor-buttons{gap:6px;display:flex}.dim-editor-ok,.dim-editor-cancel{cursor:pointer;border-radius:4px;flex:1;min-height:32px;padding:7px 0;font-size:13px;font-weight:500}.dim-editor-ok{background:var(--primary-color,#1976d2);color:#fff;border:1px solid var(--primary-color,#1976d2)}.dim-editor-cancel{background:var(--panel-bg,#f0f0f0);color:var(--text-color,#333);border:1px solid var(--border-color,#ddd)}.dim-editor-ok:hover{background:var(--primary-hover,#1565c0);border-color:var(--primary-hover,#1565c0)}.dim-editor-cancel:hover{background:var(--hover-bg,#e0e0e0)}.dim-editor-remove{color:#c62828;cursor:pointer;background:0 0;border:1px solid #c62828;border-radius:4px;width:100%;margin-top:4px;padding:5px 0;font-size:12px;font-weight:500}.dim-editor-remove:hover{color:#fff;background:#c62828}@media (prefers-color-scheme:dark){.dim-editor{background:#2d2d2d;border-color:#1a73e8;box-shadow:0 3px 10px #0000004d}.dim-editor-label{color:#ccc}.dim-editor-input{color:#f0f0f0;background:#3a3a3a;border-color:#555}.dim-editor-unit{color:#aaa}}.extension-editor{z-index:1000;color:var(--text-color,#333);background:#fff;border:1px solid #ccc;border-radius:4px;padding:8px;font-family:sans-serif;font-size:14px;position:absolute;box-shadow:0 2px 8px #00000026}.extension-editor-title{margin-bottom:6px;font-weight:500}.extension-editor-controls{align-items:center;gap:6px;display:flex}.extension-editor-input{border:1px solid #ccc;border-radius:3px;width:80px;padding:4px 6px;font-size:14px}.extension-editor-unit{font-size:14px}.extension-editor-save,.extension-editor-cancel{cursor:pointer;border-radius:4px;min-height:32px;padding:7px 12px;font-size:13px;font-weight:500}.extension-editor-save{background:var(--primary-color,#1976d2);color:#fff;border:1px solid var(--primary-color,#1976d2)}.extension-editor-cancel{background:var(--panel-bg,#f5f5f5);color:var(--text-color,#333);border:1px solid var(--border-color,#ccc)}.extension-editor-save:hover{background:var(--primary-hover,#1565c0);border-color:var(--primary-hover,#1565c0)}.extension-editor-cancel:hover{background:var(--hover-bg,#e0e0e0)}@media (prefers-color-scheme:dark){.extension-editor{background:#2d2d2d;border-color:#444;box-shadow:0 2px 8px #0000004d}.extension-editor-title{color:#f0f0f0}.extension-editor-input{color:#f0f0f0;background:#3a3a3a;border-color:#555}.extension-editor-unit{color:#ccc}}.glazing-selector{z-index:1001;width:400px;max-height:600px;color:var(--text-color,#333);background-color:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;padding:0;display:flex;position:fixed;overflow:hidden;box-shadow:0 4px 12px #00000026}.glazing-selector-header{background-color:#f0f0f0;border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;padding:10px 15px;display:flex}.glazing-selector-header h3{color:var(--text-color,#333);margin:0;font-size:16px}.glazing-selector-content{flex:1;padding:15px;overflow:auto}@media (prefers-color-scheme:dark){.glazing-selector{background-color:#2d2d2d;border:1px solid #444;box-shadow:0 4px 12px #0000004d}.glazing-selector-header{background-color:#252525;border-bottom:1px solid #444}.glazing-item{background-color:#2d2d2d;border:1px solid #444}.glazing-item:hover{background-color:#3a3a3a;border-color:#555}.glazing-item.selected{background-color:#0a3d62;border-color:#1a73e8}.glazing-name{color:#f0f0f0}.glazing-details{color:#ccc}.glazing-description{color:#aaa}.glazing-selector-actions{border-top:1px solid #444}}.glazing-list{flex-direction:column;gap:8px;max-height:400px;display:flex;overflow-y:auto}.glazing-item{cursor:pointer;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:10px 12px;transition:all .2s}.glazing-item:hover{background-color:#f5f5f5;border-color:#b0b0b0}.glazing-item.selected{background-color:#e6f2ff;border-color:#91d5ff;font-weight:700}.glazing-name{color:#222;margin-bottom:4px;font-weight:700}.glazing-details{color:#666;margin-bottom:4px;font-size:12px}.glazing-description{color:#888;font-size:12px;font-style:italic}.glazing-selector-actions{border-top:1px solid #eee;justify-content:flex-end;gap:10px;margin-top:15px;padding-top:15px;display:flex}.clear-button,.save-button{cursor:pointer;border-radius:4px;padding:7px 15px;font-size:13px;font-weight:500}.clear-button{background-color:var(--panel-bg,#f0f0f0);border:1px solid var(--border-color,#ccc);color:var(--text-color,#333)}.clear-button:hover{background-color:var(--hover-bg,#e0e0e0)}.clear-button:disabled{opacity:.45;cursor:not-allowed}.save-button{background-color:var(--primary-color,#1976d2);border:1px solid var(--primary-color,#1976d2);color:#fff}.save-button:disabled{opacity:.45;cursor:not-allowed}.main-layout{flex-direction:column;width:100%;height:calc(100vh - 40px);display:flex;overflow:hidden}.menu-bar{background-color:#f0f0f0;border-bottom:1px solid #ccc;align-items:center;height:30px;padding:5px 10px;display:flex}.menu-item{cursor:pointer;color:var(--text-color,#333);padding:0 10px;font-size:14px;position:relative}.menu-item:hover{background-color:#e0e0e0}.menu-dropdown{z-index:1000;background-color:#fff;border:1px solid #ccc;border-radius:3px;min-width:200px;display:none;position:absolute;top:100%;left:0;box-shadow:2px 2px 5px #0003}.menu-item:hover .menu-dropdown{display:block}.menu-dropdown div{color:var(--text-color,#333);padding:8px 15px;font-size:13px}.menu-dropdown div:hover{background-color:#f0f0f0}@media (prefers-color-scheme:dark){.menu-bar{background-color:#2a2a2a;border-bottom:1px solid #444}.menu-item:hover{background-color:#3a3a3a}.menu-dropdown{background-color:#2d2d2d;border:1px solid #444;box-shadow:2px 2px 5px #0006}.menu-dropdown div:hover{background-color:#3a3a3a}}.toolbar{background-color:#f8f8f8;border-bottom:1px solid #ddd;align-items:center;gap:5px;height:35px;padding:5px 10px;display:flex}.toolbar-button{background-color:var(--panel-bg,#fff);border:1px solid var(--border-color,#ccc);cursor:pointer;color:var(--text-color,#333);border-radius:4px;padding:4px 11px;font-size:13px;font-weight:500}.toolbar-button:hover{background-color:var(--hover-bg,#f0f0f0)}@media (prefers-color-scheme:dark){.toolbar{background-color:#252525;border-bottom:1px solid #444}}.panel-container{border-top:1px solid #ddd;flex:1;display:flex;overflow:hidden}@media (prefers-color-scheme:dark){.panel-container{border-top:1px solid #444}}.left-panel{background-color:#fafafa;border-right:1px solid #ddd;flex-direction:column;width:350px;min-width:350px;max-width:350px;height:100%;display:flex;overflow:hidden}.project-info-panel{background-color:#fff;border-bottom:1px solid #eee;padding:10px}.project-info-panel .form-row{flex-direction:row;align-items:center;width:100%;margin-bottom:8px;display:flex}.project-info-panel label{width:100px;color:var(--text-color,#333);text-align:left;margin-left:0;padding-left:0;font-size:13px;font-weight:500}.project-info-panel input{color:var(--text-color,#333);box-sizing:border-box;background-color:#fff;border:1px solid #ddd;border-radius:3px;flex:1;width:100%;padding:4px 6px;font-size:13px}.door-list-panel{flex:1;padding:0 5px;overflow:auto}.project-info-header{background-color:#f8f8f8;border-bottom:1px solid #ddd;margin-bottom:4px;padding:8px 5px 4px;font-size:12px}.project-info-label{margin-bottom:2px}.info-label{color:var(--text-color,#555);font-weight:500}.info-value{color:var(--text-color,#333)}.door-table{border-collapse:collapse;width:100%;font-size:12px}.door-table th{text-align:left;color:var(--text-color,#333);background-color:#f0f0f0;border-bottom:1px solid #ddd;padding:6px 8px;font-weight:500}.door-table td{color:var(--text-color,#333);border-bottom:1px solid #f5f5f5;padding:4px 8px}.door-table td:last-child{width:50px;padding:0 4px}.door-table tr:hover{background-color:#f5f5f5}.door-table tr.selected{background-color:#e0e0ff}.door-table img{border:1px solid #eee}.copy-door-button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;font-weight:600;display:inline-flex}.copy-door-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.remove-door-button{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;font-weight:600;display:inline-flex}.remove-door-button:hover{opacity:.85}.door-table tfoot tr.add-door-row{background-color:#fafafa;border-top:1px solid #ddd}.door-table tfoot tr.add-door-row:hover{background-color:#f5f5f5}.door-table tfoot tr.add-door-row td{border-bottom:none;padding:15px 8px}@media (prefers-color-scheme:dark){.door-table tfoot tr.add-door-row{background-color:#252525;border-top:1px solid #444}.door-table tfoot tr.add-door-row:hover{background-color:#333}.left-panel{background-color:#252525;border-right:1px solid #444}.project-info-panel{background-color:#2d2d2d;border-bottom:1px solid #444}.project-info-panel input{background-color:#2d2d2d;border:1px solid #444}.door-table{color:var(--text-color,#e0e0e0)}.door-table th{background-color:#3a3a3a;border-bottom:1px solid #444}.door-table td{border-bottom:1px solid #333}.door-table td:last-child{width:50px;padding:0 4px}.door-table tr:hover{background-color:#3a3a3a}.door-table tr.selected{background-color:#0a3d7a}.door-table img{border:1px solid #444}.project-info-header{background-color:#2d2d2d;border-bottom:1px solid #444}.info-label{color:var(--text-color,#ccc)}.info-value{color:var(--text-color,#e0e0e0)}}.center-panel{background-color:#fff;flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:auto}.drawing-container{border-bottom:1px solid #ddd;flex:1;padding:10px;overflow:auto}.pdf-buttons{background-color:#f8f8f8;border-top:1px solid #ddd;justify-content:flex-end;gap:8px;padding:10px;display:flex}.pdf-button{background-color:var(--panel-bg,#fff);border:1px solid var(--border-color,#ccc);cursor:pointer;color:var(--text-color,#333);border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500}.pdf-button:hover{background-color:var(--hover-bg,#f0f0f0)}@media (prefers-color-scheme:dark){.center-panel{background-color:#1e1e1e}.drawing-container{background-color:#1e1e1e;border-bottom:1px solid #444}.pdf-buttons{background-color:#252525;border-top:1px solid #444}}.right-panel{background-color:#fafafa;border-left:1px solid #ddd;width:320px;min-width:320px;max-width:320px;height:100%;padding:10px;overflow:auto}.edit-panel{background-color:#fff;border:1px solid #ddd;border-radius:5px;padding:15px}.edit-panel h3{color:var(--text-color,#333);border-bottom:1px solid #eee;margin-top:0;padding-bottom:10px;font-size:16px}.edit-panel .form-group{margin-bottom:15px}.edit-panel .form-group.no-label{margin-bottom:15px;padding-top:10px}.edit-panel .form-group.no-label>label{display:none}.edit-panel label{color:var(--text-color,#333);margin-bottom:5px;font-size:13px;font-weight:500;display:block}.edit-panel input[type=text],.edit-panel select{box-sizing:border-box;width:100%;color:var(--text-color,#333);background-color:#fff;border:1px solid #ddd;border-radius:3px;padding:6px 8px;font-size:13px}.edit-panel .radio-group{align-items:center;gap:15px;display:flex}.edit-panel .radio-group label{color:var(--text-color,#333);align-items:center;gap:5px;font-weight:400;display:flex}.edit-panel .radio-group label:has(input:disabled){opacity:.5;cursor:not-allowed}.edit-panel .checkbox-group{flex-direction:column;gap:5px;display:flex}.edit-panel .checkbox-group label:has(input:disabled){opacity:.5;cursor:not-allowed}.edit-panel .checkbox-group label{color:var(--text-color,#333);align-items:center;gap:5px;font-weight:400;display:flex}.edit-panel .checkbox-group input[type=checkbox]{margin-right:5px}.edit-panel .checkbox-grid{grid-template-columns:1fr 1fr;gap:5px 12px;display:grid}.edit-panel .checkbox-column{flex-direction:column;gap:5px;display:flex}.edit-panel textarea{box-sizing:border-box;resize:vertical;width:100%;color:var(--text-color,#333);background-color:#fff;border:1px solid #ddd;border-radius:3px;padding:6px 8px;font-family:inherit;font-size:13px}.save-button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;padding:7px 15px;font-size:13px;font-weight:500}.save-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}@media (prefers-color-scheme:dark){.right-panel{background-color:#252525;border-left:1px solid #444}.edit-panel{background-color:#2d2d2d;border:1px solid #444}.edit-panel h3{border-bottom:1px solid #444}.edit-panel input[type=text],.edit-panel select,.edit-panel textarea{background-color:#2d2d2d;border:1px solid #444}}@media (width<=1200px){.door-table th,.door-table td{padding:3px 6px;font-size:11px}.edit-panel .form-group label,.edit-panel input,.edit-panel select,.edit-panel textarea{font-size:12px}}.mobile-tab-bar{background:#f8f8f8;border-bottom:1px solid #ccc;flex-shrink:0;display:flex}.tab-btn{color:#555;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:12px 0;font-size:14px;font-weight:500}.tab-btn.active{color:#1976d2;background:#fff;border-bottom-color:#1976d2}.tab-btn:hover:not(.active){background:#f0f0f0}@media (prefers-color-scheme:dark){.mobile-tab-bar{background:#252525;border-bottom-color:#444}.tab-btn{color:#aaa}.tab-btn.active{color:#64b5f6;background:#1e1e1e;border-top-color:#64b5f6}.tab-btn:hover:not(.active){background:#333}}@media (width<=899px){.panel-container{flex:1;overflow:hidden}.left-panel,.center-panel,.right-panel{border:none;height:100%;width:100%!important;min-width:0!important;max-width:none!important}.center-panel{flex-direction:column}}.glass-types-editor{background-color:var(--bg-color);border:1px solid var(--border-color);z-index:1000;width:80%;max-width:1000px;max-height:80vh;color:var(--text-color);border-radius:8px;padding:20px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 4px 12px #00000026}.glass-types-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.glass-types-header h2{color:var(--text-color);margin:0}.glass-types-list{width:100%;overflow-x:auto}.glass-types-list table{border-collapse:collapse;background-color:var(--panel-bg);width:100%}.glass-types-list th,.glass-types-list td{text-align:left;border-bottom:1px solid var(--border-color);color:var(--text-color);padding:10px 12px}.glass-types-list th{background-color:var(--hover-bg);font-weight:600}.glass-types-list tr:hover td{background-color:var(--hover-bg)}.add-button,.close-button{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:6px 13px;font-size:13px;font-weight:500;display:inline-flex}.add-button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);margin-right:8px}.add-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.close-button{background-color:var(--panel-bg);color:var(--text-color);border:1px solid var(--border-color)}.close-button:hover{background-color:var(--hover-bg)}.edit-button,.delete-button{cursor:pointer;border-radius:4px;margin-right:4px;padding:3px 9px;font-size:12px;font-weight:500}.edit-button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.edit-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.delete-button{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color)}.delete-button:hover{opacity:.85}.glass-type-edit-dialog{z-index:2000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.glass-type-edit-dialog .dialog-content{background-color:var(--panel-bg);border:1px solid var(--border-color);border-radius:8px;width:500px;max-width:90%;padding:25px;box-shadow:0 4px 20px #0003}.glass-type-edit-dialog h3{color:var(--text-color);border-bottom:1px solid var(--border-color);margin-top:0;padding-bottom:10px}.glass-type-edit-dialog .form-group{margin-bottom:15px}.glass-type-edit-dialog label{color:var(--text-color);margin-bottom:5px;font-weight:500;display:block}.glass-type-edit-dialog input[type=text],.glass-type-edit-dialog input[type=number]{border:1px solid var(--border-color);box-sizing:border-box;background-color:var(--panel-bg);width:100%;color:var(--text-color);border-radius:4px;padding:7px 10px;font-size:13px}.glass-type-edit-dialog .dialog-actions{border-top:1px solid var(--border-color)}.glass-type-edit-dialog input[type=checkbox]{margin-right:8px}.glass-type-edit-dialog .checkbox-group{align-items:center;display:flex}.glass-type-edit-dialog .dialog-actions{background:inherit;border-top:1px solid #eee;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:15px;padding-bottom:10px;display:flex;position:sticky;bottom:0}.glass-type-edit-dialog .save-button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;padding:7px 15px;font-size:13px;font-weight:500}.glass-type-edit-dialog .save-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.glass-type-edit-dialog .cancel-button{background-color:var(--panel-bg);color:var(--text-color);border:1px solid var(--border-color);cursor:pointer;border-radius:4px;padding:7px 15px;font-size:13px;font-weight:500}.glass-type-edit-dialog .cancel-button:hover{background-color:var(--hover-bg)}.loading,.error{text-align:center;color:var(--text-color,#666);padding:20px}.error{color:var(--error-color,#d32f2f);background-color:var(--error-bg,#ffebee);border:1px solid #ef9a9a;border-radius:4px}@media (prefers-color-scheme:dark){.error{border:1px solid #7a2e2e}}.profile-systems-editor{background-color:var(--bg-color);border:1px solid var(--border-color);z-index:1000;border-radius:8px;flex-direction:column;width:90%;max-width:1200px;height:80%;max-height:800px;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 4px 20px #0000004d}.profile-systems-header{background-color:var(--panel-bg);border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.profile-systems-header h2{color:var(--text-color);margin:0;font-size:1.2rem}.system-selector{align-items:center;gap:8px;display:flex;position:relative}.system-selector label{color:var(--text-color);font-size:.95rem;font-weight:500}.system-selector select{border:1px solid var(--border-color);background-color:var(--panel-bg);color:var(--text-color);appearance:none;cursor:pointer;border-radius:4px;min-width:200px;padding:6px 30px 6px 12px;font-size:.95rem}.system-selector:after{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid var(--text-color);pointer-events:none;width:0;height:0;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.system-selector select:focus{outline:2px solid var(--primary-color);outline-offset:1px}.system-selector select:hover{border-color:var(--primary-color)}.button,.action-buttons button{cursor:pointer;border-radius:4px;padding:6px 12px;font-size:.9rem;font-weight:500;transition:all .2s}.button-solid,.save-button,.save-as-new-button,.delete-button{color:#fff;border:none}.button-solid-primary,.save-button{background-color:var(--primary-color)}.button-solid-primary:hover,.save-button:hover,.button-solid-secondary,.save-as-new-button{background-color:var(--primary-hover)}.button-solid-secondary:hover,.save-as-new-button:hover{background-color:var(--primary-color)}.button-solid-danger,.delete-button{background-color:var(--error-color)}.button-solid-danger:hover,.delete-button:hover{opacity:.85}.button-outline,.close-button{background-color:var(--panel-bg);color:var(--text-color);border:1px solid var(--border-color)}.button-outline:hover,.close-button:hover{background-color:var(--hover-bg)}.action-buttons{gap:8px;display:flex}.tabs-container{flex-direction:column;flex:1;display:flex;overflow:hidden}.tabs-header{background-color:var(--panel-bg);border-bottom:1px solid var(--border-color);padding:0 16px;display:flex}.tab-button{color:var(--text-color);cursor:pointer;background:0 0;border:none;padding:10px 16px;font-size:.95rem;transition:all .2s;position:relative}.tab-button:hover{background-color:var(--hover-bg)}.tab-button.active{background-color:var(--primary-color);color:#fff;font-weight:500}.tab-button.active:after{content:"";background-color:var(--primary-color);height:3px;position:absolute;bottom:-2px;left:0;right:0}.tab-content{background-color:var(--panel-bg);flex:1;padding:16px;overflow-y:auto}.dimensions-tab{flex-direction:column;gap:16px;display:flex}.pse-locked-note{background-color:var(--selected-bg);color:var(--text-color);opacity:.8;border-radius:4px;margin-bottom:8px;padding:8px 12px;font-size:.85rem}.illustration-note{background-color:var(--selected-bg);color:var(--text-color);border-radius:4px;padding:8px;font-size:.9rem}.dimensions-form{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.form-row{flex-direction:column;gap:4px;display:flex}.form-row label{color:var(--text-color);font-size:.9rem}.form-row input,.form-row select{border:1px solid var(--border-color);background-color:var(--panel-bg);color:var(--text-color);border-radius:4px;padding:6px 12px}.form-row input:disabled{opacity:.7;cursor:not-allowed}.profiles-tab{flex-direction:column;gap:16px;display:flex}.profiles-note{background-color:var(--selected-bg);color:var(--text-color);border-radius:4px;padding:8px;font-size:.9rem}.profiles-table-container{flex:1;overflow:auto}.profiles-table{border-collapse:collapse;width:100%}.profiles-table th,.profiles-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:8px 12px}.profiles-table th{background-color:var(--primary-color);color:#fff;font-weight:500}.profiles-table tr:hover{background-color:var(--hover-bg)}.profiles-actions{justify-content:flex-start;gap:8px;display:flex}.profiles-actions button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px}.profiles-actions button:disabled{background-color:var(--border-color);cursor:not-allowed}.table-button{cursor:pointer;border-radius:4px;margin-right:4px;padding:3px 8px;font-size:.8rem;font-weight:500}.table-button-solid{color:#fff;border:none}.table-button-edit{background-color:var(--primary-hover)}.table-button-edit:hover{background-color:var(--primary-color)}.table-button-delete{background-color:var(--error-color)}.table-button-delete:hover{opacity:.85}.edit-button,.delete-button{border-radius:4px;margin-right:4px;padding:3px 8px;font-size:.8rem}.edit-button{background-color:var(--primary-hover);color:#fff}.delete-button{background-color:var(--error-color);color:#fff}.edit-button:disabled,.delete-button:disabled{opacity:.5;cursor:not-allowed}.profile-pairs-tab{flex-direction:column;gap:16px;display:flex}.pairs-note{background-color:var(--selected-bg);color:var(--text-color);border-radius:4px;padding:8px;font-size:.9rem}.pairs-table-container{flex:1;overflow:auto}.pairs-table{border-collapse:collapse;width:100%}.pairs-table th,.pairs-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:8px 12px}.pairs-table th{background-color:var(--primary-color);color:#fff;font-weight:500}.pairs-table tr:hover{background-color:var(--hover-bg)}.pairs-actions{justify-content:flex-start;gap:8px;display:flex}.pairs-actions button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px}.pairs-actions button:disabled{background-color:var(--border-color);cursor:not-allowed}.uvalues-tab{flex-direction:column;gap:16px;display:flex}.uvalues-form{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:12px;display:grid}.general-tab{flex-direction:column;gap:16px;display:flex}.general-form{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;max-width:600px;display:grid}.pse-loading{color:var(--text-color);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pse-error{background-color:var(--error-bg,#fee);color:var(--error-color,#c00);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:8px 12px;font-size:.9rem;display:flex}.pse-error-close{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.1rem}.threshold-header-row td{background-color:var(--hover-bg);color:var(--text-color);opacity:.7;padding:6px 12px;font-size:.8rem;font-style:italic}.threshold-row{opacity:.6}.role-checkboxes{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.role-checkbox{cursor:pointer;align-items:center;gap:4px;font-size:.9rem;display:flex}.pse-dialog-backdrop{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pse-dialog{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:6px;flex-direction:column;gap:12px;width:90%;min-width:360px;max-width:480px;padding:20px;display:flex}.pse-dialog h3{color:var(--text-color);margin:0;font-size:1rem}.pse-dialog .form-group{flex-direction:column;gap:4px;display:flex}.pse-dialog .form-group label{color:var(--text-color);font-size:.9rem}.pse-dialog .form-group input,.pse-dialog .form-group select{border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-color);border-radius:4px;padding:6px 10px;font-size:.9rem}.pse-dialog .dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.add-button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:.9rem}.add-button:hover{background-color:var(--primary-hover)}.pse-system-list{background-color:var(--panel-bg);flex:1;padding:16px;overflow-y:auto}.pse-list-table{border-collapse:collapse;width:100%}.pse-list-table th{background-color:var(--primary-color);color:#fff;text-align:left;padding:10px 14px;font-weight:500}.pse-list-table td{border-bottom:1px solid var(--border-color);color:var(--text-color);padding:10px 14px}.pse-list-row{cursor:pointer;transition:background-color .15s}.pse-list-row:hover{background-color:var(--hover-bg)}.pse-list-action{text-align:right;white-space:nowrap}.pse-edit-title{align-items:center;gap:12px;display:flex}.pse-edit-title h2{color:var(--text-color);margin:0;font-size:1.2rem}.pse-back-button{border:1px solid var(--border-color);color:var(--text-color);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:5px 10px;font-size:.9rem}.pse-back-button:hover{background-color:var(--hover-bg)}@media (prefers-color-scheme:dark){.auth-card{background:var(--panel-bg,#2d2d2d)}.auth-card h1,.auth-field label{color:var(--text-color,#e0e0e0)}.auth-field input{background:var(--bg-color,#1e1e1e);border-color:var(--border-color,#444);color:var(--text-color,#e0e0e0)}.auth-error{background:var(--error-bg,#2d1b1b);color:var(--error-color,#ff6b6b)}}.auth-page{background:var(--bg-color,#f5f5f5);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--card-bg,#fff);border-radius:8px;width:100%;max-width:400px;padding:40px;box-shadow:0 4px 12px #00000026}.auth-card h1{text-align:center;color:var(--text-color,#333);margin:0 0 24px;font-size:24px}.auth-field{margin-bottom:20px}.auth-field label{color:var(--text-color,#333);margin-bottom:6px;font-weight:500;display:block}.auth-field input{box-sizing:border-box;border:1px solid var(--border-color,#ccc);background:var(--input-bg,#fff);width:100%;color:var(--text-color,#333);border-radius:4px;padding:10px 12px;font-size:16px;transition:border-color .2s,box-shadow .2s}.auth-field input:focus{border-color:var(--primary-color,#06c);outline:none;box-shadow:0 0 0 2px #06c3}.auth-button{color:#fff;background:var(--primary-color,#06c);cursor:pointer;border:none;border-radius:4px;width:100%;padding:12px 16px;font-size:16px;font-weight:500;transition:background-color .2s}.auth-button:hover:not(:disabled){background:var(--primary-hover,#0052a3)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#c62828;background:#ffebee;border-radius:4px;margin-bottom:20px;padding:12px;font-size:14px}.auth-switch{text-align:center;margin-top:24px}.auth-link{color:var(--primary-color,#06c);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.auth-link:hover{text-decoration:underline}@media (prefers-color-scheme:dark){.auth-card{background:var(--panel-bg,#2d2d2d)}.auth-card h1,.auth-field label{color:var(--text-color,#e0e0e0)}.auth-field input{background:var(--bg-color,#1e1e1e);border-color:var(--border-color,#444);color:var(--text-color,#e0e0e0)}.auth-error{background:var(--error-bg,#2d1b1b);color:var(--error-color,#ff6b6b)}}.admin-page{max-width:800px;margin:0 auto;padding:24px}.admin-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.admin-header h1{margin:0;font-size:22px}.admin-back{border:1px solid var(--border-color,#ccc);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:14px}.admin-back:hover{background:var(--hover-bg,#f0f0f0)}.admin-error{color:#c62828;background:#ffebee;border-radius:4px;margin-bottom:16px;padding:12px;font-size:14px}.admin-loading{color:var(--text-muted,#888)}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border-color,#e0e0e0);padding:10px 12px}.admin-table th{background:var(--header-bg,#f8f8f8);font-weight:600}.admin-row-inactive td{opacity:.55}.admin-you{color:var(--text-muted,#888);font-size:12px}.admin-badge{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.admin-badge.active{color:#2e7d32;background:#e8f5e9}.admin-badge.inactive{color:#888;background:#fafafa;border:1px solid #ddd}.admin-toggle{cursor:pointer;border:1px solid;border-radius:4px;padding:4px 12px;font-size:13px}.admin-toggle.disable{color:#c62828;background:#fff;border-color:#ef9a9a}.admin-toggle.disable:hover{background:#ffebee}.admin-toggle.enable{color:#2e7d32;background:#fff;border-color:#a5d6a7}.admin-toggle.enable:hover{background:#e8f5e9}.admin-toggle:disabled{opacity:.5;cursor:not-allowed}:root{--bg-color:#f5f5f5;--text-color:#333;--primary-color:#1976d2;--primary-hover:#1565c0;--error-color:#d32f2f;--error-bg:#ffebee;--panel-bg:white;--border-color:#ddd;--hover-bg:#f0f0f0;--selected-bg:#e3f2fd;--shadow:0 2px 4px #0000001a}@media (prefers-color-scheme:dark){:root{--bg-color:#1e1e1e;--text-color:#e0e0e0;--primary-color:#4ea0ff;--primary-hover:#3a8cef;--error-color:#ff6b6b;--error-bg:#2d1b1b;--panel-bg:#2d2d2d;--border-color:#444;--hover-bg:#3a3a3a;--selected-bg:#0a3d7a;--shadow:0 2px 4px #0000004d}}body{background-color:var(--bg-color);color:var(--text-color);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.app{width:100%;margin:0;padding:0}.context-menu{background:var(--panel-bg);border:1px solid var(--border-color);box-shadow:var(--shadow), 0 4px 12px #00000026;z-index:2000;border-radius:4px;min-width:200px;padding:8px 0;font-size:14px;position:fixed}.context-menu-item{cursor:pointer;color:var(--text-color);align-items:center;padding:8px 16px;display:flex}.context-menu-item:hover{background-color:var(--hover-bg)}.context-menu input[type=checkbox]{cursor:pointer;margin-right:8px}.loading,.error{text-align:center;padding:20px;font-size:18px}.error{color:var(--error-color);background-color:var(--error-bg);border-radius:4px}.project-list{max-width:800px;margin:0 auto;padding-bottom:20px}.project-list h1{text-align:center;color:var(--primary-color)}.refresh-section{text-align:center;margin-top:20px}.refresh-button{background-color:var(--panel-bg);color:var(--primary-color);border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:14px;transition:all .2s}.refresh-button:hover{background-color:var(--primary-color);color:#fff}.new-project-form{background-color:var(--panel-bg);box-shadow:var(--shadow);border-radius:8px;margin-bottom:20px;padding:20px}.new-project-form form{gap:10px;display:flex}.new-project-form input{border:1px solid var(--border-color);background-color:var(--panel-bg);color:var(--text-color);border-radius:4px;flex:1;padding:10px;font-size:16px}.new-project-form button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:13px;font-weight:500}.new-project-form button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.projects-grid ul{margin:0;padding:0;list-style:none}.project-item{background-color:var(--panel-bg);box-shadow:var(--shadow);border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:15px;display:flex}.project-item:hover{background-color:var(--hover-bg)}.project-info a{color:#1976d2;font-size:18px;text-decoration:none}.project-info a:hover{text-decoration:underline}.project-item .delete-button{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color);cursor:pointer;border-radius:4px;padding:5px 11px;font-size:13px;font-weight:500}.project-item .delete-button:hover{opacity:.85}.global-actions{border-top:1px solid var(--border);margin-top:30px;padding-top:20px}.glass-types-button,.profile-systems-button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:1px solid var(--primary-color);border-radius:4px;margin-right:10px;padding:6px 13px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.glass-types-button:hover,.profile-systems-button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.project-view{flex-direction:column;gap:20px;display:flex}.project-header{background-color:var(--panel-bg);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.project-header h1{color:var(--primary-color);margin:0}.project-actions{gap:10px;display:flex}.project-actions button,.project-actions .button{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color);cursor:pointer;border-radius:4px;padding:6px 13px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.project-actions button:hover,.project-actions .button:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.project-actions button:disabled{opacity:.45;cursor:not-allowed}.project-content{gap:20px;display:flex}.position-table{background-color:var(--panel-bg);box-shadow:var(--shadow);border-radius:8px;flex:1;padding:20px}.position-table h2{color:var(--primary-color);margin-top:0}.position-table table{border-collapse:collapse;width:100%}.position-table th,.position-table td{text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle;color:var(--text-color);padding:6px 10px}.position-table th{background-color:#f5f5f5;font-weight:600}.position-table tr:hover{background-color:var(--hover-bg)}.position-table tr.selected{background-color:var(--selected-bg)}.position-table tr.add-position:hover{background-color:#0000}.add-position-button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:700;display:inline-flex}.add-position-button:hover{background-color:var(--primary-hover)}.primary-button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:14px;display:inline-block}.primary-button:hover{background-color:var(--primary-hover)}.drawing-view{background-color:var(--panel-bg);box-shadow:var(--shadow);border-radius:8px;flex:2;padding:20px}.drawing-view h2{color:var(--primary-color);margin-top:0}.no-drawing{color:#666;text-align:center;padding:40px}.door-form-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.door-form{background-color:var(--panel-bg);width:80%;max-width:800px;max-height:90vh;color:var(--text-color);border-radius:8px;padding:20px;overflow-y:auto;box-shadow:0 4px 12px #0003}.form-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.form-header h2{color:#1976d2;margin:0}.icon-close-btn{cursor:pointer;color:#888;background:0 0;border:none;padding:2px 6px;font-size:22px;line-height:1}.icon-close-btn:hover{color:var(--text-color)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;display:grid}.form-field{margin-bottom:15px}.form-field label{margin-bottom:5px;font-weight:600;display:block}.form-field input,.form-field select{border:1px solid var(--border-color);background-color:var(--panel-bg);width:100%;color:var(--text-color);border-radius:4px;padding:8px;font-size:14px}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.form-actions button{cursor:pointer;border-radius:4px;padding:7px 15px;font-size:13px;font-weight:500}.form-actions button[type=submit]{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.form-actions button[type=submit]:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.form-actions button[type=button]{background-color:var(--panel-bg);color:var(--text-color);border:1px solid var(--border-color)}.form-actions button[type=button]:hover{background-color:var(--hover-bg)}.sheet-optimizer{flex-direction:column;gap:20px;display:flex}.sheet-optimizer-header{background-color:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:15px 20px;display:flex;box-shadow:0 2px 4px #0000001a}.sheet-optimizer-header h1{color:#1976d2;margin:0}.back-button{color:#333;background-color:#f5f5f5;border-radius:4px;padding:8px 16px;text-decoration:none}.back-button:hover{background-color:#e0e0e0}.sheet-optimizer-controls{background-color:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:15px;padding:20px;display:flex;box-shadow:0 2px 4px #0000001a}.control-group{align-items:center;gap:8px;display:flex}.control-group label{font-weight:600}.control-group input{border:1px solid #ddd;border-radius:4px;padding:8px}.sheet-optimizer-stats{background-color:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.sheet-optimizer-stats h3{color:#1976d2;margin-top:0}.sheet-optimizer-panels{background-color:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.sheet-optimizer-panels table{border-collapse:collapse;width:100%}.sheet-optimizer-panels th,.sheet-optimizer-panels td{text-align:left;border-bottom:1px solid #eee;padding:10px}.sheet-optimizer-panels th{background-color:#f5f5f5;font-weight:600}.sheet-optimizer-sheets{background-color:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.sheet{border-bottom:1px solid #eee;margin-bottom:30px;padding-bottom:20px}.sheet-optimizer{background:var(--bg-color);flex-direction:column;min-height:100vh;display:flex}.sheet-opt-header{background:var(--panel-bg);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow);z-index:10;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.sheet-opt-back{color:var(--primary-color);white-space:nowrap;font-size:14px;text-decoration:none}.sheet-opt-back:hover{text-decoration:underline}.sheet-opt-title{color:var(--primary-color);white-space:nowrap;margin:0;font-size:18px;font-weight:600}.sheet-opt-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-left:auto;display:flex}.sheet-opt-label{color:var(--text-color);flex-direction:column;gap:3px;font-size:12px;font-weight:500;display:flex}.sheet-opt-select,.sheet-opt-input{border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-color);border-radius:4px;padding:5px 8px;font-size:13px}.sheet-opt-input-wide{width:100px}.sheet-opt-input-narrow{width:60px}.sheet-opt-btn{border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-color);cursor:pointer;white-space:nowrap;border-radius:4px;align-self:flex-end;padding:6px 14px;font-size:13px}.sheet-opt-btn:hover{background:var(--hover-bg)}.sheet-opt-btn:disabled{opacity:.45;cursor:not-allowed}.sheet-opt-btn-primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.sheet-opt-btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.sheet-opt-error{background:var(--error-bg);color:var(--error-color);border-radius:4px;margin:16px 20px 0;padding:10px 14px;font-size:14px}.sheet-opt-status{color:var(--text-color);opacity:.6;text-align:center;margin:40px auto;font-size:16px}.sheet-opt-stats{flex-wrap:wrap;gap:12px;padding:16px 20px 0;display:flex}.stat-card{background:var(--panel-bg);border:1px solid var(--border-color);text-align:center;min-width:100px;box-shadow:var(--shadow);border-radius:6px;padding:12px 20px}.stat-val{color:var(--primary-color);font-size:22px;font-weight:700;line-height:1.2}.stat-lbl{color:var(--text-color);opacity:.7;text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:11px}.sheet-opt-legend{flex-wrap:wrap;gap:10px;padding:12px 20px 0;display:flex}.legend-item{color:var(--text-color);align-items:center;gap:6px;font-size:13px;display:flex}.legend-dot{border-radius:3px;flex-shrink:0;width:14px;height:14px}.sheet-opt-sheets{flex-flow:wrap;justify-content:center;gap:16px;padding:16px 20px 24px;display:flex}.sheet-card{background:var(--panel-bg);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:6px;flex:none;overflow:hidden}.sheet-card-title{border-bottom:1px solid var(--border-color);color:var(--text-color);align-items:baseline;gap:10px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.sheet-card-dims{opacity:.65;font-size:12px;font-weight:400}@media (prefers-color-scheme:dark){.sheet-opt-header{background:#2d2d2d;border-bottom-color:#444}}.user-info{align-items:center;gap:15px;margin-left:auto;padding:0 10px;display:flex}.user-welcome{color:var(--text-color);white-space:nowrap;font-size:13px}.logout-button{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:500}.logout-button:hover{opacity:.85}
