:root{--deep-navy: #0a1628;--electric-cyan: #06b6d4;--teal: #14b8a6;--slate: #1e293b;--cool-gray: #64748b;--light-gray: #e2e8f0;--white: #ffffff;--bg: #f8fafc;--surface: var(--white);--border: var(--light-gray);--text: var(--deep-navy);--text-muted: var(--cool-gray);--accent: var(--electric-cyan);--accent-dark: #0891b2;--danger: #dc2626;--font-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius: 10px;--shadow: 0 1px 3px rgba(10, 22, 40, .08), 0 1px 2px rgba(10, 22, 40, .04)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);color:var(--text);margin:0}a{color:var(--accent-dark);text-decoration:none}button{font-family:var(--font-display);font-weight:700;cursor:pointer}input,textarea{font-family:var(--font-body)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;font-size:14px;transition:background .15s ease,border-color .15s ease}.btn-primary{background:var(--accent);color:var(--white)}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--cool-gray)}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--border)}.btn-danger:hover{border-color:var(--danger)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.field label{font-size:13px;font-weight:600;color:var(--slate)}.field input{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:15px;background:var(--surface);color:var(--text)}.field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.form-error{color:var(--danger);font-size:13px;margin:0 0 14px}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 16px}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:40px 36px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px}.auth-card h1{font-size:24px;font-weight:700;margin-bottom:6px}.auth-sub{color:var(--text-muted);font-size:14px;margin:0 0 26px}.auth-switch{margin-top:20px;font-size:14px;color:var(--text-muted)}.brand-mark{display:inline-flex;align-items:flex-end;gap:2px}.brand-mark span{width:7px;border-radius:1.5px;background:var(--deep-navy)}.brand-mark span:nth-child(1){height:8px}.brand-mark span:nth-child(2){height:13px}.brand-mark span:nth-child(3){height:18px;background:var(--accent)}.brand-name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--deep-navy);letter-spacing:-.01em}.shell{display:flex;height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--deep-navy);color:var(--white);display:flex;flex-direction:column;padding:22px 16px}.sidebar .brand-mark span{background:var(--white)}.sidebar .brand-mark span:nth-child(3){background:var(--accent)}.sidebar .brand-name{color:var(--white)}.sidebar-workspace{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--white);margin-top:10px}.credits-chip{display:inline-flex;align-items:center;gap:7px;margin:14px 0 26px;padding:6px 12px;border-radius:999px;background:#06b6d424;border:1px solid rgba(6,182,212,.4);color:var(--accent);font-size:13px;font-weight:600;width:fit-content}.credits-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--teal)}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:block;padding:10px 12px;border-radius:var(--radius);color:#cbd5e1;font-size:14px;font-weight:500}.sidebar nav a:hover{background:#ffffff0f;color:var(--white)}.sidebar nav a.active{background:#06b6d429;color:var(--accent)}.sidebar-footer{margin-top:auto}.sidebar-footer button{width:100%;background:none;border:1px solid rgba(255,255,255,.18);color:#cbd5e1;padding:9px 12px;border-radius:var(--radius);font-size:13px}.sidebar-footer button:hover{border-color:#fff6;color:var(--white)}.main{flex:1;min-width:0;overflow-y:auto;display:flex;flex-direction:column}.view{padding:32px 40px;max-width:1100px;width:100%}.view-header{margin-bottom:24px}.view-header h2{font-size:24px;font-weight:700}.view-header p{color:var(--text-muted);margin:6px 0 0;font-size:14px}.chat-layout{display:flex;flex:1;min-height:0}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column}.chat-messages{flex:1;overflow-y:auto;padding:28px 36px 12px;display:flex;flex-direction:column;gap:14px}.msg{max-width:720px}.msg-user{align-self:flex-end;background:var(--deep-navy);color:var(--white);border-radius:14px 14px 4px;padding:11px 16px;white-space:pre-wrap}.msg-assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:14px 14px 14px 4px;padding:11px 16px;white-space:pre-wrap;box-shadow:var(--shadow)}.msg-system{align-self:center;color:var(--text-muted);font-size:13px}.msg-error{align-self:flex-start;color:var(--danger);font-size:14px;border:1px solid #fecaca;background:#fef2f2;border-radius:var(--radius);padding:10px 14px}.tool-row{align-self:flex-start;max-width:720px;width:100%}.tool-row summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-muted);padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);list-style:none;-webkit-user-select:none;user-select:none}.tool-row summary::-webkit-details-marker{display:none}.tool-row summary .tool-name{font-family:var(--font-display);font-weight:500;color:var(--slate)}.tool-row .tool-detail{margin:6px 0 0 12px;font-size:13px;color:var(--text-muted);white-space:pre-wrap}.permission-card{align-self:flex-start;max-width:720px;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.permission-card .perm-title{font-family:var(--font-display);font-weight:700;font-size:14px;margin-bottom:6px}.permission-card .perm-desc{font-size:14px;color:var(--slate);margin-bottom:12px;white-space:pre-wrap}.permission-card .perm-actions{display:flex;gap:10px}.permission-card .perm-resolved{font-size:13px;color:var(--text-muted)}.status-line{display:flex;align-items:center;gap:10px;padding:8px 36px;font-size:13px;color:var(--text-muted);min-height:34px}.status-line .pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.chat-input{display:flex;gap:10px;padding:14px 36px 22px;border-top:1px solid var(--border);background:var(--surface)}.chat-input textarea{flex:1;resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:11px 14px;font-size:15px;line-height:1.4;max-height:160px;background:var(--bg)}.chat-input textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.artifact-panel{width:260px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);padding:20px 16px;overflow-y:auto}.artifact-panel h3{font-size:14px;font-weight:700;margin-bottom:12px}.artifact-panel .empty{font-size:13px;color:var(--text-muted)}.artifact-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;font-size:13px}.artifact-item .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--slate)}.artifact-item a{flex-shrink:0;font-weight:600}.dashboard-frame-wrap{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.dashboard-frame-wrap iframe{display:block;width:100%;height:560px;border:0;background:var(--white)}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.file-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;font-size:14px}.file-table th,.file-table td{text-align:left;padding:10px 16px;border-bottom:1px solid var(--border)}.file-table th{font-family:var(--font-display);font-weight:500;font-size:13px;color:var(--text-muted);background:var(--bg)}.file-table tr:last-child td{border-bottom:0}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:26px 28px;margin-bottom:24px;max-width:640px}.settings-card h3{font-size:17px;font-weight:700;margin-bottom:6px}.settings-card .card-sub{color:var(--text-muted);font-size:14px;margin:0 0 18px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--border);font-size:14px}.settings-row:first-of-type{border-top:0}.settings-row .label{color:var(--text-muted)}.settings-row .value{font-weight:600}.byok-form{display:flex;gap:10px;margin-top:14px}.byok-form input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px}.byok-form input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill-cyan{background:#06b6d41f;color:var(--accent-dark)}.pill-teal{background:#14b8a61f;color:#0f766e}.notice{font-size:13px;color:var(--text-muted);margin-top:12px}.loading{color:var(--text-muted);font-size:14px;padding:24px 0}.notice-card{background:#ecfeff;border:1px solid #a5f3fc;color:#0e7490;font-size:14px}.provider-row{padding:16px 0;border-top:1px solid #eef0f2}.provider-row:first-of-type{border-top:none}.provider-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.provider-name{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--navy, #0A1628)}.provider-hint{margin:4px 0 0;font-size:13px;color:#6b7280}.provider-status{flex-shrink:0}.provider-actions{display:flex;gap:8px;margin-top:12px}.btn-sm{padding:6px 12px;font-size:13px}
