:root{--bg-primary:#0f0f1a;--bg-card:#1a1a2e;--bg-card-hover:#1e1e35;--bg-glass:#ffffff0d;--accent-rose:#e8427c;--accent-pink:#ff6b9d;--accent-red:#c0392b;--accent-coral:#ff7675;--text-primary:#f8f8ff;--text-secondary:#a0a0b8;--text-muted:#6060a0;--border:#e8427c33;--border-subtle:#ffffff14;--success:#00d68f;--warning:#ffb800;--error:#ff4d6d;--info:#64b5f6;--shadow-rose:0 0 20px #e8427c26;--radius:16px;--radius-sm:8px;--radius-lg:24px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);height:100%;color:var(--text-primary);overflow:hidden}.app{flex-direction:column;max-width:480px;height:100vh;margin:0 auto;display:flex;position:relative}.header{border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:100;background:linear-gradient(#0f0f1afa 0%,#0f0f1ae6 100%);align-items:center;gap:12px;padding:16px 20px 12px;display:flex;position:sticky;top:0}.header-logo{background:linear-gradient(135deg, var(--accent-rose), var(--accent-pink));width:36px;height:36px;box-shadow:var(--shadow-rose);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.header-title{color:var(--text-primary);font-size:17px;font-weight:700}.header-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.header-status{background:var(--success);width:8px;height:8px;box-shadow:0 0 6px var(--success);border-radius:50%;flex-shrink:0;margin-left:auto}.tabbar{border-top:1px solid var(--border-subtle);padding:8px 0 max(8px, env(safe-area-inset-bottom));z-index:100;background:#1a1a2ef2;display:flex;position:sticky;bottom:0}.tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px;font-family:inherit;transition:all .2s;display:flex}.tab:hover{color:var(--accent-pink)}.tab.active{color:var(--accent-rose)}.tab-icon{font-size:22px;transition:transform .2s}.tab.active .tab-icon{transform:scale(1.15)}.tab-label{font-size:10px;font-weight:500}.screen{scroll-behavior:smooth;flex:1;padding:16px 16px 8px;overflow-y:auto}.screen::-webkit-scrollbar{width:3px}.screen::-webkit-scrollbar-track{background:0 0}.screen::-webkit-scrollbar-thumb{background:var(--accent-rose);border-radius:2px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:12px;padding:16px;transition:all .2s}.card:hover{border-color:var(--border);background:var(--bg-card-hover)}.card.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-icon{background:linear-gradient(135deg, var(--accent-rose), var(--accent-pink));border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.card-title{font-size:15px;font-weight:600}.card-subtitle{color:var(--text-muted);margin-top:1px;font-size:12px}.pill{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.pill.ok{color:var(--success);background:#00d68f1f;border:1px solid #00d68f33}.pill.warn{color:var(--warning);background:#ffb8001f;border:1px solid #ffb80033}.pill.error{color:var(--error);background:#ff4d6d1f;border:1px solid #ff4d6d33}.pill.info{color:var(--info);background:#64b5f61f;border:1px solid #64b5f633}.pill.rose{color:var(--accent-pink);border:1px solid var(--border);background:#e8427c1f}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-cell{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);text-align:center;background:#ffffff0a;padding:12px}.stat-value{color:var(--accent-pink);font-size:22px;font-weight:700}.stat-label{color:var(--text-muted);margin-top:2px;font-size:11px}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:16px 0 8px;font-size:13px;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-rose), var(--accent-pink));color:#fff;box-shadow:0 4px 16px #e8427c4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #e8427c66}.btn-primary:active{transform:translateY(0)}.btn-ghost{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-ghost:hover{border-color:var(--accent-rose);color:var(--accent-pink)}.btn-danger{color:var(--error);background:#ff4d6d26;border:1px solid #ff4d6d40}.btn-danger:hover{background:#ff4d6d40}.btn-success{color:var(--success);background:#00d68f26;border:1px solid #00d68f40}.btn-success:hover{background:#00d68f40}.btn-full{justify-content:center;width:100%}.btn-sm{padding:8px 14px;font-size:13px}.chat-container{flex-direction:column;height:100%;display:flex}.chat-messages{flex:1;padding-bottom:8px;overflow-y:auto}.bubble{border-radius:16px;max-width:82%;margin-bottom:8px;padding:12px 14px;font-size:14px;line-height:1.5}.bubble.user{background:linear-gradient(135deg, var(--accent-rose), var(--accent-pink));color:#fff;border-bottom-right-radius:4px;margin-left:auto}.bubble.hermes{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);border-bottom-left-radius:4px}.bubble.thinking{opacity:.6;color:var(--text-muted);font-style:italic}.chat-input-row{gap:8px;padding:12px 0 0;display:flex}.chat-input{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s}.chat-input:focus{border-color:var(--accent-rose)}.chat-input::placeholder{color:var(--text-muted)}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:24px 20px max(24px, env(safe-area-inset-bottom));width:100%;max-width:480px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-handle{background:var(--border-subtle);border-radius:2px;width:40px;height:4px;margin:0 auto 20px}.modal-title{margin-bottom:8px;font-size:18px;font-weight:700}.modal-risk{border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.modal-risk.critical{color:var(--error);background:#ff4d6d1a;border:1px solid #ff4d6d4d}.modal-risk.high{color:var(--warning);background:#ffb80014;border:1px solid #ffb80033}.modal-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:pre-wrap;background:#ffffff0a;max-height:160px;margin-bottom:16px;padding:14px;font-size:13px;overflow-y:auto}.typed-input{border-radius:var(--radius-sm);color:var(--text-primary);letter-spacing:.04em;background:#ff4d6d0f;border:2px solid #ff4d6d4d;outline:none;width:100%;margin-bottom:12px;padding:14px;font-family:Inter,monospace;font-size:16px;font-weight:700}.typed-input:focus{border-color:var(--error)}.typed-input::placeholder{letter-spacing:0;font-weight:400}.modal-btns{gap:10px;display:flex}.modal-btns .btn{flex:1;justify-content:center}.loading-center{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;font-size:14px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent-rose);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-icon{margin-bottom:12px;font-size:40px}.empty-title{color:var(--text-secondary);margin-bottom:4px;font-size:16px;font-weight:600}.empty-text{font-size:13px}.flow-list{flex-direction:column;gap:6px;display:flex}.flow-step{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.flow-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.flow-dot.ok{background:var(--success)}.flow-dot.warn{background:var(--warning)}.flow-dot.partial{background:var(--info)}.flow-dot.pending{background:var(--text-muted)}.flow-dot.active{background:var(--accent-rose);box-shadow:0 0 6px var(--accent-rose)}.flow-dot.in_progress{background:var(--accent-pink);animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.flow-count{color:var(--text-muted);background:#ffffff0d;border-radius:12px;margin-left:auto;padding:2px 8px;font-size:11px}.action-list{flex-direction:column;gap:8px;display:flex}.action-item{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);cursor:pointer;background:#ffffff08;justify-content:space-between;align-items:center;padding:12px 14px;transition:all .2s;display:flex}.action-item:hover{border-color:var(--border);background:#e8427c0d;transform:translate(2px)}.action-item-left{align-items:center;gap:10px;display:flex}.action-emoji{font-size:20px}.action-name{font-size:14px;font-weight:500}.action-desc{color:var(--text-muted);margin-top:2px;font-size:11px}.action-risk{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.action-risk.HIGH{color:var(--warning);background:#ffb8001f}.action-risk.CRITICAL{color:var(--error);background:#ff4d6d1f}.audit-item{border-left:3px solid var(--border-subtle);margin-bottom:6px;padding:10px 12px;font-size:12px}.audit-item.HIGH{border-left-color:var(--warning)}.audit-item.CRITICAL{border-left-color:var(--error)}.audit-item.LOW{border-left-color:var(--success)}.audit-action{color:var(--text-primary);font-weight:600}.audit-meta{color:var(--text-muted);margin-top:2px}
