@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap";:root{--bg-dark:#090d16;--bg-panel:#0f172ad9;--bg-panel-solid:#0f172a;--bg-card:#1e293b99;--border-color:#ffffff14;--border-active:#38bdf866;--text-main:#f8fafc;--text-muted:#94a3b8;--accent-cyan:#38bdf8;--accent-blue:#0284c7;--accent-hover:#075985;--shadow-lg:0 20px 25px -5px #00000080, 0 8px 10px -6px #00000080;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);-webkit-font-smoothing:antialiased;height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden}.app-container{flex-direction:column;width:100vw;height:100vh;display:flex}.app-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:20;background:#0f172af2;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{background:#38bdf81f;border:1px solid #38bdf84d;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.brand-text{flex-direction:column;display:flex}.brand-title{letter-spacing:-.01em;background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:700}.brand-subtitle{color:var(--text-muted);font-size:.72rem;font-weight:500}.file-pill{border:1px solid var(--border-color);background:#1e293bcc;border-radius:20px;align-items:center;gap:8px;padding:4px 14px;font-size:.85rem;display:flex}.pill-filename{color:#f1f5f9;font-weight:600}.pill-badge{background:var(--accent-blue);color:#fff;letter-spacing:.05em;border-radius:4px;padding:1px 6px;font-size:.68rem;font-weight:700}.pill-size{color:var(--text-muted);font-size:.78rem}.main-layout{flex:1;display:flex;overflow:hidden}.cad-sidebar{background:var(--bg-panel-solid);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;gap:16px;width:310px;padding:16px;display:flex;overflow-y:auto}.sidebar-section{flex-direction:column;gap:10px;display:flex}.sidebar-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:600;display:flex}.upload-btn{background:linear-gradient(135deg, var(--accent-blue) 0%, #0369a1 100%);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #0284c740}.upload-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.section-header{color:var(--text-muted);border-bottom:1px solid var(--border-color);align-items:center;gap:6px;padding-bottom:4px;font-size:.82rem;font-weight:600;display:flex}.section-header.clickable{cursor:pointer}.section-header.clickable:hover{color:var(--text-main)}.file-list{flex-direction:column;gap:6px;display:flex}.file-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.file-item:hover{border-color:var(--border-active);background:#1e293be6}.file-item.selected{border-color:var(--accent-cyan);background:#38bdf81a}.file-icon{color:var(--accent-cyan)}.file-info{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.file-name{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.file-meta{color:var(--text-muted);align-items:center;gap:8px;font-size:.72rem;display:flex}.badge{color:var(--accent-cyan);background:#38bdf826;border-radius:4px;padding:1px 5px;font-weight:600}.badge-dwg{color:#fb923c;background:#f973162e;border:1px solid #f973164d}.badge-dxf{color:#22d3ee;background:#06b6d42e;border:1px solid #06b6d44d}.badge-edrw{color:#c084fc;background:#a855f72e;border:1px solid #a855f74d}.badge-xt{color:#34d399;background:#10b9812e;border:1px solid #10b9814d}.badge-step{color:#60a5fa;background:#3b82f62e;border:1px solid #3b82f64d}.check-icon{color:var(--accent-cyan)}.tree-list{flex-direction:column;gap:4px;max-height:240px;padding-left:6px;display:flex;overflow-y:auto}.tree-item{border-radius:var(--radius-sm);background:#0f172a80;align-items:center;gap:8px;padding:6px 8px;font-size:.8rem;display:flex}.part-checkbox{accent-color:var(--accent-cyan);cursor:pointer}.color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.part-name{white-space:nowrap;text-overflow:ellipsis;color:#e2e8f0;flex:1;overflow:hidden}.face-count{color:var(--text-muted);font-size:.7rem}.viewport-container{flex-direction:column;flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.cad-toolbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:10;scrollbar-width:none;background:#0f172ae6;align-items:center;gap:10px;height:50px;padding:0 16px;display:flex;overflow:visible}.cad-toolbar::-webkit-scrollbar{display:none}.view-mode-tabs{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#1e293be6;padding:3px;display:flex}.mode-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.mode-tab:hover{color:var(--text-main)}.mode-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px #0284c766}.toolbar-group{align-items:center;gap:8px;display:flex}.toolbar-label{color:var(--text-muted);text-transform:uppercase;align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:flex}.toolbar-divider{background:var(--border-color);width:1px;height:24px}.btn-group{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#1e293bcc;padding:2px;display:flex}.tool-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:5px 10px;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.tool-btn:hover{color:var(--text-main)}.tool-btn.active{background:var(--accent-blue);color:#fff}.tool-btn.icon-only{padding:6px}.explode-group{align-items:center;gap:8px;display:flex}.slider-range{accent-color:var(--accent-cyan);cursor:pointer;width:90px}.slider-val{color:var(--accent-cyan);min-width:32px;font-size:.75rem;font-weight:600}.canvas-wrapper{flex:1;width:100%;height:100%;min-height:0;position:relative}.blueprint-container{background:#070b14;flex-direction:column;width:100%;height:100%;display:flex}.unit-toggle{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#1e293bcc;padding:2px;display:flex}.unit-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:600}.unit-btn.active{background:var(--accent-blue);color:#fff}.zoom-controls{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#1e293b99;align-items:center;gap:4px;padding:2px 6px;display:flex}.zoom-label{color:var(--accent-cyan);text-align:center;min-width:36px;font-size:.75rem;font-weight:600}.export-svg-btn{color:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;background:#38bdf826;border:1px solid #38bdf84d;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;font-weight:600;display:flex}.export-svg-btn:hover{background:#38bdf840}.blueprint-canvas-wrapper{flex:1;justify-content:center;align-items:center;padding:16px;display:flex;overflow:auto}.blueprint-svg{border-radius:var(--radius-md);width:100%;max-width:1100px;max-height:650px;box-shadow:var(--shadow-lg);border:1px solid #ffffff14}.error-banner{color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:30;background:#e11d48e6;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:500;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.floating-panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:340px;box-shadow:var(--shadow-lg);z-index:25;animation:.2s ease-out slideIn;position:absolute;top:16px;right:16px;overflow:hidden}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.panel-header{border-bottom:1px solid var(--border-color);background:#1e293b80;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-title{color:#f1f5f9;align-items:center;gap:8px;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600;display:flex}.panel-actions{align-items:center;gap:6px;display:flex}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.icon-btn:hover{color:var(--text-main);background:#ffffff1a}.panel-body{flex-direction:column;gap:14px;padding:16px;display:flex}.measure-tools-row{flex-direction:column;gap:8px;display:flex}.measure-toggle-btn{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-md);cursor:pointer;background:#1e293bcc;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.measure-toggle-btn:hover{border-color:var(--border-active)}.measure-toggle-btn.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#38bdf826}.measure-toggle-btn.active-picker{color:#f87171;background:#ef444433;border-color:#ef4444}.measure-list-container{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#0f172a99;flex-direction:column;gap:6px;padding:10px;display:flex}.measure-list-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;display:flex}.text-danger-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:.7rem;font-weight:600;display:flex}.measure-list{flex-direction:column;gap:4px;max-height:120px;display:flex;overflow-y:auto}.measure-item{background:#1e293b99;border-radius:4px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:.78rem;display:flex}.measure-item-info{align-items:center;gap:6px;display:flex}.measure-tag{background:var(--accent-blue);color:#fff;border-radius:3px;padding:1px 5px;font-size:.68rem;font-weight:700}.measure-val-mm{color:#f8fafc;font-weight:700}.measure-val-in{color:var(--text-muted);font-size:.72rem}.clip-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.axis-label{align-items:center;gap:6px;font-size:.8rem;display:flex}.axis-badge{border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:700}.axis-x{color:#f87171;background:#ef444433}.axis-y{color:#4ade80;background:#22c55e33}.axis-z{color:#60a5fa;background:#3b82f633}.clip-val{color:var(--text-muted);text-align:right;width:32px;font-size:.75rem;font-weight:600}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#1e293b99;flex-direction:column;padding:8px 10px;display:flex}.stat-label{color:var(--text-muted);font-size:.7rem}.stat-val{color:#f8fafc;font-size:.95rem;font-weight:700}.text-accent{color:var(--accent-cyan)}.measure-section{border-top:1px solid var(--border-color);flex-direction:column;gap:6px;padding-top:6px;display:flex}.sub-header{color:var(--accent-cyan);align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:flex}.dim-row{justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.dim-tag{color:var(--text-muted)}.dim-value{color:#f1f5f9;font-weight:600}.panel-desc{color:var(--text-muted);font-size:.8rem;line-height:1.4}.action-btn-primary{background:var(--accent-blue);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:10px;font-size:.85rem;font-weight:600}.action-btn-primary:hover{background:var(--accent-hover)}.share-result{gap:6px;display:flex}.share-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--accent-cyan);background:#0f172acc;flex:1;padding:6px 10px;font-size:.78rem}.copy-btn{color:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;background:#38bdf826;border:1px solid #38bdf84d;align-items:center;gap:4px;padding:6px 10px;font-size:.78rem;font-weight:600;display:flex}.status-bar{background:var(--bg-panel-solid);border-top:1px solid var(--border-color);height:28px;color:var(--text-muted);z-index:10;align-items:center;gap:16px;padding:0 16px;font-size:.75rem;display:flex}.status-dot{border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}.status-dot.green{background:#22c55e;box-shadow:0 0 6px #22c55e}.spinner{border:3px solid #38bdf833;border-top-color:var(--accent-cyan);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blueprint-container{-webkit-user-select:none;user-select:none;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.blueprint-container.theme-paper{color:#0f172a;background-color:#f8fafc}.blueprint-container.theme-blueprint{color:#f8fafc;background-color:#0c1527}.blueprint-container.theme-dark{color:#f8fafc;background-color:#090d16}.blueprint-header-wrapper{-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border-color);scrollbar-width:thin;scrollbar-color:#38bdf84d transparent;z-index:15;background:#0f172af2;flex-shrink:0;width:100%;overflow:auto hidden}.blueprint-header-wrapper::-webkit-scrollbar{height:4px}.blueprint-header-wrapper::-webkit-scrollbar-thumb{background:#38bdf84d;border-radius:4px}.theme-paper .blueprint-header-wrapper{scrollbar-color:#94a3b8 transparent;background:#fff;border-bottom:1px solid #e2e8f0}.theme-paper .blueprint-header-wrapper::-webkit-scrollbar-thumb{background:#cbd5e1}.theme-blueprint .blueprint-header-wrapper{background:#0d1e3a;border-bottom:1px solid #1e3a5f}.blueprint-header{background:0 0;border-bottom:none;justify-content:space-between;align-items:center;gap:16px;min-width:max-content;height:52px;padding:0 16px;display:flex}.theme-paper .blueprint-header{background:0 0;border-bottom:none}.blueprint-title{color:#f8fafc;white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;font-family:Outfit,sans-serif;font-size:.92rem;font-weight:700;display:flex}.theme-paper .blueprint-title{color:#0f172a}.title-icon{color:var(--accent-cyan)}.theme-paper .title-icon{color:#0284c7}.format-badge{color:var(--accent-cyan);text-transform:uppercase;background:#38bdf826;border:1px solid #38bdf84d;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:700}.theme-paper .format-badge{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.blueprint-actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:10px;display:flex}.blueprint-actions>*{flex-shrink:0}.theme-toggle{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#1e293bb3;padding:2px;display:flex}.theme-paper .theme-toggle{background:#f1f5f9;border-color:#e2e8f0}.theme-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-weight:600;transition:all .15s;display:flex}.theme-paper .theme-btn{color:#64748b}.theme-btn.active{background:var(--accent-blue);color:#fff}.theme-paper .theme-btn.active{color:#fff;background:#0284c7}.drawing-search-box{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#1e293bb3;align-items:center;gap:6px;padding:2px 8px;display:flex}.theme-paper .drawing-search-box{background:#f8fafc;border-color:#cbd5e1}.search-icon{color:var(--text-muted)}.theme-paper .search-icon{color:#64748b}.drawing-search-input{color:var(--text-main);background:0 0;border:none;outline:none;width:110px;font-size:.75rem}.theme-paper .drawing-search-input{color:#0f172a}.clear-search-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.85rem}.action-pill-btn{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bb3;align-items:center;gap:5px;padding:4px 10px;font-size:.72rem;font-weight:600;transition:all .15s;display:flex}.theme-paper .action-pill-btn{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.action-pill-btn:hover,.action-pill-btn.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#38bdf81a}.theme-paper .action-pill-btn:hover,.theme-paper .action-pill-btn.active{color:#0284c7;background:#e0f2fe;border-color:#0284c7}.export-group{align-items:center;gap:4px;display:flex}.export-btn{color:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;background:#38bdf81f;border:1px solid #38bdf84d;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-weight:600;display:flex}.theme-paper .export-btn{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.export-btn:hover{background:var(--accent-blue);color:#fff}.blueprint-canvas-wrapper{flex:1;justify-content:center;align-items:center;width:100%;height:calc(100% - 52px);display:flex;position:relative;overflow:hidden}.drawing-transform-layer{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vector-svg-container{background:#fff;border-radius:4px;justify-content:center;align-items:center;width:92%;height:92%;display:flex;box-shadow:0 10px 30px #00000026}.vector-svg-container.paper{background:#fff;border:1px solid #cbd5e1}.vector-svg-container.blueprint{filter:invert(.92)hue-rotate(180deg);background:#0f172a;border:1px solid #38bdf84d}.vector-svg-container.dark{filter:invert(.95)hue-rotate(180deg)brightness(1.2);background:#090d16;border:1px solid #ffffff1a}.vector-svg-container svg{width:100%;max-width:100%;height:100%;max-height:100%;display:block}.floating-layer-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-lg);z-index:25;background:#0f172af2;position:absolute;top:16px;right:16px;overflow:hidden}.theme-paper .floating-layer-panel{background:#fffffffa;border-color:#cbd5e1;box-shadow:0 10px 25px #0000001a}.layer-list{flex-direction:column;gap:4px;max-height:280px;padding:8px;display:flex;overflow-y:auto}.layer-row{cursor:pointer;background:#1e293b66;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;font-size:.76rem;transition:background .15s;display:flex}.theme-paper .layer-row{color:#1e293b;background:#f8fafc}.layer-row:hover{background:#38bdf826}.theme-paper .layer-row:hover{background:#e0f2fe}.layer-eye-btn{cursor:pointer;background:0 0;border:none;align-items:center;display:flex}.layer-color-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.layer-name.disabled{color:#64748b;text-decoration:line-through}.layer-count{color:var(--text-muted);font-size:.68rem}.floating-bom-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-md);max-height:220px;box-shadow:var(--shadow-lg);z-index:25;background:#0f172af2;flex-direction:column;display:flex;position:absolute;bottom:16px;left:16px;right:16px;overflow:hidden}.theme-paper .floating-bom-panel{background:#fffffffa;border-color:#cbd5e1}.bom-table-scroll{padding:8px;overflow:auto}.cad-bom-table{border-collapse:collapse;width:100%;font-size:.75rem}.cad-bom-table th{color:var(--accent-cyan);text-align:left;border-bottom:1px solid var(--border-color);background:#1e293bcc;padding:6px 10px;font-weight:700}.theme-paper .cad-bom-table th{color:#0369a1;background:#f1f5f9;border-bottom:1px solid #cbd5e1}.cad-bom-table td{color:var(--text-main);border-bottom:1px solid #ffffff0d;padding:5px 10px}.theme-paper .cad-bom-table td{color:#1e293b;border-bottom:1px solid #f1f5f9}.cad-bom-table tr:hover{background:#38bdf814}.theme-paper .cad-bom-table tr:hover{background:#f8fafc}.file-manager-page{background-color:var(--bg-dark);background-image:radial-gradient(at 20% 0,#38bdf812 0%,#0000 60%),radial-gradient(at 80% 100%,#0284c70d 0%,#0000 60%);flex-direction:column;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.file-manager-page.dragging-active{border:2px dashed var(--accent-cyan)}.file-manager-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color);z-index:20;background:#0f172af2;justify-content:space-between;align-items:center;height:68px;padding:0 28px;display:flex}.fm-brand{align-items:center;gap:14px;display:flex}.fm-brand-icon{border-radius:var(--radius-md);background:#38bdf81f;border:1px solid #38bdf859;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 0 16px #38bdf826}.fm-brand-info{flex-direction:column;gap:2px;display:flex}.fm-title{letter-spacing:-.01em;background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:700}.fm-subtitle{color:var(--text-muted);margin:0;font-size:.78rem;font-weight:500}.fm-top-actions{align-items:center;gap:12px;display:flex}.btn-refresh{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;background:#1e293bb3;align-items:center;gap:8px;padding:10px 14px;font-size:.84rem;font-weight:600;transition:all .2s;display:flex}.btn-refresh:hover:not(:disabled){color:var(--text-main);background:#334155cc;border-color:#ffffff26}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.spinning{animation:1s linear infinite spin}.btn-upload-primary{color:#fff;border-radius:var(--radius-md);letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:1px solid #38bdf866;align-items:center;gap:10px;padding:10px 20px;font-family:Outfit,sans-serif;font-size:.92rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 14px #0284c759}.btn-upload-primary:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 6px 20px #38bdf873}.btn-upload-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-upload-primary.small{padding:8px 16px;font-size:.85rem}.drop-banner{border-bottom:2px dashed var(--accent-cyan);color:var(--accent-cyan);background:#38bdf81f;justify-content:center;align-items:center;gap:12px;padding:12px 24px;font-size:.9rem;font-weight:600;animation:.2s ease-out fadeIn;display:flex}.fm-error-banner{color:#fca5a5;background:#ef444426;border-bottom:1px solid #ef44444d;align-items:center;gap:10px;padding:10px 24px;font-size:.85rem;display:flex}.fm-filter-bar{border-bottom:1px solid var(--border-color);background:#0f172a99;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;display:flex}.fm-search-box{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293bcc;align-items:center;gap:10px;width:320px;max-width:100%;padding:8px 14px;transition:border-color .2s;display:flex}.fm-search-box:focus-within{border-color:var(--accent-cyan);box-shadow:0 0 0 2px #38bdf833}.fm-search-box input{color:var(--text-main);background:0 0;border:none;outline:none;width:100%;font-size:.86rem}.fm-search-box input::placeholder{color:#64748b}.clear-search{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1.2rem;line-height:1}.clear-search:hover{color:var(--text-main)}.fm-type-filters{align-items:center;gap:8px;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;align-items:center;gap:4px;margin-right:4px;font-size:.78rem;font-weight:600;display:flex}.filter-chip{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#1e293b99;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s}.filter-chip:hover{color:var(--text-main);border-color:#fff3}.filter-chip.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#38bdf826}.fm-file-counter{color:var(--text-muted);margin-left:auto;font-size:.82rem}.fm-file-counter strong{color:var(--text-main)}.fm-table-container{-webkit-overflow-scrolling:touch;flex:1;padding:20px 28px;overflow:auto}.fm-table{border-collapse:separate;border-spacing:0;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#0f172abf;width:100%;overflow:hidden}.fm-table thead{z-index:10;background:#1e293bbf;position:sticky;top:0}.fm-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:14px 18px;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700}.fm-table th.text-center,.fm-table td.text-center{text-align:center}.fm-table-row{transition:background-color .15s}.fm-table-row:hover{background-color:#38bdf80d}.fm-table td{color:var(--text-main);vertical-align:middle;white-space:nowrap;border-bottom:1px solid #ffffff0d;padding:14px 18px;font-size:.86rem}.fm-table tr:last-child td{border-bottom:none}.col-name{min-width:220px}.file-name-wrapper{cursor:pointer;align-items:center;gap:12px;display:flex}.file-name-wrapper:hover .file-display-name{color:var(--accent-cyan)}.file-row-icon{color:#38bdf8;flex-shrink:0}.file-display-name{color:#f8fafc;word-break:break-word;font-weight:600;transition:color .15s}.col-type{width:90px}.col-size{color:#94a3b8;width:105px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.btn-action-view{color:#38bdf8;border-radius:var(--radius-sm);cursor:pointer;background:#38bdf81f;border:1px solid #38bdf859;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-action-view:hover{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px #0284c766}.btn-action-copy{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bcc;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-action-copy:hover{color:var(--text-main);border-color:#ffffff40}.btn-action-copy.copied{color:#4ade80;background:#22c55e26;border-color:#22c55e66}.iframe-btn-group{border-radius:var(--radius-sm);border:1px solid var(--border-color);align-items:center;display:inline-flex;overflow:hidden}.btn-action-iframe{border:none;border-right:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:#1e293bcc;align-items:center;gap:5px;padding:6px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-action-iframe:hover{color:var(--text-main);background:#334155cc}.btn-action-iframe.copied{color:#4ade80;background:#22c55e26}.btn-icon-custom{color:var(--text-muted);cursor:pointer;background:#1e293bcc;border:none;justify-content:center;align-items:center;padding:6px 8px;transition:all .15s;display:inline-flex}.btn-icon-custom:hover{color:var(--accent-cyan);background:#334155cc}.btn-delete{color:#64748b;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.btn-delete:hover{color:#f87171;background:#ef44441f}.delete-confirm-box{border-radius:var(--radius-sm);background:#ef44441f;border:1px solid #ef44444d;align-items:center;gap:6px;padding:3px 6px;display:inline-flex}.confirm-text{color:#fca5a5;font-size:.75rem;font-weight:600}.btn-confirm-yes{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:3px;padding:2px 6px;font-size:.72rem;font-weight:700}.btn-confirm-no{color:#cbd5e1;cursor:pointer;background:#ffffff1a;border:none;border-radius:3px;padding:2px 6px;font-size:.72rem}.empty-table-cell{text-align:center;padding:60px 20px!important}.empty-state{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state h3{color:#cbd5e1;margin:0;font-size:1.1rem;font-weight:600}.empty-state p{color:#64748b;max-width:400px;margin:0;font-size:.85rem}.fm-pagination-bar{border-top:1px solid var(--border-color);z-index:10;background:#0f172af2;justify-content:space-between;align-items:center;height:58px;padding:0 28px;display:flex}.pagination-info{color:var(--text-muted);font-size:.84rem}.pagination-info strong{color:var(--text-main)}.pagination-controls{align-items:center;gap:6px;display:flex}.pagination-btn{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bb3;align-items:center;gap:4px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.pagination-btn:hover:not(:disabled){background:#334155e6;border-color:#fff3}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-num{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bb3;justify-content:center;align-items:center;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.pagination-num:hover{color:var(--text-main)}.pagination-num.active{background:var(--accent-blue);border-color:var(--accent-cyan);color:#fff;box-shadow:0 0 10px #38bdf859}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content.embed-modal{border:1px solid var(--border-active);border-radius:var(--radius-lg);width:580px;max-width:95vw;box-shadow:var(--shadow-lg), 0 0 25px #38bdf826;background:#0f172a;animation:.2s ease-out scaleIn;overflow:hidden}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);background:#1e293b99;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:#fff;align-items:center;gap:8px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:600;display:flex}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-description{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}.file-target-tag{border-left:3px solid var(--accent-cyan);color:#94a3b8;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#1e293bb3;padding:8px 12px;font-size:.82rem}.file-target-tag strong{color:var(--text-main);word-break:break-all}.embed-controls-row{gap:14px;display:flex}.embed-input-group{align-items:center;gap:8px;display:flex}.embed-input-group label{color:var(--text-muted);font-size:.8rem;font-weight:600}.modal-input.small{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-main);background:#1e293bcc;width:90px;padding:6px 10px;font-size:.82rem}.code-box-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#090d16;overflow:hidden}.code-box-header{color:#94a3b8;border-bottom:1px solid var(--border-color);background:#1e293b80;justify-content:space-between;align-items:center;padding:8px 14px;font-size:.75rem;font-weight:600;display:flex}.btn-copy-sm{background:var(--accent-blue);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.btn-copy-sm:hover{filter:brightness(1.15)}.code-snippet-box{color:#38bdf8;resize:none;background:0 0;border:none;outline:none;width:100%;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.4}.embed-footer-links{justify-content:flex-end;gap:10px;display:flex}.btn-secondary-sm{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bb3;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.btn-secondary-sm:hover{color:var(--text-main);border-color:#fff3}.viewer-mode .full-width-layout{flex:1;width:100vw;display:flex;overflow:hidden}.viewer-mode .full-viewport{flex-direction:column;width:100%;height:100%;display:flex}.responsive-header{height:52px;padding:0 16px}.header-left{align-items:center;gap:14px;display:flex}.btn-back-to-files{border:1px solid var(--border-color);color:#38bdf8;border-radius:var(--radius-sm);cursor:pointer;background:#1e293bcc;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.btn-back-to-files:hover{background:var(--accent-blue);color:#fff;border-color:#0000}.header-brand-compact .brand-title{font-size:.95rem}.header-right{align-items:center;gap:10px;display:flex}.btn-header-embed{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:#1e293bb3;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.btn-header-embed:hover{color:var(--accent-cyan);border-color:#38bdf84d}.cad-toolbar-wrapper{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#38bdf840 transparent;z-index:10;background:#0f172aeb;width:100%;overflow:auto hidden}.cad-toolbar-wrapper .cad-toolbar{border-bottom:none;min-width:max-content;height:48px;padding:0 16px}.tool-btn-text{margin-left:4px;font-size:.76rem}.assembly-panel{flex-direction:column;width:340px;max-height:75vh;display:flex}.assembly-panel-body{max-height:calc(75vh - 60px);padding:12px;overflow-y:auto}.tree-list.full-scroll{max-height:380px;overflow-y:auto}.tree-item.hidden-part{opacity:.5}.part-eye-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:3px;display:flex}.cad-loading-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#38bdf8;z-index:30;background:#090d16d9;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:.95rem;font-weight:600;display:flex;position:absolute;inset:0}.embed-active .app-header,.embed-active .status-bar{display:none!important}@media (width<=900px){.file-manager-header{height:60px;padding:0 16px}.fm-title{font-size:1.05rem}.fm-subtitle{display:none}.fm-filter-bar{padding:12px 16px}.fm-search-box{width:100%}.fm-table-container{padding:12px 16px}.fm-pagination-bar{flex-wrap:wrap;gap:8px;height:auto;padding:10px 16px}.hide-mobile{display:none!important}}@media (width<=640px){.file-manager-header{padding:0 12px}.btn-upload-primary{padding:8px 14px;font-size:.82rem}.fm-brand-icon{width:34px;height:34px}.responsive-header{height:48px;padding:0 10px}.back-text{display:none}.btn-back-to-files{padding:6px 8px}.brand-title{font-size:.88rem}.file-pill{max-width:140px;padding:3px 8px}.pill-filename{max-width:80px;font-size:.75rem}.pill-size{display:none}.floating-panel{width:auto;max-width:none;top:50px;left:8px;right:8px}.cad-toolbar-wrapper .cad-toolbar{gap:6px;height:44px;padding:0 8px}.label-text{display:none}.mode-tab{padding:5px 8px;font-size:.75rem}.tool-btn{padding:4px 6px;font-size:.72rem}.slider-range{width:60px}.status-bar{height:28px;padding:0 10px;font-size:.68rem}}.token-status-pill{color:#4ade80;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;background:#22c55e1f;border:1px solid #22c55e4d;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;display:flex}.token-status-pill.clickable{cursor:pointer;transition:all .15s}.token-status-pill.clickable:hover{background:#22c55e38;border-color:#22c55e80}.auth-lock-container{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.auth-lock-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-lg);text-align:center;background:#0f172ad9;border:1px solid #ef44444d;flex-direction:column;align-items:center;width:520px;max-width:92vw;padding:36px 32px;animation:.25s ease-out scaleIn;display:flex;box-shadow:0 25px 50px -12px #0009,0 0 25px #ef44441a}.auth-lock-icon{background:#ef44441f;border:1px solid #ef44444d;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:flex}.auth-lock-card h2{color:#fff;margin-bottom:10px;font-family:Outfit,sans-serif;font-size:1.3rem;font-weight:700}.auth-lock-card p{color:var(--text-muted);margin-bottom:24px;font-size:.88rem;line-height:1.5}.auth-token-form{flex-direction:column;gap:12px;width:100%;display:flex}.token-input-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293bcc;align-items:center;gap:10px;padding:10px 14px;transition:border-color .2s;display:flex}.token-input-wrapper:focus-within{border-color:var(--accent-cyan);box-shadow:0 0 0 2px #38bdf833}.token-input-wrapper input{color:var(--text-main);background:0 0;border:none;outline:none;width:100%;font-size:.9rem}.auth-hint-box{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);text-align:left;background:#1e293b80;margin-top:20px;padding:10px 14px;font-size:.78rem;line-height:1.4}.auth-hint-box strong{color:var(--accent-cyan);margin-bottom:4px;display:block}.auth-hint-box code{color:#38bdf8;background:#0000004d;border-radius:3px;padding:2px 4px;font-family:ui-monospace,SFMono-Regular,monospace}
