:root{color:#e5edf7;background:#0c111d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#0c111d;min-width:1024px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#4f7cff;border:0;border-radius:10px;padding:10px 14px;font-weight:700}button:disabled{cursor:not-allowed;opacity:.5}input,textarea{color:#e5edf7;background:#121a29;border:1px solid #2a3446;border-radius:10px;padding:10px 12px}textarea{resize:vertical;min-height:90px}.hub-shell,.logs-shell{min-height:100vh;padding:32px}.hub-card{background:#111827;border:1px solid #243044;border-radius:20px;max-width:560px;margin:10vh auto 0;padding:32px}.hub-actions{flex-direction:column;gap:10px;margin:24px 0;display:flex}.hub-btn{text-align:center;color:#e5edf7;background:#2a3446;border-radius:10px;padding:12px 16px;font-weight:700;text-decoration:none;display:block}.hub-btn.primary{background:#4f7cff}.hub-btn.warn{background:#7c4a1e}.hub-hints{padding-left:18px;font-size:13px;line-height:1.6}.hub-footer{text-align:center;margin-top:16px}.logs-header{flex-wrap:wrap;justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.logs-toolbar{flex-wrap:wrap;gap:8px;display:flex}.logs-meta{background:#111827;border:1px solid #243044;border-radius:12px;margin-bottom:20px;padding:16px;font-size:14px}.checks-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:24px;display:grid}.check-card{border:1px solid #243044;border-radius:12px;padding:14px}.check-card.ok{background:#0f2a1a;border-color:#1f6b3f}.check-card.fail{background:#2a1212;border-color:#8b2e2e}.check-card h3{margin:0 0 8px;font-size:15px}.hints-box{background:#1a2333;border-radius:12px;margin-bottom:24px;padding:16px}.log-table-wrap{background:#111827;border:1px solid #243044;border-radius:12px;padding:12px;overflow:auto}.log-table{border-collapse:collapse;width:100%;font-size:12px}.log-table th,.log-table td{text-align:left;border-bottom:1px solid #243044;padding:8px}.log-table .row-fail{background:#8b2e2e26}.centered,.auth-shell{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:#111827;border:1px solid #243044;border-radius:20px;width:420px;padding:32px;box-shadow:0 24px 80px #00000059}.form,.workspace-form,.chat-form{flex-direction:column;gap:12px;display:flex}.form label{flex-direction:column;gap:6px;display:flex}.app-shell{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{background:#0f1724;border-right:1px solid #243044;flex-direction:column;gap:24px;padding:24px;display:flex}.workspace-list{flex-direction:column;flex:1;gap:8px;display:flex;overflow:auto}.workspace-list button,.secondary-button,.link-button,.file{color:#cdd8ea;text-align:left;background:0 0;border:1px solid #2a3446}.workspace-list button.selected,.file.selected{color:#fff;background:#1c2d52;border-color:#4f7cff}.main-panel{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid #243044;justify-content:space-between;align-items:center;min-height:86px;padding:18px 24px;display:flex}.workspace-grid{grid-template-columns:250px minmax(480px,1fr) 360px;min-height:calc(100vh - 86px);display:grid}.file-panel,.editor-panel,.chat-panel{border-right:1px solid #243044;min-width:0;padding:18px}.chat-panel{border-right:0;flex-direction:column;gap:12px;display:flex}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.file{overflow-wrap:anywhere;flex-direction:column;gap:4px;width:100%;margin-bottom:8px;display:flex}.messages{flex-direction:column;flex:1;gap:12px;display:flex;overflow:auto}.message{border:1px solid #2a3446;border-radius:12px;padding:12px}.message.assistant{background:#13233d}.message.user{background:#171f2f}.eyebrow{color:#7ea0ff;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.muted,small{color:#8c9bb2}.error{color:#ff8f8f}.status{color:#9ab7ff;margin:0}h1,h2,p{margin-top:0}body.chat-body,html.chat-body{color:#e4e4e7;-webkit-font-smoothing:antialiased;background:#000;min-width:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}body.chat-body .chat-panel button,body.chat-body .chat-panel .chat-suggest,body.chat-body .chat-panel .chat-followup-btn,body.chat-body .chat-panel .chat-header-btn,body.chat-body .chat-panel .chat-send-btn{padding:unset;border-radius:unset;background:unset;color:unset;font-weight:500}body.chat-body .chat-panel input,body.chat-body .chat-panel textarea,body.chat-body .chat-panel select{border-radius:unset;background:unset;color:unset;padding:unset;min-height:unset;resize:none}.chat-panel{--princy-bg:#000;--princy-surface:#09090b;--princy-elevated:#18181b;--princy-border:#27272a;--princy-muted:#71717a;--princy-text:#e4e4e7;--princy-text-strong:#fafafa;--princy-accent:#fafafa;--princy-accent-fg:#09090b;--princy-glow:#22d3ee;--princy-glow-soft:#22d3ee1f;--princy-violet:#a78bfa;--princy-transition-fast:.12s ease;--princy-transition-panel:.18s ease-out;background:var(--princy-bg);flex-direction:column;height:100vh;display:flex}.chat-header{border-bottom:1px solid var(--princy-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 6px;display:flex}.chat-header-brand{align-items:center;gap:8px;min-width:0;display:flex}.chat-header-logo{background:var(--princy-elevated);width:22px;height:22px;color:var(--princy-text-strong);border:1px solid var(--princy-border);border-radius:6px;place-items:center;font-size:12px;display:grid}.chat-header-title{color:var(--princy-text-strong);letter-spacing:.01em;font-size:12px;font-weight:600}.chat-header-sub{color:var(--princy-muted);font-size:10px}.chat-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.chat-header-btn{border:1px solid var(--princy-border);height:26px;color:var(--princy-text);cursor:pointer;background:0 0;border-radius:6px;align-items:center;padding:0 10px;font-size:11px;text-decoration:none;display:inline-flex}.chat-header-btn:hover{background:var(--princy-elevated)}.chat-token-bar{border-bottom:1px solid var(--princy-border);gap:8px;padding:8px 14px;display:flex}.chat-token-bar input{border:1px solid var(--princy-border);background:var(--princy-elevated);height:28px;color:var(--princy-text);border-radius:4px;flex:1;padding:0 10px;font-size:11px}.chat-boot-error{color:#f48771;background:#5a1d1d;border:1px solid #be1100;border-radius:6px;margin:8px 12px;padding:10px 12px;font-size:12px;line-height:1.45}.chat-boot-error code{font-size:11px}.chat-scroll{flex:1;padding:12px 14px 8px;overflow:hidden auto}.chat-turn-list{flex-direction:column;gap:20px;display:flex}.chat-footer-user{color:var(--princy-muted);border-top:1px solid var(--princy-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:4px 14px 8px;font-size:10px;display:flex}.chat-turn{flex-direction:column;gap:6px;max-width:100%;animation:.3s both chat-in;display:flex}@keyframes chat-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-turn.user{align-items:flex-end}.chat-turn.assistant{align-items:stretch}.chat-turn-header{color:var(--princy-muted);letter-spacing:.02em;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.chat-turn.user .chat-turn-header{flex-direction:row-reverse}.chat-turn-avatar{background:var(--princy-elevated);width:18px;height:18px;color:var(--princy-text);border:1px solid var(--princy-border);border-radius:4px;flex-shrink:0;place-items:center;font-size:9px;display:grid}.chat-turn.assistant .chat-turn-avatar{color:var(--princy-text-strong)}.chat-turn-body{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.55}.chat-turn.user .chat-turn-body{background:var(--princy-elevated);border:1px solid var(--princy-border);max-width:92%;color:var(--princy-text);border-radius:10px;padding:8px 12px}.chat-turn.assistant .chat-turn-body{color:var(--princy-text);padding:0 2px}.chat-turn.assistant.streaming .chat-turn-body{min-height:1.2em}.cursor-blink:after{content:"▋";color:var(--princy-muted);margin-left:1px;animation:1s step-end infinite chat-blink}@keyframes chat-blink{50%{opacity:0}}.chat-stream-placeholder{min-width:2px;min-height:1em;display:inline-block}.chat-thinking{color:var(--princy-muted);background:#252526;border:1px solid #454545;border-radius:6px;margin:8px 0;padding:8px 10px;font-size:12px;display:none}.chat-thinking .step{line-height:1.6}.chat-thinking .step.active{color:var(--princy-text)}.chat-turn.system .chat-turn-body{color:#f48771;background:#5a1d1d;border:1px solid #be1100;border-radius:6px;padding:8px 12px}.chat-paragraph{white-space:pre-wrap;word-break:break-word;margin:0 0 8px}.chat-paragraph:last-child{margin-bottom:0}.code-block{border:1px solid var(--princy-border);background:var(--princy-surface);border-radius:8px;margin:10px 0;overflow:hidden}.chat-code-header{color:var(--princy-muted);border-bottom:1px solid var(--princy-border);background:var(--princy-elevated);padding:4px 10px;font-size:10px}.code-block pre{margin:0;padding:10px 12px;font-family:Consolas,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;overflow-x:auto}.code-block code{white-space:pre}.chat-meta{color:var(--princy-muted);margin:8px 0 0;font-size:11px}.chat-welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:min(320px,50vh);padding:24px 16px;display:flex}.chat-welcome-icon{background:var(--princy-elevated);width:44px;height:44px;color:var(--princy-text-strong);border:1px solid var(--princy-border);border-radius:12px;place-items:center;margin-bottom:4px;font-size:20px;display:grid}.chat-welcome h2{color:var(--princy-text-strong);margin:0;font-size:17px;font-weight:600}.chat-welcome p{max-width:280px;color:var(--princy-muted);margin:0;font-size:12px;line-height:1.55}.chat-suggestions{flex-wrap:wrap;justify-content:center;gap:8px;max-width:320px;margin-top:14px;display:flex}body.chat-body .chat-panel .chat-suggest{border:1px solid var(--princy-border);background:var(--princy-elevated);color:var(--princy-text);text-align:left;cursor:pointer;border-radius:10px;max-width:150px;padding:8px 12px;font-size:12px;line-height:1.35}body.chat-body .chat-panel .chat-suggest:hover{background:#27272a;border-color:#3f3f46}.chat-composer{background:var(--princy-bg);border-top:1px solid var(--princy-border);z-index:2;flex-shrink:0;padding:6px 12px 14px;position:relative}.chat-followups{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}body.chat-body .chat-panel .chat-followup-btn{cursor:pointer;color:#fff;background:#3a3d41;border:none;border-radius:4px;height:24px;padding:0 10px;font-size:11px}body.chat-body .chat-panel .chat-followup-btn:hover{box-shadow:0 0 0 1px var(--princy-glow-soft);background:#27272a;border-color:#3f3f46}.chat-input-container{border:1px solid var(--princy-border);background:var(--princy-elevated);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 1px #00000059}.chat-input-container:focus-within{border-color:#3f3f46;box-shadow:0 0 0 1px #3f3f46}.chat-input-container textarea{resize:none;color:#fafafa;background:0 0;border:none;outline:none;width:100%;min-height:52px;max-height:200px;padding:10px 12px 4px;font-family:inherit;font-size:13px;line-height:1.45;display:block}.chat-input-container textarea::placeholder{color:var(--princy-muted)}.chat-input-toolbar{justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:4px 8px 8px;display:flex}.chat-toolbar-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.chat-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chat-status{color:var(--princy-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.chat-backend-dot{background:#f48771;border-radius:50%;flex-shrink:0;width:6px;height:6px}.chat-backend-dot.online{background:#73c991}.chat-toolbar-right{align-items:center;gap:4px;display:flex}body.chat-body .chat-panel .chat-send-btn{cursor:pointer;background:var(--princy-accent);width:28px;height:28px;color:var(--princy-accent-fg);border:none;border-radius:8px;place-items:center;padding:0;font-size:14px;font-weight:600;display:grid}body.chat-body .chat-panel .chat-send-btn:hover:not(:disabled){background:#e4e4e7}body.chat-body .chat-panel .chat-send-btn:disabled{opacity:.45;cursor:not-allowed}.chat-send-spinner{border:2px solid #09090b40;border-top-color:var(--princy-accent-fg);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite chat-spin}@keyframes chat-spin{to{transform:rotate(360deg)}}body.chat-body .chat-panel .chat-model-select{border:1px solid var(--princy-border);background:var(--princy-surface);max-width:130px;height:24px;color:var(--princy-text);cursor:pointer;border-radius:4px;outline:none;padding:0 8px;font-size:11px}
