/* CodexActorHub v1.0 light collaborative workspace */
:root{color-scheme:light;--bg:#eaf4f7;--panel:rgba(255,255,255,.78);--line:#d8e2e7;--text:#25313b;--muted:#82909c;--cyan:#2caa96;--violet:#7e72ce;--amber:#bf8740;--red:#cd5f6d}
body{background:radial-gradient(circle at 10% 0,rgba(164,224,227,.5),transparent 34%),radial-gradient(circle at 92% 100%,rgba(210,202,244,.48),transparent 38%),linear-gradient(135deg,#edf8fa 0%,#f6fbfb 48%,#eef0fb 100%);color:var(--text)}
.ambient{filter:blur(110px);opacity:.18}.a1{background:#70d4cb}.a2{background:#9c8be2}
.topbar{height:76px;padding:0 28px;border-bottom:1px solid rgba(184,199,206,.7);background:rgba(250,253,253,.76);box-shadow:0 8px 30px rgba(71,102,112,.06)}
.brand strong{font-size:17px;color:#24303a}.brand small{color:#7f929c}.logo{width:40px;height:40px;border-color:#8cc8be;background:linear-gradient(145deg,#ecfffb,#d9f0ed);color:#288c7d;box-shadow:inset 0 0 18px rgba(65,184,163,.11),0 5px 14px rgba(63,129,119,.1)}
.isolation{border-color:#c5e3dc;background:#effaf7;color:#397a6d}.isolation small{color:#7da098}.pulse{background:#47bda9;box-shadow:0 0 10px rgba(71,189,169,.45)}
button{color:#2d3943}.ghost{border-color:#d7e0e5;background:rgba(255,255,255,.8);box-shadow:0 3px 10px rgba(54,78,89,.04)}.ghost:hover{border-color:#9ec6c0;background:#f7fffd}.accent{border-color:#a9d6ce;color:#2d8576;background:#edf9f6}
.shell{--left-width:240px;--right-width:350px;height:calc(100vh - 76px);grid-template-columns:var(--left-width) minmax(470px,1fr) var(--right-width);gap:14px;padding:14px;transition:grid-template-columns .18s ease}.shell.resizing{transition:none;user-select:none;cursor:col-resize}.panel{background:var(--panel);border:1px solid rgba(204,216,222,.88);border-radius:22px;box-shadow:0 18px 48px rgba(60,88,99,.09);backdrop-filter:blur(20px)}
.left,.right{padding:17px;position:relative;overflow:visible;transition:padding .18s ease}.sidebar-body{height:100%;min-width:0;overflow:hidden}.section-title{color:#8997a2}.section-title button{background:#edf2f5;color:#64727d}.thread-list{max-height:calc(100vh - 430px);overflow-y:auto;overflow-x:hidden;margin-top:10px;padding-right:3px;scrollbar-width:thin;scrollbar-color:#c6d1d6 transparent}.thread{position:relative;width:100%;margin-top:7px;background:rgba(239,244,246,.88);border:1px solid #dce5e9;border-radius:14px;overflow:hidden}.thread.active{border-color:#8ccdc1;background:#edf9f6;box-shadow:0 8px 18px rgba(53,135,121,.09)}.thread-open{display:flex;align-items:flex-start;gap:8px;width:100%;min-width:0;padding:11px 32px 11px 12px;border:0;background:transparent;text-align:left}.thread-open>span:last-child{min-width:0;flex:1}.thread-icon{color:#3eae9c}.thread b{display:block;color:#2d3740;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread small{display:block;color:#84919b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread time{display:block;margin-top:5px;color:#a0abb2;font:8px 'DM Mono'}.thread-delete{position:absolute;top:8px;right:7px;width:24px;height:24px;padding:0;border:0;border-radius:8px;background:transparent;color:#a7b2b9;font-size:16px;opacity:0;transition:opacity .15s,background .15s,color .15s}.thread:hover .thread-delete,.thread:focus-within .thread-delete{opacity:1}.thread-delete:hover{background:#fff0f1;color:#bd5d68}.thread-empty{padding:18px 6px;color:#98a4ac;font-size:11px;text-align:center}.sidebar-resizer{position:absolute;top:18px;bottom:18px;z-index:8;width:12px;cursor:col-resize;touch-action:none;outline:none}.left .sidebar-resizer{right:-7px}.right .sidebar-resizer{left:-7px}.sidebar-resizer span{position:absolute;top:14%;bottom:14%;left:5px;width:2px;border-radius:99px;background:#c6d4d9;opacity:.45;transition:opacity .15s,background .15s,transform .15s}.sidebar-resizer:hover span,.sidebar-resizer:focus-visible span,.shell.resizing .sidebar-resizer span{background:#57ad9f;opacity:1;transform:scaleX(1.5)}.shell.left-collapsed{--left-width:18px}.shell.right-collapsed{--right-width:18px}.shell.left-collapsed .left,.shell.right-collapsed .right{padding:0;border-radius:10px}.shell.left-collapsed .left .sidebar-body,.shell.right-collapsed .right .sidebar-body{display:none}.chat-meta{display:flex;gap:10px;align-items:center;margin-top:5px}.chat-meta #activeThreadLabel{max-width:280px;color:#98a4ac;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:9px 'DM Mono'}
.facts div{background:rgba(248,251,252,.9);border-color:#e1e8eb;border-radius:14px}.facts b{color:#319b8b}.facts span,.boundary span,.boundary small{color:#8b98a1}.boundary{border-color:#dce5e9}.boundary code{color:#5f948b}
.chat{overflow:hidden}.chat-head{padding:20px 24px;border-color:#dce5e9;background:rgba(255,255,255,.38)}.chat-head h1{font-size:18px;color:#28343e}.chat-head p{color:#7f8e99}.persona-badge{color:#478e84}.status{box-shadow:none}.status.ok{color:#288676;border-color:#b3ddd4;background:#edf9f6}.status.warning{color:#a87535;border-color:#e8d4b5;background:#fff9ee}
.messages{padding:26px 28px;background:linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)),radial-gradient(circle at 10% 25%,rgba(182,227,225,.18),transparent 28%);scrollbar-width:thin;scrollbar-color:#c0cdd3 transparent}.messages::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-thumb{background:#c0cdd3;border-radius:99px}
.message{max-width:84%;gap:11px;margin-bottom:20px}.avatar{background:#e5f5f1;color:#268a79;border-color:#bcded7;box-shadow:0 4px 12px rgba(54,105,97,.08)}.user .avatar{background:#eeeaf9;color:#7464b4;border-color:#d8d0ef}
.bubble{padding:13px 16px;background:rgba(255,255,255,.92);border-color:#dbe4e8;border-radius:6px 17px 17px 17px;box-shadow:0 9px 24px rgba(65,91,103,.08)}.user .bubble{background:#edf1f3;border-color:#dfe6e9;border-radius:17px 6px 17px 17px}.bubble span{color:#2e9687}.user .bubble span{color:#766ab5}.bubble p{color:#2b3640;font-size:13px}
.delegation{margin:0 24px 10px;border-left:3px solid #d6a45e;background:#fff8ec;color:#94703e;border-radius:0 10px 10px 0}.composer{margin:0 20px 20px;padding:12px 14px;border-color:#cbdde0;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 14px 34px rgba(57,89,100,.11)}.composer:focus-within{border-color:#7fc2b6;box-shadow:0 14px 38px rgba(55,147,132,.13)}.composer textarea{color:#28343e}.composer textarea::placeholder{color:#a2adb5}.compose-foot span{color:#9aa5ae}.compose-foot button,.primary-action{background:#78dac9;color:#164b43;box-shadow:0 5px 14px rgba(63,170,151,.18)}
.mention-bar{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:0 0 9px;margin-bottom:9px;border-bottom:1px solid #e4ebee;scrollbar-width:none}.mention-bar::-webkit-scrollbar{display:none}.mention-bar>span{flex:0 0 auto;color:#95a1aa;font-size:9px;letter-spacing:.5px}.mention-bar button{flex:0 0 auto;border:1px solid #d7e5e4;background:#f3faf8;color:#4c8078;border-radius:999px;padding:4px 8px;font:9px 'DM Mono'}.mention-bar button:hover{border-color:#8bcabd;background:#eaf8f5;color:#247d6f}
.mode-picker{color:#8d99a3}.mode-picker select{border-color:#d8e2e6;background:#f8fbfc;color:#48545e}.tabs{background:#f3f6f8;border:1px solid #e4eaed;border-radius:12px}.tab{color:#87949e}.tab.active{background:#fff;color:#35414b;box-shadow:0 4px 12px rgba(64,87,98,.08)}.pane{scrollbar-width:thin;scrollbar-color:#c6d1d6 transparent}
.role-card{background:rgba(249,251,252,.9);border-color:#dce5e9;border-radius:14px}.role-dot{background:#53bea9}.role-card.off .role-dot{background:#aeb9c0}.role-card b{color:#34404a}.role-card em,.role-card p{color:#85919c}.role-info{border-color:#aebbc4;color:#74818d;background:#f3f6f8}
.persona-summary{border-color:#d7e5e4;background:linear-gradient(145deg,#f3fbf9,#f8f7fc);border-radius:16px}.persona-summary header b{color:#33414a}.persona-summary header small{color:#3d9c8d}.persona-orb{border-color:#acd8cf;color:#2d8c7d;background:#e9f7f4}.persona-summary>p{color:#56636d}.persona-property{border-color:#dee7e9;color:#64717c}.persona-property span,.mini-title{color:#929da6}.principle{border-color:#dee6e9;background:#f8fafb;color:#55626d;border-radius:10px}
.memory-item,.event-item{border-color:#e1e8eb}.memory-item p,.event-item p{color:#56636d}.event-item code{color:#88949e}.tag{color:#2e9687}.tag.candidate{color:#b17d3f}
dialog{border-color:#d4e0e5;border-radius:22px;background:#fbfdfd;color:#2b3640;box-shadow:0 30px 90px rgba(43,62,72,.24)}dialog::backdrop{background:rgba(113,130,139,.34);backdrop-filter:blur(7px)}.dialog-card{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,250,251,.96))}.dialog-head{border-color:#dfe7ea}.dialog-head h2{color:#2d3943}.dialog-head p,.dialog-head button{color:#85929c}.dialog-head button{width:36px;height:36px;border:1px solid #dbe4e8;border-radius:10px;background:#f8fbfc}.dialog-head button:focus-visible{outline:2px solid #8bcabd;outline-offset:2px}.setting-role{border-color:#e1e8eb}.setting-role h3{color:#36424b}.setting-grid label,.form-grid label{color:#7e8b95}.setting-grid input,.setting-grid select,.form-grid input,.form-grid textarea{border-color:#d8e2e6;background:#fff;color:#34404a}.save-role{border-color:#b4dcd4;background:#edf9f6;color:#2a8476}.test-role{border-color:#e3cfad;background:#fff8ec;color:#a67436}.test-result{color:#88949d}.test-result.ok{color:#2a927f}.test-result.bad{color:#c45866}
.prompt-preview{border-color:#d9e3e7;background:#f3f7f8;color:#467b74}.version-item{border-color:#e2e9ec}.version-item.active{background:#edf8f5}.version-item b{color:#46525c}.version-item small{color:#909ba4}.version-item button{border-color:#d3dee3;background:#fff;color:#596670}.version-item em{color:#2b8f80}
dialog,dialog .persona-layout,dialog .version-list,dialog .prompt-preview{scrollbar-color:#bdcbd1 #eef3f5}dialog::-webkit-scrollbar-track,dialog *::-webkit-scrollbar-track{background:#eef3f5}dialog::-webkit-scrollbar-thumb,dialog *::-webkit-scrollbar-thumb{border-color:#eef3f5;background:linear-gradient(180deg,#c9d5da,#aebdc4)}
.role-tooltip-portal{border-color:#d4dee3;background:#fff;color:#40505a;box-shadow:0 14px 34px rgba(44,64,73,.22)}
.message.role-message{margin-left:20px}.role-message .bubble{background:rgba(255,255,255,.88);border-color:#dbe4e8}.role-message .bubble>span em{color:#8c98a2}.role-message .bubble small{color:#9aa4ad}.role-message.status-working .bubble{background:#fbfdfd}.role-message.status-completed .bubble,.role-message.status-reported .bubble{border-color:#a9d6cd}.role-message.status-failed .bubble{border-color:#e2afb5}
.role-router .avatar{background:#eeeaf9;color:#7667b7;border-color:#d8d0ef}.role-router .bubble>span{color:#796bb6}.role-coding_backend .avatar{background:#e8f4fb;color:#4388ae;border-color:#c8e0ed}.role-coding_backend .bubble>span{color:#3f88ad}.role-supervisor .avatar{background:#fff4e4;color:#b07832;border-color:#ead2ac}.role-supervisor .bubble>span{color:#a66f2f}.role-memory_distiller .avatar{background:#f5ebf8;color:#9562ad;border-color:#e2cde9}.role-memory_distiller .bubble>span{color:#8e5da5}
.role-message.status-streaming .bubble{border-color:#8bcabd;background:linear-gradient(135deg,#fff,#f0faf8)}.role-message.status-streaming .bubble small{color:#2e9687}.role-message.status-streaming .bubble small::after{content:"…";display:inline-block;width:1.2em;animation:streamDots 1.1s steps(4,end) infinite;overflow:hidden;vertical-align:bottom}@keyframes streamDots{from{width:0}to{width:1.2em}}
.role-trace{width:min(82%,760px);margin:-7px 0 18px 43px;padding-left:12px;border-left:2px solid #d8e5e8;color:#61717c}.role-trace summary{display:flex;align-items:center;gap:8px;min-height:30px;padding:2px 7px 2px 0;cursor:pointer;list-style:none;border-radius:8px;user-select:none}.role-trace summary::-webkit-details-marker{display:none}.role-trace summary:hover{background:rgba(235,245,245,.72)}.trace-dot{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #cbdcdf;border-radius:7px;background:#edf7f5;color:#388f81;font:700 8px 'DM Mono';flex:0 0 auto}.role-trace summary b{font-size:11px;color:#61717c}.trace-summary-status,.trace-count{font:9px 'DM Mono';color:#94a1aa}.trace-count{margin-left:auto}.trace-chevron{font-size:15px;color:#94a1aa;transition:transform .18s ease}.role-trace[open] .trace-chevron{transform:rotate(180deg)}.role-trace-body{margin:5px 0 0 10px;padding-left:17px;border-left:1px solid #dce7ea}.trace-event{padding:9px 0 11px}.trace-event+.trace-event{border-top:1px dashed #dfe7ea}.trace-event header{display:flex;align-items:center;gap:8px;margin-bottom:5px}.trace-event header span{font-size:10px;font-weight:700;color:#586a75}.trace-event header em{font:8px 'DM Mono';color:#9aa5ad}.trace-event p{margin:0;color:#42525d;font-size:12px;line-height:1.65;white-space:pre-wrap}.trace-event small{display:block;margin-top:4px;font:8px 'DM Mono';letter-spacing:.5px;text-transform:uppercase;color:#a2acb4}.trace-event.status-streaming small{color:#2e9687}.trace-event.status-failed p{color:#a85864}.trace-router .trace-dot{background:#eeeaf9;color:#7667b7;border-color:#d8d0ef}.trace-coding_backend .trace-dot{background:#e8f4fb;color:#4388ae;border-color:#c8e0ed}.trace-supervisor .trace-dot{background:#fff4e4;color:#b07832;border-color:#ead2ac}.trace-memory_distiller .trace-dot{background:#f5ebf8;color:#9562ad;border-color:#e2cde9}
.trace-artifact{display:inline-flex;margin-top:8px;padding:5px 9px;border:1px solid #b9ddd6;border-radius:8px;background:#eef9f6;color:#2a8577;font-size:10px;text-decoration:none}.trace-artifact:hover{background:#e2f5f0;border-color:#86c7bb}
.memory-graph-shell{position:relative;height:calc(100vh - 185px);min-height:440px;overflow:hidden;border:1px solid #dce8e9;border-radius:16px;background:radial-gradient(circle at 50% 42%,#f8fffd 0,#edf7f6 42%,#e8f1f4 100%)}#memoryGraph{display:block;width:100%;height:64%;min-height:300px;cursor:grab;touch-action:none}#memoryGraph:active{cursor:grabbing}.memory-graph-hint{position:absolute;top:10px;left:50%;transform:translateX(-50%);padding:5px 9px;border:1px solid #d7e5e5;border-radius:99px;background:rgba(255,255,255,.78);color:#83949b;font:8px 'DM Mono';white-space:nowrap;pointer-events:none}.memory-selection{position:absolute;left:10px;right:10px;bottom:10px;max-height:32%;overflow:auto;padding:12px;border:1px solid #d7e4e6;border-radius:13px;background:rgba(255,255,255,.9);box-shadow:0 8px 25px rgba(60,92,100,.1)}.memory-selection header{display:flex;align-items:center;gap:8px}.memory-selection header b{font-size:11px;color:#304049}.memory-selection p{margin:8px 0;color:#51616a;font-size:11px;line-height:1.6;white-space:pre-wrap}.memory-selection small{display:block;color:#8b989f;font:8px 'DM Mono'}.memory-selection .danger-action{margin-top:10px}.danger-action{border:1px solid #e1aeb4;background:#fff1f2;color:#aa4d5a;border-radius:9px;padding:8px 12px;font-weight:700}.danger-action:hover{background:#ffe5e8;border-color:#cf7c86}.delete-thread-dialog{width:min(620px,calc(100vw - 32px))}.related-memory-list{max-height:52vh;overflow:auto;padding:2px 4px 8px}.related-memory-note,.no-related-memory{margin:0 0 10px;color:#788891;font-size:11px}.related-memory{margin:8px 0;border:1px solid #dce5e8;border-radius:11px;background:#f8fbfc}.related-memory summary{display:flex;align-items:center;gap:10px;padding:11px;cursor:pointer;list-style:none}.related-memory summary::-webkit-details-marker{display:none}.related-memory summary label{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.related-memory summary input{accent-color:#4daf9e}.related-memory summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;color:#40515a}.related-memory summary em{color:#94a0a7;font:8px 'DM Mono'}.related-memory>p{margin:0;padding:0 12px 8px;color:#52626b;font-size:11px;line-height:1.65;white-space:pre-wrap}.related-memory>small{display:block;padding:0 12px 11px;color:#94a0a7;font:8px 'DM Mono'}
@media(max-width:1100px){.shell{grid-template-columns:var(--left-width) minmax(440px,1fr) var(--right-width)}}@media(max-width:1000px){.shell{grid-template-columns:var(--left-width) 1fr}.right{display:none}}@media(max-width:700px){.topbar{height:68px}.shell{height:auto}.brand small{display:none}.ghost{padding:8px 10px}.composer{margin:0 10px 10px}.messages{padding:18px 12px}.chat-head{padding:16px}.mention-bar button{padding:5px 8px}}

/* Compact, explicit conversation deletion UX. */
#deleteThreadDialog{width:min(540px,calc(100vw - 32px));max-height:min(78vh,680px);overflow:hidden;border:1px solid rgba(196,211,216,.95);border-radius:20px;background:#fbfdfd;box-shadow:0 28px 80px rgba(41,62,70,.28)}
#deleteThreadDialog::backdrop{background:rgba(36,53,60,.32);backdrop-filter:blur(7px)}
#deleteThreadDialog .delete-thread-dialog{display:flex;flex-direction:column;width:100%;max-height:min(78vh,680px);padding:0}
#deleteThreadDialog .dialog-head{align-items:flex-start;padding:22px 24px 17px;border-bottom:1px solid #e2eaed;background:linear-gradient(135deg,#fff,#f5faf9)}
.dialog-eyebrow{display:block;margin-bottom:5px;color:#4b9b8e;font:8px 'DM Mono';letter-spacing:1.2px}
#deleteThreadDialog .dialog-head h2{font-size:18px;line-height:1.3}
#deleteThreadDialog .dialog-head p{max-width:430px;margin-top:7px;line-height:1.65}
#deleteThreadDialog .dialog-head button{flex:0 0 34px;width:34px;height:34px;padding:0;border:1px solid #dbe5e8;border-radius:10px;background:#fff;color:#85939b;line-height:30px}
#deleteThreadDialog .dialog-head button:hover{border-color:#b9cbcf;background:#f3f8f8;color:#53636c}
#deleteThreadDialog .related-memory-list{flex:1;max-height:42vh;overflow:auto;padding:15px 24px}
#deleteThreadDialog .related-memory-note{margin:0 0 8px;padding:9px 11px;border-radius:9px;background:#edf7f5;color:#55716d}
#deleteThreadDialog .no-related-memory{margin:0;padding:13px 14px;border:1px solid #dde7ea;border-radius:11px;background:#f5f8f9;color:#687982;font-size:11px;line-height:1.6}
#deleteThreadDialog .related-memory{box-shadow:0 2px 8px rgba(54,80,88,.04)}
#deleteThreadDialog .dialog-foot{align-items:center;gap:9px;padding:15px 24px 19px;border-top:1px solid #e3eaed;background:#f7fafb}
.delete-preserve-hint{margin-right:auto;color:#91a0a7;font-size:9px}
#deleteThreadDialog .dialog-foot button{min-height:38px;padding:8px 14px}
#deleteThreadDialog .danger-action:disabled{opacity:.58;cursor:wait}
.delete-thread-error{margin:12px 24px 0;padding:9px 11px;border:1px solid #e7b6bc;border-radius:9px;background:#fff2f3;color:#ad4e5a;font-size:10px}
.app-toast{position:fixed;z-index:2147483647;left:50%;bottom:28px;transform:translate(-50%,16px);padding:10px 14px;border:1px solid #a9d8d0;border-radius:11px;background:#f0fbf8;color:#287d70;box-shadow:0 14px 36px rgba(48,76,84,.2);font-size:11px;opacity:0;visibility:hidden;transition:.18s}
.app-toast.visible{transform:translate(-50%,0);opacity:1;visibility:visible}.app-toast.error{border-color:#e2aeb5;background:#fff1f2;color:#a84b58}
@media(max-width:560px){#deleteThreadDialog .dialog-head,#deleteThreadDialog .related-memory-list,#deleteThreadDialog .dialog-foot{padding-left:16px;padding-right:16px}.delete-preserve-hint{display:none}}

/* Memory list restored in v1.1.2. */
#memoryPane{padding:2px 3px 10px}
.memory-list{display:flex;flex-direction:column;gap:9px}
.memory-list .memory-item{position:relative;margin:0;padding:12px 13px;border:1px solid #dce6e8;border-radius:12px;background:rgba(249,252,252,.92);box-shadow:0 3px 12px rgba(54,78,86,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
.memory-list .memory-item:hover{border-color:#b8d8d2;box-shadow:0 8px 20px rgba(54,100,92,.08);transform:translateY(-1px)}
.memory-list .memory-item header{display:flex;align-items:center;justify-content:flex-start;gap:7px;padding-right:25px}
.memory-list .memory-item header>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8b989f;font:8px 'DM Mono'}
.memory-list .memory-item .tag{padding:3px 6px;border:1px solid #bfe0da;border-radius:99px;background:#edf8f5;font:8px 'DM Mono'}
.memory-list .memory-item .tag.candidate{border-color:#ead5b5;background:#fff8ec}
.memory-list .memory-item p{margin:9px 0 7px;color:#40515a;font-size:11px;line-height:1.65;white-space:pre-wrap}
.memory-list .memory-item footer{color:#9aa5ab;font:8px 'DM Mono';line-height:1.5}
.memory-delete{position:absolute;top:8px;right:8px;width:24px;height:24px;padding:0;border:0;border-radius:7px;background:transparent;color:#a4b0b6;font-size:15px;opacity:.35;transition:.15s}
.memory-item:hover .memory-delete,.memory-delete:focus-visible{opacity:1}.memory-delete:hover{background:#fff0f1;color:#ba5965}
/* v1.2 multimodal composer */
.attachment-tray{display:flex;gap:10px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line,#d9e3e6)}
.attachment-tray.hidden{display:none}
.attachment-chip{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 24px;align-items:center;gap:9px;min-width:210px;max-width:310px;padding:8px;border:1px solid #cfe0df;border-radius:12px;background:#f5fbfa}
.attachment-chip img{width:42px;height:42px;border-radius:8px;object-fit:cover;background:#e7f1f0}
.attachment-chip .attachment-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#e5f3f1;color:#3f8f83;font-size:18px;font-weight:700}
.attachment-chip span{min-width:0}.attachment-chip b,.attachment-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip b{font-size:12px}.attachment-chip small{color:#84919d;font-size:10px;margin-top:3px}
.attachment-chip button{border:0;background:transparent;color:#84919d;font-size:18px;cursor:pointer}.attachment-chip button:hover{color:#b24f5b}
.compose-tools{display:flex;align-items:center;gap:10px}.attach-button{border:1px solid #cddddd!important;background:#f4faf9!important;color:#438c82!important;padding:7px 11px!important;border-radius:10px!important;font-size:12px!important}.attach-button:hover{background:#e9f5f3!important}
.composer.drag-active{outline:2px dashed #62b9aa;outline-offset:-5px;background:#f3fbfa}
.message-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.message-attachment{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #d6e3e5;border-radius:10px;background:#f7fbfb;color:#536671;text-decoration:none;font-size:12px}.message-attachment img{width:64px;height:52px;object-fit:cover;border-radius:7px}.message-attachment audio{width:240px;height:32px}.message-attachment small{display:block;color:#8a98a2;margin-top:2px}
.capability-note{display:block;color:#7a8c98;font-size:11px;margin-top:4px}
@media(max-width:900px){.attachment-chip{min-width:180px;max-width:100%}.compose-foot{align-items:flex-end}.compose-tools{align-items:flex-start;flex-direction:column;gap:6px}.message-attachment audio{width:180px}}
.message.user{cursor:context-menu}
.message-context-menu{position:fixed;z-index:10000;min-width:142px;padding:6px;border:1px solid #cad9dc;border-radius:11px;background:rgba(255,255,255,.98);box-shadow:0 14px 38px rgba(35,57,70,.18);backdrop-filter:blur(10px)}
.message-context-menu.hidden{display:none}.message-context-menu button{display:flex;width:100%;align-items:center;gap:9px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:#344650;font:inherit;cursor:pointer;text-align:left}.message-context-menu button:hover,.message-context-menu button:focus{background:#eaf6f4;color:#277c70;outline:0}.message-context-menu button span{font-size:18px;color:#54a99c}
/* v1.4 account authentication and tenant identity */
.auth-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 16%,rgba(126,221,205,.22),transparent 32%),radial-gradient(circle at 82% 84%,rgba(151,141,230,.18),transparent 34%),rgba(241,248,249,.94);backdrop-filter:blur(18px)}
.auth-gate.hidden{display:none}.auth-card{width:min(440px,calc(100vw - 32px));padding:34px;border:1px solid rgba(105,164,157,.35);border-radius:28px;background:rgba(255,255,255,.92);box-shadow:0 28px 80px rgba(43,75,86,.18)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.auth-brand strong{display:block;font-size:18px;color:#25323d}.auth-brand small{display:block;margin-top:3px;color:#78909c;font:10px 'DM Mono';letter-spacing:1.4px}.auth-card h1{margin:0 0 9px;color:#25323d;font-size:26px}.auth-card>p{margin:0 0 24px;color:#71818d;font-size:13px;line-height:1.75}.auth-card label{display:block;margin-top:14px;color:#60727e;font-size:12px}.auth-card input{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #cbdadd;border-radius:12px;background:#f9fcfc;color:#263640;font:14px 'Noto Sans SC';outline:none}.auth-card input:focus{border-color:#64b7aa;box-shadow:0 0 0 3px rgba(100,183,170,.14)}.auth-card>button{width:100%;margin-top:20px;padding:13px;border:0;border-radius:12px;background:linear-gradient(135deg,#6fd1c0,#8adfcf);color:#163c36;font-weight:800;cursor:pointer}.auth-card>a{display:block;margin-top:16px;text-align:center;color:#65827f;font-size:12px;text-decoration:none}.auth-error{margin-top:14px;padding:10px 12px;border:1px solid #e8b9bd;border-radius:10px;background:#fff4f5;color:#a84d56;font-size:12px}.account-menu{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 12px;border:1px solid #c9dedb;border-radius:12px;background:#f5fbfa}.account-menu>span{min-width:0}.account-menu b,.account-menu small{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu b{color:#41625e;font-size:11px}.account-menu small{margin-top:2px;color:#82928f;font:8px 'DM Mono'}.account-menu button{border:1px solid #d0dfdd;border-radius:8px;background:#fff;color:#6c7e7b;padding:7px 9px;font-size:10px;cursor:pointer}.auth-locked .topbar,.auth-locked .shell{pointer-events:none;user-select:none}@media(max-width:900px){.account-menu small{display:none}.account-menu b{max-width:90px}.auth-card{padding:26px}}

/* v1.6 administrator-only self-upgrade center */
.upgrade-entry{border-color:#c9c2e8;background:#f5f2ff;color:#685aa8}.upgrade-entry:hover{border-color:#9f93d4;background:#efebff}
#upgradeDialog{width:min(1180px,96vw);max-width:none;max-height:90vh;overflow:hidden}#upgradeDialog .upgrade-dialog{display:flex;flex-direction:column;max-height:90vh;padding:0}#upgradeDialog .dialog-head{padding:22px 24px 17px;background:linear-gradient(135deg,#fff,#f6f4ff)}
.upgrade-guide{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.6fr) auto;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid #e0e7ea;background:#f9fbfc}.upgrade-guide b,.upgrade-guide small{display:block}.upgrade-guide b{font-size:12px}.upgrade-guide small{margin-top:4px;color:#84919a;font-size:10px;line-height:1.5}.upgrade-guide textarea{width:100%;padding:10px 12px;border:1px solid #d2dee2;border-radius:11px;background:#fff;color:#35444e;font:12px/1.55 'Noto Sans SC';resize:vertical}.upgrade-guide button{white-space:nowrap}
.upgrade-layout{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:520px;max-height:calc(90vh - 190px)}.upgrade-layout>aside{min-width:0;padding:16px;border-right:1px solid #e0e7ea;background:#f6f9fa;overflow:auto}.upgrade-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.upgrade-section-title b{font-size:11px}.upgrade-section-title button{padding:5px 8px;border:1px solid #d5e0e3;border-radius:8px;background:#fff;color:#73828a;font-size:9px}.upgrade-list{display:flex;flex-direction:column;gap:8px}
.upgrade-list-item{display:flex;align-items:flex-start;gap:9px;width:100%;padding:11px;border:1px solid #dce5e8;border-radius:12px;background:#fff;text-align:left}.upgrade-list-item.active{border-color:#9ecfc6;background:#eef9f6;box-shadow:0 6px 16px rgba(58,116,105,.08)}.upgrade-list-item>span{min-width:0;flex:1}.upgrade-list-item b,.upgrade-list-item small{display:block}.upgrade-list-item b{overflow:hidden;color:#40505a;font-size:11px;line-height:1.55}.upgrade-list-item small{margin-top:5px;color:#93a0a7;font:8px 'DM Mono'}
.upgrade-status{flex:0 0 auto;padding:4px 7px;border:1px solid #d4dfe2;border-radius:99px;background:#f5f8f9;color:#74828a;font:8px 'DM Mono';font-style:normal}.upgrade-status.status-ready,.upgrade-status.status-approved{border-color:#a9d8ce;background:#edf9f6;color:#2d897a}.upgrade-status.status-running{border-color:#c7bee9;background:#f3f0ff;color:#6e61a9}.upgrade-status.status-needs_revision,.upgrade-status.status-failed,.upgrade-status.status-rejected{border-color:#e2b6bb;background:#fff3f4;color:#aa5360}
.upgrade-detail{min-width:0;padding:22px 24px;overflow:auto;background:#fff}.upgrade-detail>header{display:flex;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid #e4eaed}.upgrade-detail h3{margin:4px 0 0;color:#2f3e48;font-size:16px;line-height:1.55}.upgrade-detail section{margin-top:18px}.upgrade-detail h4{margin:0 0 9px;color:#667680;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.upgrade-detail section>p{color:#52636d;font-size:11px;line-height:1.7}.upgrade-boundary{margin-top:16px;padding:12px 14px;border:1px solid #d8e7e3;border-radius:12px;background:#f2faf8}.upgrade-boundary b{color:#398d7e;font-size:10px}.upgrade-boundary p{margin:5px 0 0;color:#58716d;font-size:10px;line-height:1.65}
.upgrade-file-list,.upgrade-test-list{display:flex;flex-direction:column;gap:6px}.upgrade-file-list code{display:flex;gap:10px;padding:7px 9px;border:1px solid #e0e7e9;border-radius:8px;background:#f8fafb;color:#52616a;font:9px 'DM Mono'}.upgrade-file-list code span{width:58px;color:#3f9586}.upgrade-test-list>div{padding:9px 11px;border:1px solid #dce6e8;border-radius:9px;background:#f9fbfc}.upgrade-test-list>div.passed{border-color:#c9e2dc;background:#f1faf7}.upgrade-test-list>div.failed{border-color:#e5bec3;background:#fff5f6}.upgrade-test-list b,.upgrade-test-list small{display:block}.upgrade-test-list b{font-size:10px}.upgrade-test-list small{margin-top:4px;color:#7f8d95;font-size:9px;line-height:1.5}
.upgrade-detail footer{display:flex;align-items:center;gap:9px;margin-top:22px;padding-top:16px;border-top:1px solid #e3eaed}.upgrade-detail footer small{margin-left:auto;max-width:330px;color:#8c999f;font-size:9px;line-height:1.5;text-align:right}.upgrade-empty{padding:30px 16px;color:#94a1a8;font-size:11px;line-height:1.7;text-align:center}.upgrade-muted{color:#95a1a8!important}
.upgrade-diff{margin-top:14px;border:1px solid #dce5e8;border-radius:10px;background:#f8fafb}.upgrade-diff summary{padding:9px 11px;cursor:pointer;color:#54736d;font-size:10px;font-weight:700}.upgrade-diff pre{max-height:280px;margin:0;padding:12px;overflow:auto;border-top:1px solid #e1e8ea;background:#172026;color:#d9e8e5;font:9px/1.55 'DM Mono';white-space:pre}
@media(max-width:820px){.upgrade-guide{grid-template-columns:1fr}.upgrade-layout{grid-template-columns:1fr;max-height:none}.upgrade-layout>aside{max-height:220px;border-right:0;border-bottom:1px solid #e0e7ea}.upgrade-detail{min-height:360px}.upgrade-detail footer{align-items:flex-start;flex-wrap:wrap}.upgrade-detail footer small{width:100%;max-width:none;margin-left:0;text-align:left}}

/* v1.6.5 compact Provider retry and diagnostic status */
.provider-status{max-width:calc(100% - 72px);margin:-8px 0 14px 43px;color:#829098;font-size:10px}
.provider-status summary{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #d9e4e5;border-radius:99px;background:#f7fafb;color:#77858d;cursor:pointer;list-style:none;user-select:none}
.provider-status summary::-webkit-details-marker{display:none}.provider-status summary::before{content:"";width:6px;height:6px;border-radius:50%;background:#d5a15b}.provider-status summary::after{content:"⌄";font-size:9px;transition:transform .15s}.provider-status[open] summary::after{transform:rotate(180deg)}
.provider-status.recovered summary{border-color:#c6dfda;background:#f0f9f7;color:#478a80}.provider-status.recovered summary::before{background:#68b6a8}
.provider-status.failed summary{border-color:#e4c9cc;background:#fff7f7;color:#a36970}.provider-status.failed summary::before{background:#d27b86}
.provider-status-detail{max-width:620px;margin:6px 0 0 8px;padding:9px 11px;border-left:2px solid #dce5e7;background:#f8fafb;color:#77868e;line-height:1.55}.provider-status-detail b,.provider-status-detail span{display:block}.provider-status-detail b{color:#53656d;font-size:10px}.provider-status-detail span{margin-top:3px;font:9px 'DM Mono'}.provider-status-detail p{margin:5px 0 0;overflow-wrap:anywhere;color:#849198;font:9px/1.55 'DM Mono'}
@media(max-width:700px){.provider-status{max-width:calc(100% - 42px);margin-left:34px}}

/* Reliable task controls v1.7 */
.task-controls{margin:0 28px 10px;padding:10px 12px;border:1px solid #cfe0e1;border-radius:12px;background:#f6fbfb;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 8px 20px rgba(67,98,108,.06)}
.task-controls>span{font-size:12px;color:#6f818d}.task-controls>div{display:flex;gap:8px}.task-controls button{padding:7px 11px;font-size:11px}

.trace-command-output p{font:10px/1.55 'DM Mono',monospace;color:#465b65;background:#f4f8f8;border-radius:7px;padding:7px 9px;max-height:180px;overflow:auto}

.operations-panel{display:grid;gap:10px}.operations-empty{padding:18px 10px;color:#93a0a8;font-size:11px;line-height:1.7;text-align:center}.operations-card{padding:13px;border:1px solid #dce6e8;border-radius:12px;background:rgba(249,252,252,.94);box-shadow:0 3px 12px rgba(54,78,86,.04)}.operations-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.operations-card>header b{font-size:11px;color:#35444d}.operations-card>header span{color:#419888;font:9px 'DM Mono'}.operations-card>p{margin:9px 0;color:#74828b;font-size:10px;line-height:1.6}.operations-card>button{width:100%;padding:7px;border:1px solid #afd7d0;border-radius:8px;background:#eef9f6;color:#327f72;font-size:10px}.operations-card>button:disabled{opacity:.55}.operations-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:9px 0}.operations-stats span,.memory-state-grid span{padding:7px;border-radius:8px;background:#f1f5f6;color:#89959d;font:8px 'DM Mono'}.operations-stats b,.memory-state-grid b{display:block;color:#3e9183;font-size:12px}.provider-metric{display:grid;grid-template-columns:1fr auto;gap:3px;padding:8px 0;border-top:1px solid #e6ecee;font-size:9px}.provider-metric span{color:#6f7d86}.provider-metric b{color:#3e9183}.provider-metric small{grid-column:1/-1;color:#9aa6ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memory-state-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px}
.cost-card>header span{font-size:12px}.budget-progress{height:7px;margin:10px 0 4px;border-radius:99px;background:#e7eeee;overflow:hidden}.budget-progress i{display:block;height:100%;border-radius:inherit;background:#75cbbb;transition:width .2s}.budget-progress.warning i{background:#e0a25d}.cost-form{display:grid;gap:7px;margin-top:10px}.cost-form label{display:grid;gap:4px;color:#74828b;font-size:9px}.cost-form input{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid #d8e3e5;border-radius:8px;background:#fff;color:#35444d;font:9px 'DM Mono'}.cost-form .check-line{display:flex;grid-template-columns:none;align-items:center;gap:7px}.cost-form .check-line input{width:auto}.cost-form button{padding:8px;border:1px solid #afd7d0;border-radius:8px;background:#eef9f6;color:#327f72;font-size:10px}.pricing-row{grid-template-columns:1fr auto auto}.pricing-row small{grid-column:1/3}.pricing-row button{grid-column:3;grid-row:1/3;align-self:center;border:0;background:transparent;color:#ad6b72;font-size:16px}
body.light-theme .codex-login-panel{border-color:#d5b775;background:#fff8e7}body.light-theme .codex-login-panel span{color:#6c6250}body.light-theme .codex-login-panel code{border-color:#d4b974;background:#fff;color:#6b4c00}body.light-theme .codex-login-panel.online{border-color:#94cabc;background:#ecfbf6}body.light-theme .codex-login-panel.failed{border-color:#d6a0a6;background:#fff0f1}
