/* SFFLABS 3D Workbench source stylesheet.
 * Authoritative source: edit this file, never assets/3d/dist/*.css.
 */

@font-face {
    font-family: "JetBrains Mono";
    src: url("/assets/fonts/JetBrainsMono.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}
.sff-global-home > svg {
    width: 14px;
    height: 14px;
    display: block;
    flex: 0 0 14px;
}

html, body { margin: 0 !important; padding: 0 !important; overflow: hidden !important; width: 100% !important; height: 100% !important; }

:root { 
    --sff-blue: #007dec;
    --sff-sky: #38bdf8;
    --sff-emerald: #10b981;
    --sff-rose: #f43f5e;
    --sff-amber: #f59e0b;
    --sff-purple: #c084fc;
    
    --sff-bg-global: #050507;
    --sff-bg-panel: #121318;
    --sff-bg-control: #000000;
    --sff-bg-card: #0c0d12;
    --sff-bg-drawer: #050507;
    
    --sff-border: rgba(255, 255, 255, 0.10);
    --sff-border-subtle: rgba(255, 255, 255, 0.08);
    
    --sff-text-dark: #f4f4f5;
    --sff-text-muted: #a1a1aa;
    --sff-text-active: #38bdf8;
    
    --sff-shadow: 0 16px 32px rgba(0, 0, 0, 0.85);
    
    --sidebar-bg: var(--sff-bg-panel); 
    --sidebar-border: var(--sff-border); 
    --main-text: var(--sff-text-dark); 
    --sub-text: var(--sff-text-muted); 
    --input-bg: var(--sff-bg-control); 
    --form-bg: var(--sff-bg-card); 
    --border-focus: var(--sff-sky);
    --badge-bg: var(--sff-bg-panel);
    --badge-border: var(--sff-border);
    --badge-text: var(--sff-text-dark); 
    --tab-active-bg: var(--sff-sky);
    --tab-active-text: #000000;
}

[data-theme="light"] {
    --sff-bg-global: #f8fafc !important;
    --sff-bg-panel: #ffffff !important;
    --sff-bg-control: #f1f5f9 !important;
    --sff-bg-card: #ffffff !important;
    --sff-bg-drawer: #f8fafc !important;
    --sff-border: #cbd5e1 !important;
    --sff-border-subtle: #e2e8f0 !important;
    --sff-text-dark: #0f172a !important;
    --sff-text-muted: #64748b !important;
    --sff-text-active: #0284c7 !important;
    --sff-shadow: 0 4px 16px rgba(0, 0, 0, 0.06) !important;
    
    --sidebar-bg: #ffffff !important; 
    --sidebar-border: #cbd5e1 !important; 
    --main-text: #0f172a !important; 
    --sub-text: #64748b !important; 
    --input-bg: #f1f5f9 !important; 
    --form-bg: #ffffff !important; 
    --border-focus: #0284c7 !important;
    --badge-bg: #ffffff !important;
    --badge-border: #cbd5e1 !important;
    --badge-text: #0f172a !important; 
    --tab-active-bg: #0284c7 !important;
    --tab-active-text: #ffffff !important;
}

.font-mono { font-family: 'JetBrains Mono', SFMono-Regular, Consolas, monospace !important; }

.sff-3d-tool-container { display: flex; width: 100vw; height: 100vh; background-color: var(--sff-bg-global); position: relative; overflow: hidden; color: var(--sff-text-dark); transition: background 0.25s ease; box-sizing: border-box; }

/* WordPress admin-bar geometry is owned by the active Theme/site shell. */

/* Status Dot & Glow */
.sff-status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.pulse-sky { background: #38bdf8; box-shadow: 0 0 8px rgba(56, 189, 248, 0.6); animation: pulseGlow 2s infinite; }
@keyframes pulseGlow { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

/* SVG BUTTON ICON STYLES */
.sff-btn-svg {
    width: 11px !important;
    height: 11px !important;
    min-width: 11px !important;
    min-height: 11px !important;
    display: inline-block !important;
    vertical-align: middle !important;
    flex-shrink: 0 !important;
}

/* Refitted Sidebars Framework */
.sff-3d-sidebar { width: 320px; background-color: var(--sidebar-bg); padding: 14px; display: flex; flex-direction: column; z-index: 10; position: absolute; top: 0; bottom: 0; transition: all 0.25s ease; box-sizing: border-box; border-color: var(--sidebar-border); }
.sff-sidebar-left { left: 0; border-right: 1px solid var(--sidebar-border); }
.sff-sidebar-right { right: 0; border-left: 1px solid var(--sidebar-border); }

.sff-sidebar-scroll-wrapper { flex-grow: 1; overflow-y: auto; padding-right: 4px; margin-bottom: 12px; }
.sff-sidebar-scroll-wrapper::-webkit-scrollbar { width: 5px; }
.sff-sidebar-scroll-wrapper::-webkit-scrollbar-track { background: var(--input-bg); border-radius: 3px; }
.sff-sidebar-scroll-wrapper::-webkit-scrollbar-thumb { background: var(--sidebar-border); border-radius: 3px; }

.sff-header-top-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.sff-title { color: var(--main-text); font-size: 13.5px; margin: 0; font-weight: 800; letter-spacing: -0.01em; text-transform: uppercase; }

/* SVG Theme Toggle Button */
.sff-theme-toggle-btn {
    height: 28px !important;
    padding: 0 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-sizing: border-box !important;
    border-radius: 6px !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    background: var(--input-bg) !important;
    border: 1px solid var(--sidebar-border) !important;
    color: var(--main-text) !important;
    line-height: 1 !important;
}
.sff-theme-toggle-btn:hover { border-color: var(--sff-sky) !important; color: var(--sff-sky) !important; }
#themeToggleIcon { display: inline-flex !important; align-items: center !important; justify-content: center !important; height: 12px !important; width: 12px !important; }
.sff-sun-moon-svg { width: 12px !important; height: 12px !important; flex-shrink: 0 !important; display: block !important; }

/* Global Home Button Layout */
.sff-global-home { position: absolute; top: 14px; right: 334px; left: auto; z-index: 100; background-color: var(--sidebar-bg); border: 1px solid var(--sidebar-border); color: var(--sub-text); width: 34px; height: 34px; border-radius: 6px; display: flex; align-items: center; justify-content: center; text-decoration: none; font-size: 14px; box-shadow: var(--sff-shadow); transition: all 0.15s ease; }
.sff-global-home:hover { color: var(--sff-sky); border-color: var(--sff-sky); }

.sff-label { color: var(--sub-text); font-size: 9.5px; font-weight: 800; text-transform: uppercase; margin-bottom: 6px; display: block; letter-spacing: 0.06em; }
.sff-manifest-title { color: var(--main-text); font-size: 11px; margin: 12px 0 12px 0; text-transform: uppercase; letter-spacing: 0.08em; border-bottom: 1px dashed var(--sidebar-border); padding-bottom: 6px; font-weight: 800; }

.preset-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; margin-bottom: 12px; }

.sff-mode-toggle-row { margin-bottom: 12px; background: var(--input-bg); border: 1px solid var(--sidebar-border); padding: 2px; border-radius: 6px; display: flex; gap: 4px; }
.sff-mode-tab { flex: 1; border: none; padding: 5px 2px; border-radius: 4px; font-size: 10px; font-weight: 700; cursor: pointer; text-transform: uppercase; background: transparent; color: var(--sub-text); transition: all 0.15s ease; font-family: 'JetBrains Mono', monospace !important; }
.sff-mode-tab.active { background: var(--tab-active-bg); color: var(--tab-active-text); box-shadow: 0 0 10px rgba(56, 189, 248, 0.2); }

.sff-dropdown-wrapper { margin-bottom: 12px; width: 100%; }

/* Compact left-sidebar hardware drawers */
.sff-sidebar-section { width: 100%; margin: 0 0 12px; box-sizing: border-box; }
.sff-sidebar-section-title { color: var(--sub-text); font-size: 9px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 6px; }
.sff-search-drawer-stack { display: flex; flex-direction: column; gap: 5px; }
.sff-search-drawer { position: relative; width: 100%; border: 1px solid var(--sidebar-border); border-radius: 5px; background: var(--form-bg); box-sizing: border-box; }
.sff-search-drawer[open] { z-index: 40; border-color: var(--border-focus); }
.sff-search-drawer > summary { min-height: 31px; padding: 0 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; list-style: none; color: var(--main-text); font-size: 9.5px; font-weight: 800; letter-spacing: 0.035em; cursor: pointer; user-select: none; outline: none; box-sizing: border-box; }
.sff-search-drawer > summary::-webkit-details-marker { display: none; }
.sff-search-drawer > summary::marker { content: ''; }
.sff-search-drawer > summary::after { content: '+'; color: var(--sub-text); font-size: 13px; line-height: 1; font-weight: 600; }
.sff-search-drawer[open] > summary { color: var(--sff-text-active); border-bottom: 1px solid var(--sidebar-border); }
.sff-search-drawer[open] > summary::after { content: '−'; color: var(--sff-text-active); }
.sff-search-drawer > summary:focus-visible { box-shadow: inset 0 0 0 1px var(--border-focus); border-radius: 4px; }
.sff-search-drawer-body { padding: 8px; box-sizing: border-box; }
.sff-search-drawer .combobox-input { min-height: 28px; }
.sff-static-hardware-section { margin-top: 2px; }
.sff-sidebar-section-card { position: relative; width: 100%; padding: 9px; border: 1px solid var(--sidebar-border); border-radius: 6px; background: var(--form-bg); box-sizing: border-box; display: flex; flex-direction: column; gap: 7px; }
.sff-section-inline-label { color: var(--sub-text); font-size: 8px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; margin-top: 1px; }
.sff-control-status { min-height: 0; font-size: 8px; line-height: 1.25; color: var(--sub-text); }
.sff-control-status:empty { display: none; }
.sff-flex-input { flex: 1; min-width: 0; }
.sff-fan-size-control { flex: 1.3; height: 26px; }
.sff-fan-thickness-control { flex: 1; height: 26px; }
.sff-fan-placement-control { display: flex; flex-direction: column; gap: 4px; margin-top: 1px; }
.sff-fan-placement-control .sff-dropdown { width: 100%; height: 26px; }

.sff-custom-form, .full-width-block { background-color: var(--form-bg); border: 1px solid var(--sidebar-border); border-radius: 6px; padding: 10px; width: 100%; box-sizing: border-box; margin-bottom: 12px; }
.sff-form-action-row { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.sff-input-row { display: flex; gap: 6px; width: 100%; }
.sff-interactive-options-row { display: flex; width: 100%; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 2px; height: 26px; }

.sff-feet-container { display: flex; align-items: center; gap: 6px; height: 26px; }
.sff-feet-text { color: var(--sub-text); font-size: 10px; font-weight: 700; text-transform: uppercase; }

.sff-custom-form-fluid { background-color: var(--form-bg); border: 1px solid var(--sidebar-border); border-radius: 6px; padding: 10px; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; margin-bottom: 12px; }
.sff-inner-action-row { display: flex; align-items: center; gap: 6px; width: 100%; box-sizing: border-box; height: 26px; }

.sff-input-group { display: flex; align-items: center; background-color: var(--input-bg); border: 1px solid var(--sidebar-border); border-radius: 4px; overflow: hidden; flex: 1; height: 26px; box-sizing: border-box; }
.sff-input-prefix { background-color: var(--sidebar-border); color: var(--sub-text); font-size: 9px; font-weight: 800; display: flex; align-items: center; justify-content: center; width: 20px; height: 100%; user-select: none; box-sizing: border-box; }
.sff-input { width: 100% !important; border: none !important; background-color: var(--input-bg) !important; color: var(--main-text) !important; padding: 0 4px !important; margin-bottom: 0px !important; height: 100% !important; font-size: 10.5px !important; outline: none !important; box-sizing: border-box; font-weight: 600 !important; }

.sff-select-input-container { position: relative; display: block; width: 100%; box-sizing: border-box; height: 26px; }
.sff-select-input-container::after { content: "▼"; font-size: 7px; color: var(--sub-text); right: 8px; top: 50%; transform: translateY(-50%); position: absolute; pointer-events: none; z-index: 5; }
.sff-dropdown { width: 100% !important; padding: 0 20px 0 8px !important; background-color: var(--input-bg) !important; color: var(--main-text) !important; border: 1px solid var(--sidebar-border) !important; border-radius: 4px !important; font-size: 10.5px !important; font-weight: 600 !important; height: 100% !important; outline: none !important; cursor: pointer !important; appearance: none !important; box-sizing: border-box; display: block; }
.sff-dropdown:focus { border-color: var(--sff-sky) !important; }

.sff-searchable-combobox { position: relative; width: 100%; box-sizing: border-box; }
.combobox-input { width: 100% !important; border: 1px solid var(--sidebar-border) !important; background-color: var(--input-bg) !important; color: var(--main-text) !important; padding: 0 8px !important; height: 26px !important; font-size: 10.5px !important; font-weight: 600 !important; outline: none !important; box-sizing: border-box; border-radius: 4px; }
.combobox-input:focus { border-color: var(--border-focus) !important; }
.combobox-dropdown { position: absolute; top: 100%; left: 0; width: 100%; max-height: 200px; overflow-y: auto; background: var(--input-bg); border: 1px solid var(--sidebar-border); border-radius: 4px; margin-top: 4px; box-shadow: var(--sff-shadow); z-index: 2000; display: none; padding: 4px 0; box-sizing: border-box; }
.combobox-dropdown.active { display: block; }
.combobox-item { padding: 6px 10px; font-size: 10.5px; font-weight: 600; color: var(--main-text); cursor: pointer; transition: all 0.1s ease; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.combobox-item:hover { background: var(--sidebar-border); color: var(--sff-sky); }

.sff-custom-submit-btn { background-color: var(--input-bg); color: var(--main-text); border: 1px solid var(--sidebar-border); border-radius: 4px; font-size: 9.5px; font-weight: 800; cursor: pointer; text-transform: uppercase; text-align: center; display: inline-flex; align-items: center; justify-content: center; transition: all 0.15s; box-sizing: border-box; height: 26px !important; line-height: 26px; }
.sff-custom-submit-btn:hover { background-color: var(--sidebar-border); border-color: var(--border-focus); color: var(--sff-sky); }

.inline-submit-btn { padding: 0 10px !important; flex-shrink: 0; font-size: 9.5px; height: 26px !important; }
.submit-case-btn { padding: 0 12px !important; height: 26px !important; }
.select-micro-node { font-size: 9.5px !important; padding: 0 16px 0 6px !important; height: 26px !important; }
.fan-select-node { font-size: 9.5px !important; height: 26px !important; }
.fan-submit-btn { border: 1px solid var(--sidebar-border); height: 26px !important; padding: 0 10px !important; }

.sff-switch { position: relative; display: inline-block; width: 28px; height: 16px; flex-shrink: 0; margin-top: 3px; }
.sff-switch input { opacity: 0; width: 0; height: 0; }
.sff-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--input-bg); border: 1px solid var(--sidebar-border); transition: .2s; border-radius: 16px; }
.sff-slider:before { position: absolute; content: ""; height: 10px; width: 10px; left: 2px; top: 2px; background-color: var(--sub-text); transition: .2s; border-radius: 50%; }
input:checked + .sff-slider { background-color: #007dec; border-color: #007dec; }
input:checked + .sff-slider:before { transform: translateX(12px); background-color: #fff; }

.sff-btn { display: block; width: 100%; padding: 5px 2px; border: none; border-radius: 4px; color: #fff; font-weight: 700; font-size: 9.5px; cursor: pointer; text-align: center; text-transform: uppercase; transition: all 0.15s ease; }
.sff-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
.btn-blue { background-color: #007dec; } .btn-green { background-color: #10b981; } .btn-purple { background-color: #c084fc; color: #000; } .btn-orange { background-color: #ea580c; } .btn-cyan { background-color: #0891b2; } .btn-teal { background-color: #0d9488; } .btn-pink { background-color: #f43f5e; } .btn-yellow { background-color: #f59e0b; color: #000; }
.btn-danger { background-color: #f43f5e; color: #ffffff; text-align: center; font-weight: 800; font-size: 10.5px; padding: 6px; margin-top: auto; border: none; border-radius: 4px; cursor: pointer; text-transform: uppercase; }

.camera-focus-card { padding: 10px; margin-bottom: 12px; }
.camera-sliders-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cam-slider-group { display: flex; align-items: center; gap: 6px; }
.cam-axis-label { font-size: 9.5px; font-weight: 700; color: var(--sub-text); }
.sff-camera-range { width: 100%; flex: 1; height: 4px; -webkit-appearance: none; background: var(--input-bg); outline: none; border-radius: 2px; }
.sff-camera-range::-webkit-slider-thumb { -webkit-appearance: none; width: 10px; height: 10px; background: var(--sff-sky); border-radius: 50%; cursor: pointer; }

#active-cases-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
#empty-notice { list-style: none !important; font-size: 9.5px !important; color: var(--sub-text) !important; text-align: center !important; font-style: italic !important; padding: 12px 0 !important; }

#sff-canvas-viewport { width: calc(100vw - 640px); height: 100%; position: absolute; top: 0; left: 320px; right: 320px; overflow: hidden; }
.sff-3d-badge { position: absolute; left: 0; top: 0; background-color: var(--badge-bg); border: 1px solid var(--badge-border); color: var(--badge-text); padding: 2px 6px; border-radius: 4px; font-size: 9.5px; font-weight: 800; pointer-events: none; white-space: nowrap; z-index: 2; transform: translate3d(0, 0, 0) translate(-50%, -100%); will-change: transform; transition: background-color 0.2s, color 0.2s, border-color 0.2s; font-family: 'JetBrains Mono', monospace; }
.manifest-item { background: var(--form-bg); padding: 8px 10px; border-radius: 6px; margin-bottom: 8px; border: 1px solid var(--sidebar-border); color: var(--main-text); box-sizing: border-box; }
.manifest-item input { width: 65px; }

.sff-near-fit-panel { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--sidebar-border); }
.sff-near-fit-panel[hidden] { display: none !important; }
.sff-near-fit-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.sff-near-fit-title { display: block; color: var(--main-text); font-size: 10px; font-weight: 800; letter-spacing: 0.07em; }
.sff-near-fit-subtitle { display: block; color: var(--sub-text); font-size: 8px; margin-top: 2px; text-transform: uppercase; }
.sff-near-fit-refresh, .sff-near-fit-load, .sff-near-fit-tab {
    border: 1px solid var(--sidebar-border);
    background: var(--input-bg);
    color: var(--sub-text);
    border-radius: 3px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    cursor: pointer;
    box-sizing: border-box;
}
.sff-near-fit-refresh { height: 21px; padding: 0 6px; font-size: 8px; }
.sff-near-fit-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; margin-bottom: 6px; }
.sff-near-fit-tab { height: 23px; padding: 0 2px; font-size: 8px; }
.sff-near-fit-tab.active { color: #000; background: var(--sff-sky); border-color: var(--sff-sky); }
.sff-near-fit-status { min-height: 14px; color: var(--sub-text); font-size: 8px; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 5px; }
.sff-near-fit-status[data-state="working"] { color: var(--sff-amber); }
.sff-near-fit-status[data-state="ready"] { color: var(--sff-emerald); }
.sff-near-fit-status[data-state="stale"] { color: var(--sff-sky); }
.sff-near-fit-status[data-state="error"] { color: var(--sff-rose); }
.sff-near-fit-results { display: flex; flex-direction: column; gap: 5px; }
.sff-near-fit-empty { padding: 8px; border: 1px dashed var(--sidebar-border); border-radius: 4px; color: var(--sub-text); font-size: 8.5px; line-height: 1.45; text-align: center; }
.sff-near-fit-reference { color: var(--sub-text); font-size: 8px; line-height: 1.35; margin-bottom: 1px; overflow-wrap: anywhere; }
.sff-near-fit-result { background: var(--form-bg); border: 1px solid var(--sidebar-border); border-radius: 4px; padding: 6px 7px; }
.sff-near-fit-result-top { display: flex; align-items: flex-start; gap: 6px; justify-content: space-between; }
.sff-near-fit-result-label { color: var(--main-text); font-size: 8.5px; font-weight: 700; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.sff-near-fit-load { flex: 0 0 auto; height: 20px; padding: 0 6px; font-size: 8px; color: var(--sff-emerald); border-color: rgba(16,185,129,0.35); }
.sff-near-fit-load:hover, .sff-near-fit-refresh:hover { border-color: var(--sff-sky); color: var(--sff-sky); }
.sff-near-fit-metrics { color: var(--sff-emerald); font-size: 8px; margin-top: 4px; }
.sff-near-fit-topology { color: var(--sub-text); font-size: 7.5px; margin-top: 3px; text-transform: uppercase; letter-spacing: 0.025em; }
.sff-micro-btn { background: var(--input-bg); border: 1px solid var(--sidebar-border); color: var(--main-text); font-size: 10px; font-weight: bold; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 3px; user-select: none; }
.sff-micro-btn:hover { background: var(--sidebar-border); color: var(--sff-sky); }
#sff-canvas-viewport canvas { display: block !important; width: 100% !important; height: 100% !important; }

.sff-workbench-footnote { position: absolute; bottom: 12px; z-index: 100; font-size: 10px; font-weight: 700; color: var(--sub-text); text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; background-color: var(--badge-bg); border: 1px solid var(--badge-border); padding: 4px 8px; border-radius: 4px; box-shadow: var(--sff-shadow); transition: all 0.15s ease; user-select: none; }
.sff-footnote-left { left: 12px; }
.sff-footnote-right { right: 12px; color: var(--sub-text); cursor: default; }
.sff-workbench-footnote:hover { color: var(--main-text); border-color: var(--sff-sky); transform: translateY(-1px); }
.sff-footnote-right:hover { border-color: var(--badge-border); transform: none; color: var(--sub-text); }

/* MOBILE DRAWER (<= 1024px) */
.sff-mobile-toolbar { display: none !important; }
.sff-mobile-drawer-nav { display: none !important; }

.sff-drawer-backdrop {
    display: none;
    position: fixed !important;
    top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important;
    background: rgba(5, 5, 7, 0.88) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    z-index: 999998 !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease !important;
}
.sff-drawer-backdrop.active {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

@media screen and (max-width: 1024px) {
    .sff-mobile-toolbar { 
        display: block !important; 
        position: fixed !important;
        bottom: 20px !important;
        right: 20px !important;
        width: auto !important;
        z-index: 999990 !important;
        margin-bottom: 0 !important;
    }

    .sff-mobile-filter-btn {
        width: auto !important; 
        display: inline-flex !important; 
        align-items: center !important; 
        justify-content: center !important;
        gap: 8px !important;
        background: var(--sidebar-bg) !important; 
        border: 1px solid rgba(56, 189, 248, 0.4) !important; 
        color: var(--main-text) !important;
        padding: 8px 14px !important; 
        border-radius: 8px !important; 
        font-size: 11px !important; 
        font-weight: 800 !important;
        letter-spacing: 0.05em !important; 
        cursor: pointer !important; 
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 12px rgba(56, 189, 248, 0.25) !important;
        transition: all 0.2s ease !important;
        font-family: 'JetBrains Mono', monospace !important;
    }

    .sff-mobile-filter-btn:hover {
        border-color: var(--sff-sky) !important;
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.7), 0 0 18px rgba(56, 189, 248, 0.4) !important;
    }

    #sff-canvas-viewport {
        width: 100vw !important;
        height: 100vh !important;
        position: absolute !important;
        top: 0 !important; left: 0 !important; right: 0 !important;
    }

    .sff-global-home { right: 16px !important; top: 16px !important; }

    .sff-mobile-drawer-nav {
        display: none;
        position: fixed !important;
        top: 0 !important; left: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 52px !important;
        z-index: 1000000 !important;
        background: var(--sff-bg-drawer) !important;
        padding: 10px 14px 0 14px !important;
        box-sizing: border-box !important;
        border-right: 1px solid var(--sidebar-border) !important;
        transform: translateX(-100%) !important;
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    }

    .sff-mobile-drawer-nav.active {
        display: block !important;
        transform: translateX(0) !important;
    }

    .sff-drawer-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid var(--sidebar-border) !important;
        margin-bottom: 0 !important;
    }
    .sff-drawer-title-group { display: flex !important; align-items: center !important; gap: 6px !important; flex-shrink: 0 !important; }
    .sff-drawer-label { font-size: 10.5px !important; font-weight: 800 !important; color: var(--main-text) !important; letter-spacing: 0.05em !important; }
    .sff-drawer-close-btn {
        background: var(--input-bg) !important;
        border: 1px solid var(--sidebar-border) !important;
        color: var(--sub-text) !important;
        width: 26px !important;
        height: 26px !important;
        border-radius: 6px !important;
        font-size: 16px !important;
        cursor: pointer !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
    }
    .sff-drawer-close-btn:hover { color: #ef4444 !important; border-color: #ef4444 !important; }

    .sff-drawer-tabs-row { 
        display: flex !important; 
        gap: 4px !important; 
        background: var(--input-bg) !important; 
        padding: 2px !important; 
        border-radius: 6px !important; 
        border: 1px solid var(--sidebar-border) !important; 
        flex: 1 !important;
        margin: 0 4px !important;
    }
    .sff-drawer-tab { 
        flex: 1 !important; 
        border: 1px solid transparent !important; 
        padding: 4px 2px !important; 
        border-radius: 4px !important; 
        font-size: 9px !important; 
        font-weight: 800 !important; 
        cursor: pointer !important; 
        text-transform: uppercase !important; 
        background: transparent !important; 
        color: var(--sub-text) !important; 
        font-family: 'JetBrains Mono', monospace !important; 
        white-space: nowrap !important;
        transition: all 0.15s ease !important;
    }
    .sff-drawer-tab.active { 
        background: #4c1d95 !important; 
        color: #f3e8ff !important; 
        border-color: #8b5cf6 !important;
        box-shadow: 0 0 10px rgba(139, 92, 246, 0.35) !important;
    }

    .sff-3d-sidebar {
        position: fixed !important;
        top: 52px !important; left: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: calc(100dvh - 52px) !important;
        max-height: calc(100dvh - 52px) !important;
        z-index: 999999 !important;
        background: var(--sff-bg-drawer) !important;
        border: none !important;
        border-right: 1px solid var(--sidebar-border) !important;
        border-radius: 0 !important;
        box-shadow: 20px 0 50px rgba(0, 0, 0, 0.8) !important;
        overflow: hidden !important;
        transform: translateX(-100%) !important;
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
        padding: 12px 14px 14px 14px !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .sff-3d-sidebar.mobile-drawer-open {
        transform: translateX(0) !important;
    }

    .sff-sidebar-scroll-wrapper {
        flex: 1 1 auto !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        padding-bottom: 24px !important;
    }

    #clear-workspace-btn {
        flex-shrink: 0 !important;
        margin-top: 8px !important;
        margin-bottom: 12px !important;
    }

    .preset-grid { grid-template-columns: repeat(2, 1fr); }
}

@media screen and (max-width: 768px) {
    .sff-workbench-footnote { bottom: 8px; font-size: 9px; padding: 3px 6px; }
    .sff-footnote-left { left: 8px; display: none; }
    .sff-footnote-right { right: 8px; display: none; }
}
