:root{--bg-primary:#0a0a2e;--bg-secondary:#0d0d3a;--bg-tertiary:#12124a;--bg-card:#00143c99;--bg-card-hover:#001e50cc;--text-primary:#e0e8ff;--text-secondary:#89c;--text-muted:#557;--accent-cyan:#0af;--accent-blue:#06f;--accent-purple:#50f;--accent-green:#0f8;--accent-yellow:#fa0;--accent-red:#f35;--glow-cyan:#00aaff4d;--glow-blue:#06f3;--border-color:#0af3;--border-glow:#00aaff80;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--nav-height:70px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;overflow:hidden}body{overscroll-behavior:none;-webkit-overflow-scrolling:touch}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--accent-cyan);border-radius:3px}.app-layout{background:var(--bg-primary);height:100%;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);flex-direction:column;display:flex}.page-content{-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-height) + 16px);flex:1;overflow:hidden auto}.page{min-height:100%;padding:16px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;padding-top:8px;display:flex}.page-header h2{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));-webkit-text-fill-color:transparent;letter-spacing:1px;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700}.bottom-nav{height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-color);z-index:100;background:#0a0a2ef2;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--text-muted);flex-direction:column;align-items:center;gap:3px;padding:6px 10px;font-size:10px;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-item.active{color:var(--accent-cyan)}.nav-item.active:before{content:"";background:var(--accent-cyan);width:20px;height:2px;box-shadow:0 0 8px var(--glow-cyan);border-radius:2px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.nav-icon{width:22px;height:22px;transition:transform .2s}.nav-item.active .nav-icon{filter:drop-shadow(0 0 6px var(--glow-cyan));transform:scale(1.1)}.nav-label{letter-spacing:.5px;text-transform:uppercase;font-size:9px;font-weight:600}.login-screen{background:radial-gradient(ellipse at center, var(--bg-secondary) 0%, var(--bg-primary) 70%);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.login-container{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:360px;display:flex}.login-logo svg{width:100px;height:100px;filter:drop-shadow(0 0 20px var(--glow-cyan))}.login-title{text-align:center;background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue), var(--accent-purple));-webkit-text-fill-color:transparent;letter-spacing:2px;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:800;line-height:1.1}.login-subtitle{color:var(--text-secondary);letter-spacing:3px;text-transform:uppercase;margin-bottom:10px;font-size:13px}.login-form{flex-direction:column;gap:14px;width:100%;display:flex}.login-footer{color:var(--text-muted);align-items:center;gap:8px;margin-top:8px;font-size:11px;display:flex}.status-dot{background:var(--accent-green);width:6px;height:6px;box-shadow:0 0 6px var(--accent-green);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text-secondary);letter-spacing:1px;text-transform:uppercase;font-size:11px;font-weight:600}.jarvis-input,.jarvis-textarea,.jarvis-select{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:#001e5066;border-radius:12px;outline:none;padding:14px 16px;font-family:inherit;font-size:15px;transition:all .2s}.jarvis-input:focus,.jarvis-textarea:focus,.jarvis-select:focus{border-color:var(--accent-cyan);box-shadow:0 0 20px var(--glow-cyan);background:#00286480}.jarvis-input::placeholder,.jarvis-textarea::placeholder{color:var(--text-muted)}.jarvis-textarea{resize:none;line-height:1.4}.jarvis-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2300aaff' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.jarvis-btn{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));color:#fff;letter-spacing:2px;cursor:pointer;text-transform:uppercase;border:none;border-radius:12px;padding:14px 24px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s;position:relative;overflow:hidden}.jarvis-btn:before{content:"";background:linear-gradient(45deg,#0000,#ffffff0d,#0000);width:200%;height:200%;transition:all .5s;position:absolute;top:-50%;left:-50%;transform:rotate(45deg)}.jarvis-btn:active:before{left:100%}.jarvis-btn:active{transform:scale(.97)}.jarvis-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.jarvis-btn.small{border-radius:8px;padding:8px 16px;font-size:11px}.jarvis-btn.full{width:100%}.jarvis-btn.danger{background:linear-gradient(135deg,#f35,#c04)}.error-msg{color:var(--accent-red);text-align:center;background:#ff33551a;border:1px solid #ff33554d;border-radius:10px;padding:10px 14px;font-size:13px}.input-row{gap:8px;display:flex}.input-row .jarvis-input{flex:1}.input-hint{color:var(--text-muted);font-size:11px}.jarvis-btn.mono{font-family:SF Mono,monospace}.chat-page{flex-direction:column;height:100%;padding:0;display:flex}.chat-header{padding:12px 16px;padding-top:calc(12px + var(--safe-top));border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a2ee6;justify-content:space-between;align-items:center;display:flex}.chat-header-info{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.status-indicator{background:var(--accent-green);width:8px;height:8px;box-shadow:0 0 8px var(--accent-green);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}.chat-header-model{color:var(--text-muted);background:#00aaff1a;border:1px solid #0af3;border-radius:6px;padding:4px 10px;font-size:11px}.messages-container{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.welcome-message{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex}.welcome-icon svg{width:60px;height:60px;filter:drop-shadow(0 0 15px var(--glow-cyan))}.welcome-message h2{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.welcome-message p{color:var(--text-secondary);font-size:14px}.suggestions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.suggestion-chip{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#00aaff14;border-radius:20px;padding:8px 16px;font-family:inherit;font-size:12px;transition:all .2s}.suggestion-chip:active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#0af3}.message{gap:10px;max-width:85%;animation:.3s message-in;display:flex}@keyframes message-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse;align-self:flex-end}.message-avatar{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.message-avatar svg{width:28px;height:28px}.message-content{flex-direction:column;gap:4px;display:flex}.message-text{white-space:pre-wrap;word-break:break-word;border-radius:16px;padding:10px 14px;font-size:14px;line-height:1.5}.message.user .message-text{background:linear-gradient(135deg,#aaff0026,#00c8641a);border:1px solid #af03;border-bottom-right-radius:4px}.message.assistant .message-text{background:#00aaff14;border:1px solid #00aaff26;border-bottom-left-radius:4px}.message-time{color:var(--text-muted);padding:0 4px;font-size:10px}.message.user .message-time{text-align:right}.typing-indicator{background:#00aaff14;border:1px solid #00aaff26;border-radius:16px 16px 16px 4px;gap:4px;padding:12px 18px;display:flex}.typing-indicator span{background:var(--accent-cyan);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite typing}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.chat-input-bar{padding:10px 12px;padding-bottom:calc(10px + var(--safe-bottom));-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-color);background:#0a0a2ef2;align-items:center;gap:8px;display:flex}.chat-input{border:1px solid var(--border-color);color:var(--text-primary);background:#001e5066;border-radius:24px;outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:15px;transition:all .2s}.chat-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 15px var(--glow-cyan)}.chat-input::placeholder{color:var(--text-muted)}.voice-btn,.send-btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.voice-btn{border:1px solid var(--border-color);color:var(--text-secondary);background:#00aaff1a}.voice-btn.listening{border-color:var(--accent-red);color:var(--accent-red);background:#f353;animation:1s ease-in-out infinite pulse-red}@keyframes pulse-red{0%,to{box-shadow:0 0 #f356}50%{box-shadow:0 0 20px 5px #f353}}.voice-btn svg,.send-btn svg{width:20px;height:20px}.send-btn{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));color:#fff;box-shadow:0 0 15px var(--glow-cyan)}.send-btn:disabled{opacity:.3;box-shadow:none;cursor:not-allowed}.send-btn:active:not(:disabled){transform:scale(.9)}.status-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.status-card{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.status-card-icon{font-size:24px}.status-card-value{color:var(--accent-cyan);font-size:20px;font-weight:700}.status-card-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px}.status-gauges{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.gauge-container{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:14px 16px}.gauge-header{justify-content:space-between;margin-bottom:8px;display:flex}.gauge-label{color:var(--text-secondary);font-size:12px;font-weight:600}.gauge-value{color:var(--accent-cyan);font-size:12px;font-weight:700}.gauge-bar{background:#00aaff1a;border-radius:2px;height:4px;overflow:hidden}.gauge-fill{background:linear-gradient(90deg, var(--accent-cyan), var(--accent-blue));height:100%;box-shadow:0 0 8px var(--glow-cyan);border-radius:2px;transition:width 1s}.live-badge{color:var(--accent-green);letter-spacing:1px;background:#00ff881a;border:1px solid #00ff884d;border-radius:6px;padding:4px 10px;font-size:10px;font-weight:700;animation:2s ease-in-out infinite pulse-badge}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.5}}.status-animation{flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.radar{justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.radar-circle{border:1px solid var(--accent-cyan);opacity:0;border-radius:50%;animation:2.4s ease-out infinite radar-wave;position:absolute}.radar-dot{background:var(--accent-cyan);width:8px;height:8px;box-shadow:0 0 15px var(--glow-cyan);border-radius:50%}@keyframes radar-wave{0%{opacity:.5;width:20px;height:20px}to{opacity:0;width:80px;height:80px}}.status-text{color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;font-size:12px}.memory-form{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;animation:.3s slide-down;display:flex}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.memory-form-row{align-items:center;gap:10px;display:flex}.memory-form-row .jarvis-select{flex:1;padding:10px 12px;font-size:12px}.importance-group{gap:4px;display:flex}.imp-btn{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;font-size:12px;font-weight:700;transition:all .2s}.imp-btn.active{background:var(--accent-cyan);border-color:var(--accent-cyan);color:#fff;box-shadow:0 0 10px var(--glow-cyan)}.filter-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding-bottom:12px;display:flex;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--border-color);color:var(--text-muted);white-space:nowrap;cursor:pointer;background:#00aaff0d;border-radius:16px;padding:6px 14px;font-family:inherit;font-size:11px;font-weight:500;transition:all .2s}.filter-chip.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00aaff26}.memories-list{flex-direction:column;gap:10px;display:flex}.memory-card{background:var(--bg-card);border:1px solid var(--border-color);border-left:3px solid var(--accent-cyan);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:14px;transition:all .2s}.memory-card:active{transform:scale(.98)}.memory-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.memory-category{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 10px;font-size:10px;font-weight:600}.memory-importance{gap:1px;display:flex}.star{font-size:12px}.memory-content{color:var(--text-primary);margin-bottom:10px;font-size:13px;line-height:1.5}.memory-card-footer{justify-content:space-between;align-items:center;display:flex}.memory-date{color:var(--text-muted);font-size:11px}.memory-delete{color:var(--accent-red);cursor:pointer;background:#ff33551a;border:1px solid #f353;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11px;transition:all .2s}.memory-delete:active{background:#f353}.actions-grid{flex-direction:column;gap:8px;display:flex}.action-card{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.action-card-icon{flex-shrink:0;font-size:28px}.action-card-info{flex:1;min-width:0}.action-name{color:var(--accent-cyan);margin-bottom:2px;font-family:SF Mono,Fira Code,monospace;font-size:14px;font-weight:600}.action-desc{color:var(--text-secondary);margin-bottom:4px;font-size:12px;line-height:1.3}.action-category-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.run-btn{background:linear-gradient(135deg, var(--accent-green), #0c6);color:#fff;cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .2s;display:flex}.run-btn:disabled{opacity:.4;cursor:not-allowed}.run-btn:active:not(:disabled){transform:scale(.9)}.action-result{background:#00ff880d;border:1px solid #0f83;border-radius:12px;margin-bottom:12px;overflow:hidden}.action-result-header{color:var(--accent-green);background:#00ff881a;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;font-weight:600;display:flex}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.action-result-output{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:200px;padding:14px;font-family:SF Mono,monospace;font-size:12px;line-height:1.4;overflow-y:auto}.settings-section{margin-bottom:20px}.settings-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-left:4px;font-size:12px;font-weight:700}.settings-card{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;padding:14px 16px}.settings-row{border-bottom:1px solid #ffffff08;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-label{color:var(--text-secondary);font-size:14px}.settings-value{color:var(--text-primary);font-size:14px;font-weight:600}.settings-footer{text-align:center;color:var(--text-muted);padding:20px;font-size:11px;line-height:1.6}.loading-container{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:2px solid var(--border-color);border-top-color:var(--accent-cyan);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}.spinner.large{border-width:3px;width:32px;height:32px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.empty-state svg{opacity:.5;width:48px;height:48px}.empty-state p{color:var(--text-muted);font-size:14px}.error-state{text-align:center;color:var(--accent-red);flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.error-icon{font-size:40px}@supports (padding-top:env(safe-area-inset-top)){.app-layout{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}@media (width<=375px){.page{padding:12px}.login-title{font-size:28px}.status-grid{gap:8px}.status-card{padding:12px}.status-card-value{font-size:18px}}@media (width>=414px){.status-grid{grid-template-columns:1fr 1fr 1fr 1fr}}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px var(--glow-cyan)}50%{box-shadow:0 0 20px var(--glow-cyan), 0 0 40px var(--glow-cyan)}}.glow{animation:3s ease-in-out infinite glow-pulse}
