:root{--bg-dark: #0f1115;--bg-panel: rgba(30, 34, 40, .7);--text-main: #e0e0e0;--text-muted: #8a8f98;--accent-primary: #FFD700;--accent-secondary: #FFD700;--accent-tertiary: #FFAE00;--border-color: rgba(255, 215, 0, .2);--glass-bg: rgba(15, 17, 21, .7);--glass-border: rgba(212, 175, 55, .2);--font-mono: "SF Mono", "Fira Code", monospace;--font-sans: "Inter", system-ui, sans-serif}body,html,#root{margin:0;padding:0;height:100%;width:100%;background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow:hidden}.app-wrapper{position:relative;width:100vw;height:100vh;display:flex}.fullscreen-viz{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.overlay-ui{position:relative;z-index:10;pointer-events:none;width:100%;height:100%;display:flex;padding:2rem;box-sizing:border-box}.floating-sidebar{width:340px;height:100%;overflow-y:auto;pointer-events:auto;display:flex;flex-direction:column;gap:1.5rem;padding-right:15px}.floating-sidebar::-webkit-scrollbar{width:4px}.floating-sidebar::-webkit-scrollbar-track{background:transparent}.floating-sidebar::-webkit-scrollbar-thumb{background:#d4af3733;border-radius:10px}.panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;padding:1.5rem;box-shadow:0 8px 32px #0000004d}header.app-header{position:absolute;top:1.5rem;left:2rem;z-index:20;pointer-events:auto}header.app-header h1{margin:0;font-size:1.2rem;letter-spacing:3px;color:var(--accent-primary);text-shadow:0 2px 10px rgba(0,0,0,.5)}label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:.5rem}input[type=number],input[type=text]{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.1);color:var(--text-main);padding:.7rem;border-radius:6px;font-family:var(--font-mono);box-sizing:border-box}input:focus{border-color:var(--accent-primary);background:#00000080}.mode-axial{color:gold}.mode-tangential{color:gold;opacity:.8}.mode-oblique{color:#888}.main-tabs{display:flex;gap:4px;background:#0006;padding:4px;border-radius:8px;border:1px solid var(--glass-border);margin-bottom:1rem;pointer-events:auto}.tab-button{flex:1;padding:8px 4px;background:transparent;border:none;color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;border-radius:6px;transition:all .2s}.tab-button.active{background:var(--accent-primary);color:#000}.toggle-group{display:flex;background:#0000004d;padding:2px;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.toggle-group button{flex:1;padding:6px;border:none;background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:600;border-radius:4px;cursor:pointer;transition:all .2s}.toggle-group button.active{background:var(--accent-primary);color:#000}.info-card{padding:.8rem;background:#ffd7000d;border-left:3px solid var(--accent-primary);border-radius:0 6px 6px 0;margin-top:1rem}.info-header{font-size:.8rem;color:var(--accent-primary);font-weight:700;margin-bottom:2px}.info-sub{font-size:.7rem;color:#fff;opacity:.8;margin-bottom:4px}.info-body{font-size:.75rem;color:var(--text-muted);line-height:1.4}.advance-section{position:fixed;bottom:24px;right:24px;pointer-events:auto;display:flex;flex-direction:row-reverse;align-items:flex-end;gap:1.5rem;z-index:1001}.advance-toggle{width:auto;height:48px;display:flex;gap:12px;justify-content:center;align-items:center;padding:0 24px;background:var(--bg-panel);border:1px solid var(--glass-border);border-radius:12px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:var(--accent-primary);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:2px;cursor:pointer;box-shadow:0 8px 32px #0006;transition:all .3s cubic-bezier(.4,0,.2,1)}.advance-toggle:hover{transform:translateY(-2px);background:#2d323ce6;border-color:var(--accent-primary)}.advance-content{display:flex;flex-direction:row;align-items:flex-end;gap:1rem;margin:0;max-width:0;overflow:hidden;opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1)}.advance-section.open .advance-content{max-width:1200px;opacity:1;overflow:visible}.advance-content .panel{width:280px;margin:0;background:var(--bg-panel);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid var(--glass-border)}.advance-content .action-button{width:200px!important;height:48px}.action-button{padding:12px;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.75rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px}.action-button.primary{background:var(--accent-primary);color:#000;border:none}.action-button.primary:hover{background:#ffae00;transform:translateY(-1px)}.action-button.outline{background:#d4af370d;color:var(--accent-primary);border:1px solid var(--accent-primary)}.badge-error{font-size:.65rem;background:#ff44441a;color:#f44;border:1px solid #ff4444;padding:2px 6px;border-radius:4px}.sbir-container{padding:.8rem;background:#ff444408;border:1px solid rgba(255,68,68,.1);border-radius:8px;margin-top:1rem}.suggestions-list{position:absolute;top:100%;left:0;right:0;background:#1a1d23;border:1px solid #2d313a;border-radius:6px;max-height:180px;overflow-y:auto;padding:0;margin:4px 0 0;list-style:none;z-index:1000;box-shadow:0 10px 20px #0006}.suggestions-list li{padding:10px 12px;cursor:pointer;color:#ccc;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.05)}.suggestions-list li:hover{background:#d4af371a;color:var(--accent-primary)}.mobile-menu-btn,.mobile-backdrop{display:none}@media(max-width:1024px){.overlay-ui{padding:1rem}.floating-sidebar{width:280px}header.app-header{top:1rem;left:1rem}.advance-section{bottom:16px;right:16px;gap:1rem}.advance-content .panel{width:240px}.advance-content .action-button{width:160px!important}}@media(max-width:640px){.floating-sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;height:72vh;max-height:72vh;border-radius:20px 20px 0 0;transform:translateY(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);background:#0c0e12f7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--glass-border);border-left:none;border-right:none;padding:0 1rem 5rem;padding-top:0;z-index:300;gap:1rem;overflow-y:auto;overflow-x:hidden}.floating-sidebar.open{transform:translateY(0)}.sidebar-drag-handle{display:block;width:40px;height:4px;background:#ffffff2e;border-radius:2px;margin:14px auto 16px;flex-shrink:0;cursor:grab}.mobile-backdrop{display:block;position:fixed;inset:0;background:#00000080;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}.mobile-backdrop.visible{opacity:1;pointer-events:auto}.mobile-menu-btn{display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:400;width:56px;height:56px;border-radius:50%;background:var(--accent-primary);border:none;color:#000;font-size:1.3rem;line-height:1;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 24px #d4af378c;transition:transform .2s,box-shadow .2s}.mobile-menu-btn:active{transform:translate(-50%) scale(.93);box-shadow:0 2px 12px #d4af3766}header.app-header{top:.75rem;left:1rem}header.app-header h1{font-size:1rem;letter-spacing:2px}.overlay-ui{padding:0}.advance-section{bottom:92px;right:12px;flex-direction:column;align-items:flex-end;gap:.75rem}.advance-content{flex-direction:column!important;align-items:stretch!important;max-width:none!important;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s}.advance-section.open .advance-content{max-height:60vh;max-width:none!important;overflow-y:auto;overflow-x:hidden;opacity:1}.advance-content .panel{width:calc(100vw - 24px)!important;margin:0!important}.advance-content .action-button{width:100%!important}.advance-toggle{font-size:.7rem;padding:0 16px;letter-spacing:1px;height:44px}input[type=range]{height:28px}input[type=number],input[type=text]{padding:.85rem .7rem;font-size:1rem}.toggle-group button{padding:10px 6px;font-size:.85rem}.action-button{padding:14px;font-size:.8rem}}
