﻿@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--bg:#090b10;--panel:rgba(17,20,29,.88);--line:#282d39;--text:#eef1f7;--muted:#858c9d;--cyan:#62e6d0;--violet:#9b87f5;--amber:#f4bd68;--red:#f17e89}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0,#15212b 0,transparent 33%),radial-gradient(circle at 100% 100%,#211936 0,transparent 36%),var(--bg);color:var(--text);font-family:'Noto Sans SC',sans-serif;overflow:hidden}.ambient{position:fixed;border-radius:50%;filter:blur(90px);opacity:.12;pointer-events:none}.a1{width:320px;height:320px;background:var(--cyan);top:-180px;left:20%}.a2{width:360px;height:360px;background:var(--violet);right:-180px;bottom:-160px}.topbar{height:72px;padding:0 24px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(9,11,16,.8);backdrop-filter:blur(20px);position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:16px;letter-spacing:.3px}.brand small{display:block;color:var(--muted);font:10px 'DM Mono';letter-spacing:1.4px;margin-top:3px}.logo{display:grid;place-items:center;width:38px;height:38px;border:1px solid #55aa9d;border-radius:11px;background:linear-gradient(145deg,#173d3a,#142227);color:var(--cyan);font:bold 12px 'DM Mono';box-shadow:inset 0 0 16px #3be0c31a}.isolation{margin-left:auto;margin-right:18px;padding:8px 13px;border:1px solid #265146;border-radius:10px;background:#10231f;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:8px;font-size:12px;color:#b9e8df}.isolation small{grid-column:2;color:#68988f}.pulse{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}button{font:inherit;color:inherit;cursor:pointer}.ghost{border:1px solid var(--line);border-radius:9px;background:#151822;padding:9px 14px}.ghost:hover{border-color:#50586b}.shell{height:calc(100vh - 72px);display:grid;grid-template-columns:230px minmax(430px,1fr) 340px;gap:12px;padding:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-height:0;box-shadow:0 20px 60px #0004}.left,.right{padding:14px}.section-title{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.section-title button{border:0;background:#202532;border-radius:7px;width:27px;height:27px}.thread{margin-top:14px;display:flex;gap:10px;padding:12px;border-radius:10px;background:#1b202b;border:1px solid #303746}.thread-icon{color:var(--cyan)}.thread b{font-size:13px}.thread small{display:block;color:var(--muted);font:10px 'DM Mono';margin-top:4px;max-width:130px;overflow:hidden;text-overflow:ellipsis}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.facts div{padding:11px;background:#11151d;border:1px solid #232936;border-radius:10px}.facts b{display:block;font:20px 'DM Mono';color:var(--cyan)}.facts span{font-size:10px;color:var(--muted)}.boundary{position:absolute;bottom:28px;width:198px;padding:12px;border-top:1px solid var(--line)}.boundary span,.boundary small{display:block;font-size:10px;color:var(--muted)}.boundary code{display:block;margin:7px 0;color:#8ebdb6;font:9px 'DM Mono';white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.left{position:relative}.chat{display:flex;flex-direction:column}.chat-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.chat-head h1{font-size:17px;margin:0}.chat-head p{font-size:11px;color:var(--muted);margin:5px 0 0}.status{font:10px 'DM Mono';border-radius:999px;padding:6px 9px;border:1px solid}.status.ok{color:var(--cyan);border-color:#315e56;background:#10251f}.status.warning{color:var(--amber);border-color:#5b4930;background:#251d11}.messages{flex:1;overflow:auto;padding:22px}.message{display:flex;gap:10px;margin-bottom:18px;max-width:86%}.message.user{margin-left:auto;flex-direction:row-reverse}.avatar{flex:0 0 29px;height:29px;border-radius:9px;display:grid;place-items:center;background:#1a3533;color:var(--cyan);font:11px 'DM Mono';border:1px solid #31524e}.user .avatar{background:#2b2444;color:#c6baff;border-color:#49406a}.bubble{padding:12px 14px;background:#161b24;border:1px solid #272e3b;border-radius:5px 13px 13px 13px}.user .bubble{background:#211d32;border-color:#38304e;border-radius:13px 5px 13px 13px}.bubble span{font:9px 'DM Mono';color:var(--cyan);letter-spacing:1px}.user .bubble span{color:#b8aafc}.bubble p{font-size:13px;line-height:1.7;margin:6px 0 0;white-space:pre-wrap}.delegation{margin:0 22px 8px;padding:10px 12px;border-left:2px solid var(--amber);background:#211b13;color:#d8bea0;font-size:11px}.composer{margin:0 18px 18px;border:1px solid #343b4a;border-radius:13px;background:#11151d;padding:11px;box-shadow:0 10px 40px #0005}.composer:focus-within{border-color:#547d77}.composer textarea{width:100%;max-height:130px;resize:none;border:0;outline:0;background:transparent;color:var(--text);font:13px inherit}.compose-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.compose-foot span{font-size:9px;color:#697183}.compose-foot button{border:0;border-radius:8px;background:var(--cyan);color:#09201c;padding:8px 13px;font-weight:700}.right{overflow:hidden}.tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#10141c;padding:3px;border-radius:9px}.tab{border:0;background:transparent;color:var(--muted);padding:8px;font-size:11px;border-radius:7px}.tab.active{background:#232936;color:var(--text)}.pane{height:calc(100% - 45px);overflow:auto;padding-top:13px}.role-card{padding:13px 12px;border:1px solid #262d39;background:#121720;border-radius:10px;margin-bottom:9px}.role-top{display:flex;align-items:center;gap:8px}.role-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan)}.role-card.off .role-dot{background:#596070}.role-card b{font-size:12px}.role-card em{margin-left:auto;color:var(--muted);font:9px 'DM Mono';font-style:normal}.role-card p{font:10px 'DM Mono';color:#8791a4;margin:8px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memory-item,.event-item{padding:10px;border-bottom:1px solid #232936}.memory-item header,.event-item header{display:flex;justify-content:space-between;gap:8px;font:9px 'DM Mono';color:var(--muted)}.memory-item p,.event-item p{font-size:11px;line-height:1.55;margin:6px 0;color:#ced3dd}.tag{color:var(--cyan)}.tag.candidate{color:var(--amber)}.event-item code{font:9px 'DM Mono';color:#8c95a8}.hidden{display:none!important}dialog{width:min(720px,90vw);max-height:85vh;border:1px solid #373f50;border-radius:15px;background:#11151d;color:var(--text);padding:0;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#05070ad9;backdrop-filter:blur(4px)}.dialog-card{padding:20px}.dialog-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}.dialog-head h2{margin:0;font-size:18px}.dialog-head p{color:var(--muted);font-size:11px;margin:5px 0}.dialog-head button{border:0;background:transparent;font-size:22px;color:var(--muted)}.setting-role{padding:14px 0;border-bottom:1px solid #242b37}.setting-role h3{font-size:13px;margin:0 0 10px}.setting-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px}.setting-grid label{font-size:9px;color:var(--muted)}.setting-grid input,.setting-grid select{display:block;width:100%;margin-top:5px;padding:8px;border-radius:7px;border:1px solid #303847;background:#0c1016;color:var(--text);font:10px 'DM Mono'}.save-role{margin-top:9px;border:1px solid #355f58;background:#152b27;color:var(--cyan);padding:6px 10px;border-radius:7px;font-size:10px}.dialog-foot{display:flex;justify-content:flex-end;padding-top:15px}@media(max-width:1000px){.shell{grid-template-columns:190px 1fr}.right{display:none}}@media(max-width:700px){body{overflow:auto}.topbar{padding:0 12px}.isolation{display:none}.shell{height:auto;grid-template-columns:1fr}.left{display:none}.chat{min-height:calc(100vh - 96px)}.message{max-width:96%}}


/* Persona layer v0.2 */
.topbar{gap:8px}.topbar .isolation{margin-right:10px}.accent{border-color:#3b7168;color:var(--cyan);background:#10241f}.persona-badge{display:inline-block;margin-top:7px;color:#9ccbc3;font:9px 'DM Mono';letter-spacing:.4px}.tabs.four{grid-template-columns:repeat(4,1fr)}.mode-picker{display:flex;align-items:center;gap:6px;font-size:9px;color:#8991a3}.mode-picker select{border:1px solid #303847;background:#151b24;color:#dce2eb;border-radius:7px;padding:5px 7px;font-size:10px}.persona-summary{padding:14px;border:1px solid #2d3845;border-radius:12px;background:linear-gradient(145deg,#121c20,#151722)}.persona-summary header{display:flex;gap:10px;align-items:center}.persona-summary header b{font-size:13px}.persona-summary header small{display:block;color:var(--cyan);font:9px 'DM Mono';margin-top:3px}.persona-orb{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid #3a7168;color:var(--cyan);background:#15302c;font:12px 'DM Mono'}.persona-summary>p{font-size:11px;line-height:1.65;color:#cbd2dd}.persona-property{margin-top:9px;padding-top:9px;border-top:1px solid #28303b;font-size:10px;line-height:1.55;color:#aeb6c4}.persona-property span{display:block;color:#6f788a;font:9px 'DM Mono';margin-bottom:3px}.primary-action{border:0;border-radius:8px;background:var(--cyan);color:#09201c;font-weight:700;padding:9px 13px}.primary-action.small{width:100%;margin-top:13px;font-size:10px}.mini-title{margin:16px 2px 8px;color:#777f91;font:9px 'DM Mono';text-transform:uppercase;letter-spacing:1px}.principle{padding:8px 10px;margin-bottom:6px;border:1px solid #252d39;border-radius:8px;background:#11161e;font-size:10px;color:#c2c9d5}.persona-dialog{width:min(1120px,94vw);max-width:none}.persona-layout{display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(340px,.9fr);gap:18px;padding-top:16px;max-height:70vh;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label{font-size:10px;color:#919aab}.form-grid input,.form-grid textarea{display:block;width:100%;margin-top:5px;padding:9px;border:1px solid #303847;border-radius:8px;background:#0c1016;color:var(--text);font:11px 'Noto Sans SC';line-height:1.5;resize:vertical}.persona-editor>.primary-action{margin-top:14px;width:100%}.persona-layout aside h3{font-size:11px;color:#aab2c0;margin:0 0 8px}.prompt-preview{white-space:pre-wrap;max-height:330px;overflow:auto;padding:12px;border:1px solid #2c3543;border-radius:10px;background:#0b0f15;color:#9fc9c2;font:9px/1.65 'DM Mono'}.version-list{max-height:220px;overflow:auto}.version-item{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #252c37}.version-item.active{background:#10231f}.version-item b{font-size:10px}.version-item small{display:block;color:#747d8e;font:8px 'DM Mono';margin-top:3px}.version-item em{font:9px 'DM Mono';font-style:normal;color:var(--cyan)}.version-item button{border:1px solid #394353;background:#191f29;color:#cbd1db;border-radius:6px;padding:5px 8px;font-size:9px}@media(max-width:900px){.persona-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.mode-picker+span{display:none}}

/* Provider adapter v0.3 */
.setting-role h3{display:flex;align-items:center;gap:7px}.role-info{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid #526071;border-radius:50%;color:#aab5c5;background:#171d26;font:700 9px 'DM Mono';cursor:help;outline:none}.role-info::after{content:attr(data-tooltip);position:absolute;z-index:20;left:50%;bottom:calc(100% + 9px);transform:translateX(-35%);width:260px;padding:9px 10px;border:1px solid #3a4656;border-radius:8px;background:#080c12;color:#d7dde7;font:10px/1.55 'Noto Sans SC';box-shadow:0 12px 30px #000b;opacity:0;visibility:hidden;pointer-events:none;transition:.15s}.role-info:hover::after,.role-info:focus::after{opacity:1;visibility:visible}.setting-grid{grid-template-columns:1fr 1.3fr 1fr 1fr}.setting-grid .api-key-field{grid-column:span 2}.role-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.role-actions .save-role{margin-top:0}.test-role{border:1px solid #685437;background:#261e12;color:var(--amber);padding:6px 12px;border-radius:7px;font-size:10px}.test-role:disabled{opacity:.55;cursor:wait}.test-result{font-size:10px;color:var(--muted)}.test-result.ok{color:var(--cyan)}.test-result.bad{color:var(--red)}

/* Tooltip clipping fix v0.3.1 */
.setting-role{position:relative;overflow:visible}
.setting-role:hover,.setting-role:focus-within{z-index:30}
.codex-login-panel{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:11px;padding:11px 12px;border:1px solid #5f4c2e;border-radius:9px;background:#241d12}.codex-login-panel>div{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;min-width:0}.codex-login-panel b{font-size:11px;color:var(--amber)}.codex-login-panel span{font-size:10px;color:var(--muted)}.codex-login-panel code{padding:4px 7px;border:1px solid #71603e;border-radius:6px;background:#0c1016;color:#fff1bd;font:700 12px 'DM Mono';letter-spacing:1px}.codex-login-panel a{font-size:10px;color:var(--cyan)}.codex-login-panel button{flex:0 0 auto;border:1px solid #786139;border-radius:7px;background:#322614;color:#ffd994;padding:7px 11px;font-size:10px}.codex-login-panel button:disabled{opacity:.58;cursor:wait}.codex-login-panel.online{border-color:#315e56;background:#10251f}.codex-login-panel.online b{color:var(--cyan)}.codex-login-panel.online button{border-color:#3c665f;background:#142d29;color:#aaf4e7}.codex-login-panel.failed{border-color:#714047;background:#29161a}.codex-login-panel.failed b{color:var(--red)}
.setting-role .role-info::after{left:calc(100% + 10px);top:50%;bottom:auto;transform:translateY(-50%);width:min(300px,calc(90vw - 240px));z-index:100}
@media(max-width:700px){.setting-role .role-info::after{left:-8px;top:calc(100% + 9px);bottom:auto;transform:none;width:min(280px,calc(100vw - 64px))}}

/* Settings dialog UX v0.3.2 */
#settingsDialog{overflow-x:hidden;overflow-y:auto}
#personaDialog{width:min(1120px,94vw);max-width:none;overflow-y:auto}
#personaDialog .persona-dialog{width:auto;max-width:none}
dialog{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#465366 #0b0f15}
dialog .persona-layout,dialog .version-list,dialog .prompt-preview{scrollbar-width:thin;scrollbar-color:#465366 #0b0f15}
dialog::-webkit-scrollbar,dialog *::-webkit-scrollbar{width:10px;height:10px}
dialog::-webkit-scrollbar-track,dialog *::-webkit-scrollbar-track{background:#0b0f15;border-radius:999px}
dialog::-webkit-scrollbar-thumb,dialog *::-webkit-scrollbar-thumb{min-height:48px;border:2px solid #0b0f15;border-radius:999px;background:linear-gradient(180deg,#526174,#354151)}
dialog::-webkit-scrollbar-thumb:hover,dialog *::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#637488,#465467)}
dialog::-webkit-scrollbar-corner,dialog *::-webkit-scrollbar-corner{background:transparent}

/* Viewport tooltip portal v0.4.1: avoids clipping inside panes and dialogs. */
.role-info::after{display:none!important}
.role-tooltip-portal{position:fixed;z-index:2147483647;width:min(300px,calc(100vw - 24px));padding:9px 10px;border:1px solid #3a4656;border-radius:8px;background:#080c12;color:#d7dde7;font:10px/1.55 'Noto Sans SC';box-shadow:0 12px 30px #000b;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,visibility .12s ease}
.role-tooltip-portal.visible{opacity:1;visibility:visible}

/* Role group chat v0.5 */
.message.role-message{max-width:82%;margin-left:18px}.role-message .bubble{min-width:220px;border-radius:13px;background:#121923}.role-message .bubble>span{display:flex;align-items:center;gap:8px;font-weight:700}.role-message .bubble>span em{font:8px 'DM Mono';font-style:normal;color:#758094}.role-message .bubble small{display:block;margin-top:8px;color:#626d7e;font:8px 'DM Mono';text-transform:uppercase;letter-spacing:.7px}.role-message.status-working .bubble{border-style:dashed}.role-message.status-completed .bubble,.role-message.status-reported .bubble{border-color:#315b53}.role-message.status-failed .bubble{border-color:#6b3841}.role-router .avatar{background:#26223b;color:#c4b6ff;border-color:#4c426b}.role-router .bubble>span{color:#b9aaf6}.role-coding_backend .avatar{background:#172d3f;color:#85caf4;border-color:#31546c}.role-coding_backend .bubble>span{color:#7fc6ef}.role-supervisor .avatar{background:#332818;color:#f1c375;border-color:#604b2d}.role-supervisor .bubble>span{color:#e5b86d}.role-memory_distiller .avatar{background:#2b2337;color:#d5a8ef;border-color:#554168}.role-memory_distiller .bubble>span{color:#cb9ee7}

/* Reliable task controls v1.7 */
.task-controls{margin:0 22px 8px;padding:9px 12px;border:1px solid #354454;border-radius:10px;background:#101822;display:flex;align-items:center;justify-content:space-between;gap:12px}.task-controls>span{font-size:10px;color:#aeb8c8}.task-controls>div{display:flex;gap:7px}.task-controls button{padding:6px 10px;font-size:10px}

.tabs.five{grid-template-columns:repeat(5,1fr)}


