body[data-page=code]{background:#f5f8f8;color:#263e4e}
body[data-page=code] .sky-scene{opacity:.21;mask-image:linear-gradient(#000 0%,#000 24%,transparent 68%)}
body[data-page=code] button,body[data-page=code] textarea,body[data-page=code] input,body[data-page=code] select{font-family:inherit}
body[data-page=code] button:focus-visible,body[data-page=code] a:focus-visible,body[data-page=code] input:focus-visible,body[data-page=code] select:focus-visible,body[data-page=code] textarea:focus-visible{outline:3px solid #287eaa;outline-offset:2px}
.code-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;height:76px;padding:0 24px;border-bottom:1px solid #dce7ec;background:#f9fbfcdb;backdrop-filter:blur(18px)}
.code-header-left,.code-header-right{display:flex;align-items:center;gap:24px;min-width:0}
.code-header .chat-brand img{width:119px}
.mode-nav{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #dce7ed;border-radius:12px;background:#eef4f7}
.mode-nav a{min-width:64px;padding:6px 13px;border-radius:8px;color:#577182;font-size:.8rem;font-weight:700;text-align:center;transition:background .15s,color .15s}
.mode-nav a:hover{color:#2d5d7c}
.mode-nav a[aria-current=page]{background:#fff;box-shadow:0 1px 5px #24516c1b;color:#244a62}
.code-top-status{display:flex;align-items:center;gap:7px;color:#5d7582;font-size:.72rem;font-weight:600;white-space:nowrap}
.code-top-status i{width:7px;height:7px;border-radius:50%;background:#b6c6d0}
.code-top-status.is-live i{background:#4ba78b;box-shadow:0 0 0 3px #d5f1e7}
.code-top-status.is-busy i{background:#dba443;box-shadow:0 0 0 3px #fff1d0;animation:code-breathe 1.8s infinite}
.code-top-status.is-error i{background:#d27364}
@keyframes code-breathe{50%{opacity:.45;transform:scale(.8)}}
.code-layout{position:relative;z-index:1;display:grid;grid-template-columns:220px minmax(0,1fr);height:calc(100dvh - 76px);min-height:500px;max-width:1920px;margin:0 auto;overflow:hidden}
.code-layout.is-workspace{grid-template-columns:220px minmax(360px,1fr) minmax(310px,35%)}
.code-projects{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;padding:20px 12px 18px;border-right:1px solid #dce7ec;background:#f7fafbbf}
.code-projects-head{display:flex;align-items:center;justify-content:space-between;margin:0 9px 16px}
.code-rail-eyebrow{color:#60747f;font-size:.65rem;font-weight:700;letter-spacing:.14em}
.code-new-project{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;border:1px solid #b7d5e4;border-radius:11px;background:#fff;color:#2d5e7b;font-size:.83rem;font-weight:700;text-align:left;box-shadow:0 3px 15px #2056780b}
.code-new-project:hover{border-color:#72abc7;background:#f7fcfe}
.code-new-project span{font-size:1.13rem;font-weight:400;line-height:1}
.code-projects-list-head{display:flex;align-items:center;justify-content:space-between;margin:26px 9px 9px;padding-left:9px;color:#617480;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.code-list-refresh{padding:4px 7px;border:1px solid #d7e4ea;border-radius:7px;background:#fff;color:#57788d;font-family:inherit;font-size:.65rem;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;cursor:pointer}
.code-list-refresh:hover{border-color:#91b6c9;background:#f7fcfe;color:#315d76}
.code-list-refresh:disabled{opacity:.6;cursor:wait}
.code-session-list{min-height:0;overflow:auto}
.code-session-item{display:block;width:100%;padding:11px 12px;border:0;border-radius:10px;background:none;color:#385a6d;text-align:left}
.code-session-item:hover,.code-session-item.is-active{background:#eaf3f8}
.code-session-item.is-active{font-weight:700}
.code-session-item strong{display:block;overflow:hidden;font-size:.81rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.code-session-item span{display:block;margin-top:4px;color:#879ca8;font-size:.67rem;font-weight:500}
.code-session-item.is-ended{opacity:.62}
.code-session-row{display:flex;align-items:center;border-radius:10px}
.code-session-row:hover{background:#eef5f8}
.code-session-row .code-session-item{flex:1;min-width:0}
.code-session-rename{flex:0 0 auto;width:27px;height:30px;margin-right:4px;padding:0;border:0;border-radius:7px;background:transparent;color:#91a8b5;font-size:.89rem}
.code-session-rename:hover{background:#dbeaf0;color:#326985}
.code-session-more{flex:0 0 auto;width:30px;height:30px;margin-right:4px;padding:0;border:0;border-radius:7px;background:transparent;color:#5f7a89;font-size:1.05rem;line-height:1}
.code-session-more:hover,.code-session-more[aria-expanded="true"]{background:#dbeaf0;color:#326985}
.code-session-more:focus-visible,.code-row-menu button:focus-visible,.code-archived-toggle:focus-visible{outline:2px solid #2c7699;outline-offset:1px}
.code-archived-toggle{flex:0 0 auto;white-space:nowrap;padding:3px 8px;border:1px solid #d6e3e9;border-radius:7px;background:#fff;color:#3d6479;font-size:.66rem;font-weight:700;letter-spacing:0;text-transform:none}
.code-archived-toggle:hover{background:#eef5f8}
.code-row-menu{position:fixed;z-index:60;min-width:150px;padding:5px;border:1px solid #d7e5e9;border-radius:10px;background:#fff;box-shadow:0 12px 34px #1b425533}
.code-row-menu button{display:block;width:100%;padding:8px 11px;border:0;border-radius:7px;background:none;color:#2f5569;font-size:.8rem;font-weight:600;text-align:left}
.code-row-menu button:hover,.code-row-menu button:focus{background:#eaf3f8;outline:none}
.code-row-menu button.is-danger{color:#a13d31}
.code-row-menu button.is-danger:hover,.code-row-menu button.is-danger:focus{background:#fbecea}
.code-quiet{padding:3px 9px;color:#5d7581;font-size:.78rem;line-height:1.5}
.code-rail-foot{margin-top:auto;padding:18px 10px 0;border-top:1px solid #e2ebef;color:#62747f;font-size:.69rem;line-height:1.5}
.code-center{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f8fafb63}
.code-workspace-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:73px;padding:12px 25px;border-bottom:1px solid #e2eaee;background:#ffffffa3}
.code-workspace-identity{display:flex;align-items:center;gap:10px;min-width:0}
.code-workspace-identity>div{display:flex;flex-direction:column;min-width:0}
.code-crumb{color:#607783;font-size:.58rem;font-weight:700;letter-spacing:.15em;white-space:nowrap}
.code-workspace-identity strong{overflow:hidden;color:#29495e;font-size:.93rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.code-rename-current{width:25px;height:25px;color:#8ba4b1;font-size:.85rem}
.code-workspace-actions{display:flex;align-items:center;gap:9px}
.code-save-button{padding:6px 9px;border:1px solid #d2e2e8;border-radius:8px;background:#fff;color:#477087;font-size:.7rem;font-weight:700}
.code-save-button:hover:not(:disabled){background:#eef8fa}
.code-save-button:disabled{opacity:.55}
.code-run-status{padding:5px 8px;border-radius:6px;background:#eff7f5;color:#528676;font-size:.68rem;font-weight:700;white-space:nowrap}
.code-run-status.is-working{background:#fff5df;color:#956b24}
.code-run-status.is-notdone{background:#fdf1e7;color:#9a5a1e} /* NOT DONE IS NOT READY (F06): the last turn's verdict said "Not done yet" */
.code-progress.is-notdone .code-progress-title{color:#9a5a1e}
.code-mode-label{color:#7d929e;font-size:.68rem}
.code-workspace-actions select{max-width:110px;padding:7px 25px 7px 10px;border:1px solid #d6e4eb;border-radius:9px;background:#fff;color:#37596d;font-size:.72rem;font-weight:600}
.code-icon-button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:0;border-radius:8px;background:transparent;color:#5a7584;font-size:1.2rem;line-height:1}
.code-icon-button:hover{background:#e8f1f5;color:#285b79}
.code-end-button{font-size:1.35rem}
.code-rail-open,.code-rail-close,.code-artifacts-close{display:none}
.code-start-view{width:min(100%,850px);min-height:0;margin:auto;padding:40px 32px 55px;overflow-y:auto;text-align:center}
.code-start-art{display:grid;place-items:center;width:75px;height:75px;margin:0 auto 19px;border:1px solid #d9e6ed;border-radius:25px;background:#ffffffd8;box-shadow:0 12px 36px #2e648018}
.code-start-art img{width:42px;height:42px}
.code-overline{margin:0 0 8px;color:#5c7482;font-size:.67rem;font-weight:700;letter-spacing:.17em}
.code-start-view h1{margin:0;color:#26495e;font:500 clamp(2.1rem,4.4vw,3.5rem)/1.13 Georgia,serif;letter-spacing:-.06em}
.code-start-lede{max-width:560px;margin:16px auto 27px;color:#5a7484;font-size:.92rem;line-height:1.62}
.code-start-form{padding:18px;border:1px solid #dbe7ed;border-radius:20px;background:#fff;box-shadow:0 18px 48px -35px #1a517862;text-align:left}
.code-start-form:focus-within{border-color:#9abed1;box-shadow:0 18px 48px -30px #1a517873}
.code-start-form textarea{display:block;width:100%;min-height:98px;max-height:210px;padding:2px;border:0;outline:0;resize:vertical;background:none;color:#29495e;font-size:1rem;line-height:1.55}
.code-start-form textarea::placeholder{color:#9aadba}
.code-start-form-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid #edf2f5}
.code-start-form-bottom>span{color:#66767f;font-size:.7rem}
.code-start-form-bottom button{padding:10px 17px;border:0;border-radius:11px;background:#315d76;color:#fff;font-size:.8rem;font-weight:700;white-space:nowrap}
.code-start-form-bottom button:hover:not(:disabled){background:#447d9d}
.code-start-form-bottom button:disabled{opacity:.55}
.code-start-form-bottom button span{margin-left:6px;font-size:1rem}
.code-start-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;text-align:left}
.code-start-options label>span{display:block;margin:0 0 6px 4px;color:#5a7383;font-size:.68rem;font-weight:700}
.code-start-options small{font-size:inherit;font-weight:400}
.code-start-options input,.code-start-options select{width:100%;height:39px;padding:0 12px;border:1px solid #dbe7ed;border-radius:10px;background:#ffffffd4;color:#385e72;font-size:.77rem}
.code-start-options input::placeholder{color:#9dacb5}
.code-starters{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}
.code-starters button{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:54px;padding:12px 14px;border:1px solid #dce9ef;border-radius:11px;background:#ffffffac;color:#436980;font-size:.76rem;font-weight:600;text-align:left}
.code-starters button:hover{border-color:#99c4d7;background:#fff}
.code-starters button span{color:#597786;font-size:1rem}
.code-start-notice{max-width:560px;margin:0 auto 18px;padding:11px 14px;border:1px solid #cbdde5;border-radius:9px;background:#f1f7fa;color:#2f5568;font-size:.84rem;line-height:1.5;text-align:center} /* a neutral notice at the TOP of the start view (Code QA A2: the archived line sat below the fold as a red error) */
.code-form-error{max-width:560px;margin:19px auto 0;padding:11px 13px;border:1px solid #e6c5bc;border-radius:9px;background:#fff5f2;color:#9b493e;font-size:.79rem;text-align:left}
.code-form-error .code-start-retry{margin-left:6px;padding:3px 11px;border:1px solid #d9a99d;border-radius:99px;background:#fff;color:#9b493e;font:inherit;font-weight:700;cursor:pointer}
.code-form-error .code-start-retry:hover,.code-form-error .code-start-retry:focus-visible{border-color:#9b493e}
/* THE CREATE WAIT (tracker row 85): a calm line under the start form while a new project waits for a free worker slot */
.code-form-status{max-width:560px;margin:14px auto 0;color:#3f6a80;font-size:.82rem;text-align:center}
.code-workspace-view{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1}
.code-transcript-wrap{min-height:0;flex:1;overflow:auto;scrollbar-color:#c4d5df transparent}
.code-transcript{display:flex;flex-direction:column;gap:17px;width:min(100%,760px);min-height:100%;margin:0 auto;padding:29px 27px 45px}
.code-workspace-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;padding-bottom:30px;color:#7c96a5;text-align:center}
.code-workspace-empty h2{margin:12px 0 5px;color:#34566b;font:500 1.65rem/1.2 Georgia,serif;letter-spacing:-.04em}
.code-workspace-empty p{max-width:360px;margin:0;font-size:.82rem;line-height:1.55}
.code-msg{min-width:0;overflow-wrap:anywhere}
.code-msg-user{align-self:flex-end;max-width:84%;padding:12px 16px;border-radius:16px 16px 5px 16px;background:#e6f1f7;color:#2b5068;font-size:.88rem;line-height:1.55;white-space:pre-wrap}
.code-msg-assistant{align-self:stretch;padding:6px 2px;color:#2c3b45;font: .92rem/1.65 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-msg-assistant .message-prose{max-width:none;font-size:.96rem}
.code-msg-error{align-self:stretch;padding:11px 13px;border:1px solid #e9c9bf;border-radius:10px;background:#fff5f2;color:#984a3e;font-size:.79rem}
.code-msg-note{align-self:flex-start;color:#8399a6;font-size:.76rem}
.code-tool{align-self:stretch;border:1px solid #dce7ec;border-radius:11px;background:#fff;overflow:hidden}
.code-tool.is-running{border-color:#c4deea;background:#f8fcfe}
.code-tool.is-error{border-color:#e7c8bd}
.code-tool>button{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:10px 12px;border:0;background:none;color:#3c6075;text-align:left}
.code-tool-icon{flex:0 0 auto;color:#6b9cb6;font-size:.9rem}
.code-tool.is-error .code-tool-icon{color:#be7060}
.code-tool-name{flex:0 0 auto;font:600 .78rem/1.4 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-tool-summary{min-width:0;overflow:hidden;color:#8397a4;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}
.code-tool-toggle{margin-left:auto;color:#9cafb9;font-size:.69rem}
.code-tool pre{max-height:300px;margin:0;padding:13px 15px;overflow:auto;border-top:1px solid #e3ebef;background:#f6f9fa;color:#4b6473;font: .7rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.code-progress{align-self:stretch;padding:14px 16px;border:1px solid #d8e7ed;border-radius:13px;background:#f8fbfc;color:#496677;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-progress.is-live{border-color:#c8dfe9;background:#f7fbfd}
.code-progress.is-error{border-color:#e8ccc4;background:#fff8f5}
.code-progress summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none}
.code-progress summary::-webkit-details-marker{display:none}
.code-progress summary::marker{content:""}
.code-progress-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#6ca2bc}
.code-progress.is-live .code-progress-dot{box-shadow:0 0 0 4px #e3f1f7;animation:code-breathe 1.8s infinite}
.code-progress.is-error .code-progress-dot{background:#c78374}
.code-progress-title{min-width:0;color:#31566b;font-size:.81rem;font-weight:700}
.code-progress-time{color:#91a7b3;font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.code-progress-current{margin:12px 0 0;color:#426578;font-size:.8rem;line-height:1.5;overflow-wrap:anywhere}
.code-progress-idle{margin:5px 0 0;color:#8a9fac;font-size:.7rem;line-height:1.45}
.code-progress-steps{margin:12px 0 0 4px;padding:0 0 0 17px;border-left:1px solid #d4e5ed;list-style:none}
.code-progress-steps li{position:relative;display:flex;justify-content:space-between;gap:13px;padding:0 0 10px 9px;color:#627e8e;font-size:.72rem;line-height:1.45;overflow-wrap:anywhere}
.code-progress-steps li:last-child{padding-bottom:0}
.code-progress-steps li::before{content:"";position:absolute;top:5px;left:-21px;width:7px;height:7px;border:1px solid #9cbfce;border-radius:50%;background:#fff}
.code-progress-steps li.is-current{color:#315f78;font-weight:700}
.code-progress-steps li.is-current::before{background:#82b5ce}
.code-progress-steps li.is-error{color:#a25b4e}
.code-progress-steps li.is-error::before{border-color:#c78678;background:#c78678}
.code-progress-steps li span:first-child{min-width:0}
.code-progress-steps li time{flex:0 0 auto;color:#9babb4;font-size:.67rem;font-weight:400;font-variant-numeric:tabular-nums}
.code-composer-wrap{flex:0 0 auto;padding:11px 22px 20px;border-top:1px solid #e2ebef;background:#f8fbfcf5}
.code-composer{width:min(100%,760px);margin:0 auto;padding:11px 14px 10px;border:1px solid #d7e5eb;border-radius:17px;background:#fff;box-shadow:0 8px 22px #264e6914}
.code-composer:focus-within{border-color:#94bfd1}
.code-composer textarea{display:block;width:100%;min-height:53px;max-height:180px;padding:3px 2px;border:0;outline:0;resize:none;background:none;color:#29495e;font-size:.9rem;line-height:1.5}
.code-composer textarea::placeholder{color:#a1b1bb}
.code-composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
.code-composer-bottom span{color:#a1b0ba;font-size:.64rem}
.code-composer-bottom .code-test-access{color:#8299a5;font-size:.61rem;margin-right:auto}
.code-composer-bottom button{display:grid;place-items:center;width:32px;height:32px;margin-left:auto;padding:0;border:0;border-radius:50%;background:#315e76;color:#fff;font-size:1.2rem;line-height:1}
.code-composer-bottom button:disabled{background:#d9e5ea;color:#8298a5}
.code-composer-bottom .code-stop{background:#fff0eb;color:#a7594c;font-size:.82rem}
.code-composer-bottom .code-stop:hover{background:#ffe5dc}
.code-followup-status{display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(100%,760px);margin:0 auto 9px;padding:9px 12px;border:1px solid #d5e7ee;border-radius:9px;background:#f2f9fc;color:#55798d;font-size:.73rem;line-height:1.45}
.code-followup-status.is-ended{border-color:#e5d6bb;background:#fff9ed;color:#765e37}
.code-followup-status button{flex:0 0 auto;padding:6px 10px;border:1px solid #a9cad9;border-radius:7px;background:#fff;color:#346682;font-size:.7rem;font-weight:700}
.code-followup-status button:hover{background:#eaf5fa}
.code-notice{width:min(100%,760px);margin:0 auto 8px;color:#a15045;font-size:.76rem}
.code-permission{width:min(100%,760px);margin:0 auto 10px;padding:15px 17px;border:1px solid #e2c990;border-radius:12px;background:#fffaf0;box-shadow:0 8px 22px #8b631a17}
.code-permission-head{display:flex;justify-content:space-between;gap:10px;color:#ad7a2f;font-size:.67rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.code-permission strong{display:block;margin-top:6px;color:#684b2e;font-size:.9rem}
.code-permission p{margin:5px 0 0;color:#806a4a;font-size:.78rem;overflow-wrap:anywhere}
.code-permission pre{max-height:150px;margin:10px 0 0;padding:9px;overflow:auto;border-radius:7px;background:#f7f0e2;color:#5d5345;font: .7rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
.code-permission-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.code-permission-actions button{padding:7px 10px;border:1px solid #dac9a9;border-radius:8px;background:#fff;color:#6e5937;font-size:.72rem;font-weight:700}
.code-permission-actions button[data-permission=allow]{margin-left:auto;border-color:#2e657e;background:#315e76;color:#fff}
.code-artifacts{display:flex;flex-direction:column;min-width:0;min-height:0;border-left:1px solid #dce7ec;background:#fffdfa}
.code-artifacts-top{display:flex;align-items:center;justify-content:space-between;height:73px;padding:0 18px;border-bottom:1px solid #e7e9e8}
.code-artifacts-title{color:#3a5566;font-size:.82rem;font-weight:700}
.code-artifact-actions{display:flex;align-items:center;gap:6px;padding:12px 13px;border-bottom:1px solid #eaece9}
.code-artifact-actions button{padding:8px 9px;border:1px solid #d9e4e8;border-radius:8px;background:#fff;color:#496b7e;font-size:.69rem;font-weight:700;white-space:nowrap}
.code-artifact-actions button:hover:not(:disabled){background:#f3f9fb}
.code-artifact-actions button:disabled{opacity:.5}
.code-artifact-actions .code-deploy{margin-left:auto;border-color:#35647b;background:#35647b;color:#fff}
.code-artifact-actions .code-deploy:hover:not(:disabled){background:#487b95}
.code-deployment-status{padding:10px 14px;border-bottom:1px solid #e9edef;background:#f6f9fa;color:#617b89;font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}
.code-deployment-status.is-ready{background:#f1f9f5;color:#467767}
.code-deployment-status.is-error{background:#fff4f1;color:#9b574b}
.code-deployment-status a{color:#246f94;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.code-artifact-tabs{display:flex;gap:1px;padding:0 12px;border-bottom:1px solid #e8eded}
.code-artifact-tabs button{position:relative;flex:1;padding:12px 4px;border:0;background:transparent;color:#8ca0aa;font-size:.72rem;font-weight:700}
.code-artifact-tabs button[aria-selected=true]{color:#2c5e7c}
.code-artifact-tabs button[aria-selected=true]::after{content:"";position:absolute;right:5px;bottom:-1px;left:5px;height:2px;background:#4f8cac}
.code-artifact-panel{min-height:0;flex:1;overflow:auto}
.code-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:35px;text-align:center}
.code-panel-empty>span{display:grid;place-items:center;width:54px;height:54px;margin-bottom:14px;border:1px solid #e3e8e9;border-radius:18px;background:#fafbfa;color:#89a0ab;font-size:1.4rem}
.code-panel-empty strong{color:#537081;font-size:.83rem}
.code-panel-empty p{max-width:250px;margin:7px 0 0;color:#94a5ab;font-size:.75rem;line-height:1.55}
.code-panel-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 17px 9px;color:#566d79;font-size:.72rem}
.code-panel-heading button{padding:3px;border:0;background:transparent;color:#3d7d9f;font-size:.7rem;font-weight:700}
.code-panel-helper{margin:0;padding:6px 17px;color:#9badb5;font-size:.73rem;line-height:1.5;list-style:none}
.code-preview-ready{display:flex;flex-direction:column;height:100%}
.code-preview-address{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-bottom:1px solid #e6e9e9;background:#f7f9f8;color:#728996;font-size:.68rem;white-space:nowrap}
.code-preview-address span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.code-preview-address a{flex:0 0 auto;color:#2f779a;font-weight:700}
.code-preview-ready iframe{width:100%;height:100%;min-height:280px;flex:1;border:0;background:#fff}
.code-files-list{max-height:46%;overflow:auto}
.code-file-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 16px;border:0;background:transparent;color:#597282;font: .72rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:left;overflow-wrap:anywhere}
.code-folder-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 16px;border:0;background:transparent;color:#496d82;font:600 .72rem/1.4 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left}
.code-folder-row:hover{background:#f0f6f8}
.code-folder-row span:first-child{width:13px;color:#82a9ba;font-size:.84rem}
.code-file-row:hover,.code-file-row.is-selected{background:#eaf4f8;color:#2e6888}
.code-file-row span:first-child{color:#8bb0c0}
.code-file-viewer{display:flex;flex-direction:column;min-height:180px;height:50%;margin-top:11px;border-top:1px solid #e4eaea}
.code-file-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#f7fafb;color:#517287;font: .7rem ui-monospace,SFMono-Regular,Menlo,monospace}
.code-file-viewer-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code-file-viewer-head button{border:0;background:none;color:#7e98a6;font-size:1rem}
/* PINS (#15): the Pinned / Recent groups, the pin mark beside a pinned project's name, Show more past 20 */
.code-list-group{margin:12px 9px 4px;padding-left:9px;color:#7b8f9b;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.code-list-group:first-child{margin-top:0}
.code-session-item strong .code-pin-mark{display:inline-block;width:10px;height:10px;margin-left:6px;vertical-align:-1px;background:currentColor;opacity:.55;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10.5 1.5 14.5 5.5 12 6.5 9.5 9l.5 3.5-1.5 1.5L6 11.5 2.5 15 1 14.5 4.5 10.5 2 8l1.5-1.5L7 7l2.5-2.5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10.5 1.5 14.5 5.5 12 6.5 9.5 9l.5 3.5-1.5 1.5L6 11.5 2.5 15 1 14.5 4.5 10.5 2 8l1.5-1.5L7 7l2.5-2.5z'/%3E%3C/svg%3E") center/contain no-repeat}
.code-list-more{display:block;width:calc(100% - 18px);margin:6px 9px 10px;padding:8px 10px;border:1px dashed #cbdbe3;border-radius:10px;background:none;color:#3f6a82;font:600 .74rem/1.2 "DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}
.code-list-more:hover{background:#f1f7fa}
/* #17 VIEWER: the Download menu (.zip / .tgz) and the file viewer's Copy path / Copy */
.code-download-wrap{position:relative;display:inline-flex}
.code-download-button{display:inline-flex;align-items:center;white-space:nowrap}
.code-download-button::before{content:"";order:1;flex:none;width:6px;height:6px;margin:-3px 1px 0 8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg)} /* ::before + order: ::after is the phone hit box (THE HIT FLOOR below) */
.code-download-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;display:flex;flex-direction:column;min-width:170px;padding:5px;border:1px solid #d9e6ec;border-radius:12px;background:#fff;box-shadow:0 14px 40px #17394f26}
.code-download-menu button{padding:9px 11px;border:0;border-radius:8px;background:none;color:#24485d;font:600 .8rem/1.2 "DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left;white-space:nowrap;cursor:pointer}
.code-download-menu button:hover,.code-download-menu button:focus-visible{background:#eef5f8;outline:none}
.code-file-viewer-head .code-file-tools{display:inline-flex;align-items:center;gap:6px;margin-left:auto;overflow:visible}
.code-file-viewer-head .code-file-tool,.code-file-viewer-head .code-copy.code-file-copy,.code-file-editor-bar .code-file-tool{position:static;opacity:1;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid #d6e3e9;border-radius:7px;background:#fff;color:#3e6680;font:600 .7rem/1 "DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:nowrap;cursor:pointer}
.code-file-viewer-head .code-file-tool:hover,.code-file-viewer-head .code-copy.code-file-copy:hover,.code-file-editor-bar .code-file-tool:hover:not(:disabled){background:#eef5f8}
.code-file-editor-bar .code-file-tool.is-primary{border-color:#2b596f;background:#2b596f;color:#fff}
.code-file-editor-bar .code-file-tool.is-primary:hover:not(:disabled){background:#39728e}
.code-file-viewer-head .code-file-tool:disabled,.code-file-editor-bar .code-file-tool:disabled{opacity:.55;cursor:default}
/* #17 HAND EDIT: the file in a text box, Cancel / Save under it */
.code-file-editor{display:flex;flex:1;flex-direction:column;min-height:0}
body[data-page=code] .code-file-editor-text{flex:1;width:100%;min-height:160px;margin:0;padding:12px 14px;border:0;border-radius:0;outline:none;resize:none;background:#fff;color:#22394a;font:.72rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2;white-space:pre;overflow:auto} /* the page sets font-family:inherit on every textarea (line 3): this one is code */
.code-file-editor-text:focus-visible{box-shadow:inset 0 0 0 2px #2c769955}
.code-file-editor-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid #e4eaea;background:#f7fafb}
.code-file-editor-note{margin-right:auto;color:#5b7384;font:.72rem/1.35 "DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-file-viewer-head .code-copy.code-file-copy svg{width:13px;height:13px}
.code-file-viewer-head .code-file-copy .copy-label{display:inline} /* beside "Copy path", the file's Copy says Copy (a code block's is the icon alone) */
.code-file-viewer pre{min-height:0;flex:1;margin:0;padding:13px;overflow:auto;color:#324b5b;font: .72rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;tab-size:2}
.code-todos,.code-activity{margin:0;padding:5px 13px 20px;list-style:none}
.code-todos li,.code-activity li{display:flex;gap:8px;padding:9px 4px;border-bottom:1px solid #eff1f0;color:#66808d;font-size:.74rem;line-height:1.5;overflow-wrap:anywhere}
.code-todos li>span:first-child{flex:0 0 auto;width:13px;color:#95acb7}
.code-todos li.is-progress{color:#9a762e}.code-todos li.is-complete{color:#93a8af;text-decoration:line-through}
.code-activity li::before{content:"";width:6px;height:6px;flex:0 0 auto;margin-top:5px;border-radius:50%;background:#9ebccc}
.code-activity li.is-error::before{background:#d78271}
.code-artifacts-foot{padding:10px 16px;border-top:1px solid #e9eeef;color:#9babaf;font-size:.64rem;text-align:right}
.code-artifacts-open{display:none}
.code-confirm{width:min(420px,calc(100vw - 30px));padding:24px;border:1px solid #d7e5e9;border-radius:18px;background:#fff;color:#334e5f;box-shadow:0 20px 65px #1b425537}
.code-confirm::backdrop{background:#1e3f527d;backdrop-filter:blur(3px)}
.code-confirm h2{margin:0;color:#294d61;font-size:1.2rem}
.code-confirm p{margin:11px 0 21px;color:#69808d;font-size:.85rem;line-height:1.6}
.code-confirm>div{display:flex;justify-content:flex-end;gap:8px}
.code-confirm button{padding:9px 12px;border:1px solid #d6e3e9;border-radius:8px;background:#fff;color:#42687d;font-size:.78rem;font-weight:700}
.code-confirm button:last-child{border-color:#365f76;background:#365f76;color:#fff}
#code-end-confirm,#code-delete-confirm{border-color:#a9564c;background:#a9564c}
.code-rename-label{display:block;margin:15px 0 6px;color:#748d9c;font-size:.72rem;font-weight:700}
.code-rename-input{display:block;width:100%;height:42px;margin-bottom:20px;padding:0 12px;border:1px solid #ccdee6;border-radius:9px;background:#f9fbfc;color:#2b4c60;font-size:.88rem}
.code-rename-error{margin:-9px 0 15px!important;color:#a45043!important;font-size:.74rem!important}
@media(max-width:1180px){.code-layout.is-workspace{grid-template-columns:200px minmax(330px,1fr) minmax(290px,34%)}.code-projects{padding-right:9px;padding-left:9px}.code-workspace-bar{padding-right:16px;padding-left:16px}.code-artifact-actions{flex-wrap:wrap}.code-artifact-actions .code-deploy{margin-left:0}}
@media(max-width:980px){.code-layout,.code-layout.is-workspace{grid-template-columns:minmax(0,1fr) 335px}.code-projects{position:fixed;z-index:20;top:76px;bottom:0;left:0;width:min(280px,85vw);background:#f7fafb;box-shadow:18px 0 35px #24425424;transform:translateX(-110%);transition:transform .2s}.code-layout.is-sidebar-open .code-projects{transform:translateX(0)}.code-rail-open,.code-rail-close{display:grid}.code-artifacts{grid-column:2}.code-center{grid-column:1}.code-start-view{grid-column:1 / -1}.code-rail-foot{padding-bottom:15px}}
@media(max-width:700px){.code-header{height:67px;padding:0 14px}.code-header-left,.code-header-right{gap:10px}.code-header .chat-brand img{width:99px}.mode-nav a{min-width:50px;padding:6px 8px;font-size:.74rem}.code-top-status{display:none}.code-header .account-link{padding:7px 10px;font-size:.74rem}.code-layout,.code-layout.is-workspace{height:calc(100dvh - 67px);min-height:430px;display:flex;flex-direction:column}.code-projects{top:67px}.code-workspace-bar{min-height:61px;padding:9px 13px}.code-crumb{font-size:.53rem}.code-workspace-identity strong{font-size:.82rem}.code-workspace-actions{gap:4px}.code-run-status,.code-mode-label{display:none}.code-workspace-actions select{max-width:98px;font-size:.68rem}.code-center{flex:1;min-height:0}.code-start-view{padding:27px 18px 40px}.code-start-art{width:61px;height:61px;margin-bottom:14px;border-radius:19px}.code-start-art img{width:34px;height:34px}.code-start-view h1{font-size:2.4rem}.code-start-lede{margin:13px auto 21px;font-size:.85rem}.code-start-options{grid-template-columns:1fr}.code-starters{grid-template-columns:1fr;margin-top:18px}.code-starters button{min-height:42px}.code-transcript{padding:22px 16px 25px}.code-composer-wrap{padding:10px 12px 13px}.code-composer-bottom span{font-size:.59rem}.code-artifacts{position:fixed;z-index:15;top:67px;right:0;bottom:0;width:min(100vw,440px);box-shadow:-15px 0 35px #24425422;transform:translateX(105%);transition:transform .2s}.code-layout.is-panel-open .code-artifacts{transform:translateX(0)}.code-artifacts-close{display:grid}.code-artifacts-open{position:absolute;z-index:2;right:12px;bottom:170px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #cbdde5;border-radius:99px;background:#fff;color:#46748e;box-shadow:0 5px 18px #254f651e;font-size:.7rem;font-weight:700}.code-artifacts-open span{font-size:.95rem}.code-artifacts-top{height:61px}.code-msg-user{max-width:90%}}
@media(max-width:380px){.code-header{padding:0 9px}.code-header .chat-brand img{width:87px}.mode-nav a{min-width:44px;padding:5px 6px}.code-start-view h1{font-size:2.1rem}.code-start-form{padding:14px}.code-start-form-bottom>span{display:none}}
@media(max-width:700px){.code-followup-status{align-items:flex-start;flex-direction:column}.code-followup-status button{align-self:flex-start}}
@media(prefers-reduced-motion:reduce){.code-projects,.code-artifacts{transition:none}}

/* the plus icon on New chat / New project (replaces the U+FF0B glyph, which some fonts lack: a tofu box) */
.plus-icon{display:inline-block;flex:none;vertical-align:-2px}

/* the honest mode note (2026-09-30): what James can do in a /code session */
.code-mode-note,.code-start-options small.code-mode-note{display:block;margin:6px 0 0 4px;color:#5a7383;font-size:.66rem;font-weight:400;line-height:1.4}
.code-mode-note-composer{margin:0 0 6px 4px}
/* ROUND 4 (founder-approved 2026-10-01): projects left, the conversation with plain steps in the middle, the preview and its extras right */
.code-layout.is-workspace{grid-template-columns:232px minmax(360px,1fr) minmax(380px,40%)}
.code-session-item{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:10px;align-items:center}
.code-session-item strong{grid-column:2}
.code-session-item span{grid-column:2}
.code-dot{grid-row:1/span 2;width:8px;height:8px;border-radius:50%;background:#c3d0d7}
.code-dot.is-open{background:#2e8a5f}
.code-dot.is-working{background:#287eaa;box-shadow:0 0 0 3px #287eaa26}
.code-dot.is-saved{background:#8fb5a4}
.code-rail-eyebrow:empty{display:none}
/* the plain steps card; the step-by-step tool cards sit inside it behind a toggle */
.code-tech{margin-top:10px;border-top:1px solid #e3edf1;padding-top:8px}
.code-tech>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#5d7582;font-size:.72rem;font-weight:700;list-style:none}
.code-tech>summary::-webkit-details-marker{display:none}
.code-tech>summary::before{content:"▸";font-size:.7rem}
.code-tech[open]>summary::before{content:"▾"}
.code-tech-body{display:grid;gap:6px;margin-top:8px}
.code-tech-body .code-tool{font-size:.92em}
/* the approval card, in plain words */
.code-permission{border-color:#b7d6e5;background:#fff;box-shadow:0 8px 24px #24516c14}
.code-permission strong{margin-top:0;color:#263e4e;font-size:.95rem}
.code-permission p{color:#5d7582;font-size:.82rem}
.code-permission-more{margin-top:6px}
.code-permission-more>summary{cursor:pointer;color:#7d93a0;font-size:.7rem;font-weight:700}
.code-permission-actions{justify-content:flex-start}
.code-permission-actions button{padding:9px 15px;border-color:#dce7ec;border-radius:10px;color:#263e4e;font-size:.8rem}
.code-permission-actions button[data-permission=allow]{margin-left:0;border-color:#287eaa;background:#287eaa;color:#fff}
.code-permission-actions button.is-quiet{border-color:transparent;background:transparent;color:#5d7582}
/* composer chips: Attach + Create */
.code-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-right:auto}
.code-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid #dce7ec;border-radius:99px;background:#f7fafb;color:#5d7582;font-size:.74rem;font-weight:700;white-space:nowrap}
.code-composer-bottom .code-chip{display:inline-flex;width:auto;height:auto;margin:0;border-radius:99px;background:#f7fafb;color:#5d7582;font-size:.74rem}
.code-chip:hover{border-color:#b7d6e5}
.code-chip-create,.code-composer-bottom .code-chip-create{border-color:#b7d6e5;background:#eaf3f8;color:#1f6d95}
.code-chip-create.is-on,.code-composer-bottom .code-chip-create.is-on{background:#287eaa;border-color:#287eaa;color:#fff}
.code-create-menu{position:fixed;z-index:30;display:grid;gap:2px;width:228px;padding:6px;border:1px solid #dce7ec;border-radius:14px;background:#fff;box-shadow:0 14px 40px #24516c2e;transform:translateY(-100%)}
.code-create-menu button{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:9px;background:none;color:#263e4e;font-size:.84rem;text-align:left}
.code-create-menu button:hover,.code-create-menu button:focus-visible{background:#eaf3f8}
.code-create-menu b{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#f1f6f8;font-weight:400}
.code-create-menu small{display:block;color:#8198a6;font-size:.7rem}
.code-attached{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.code-file-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border:1px solid #dce7ec;border-radius:99px;background:#f7fafb;color:#385e72;font-size:.72rem}
.code-file-chip button{width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#e6eef2;color:#5d7582;font-size:.8rem;line-height:1}
.code-media-card{align-self:stretch}
.code-media-head{margin:0 0 6px;color:#5d7582;font-size:.76rem;font-weight:700}
.code-media-use{margin-top:8px}
.code-media-card.is-error .message-prose{color:#9b574b}
.code-media-out{width:min(100%,760px);margin:12px auto 0;display:grid;gap:10px}
/* start screen: a new app, or a repository + branch */
.code-start-where{display:grid;justify-items:center;gap:10px;margin:2px 0 14px}
.code-seg{display:inline-flex;padding:3px;border:1px solid #dce7ec;border-radius:11px;background:#eef4f7}
.code-seg button{padding:6px 13px;border:0;border-radius:8px;background:transparent;color:#5d7582;font-size:.8rem;font-weight:700}
.code-seg button[aria-checked=true]{background:#fff;color:#263e4e;box-shadow:0 1px 4px #24516c18}
.code-repo-pick{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.code-pick{display:inline-flex;align-items:center;gap:8px;padding:5px 6px 5px 12px;border:1px solid #dce7ec;border-radius:10px;background:#fff}
.code-pick span{color:#8198a6;font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.code-pick select,.code-pick input{max-width:260px;padding:4px 6px;border:0;background:transparent;color:#263e4e;font-size:.8rem;font-weight:600;outline:none}
.code-pick input{width:110px}
.code-repo-note{margin:0;color:#5d7582;font-size:.76rem}
.code-repo-note a{color:#287eaa;font-weight:700}
.code-git-row{display:flex;align-items:center;gap:10px;width:min(100%,760px);margin:10px auto 0;color:#7d93a0;font-size:.72rem}
.code-git-row input{flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid #dbe7ed;border-radius:10px;background:#ffffffd4;color:#385e72;font-size:.77rem}
.code-start-form-bottom{flex-wrap:wrap}
.code-start-form-bottom>span.code-start-access{flex-basis:100%;order:3;color:#4f6878;font-size:.72rem} /* THEIR ALLOWANCE: readable (>= 4.5:1) */
.code-starters{grid-template-columns:repeat(4,1fr)}
.code-starters button{display:block;min-height:64px;color:#263e4e;font-size:.8rem;font-weight:700}
.code-starters button small{display:block;margin-top:3px;color:#5d7582;font-size:.72rem;font-weight:400}
/* right side: tabs first, then the address with Download / Share / Deploy */
.code-artifact-tabs{order:0;padding:6px 10px 0;overflow-x:auto;scrollbar-width:none}
.code-artifact-tabs button{flex:0 0 auto;padding:10px 10px;white-space:nowrap}
.code-artifact-tabs em{margin-left:5px;padding:1px 6px;border-radius:99px;background:#eef4f7;color:#5d7582;font-style:normal;font-size:.64rem}
.code-artifact-tabs em.is-ok{background:#e6f4ec;color:#2e8a5f}
.code-artifact-tabs em.is-error{background:#fdeeec;color:#b4483c}
.code-artifact-actions{flex-wrap:wrap}
.code-address{display:flex;align-items:center;gap:8px;flex:1 1 180px;min-width:0;padding:7px 11px;border:1px solid #dce7ec;border-radius:10px;background:#fff;color:#263e4e;font-size:.72rem;font-weight:600;overflow:hidden}
.code-address>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code-address-state{margin-left:auto;color:#8198a6;font-weight:700;white-space:nowrap}
.code-address-state.is-busy{color:#287eaa}
.code-address-state.is-live{color:#2e8a5f}
.code-artifact-actions .code-deploy{margin-left:0}
.code-share-box{display:grid;gap:8px;padding:12px 14px;border-bottom:1px solid #e9edef;background:#f6fafb;font-size:.78rem;color:#385e72}
.code-share-box p{margin:0}
.code-share-row{display:flex;gap:6px}
.code-share-row input{flex:1;min-width:0;padding:7px 10px;border:1px solid #dce7ec;border-radius:8px;background:#fff;color:#263e4e;font-size:.76rem}
.code-share-box button{justify-self:start;padding:7px 12px;border:1px solid #dce7ec;border-radius:8px;background:#fff;color:#263e4e;font-size:.74rem;font-weight:700}
.code-share-box .code-deploy{border-color:#35647b;background:#35647b;color:#fff}
.code-link-button{padding:0;border:0;background:none;color:#2f779a;font-size:.68rem;font-weight:700}
.code-changes,.code-checks,.code-terminal{display:grid;gap:8px;margin:0;padding:0 14px 14px;list-style:none}
.code-change-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid #e3ecef;border-radius:9px;background:#fff;color:#385e72;font-size:.76rem;text-align:left}
.code-change-row span{color:#2e8a5f;font-weight:700;font-size:.7rem}
.code-diff{display:grid;gap:10px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}
.code-diff-file{border:1px solid #dce7ec;border-radius:10px;overflow:hidden;background:#fff}
.code-diff-head{padding:7px 10px;background:#f7fafb;border-bottom:1px solid #dce7ec;color:#263e4e;font-weight:600}
.code-diff-file>div:not(.code-diff-head){display:grid;grid-template-columns:38px minmax(0,1fr);white-space:pre;color:#263e4e}
.code-diff-file>div span:first-child{padding-right:8px;border-right:1px solid #edf2f4;color:#9fb1bb;text-align:right;user-select:none}
.code-diff-file>div span:last-child{padding-left:8px;overflow:hidden;text-overflow:ellipsis}
.code-diff-file>.is-add{background:#e7f5ec;color:#1f6f45}
.code-diff-file>.is-del{background:#fbeceb;color:#9b3b31}
.code-diff-file>.code-diff-hunk{display:block;padding:2px 10px;color:#8198a6;background:#fbfcfd}
.code-checks li:not(.code-panel-helper){display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:11px 12px;border:1px solid #dce7ec;border-radius:10px;background:#fff}
.code-check-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#e6f4ec;color:#2e8a5f;font-weight:800}
.code-checks li.is-error .code-check-mark{background:#fdeeec;color:#b4483c}
.code-checks strong{display:block;color:#263e4e;font-size:.8rem;overflow-wrap:anywhere}
.code-checks details{margin-top:4px}.code-checks summary{cursor:pointer;color:#5d7582;font-size:.72rem}
.code-checks pre,.code-terminal pre{max-height:240px;margin:6px 0 0;padding:9px 11px;overflow:auto;border-radius:8px;background:#132632;color:#d9e7ee;font:11.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.code-terminal-head{color:#263e4e;font:600 .74rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.code-terminal li.is-error .code-terminal-head{color:#b4483c}
#code-terminal-panel .code-panel-heading{margin-top:6px}
@media(max-width:700px){
  .code-starters{grid-template-columns:1fr 1fr}
  .code-start-form-bottom .code-chips{flex-basis:100%}
  .code-address{flex-basis:100%}
  .code-git-row{flex-direction:column;align-items:stretch}
}
/* round 4 fixes: the chips win over the start form's and the composer's button styles */
.code-start-form-bottom .code-chip,.code-composer-bottom .code-chip{display:inline-flex;width:auto;height:auto;margin:0;padding:6px 11px;border:1px solid #dce7ec;border-radius:99px;background:#f7fafb;color:#5d7582;font-size:.74rem;font-weight:700;line-height:1.2}
.code-start-form-bottom .code-chip:hover:not(:disabled),.code-composer-bottom .code-chip:hover{border-color:#b7d6e5;background:#f7fafb}
.code-start-form-bottom .code-chip-create,.code-composer-bottom .code-chip-create{border-color:#b7d6e5;background:#eaf3f8;color:#1f6d95}
.code-start-form-bottom .code-chip-create.is-on,.code-composer-bottom .code-chip-create.is-on{border-color:#287eaa;background:#287eaa;color:#fff}
.code-start-form-bottom .code-chip span,.code-composer-bottom .code-chip span{margin:0;font-size:inherit}
.code-media-use .code-chip{padding:6px 12px}
/* on a phone, the floating "Project output" button steps aside while James waits for an approval (See changes opens the panel) */
.code-layout:has(.code-permission:not([hidden])) .code-artifacts-open{display:none}
/* THE WORKER'S RESTART: while a send waits to go again, the floating button steps aside so the notice under the box reads whole */
.code-restarting .code-artifacts-open{display:none}
@media(min-width:701px){.code-artifacts-top{display:none}}
/* THE QUEUE (2026-10-01): a queued message waits in the thread, tagged and removable; Send stays beside Stop while James builds */
.code-msg-queued{display:flex;align-items:flex-start;gap:8px;opacity:.82;border:1px dashed #9cc3d6}
.code-queued-tag{flex:0 0 auto;padding:1px 7px;border-radius:999px;background:#fff;color:#4f7a90;font-size:.62rem;font-weight:650;letter-spacing:.02em;text-transform:uppercase;line-height:1.7}
.code-queued-text{flex:1 1 auto;white-space:pre-wrap;word-break:break-word}
.code-queued-remove{flex:0 0 auto;width:28px;height:28px;margin:-5px -9px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:#4f7a90;font-size:1.05rem;line-height:1;cursor:pointer}
.code-queued-remove:hover,.code-queued-remove:focus-visible{background:#d4e7f0}
.code-composer-bottom #code-send.is-queue:not(:disabled){background:#4f7a90}
.code-composer-bottom #code-send:not([hidden]) + .code-stop{margin-left:6px}
.code-msg-queued.is-removing{opacity:.45}
/* STEERING (2026-10-02): a note for the running build, then "Used ✓"; Queue for later beside Send while TAO-1 builds */
.code-msg-steer{display:flex;align-items:flex-start;gap:8px;border:1px solid #b9d3a8}
.code-msg-steer .code-queued-tag{color:#4d7a3a}
.code-note-state{display:block;margin-top:3px;font-size:.72rem;color:#5b6b73}
.code-msg-steer.is-used{opacity:.75}
.code-msg-steer.is-used .code-note-state{color:#3f7a2e;font-weight:600}
.code-composer-bottom .code-queue-later{display:inline-flex;width:auto;height:30px;flex:0 0 auto;margin-left:auto;margin-right:-4px;padding:0 11px;border:1px solid #9cc3d6;border-radius:999px;background:transparent;color:#4f7a90;font-size:.74rem;white-space:nowrap;cursor:pointer}
.code-composer-bottom .code-queue-later[hidden]{display:none}
.code-composer-bottom .code-queue-later:hover:not(:disabled),.code-composer-bottom .code-queue-later:focus-visible{background:#d4e7f0}
.code-composer-bottom .code-queue-later:disabled{background:transparent;color:#8298a5;opacity:.6;cursor:default}
.code-composer-bottom .code-queue-later + #code-send{margin-left:0}
/* THE LIVE TASK LIST (S2, 2026-10-02): a planned build's steps in the live progress card */
.code-plan{margin:8px 0 6px;padding:8px 11px;border-radius:10px;background:#f3f8fa;border:1px solid #e1edf2}
.code-plan-head{margin:0 0 3px;color:#4f7a90;font-size:.64rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}
.code-plan-list{margin:0;padding:0;list-style:none}
.code-plan-list li{display:flex;gap:8px;padding:2px 0;color:#2b5068;font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}
.code-plan-mark{flex:0 0 auto;width:13px;color:#95acb7}
.code-plan-list li.is-progress{color:#8a6a26;font-weight:600}.code-plan-list li.is-progress .code-plan-mark{color:#c7962f}
.code-plan-list li.is-complete{color:#6f8a96}.code-plan-list li.is-complete .code-plan-mark{color:#3f7a2e}
.code-plan-more{margin-top:2px;padding:0;border:0;background:none;color:#1f6d95;font-size:.74rem;cursor:pointer}
.code-plan-more:hover,.code-plan-more:focus-visible{text-decoration:underline}
/* FIX WHAT FAILED (gap 1, 2026-10-02): one button on a finished card whose plan had failed steps */
.code-plan-list li.is-failed{color:#a7594c}.code-plan-list li.is-failed .code-plan-mark{color:#bf2530}.code-plan-list li.is-stopped{color:#6f8a96}
.code-plan-fix,.code-resend{display:inline-flex;margin-top:8px;padding:5px 14px;border:0;border-radius:999px;background:#315e76;color:#fff;font-size:.78rem;font-weight:600;cursor:pointer}
.code-resend:disabled,.code-plan-fix:disabled{opacity:.6;cursor:default}
.code-resend:focus-visible,.code-plan-fix:focus-visible{outline:2px solid #1f6d95;outline-offset:2px}
/* THE CHECKS (2026-10-02): the turn's checks line on its card (opens the Checks tab); a check not run; a check's detail */
.code-progress-checks{margin:8px 0 2px}
.code-progress-checks-line{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border:1px solid #cfe3d8;border-radius:999px;background:#eef8f2;color:#2e6f50;font-size:.76rem;font-weight:600;cursor:pointer}
.code-progress-checks-line::before{content:'✓';font-weight:800}
.code-progress-checks-line.is-error{border-color:#f0d0cb;background:#fdf1ef;color:#a2443a}
.code-progress-checks-line.is-error::before{content:'!'}
.code-progress-checks-line:focus-visible{outline:2px solid #1f6d95;outline-offset:2px}
.code-progress-checks .code-plan-fix{margin-left:8px;margin-top:0}
.code-checks li.is-skipped .code-check-mark{background:#eef2f4;color:#6b7f8a}
.code-check-detail{margin:3px 0 0;color:#5d7582;font-size:.74rem;line-height:1.45;overflow-wrap:anywhere}
/* IMAGE -> APP (2026-10-02): an attached image's chip thumbnail; how many images a turn carried */
.code-file-chip.is-image{padding-left:4px}
.code-file-thumb{width:28px;height:28px;margin-right:6px;border-radius:6px;object-fit:cover;background:#eef2f4}
.code-msg-images{display:flex;align-items:center;gap:5px;margin-top:6px;color:#5d7582;font-size:.74rem}
.code-msg-images::before{content:'';width:12px;height:10px;border:1.5px solid currentColor;border-radius:2px;box-sizing:border-box}
/* THE SERVER CHECK BEFORE A DEPLOY (2026-10-02) */
.code-deployment-status.is-warning{border-color:#ecd9a8;background:#fdf8ea;color:#6b5418}
.code-deployment-status.is-warning p{margin:0 0 8px}
.code-deploy-choice{display:flex;flex-wrap:wrap;gap:8px}
.code-deploy-choice button{padding:5px 12px;border:1px solid #cfdbe1;border-radius:999px;background:#fff;color:#2c4a5b;font-size:.76rem;font-weight:600;cursor:pointer}
.code-deploy-choice button.code-deploy-choice-main{border-color:#315e76;background:#315e76;color:#fff}
/* PROJECT MEMORY (S3, 2026-10-02): a proposal card in the thread, the Notes chip in the header, the notes dialog */
.code-memory{align-self:flex-start;max-width:84%;padding:10px 14px;border:1px solid #d9e7ee;border-radius:14px;background:#f7fbfc;color:#2b5068;font-size:.84rem}
.code-memory-head{margin:0 0 2px;color:#4f7a90;font-size:.7rem;font-weight:650;letter-spacing:.02em}
.code-memory-text{margin:0 0 8px;white-space:pre-wrap}
.code-memory-actions{display:flex;gap:8px}
.code-memory-actions button{padding:4px 12px;border:1px solid #9cc3d6;border-radius:999px;background:#fff;color:#1f6d95;font-size:.76rem;cursor:pointer}
.code-memory-actions .code-memory-save{background:#315e76;border-color:#315e76;color:#fff}
.code-memory-actions button:disabled{opacity:.5;cursor:default}
.code-notes-chip{margin-left:6px;padding:2px 10px;border:1px solid #b7d6e5;border-radius:999px;background:#eaf3f8;color:#1f6d95;font-size:.7rem;font-weight:600;cursor:pointer}
.code-notes-chip[hidden]{display:none}
.code-notes-help{margin:0 0 8px;color:#5b6b73;font-size:.8rem}
.code-notes-input{box-sizing:border-box;width:100%;min-height:150px;padding:9px 11px;border:1px solid #c9dbe3;border-radius:10px;font:inherit;font-size:.85rem;resize:vertical}
/* THE THINKING STYLE (the founder via the Master 2026-10-02): a build's progress lines read as "thinking", apart from TAO-1's reply -- muted (>= 4.5:1),
   italic, a little smaller, a live dot on the newest line; folded after the build into "Built in 1m 05s · Show steps". Dark: theme-dark.css. */
.code-thinking{margin:0 0 10px;color:#566a79;font-style:italic;font-synthesis:style;font-size:.86rem;line-height:1.5} /* font-synthesis: a font with no italic face still slants */
.code-thinking-line{margin:0 0 3px}
.code-thinking-line.is-live{position:relative;padding-left:15px}
.code-thinking-line.is-live::before{content:"";position:absolute;left:1px;top:.58em;width:7px;height:7px;border-radius:50%;background:currentColor;animation:code-think-pulse 1.2s ease-in-out infinite}
@keyframes code-think-pulse{0%,100%{opacity:.3}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.code-thinking-line.is-live::before{animation:none}}
details.code-thinking.is-done>summary{cursor:pointer;list-style:none;font-style:normal;width:max-content;max-width:100%;padding:2px 0}
details.code-thinking.is-done>summary::-webkit-details-marker{display:none}
details.code-thinking.is-done>summary:focus-visible{outline:2px solid #3f7fa8;outline-offset:2px;border-radius:4px}
.code-thinking-toggle{text-decoration:underline;text-underline-offset:2px}
details.code-thinking.is-done[open]>summary{margin-bottom:6px}
/* ONE PLACE FOR THE STEPS (the Master 2026-10-02): a build card beside a thinking block shows its header, the current stage and the plan only; after a clean
   Ready the fold in the transcript is the one place for the steps (a card with a failed step or an error stays, with "Fix what failed") */
.code-progress.has-thinking .code-progress-steps,.code-progress.has-thinking .code-progress-idle,.code-progress.has-thinking:not(.is-error) .code-progress-current{display:none}
/* THE CARD HOLDS THE LINES (the founder's screenshot via the Master 2026-10-02): while a build runs its thinking lines sit inside the card, under the stage + timer */
.code-progress .code-thinking{margin:12px 0 0}
.code-progress .code-thinking-line:last-child{margin-bottom:0}
.code-progress.has-thinking.is-folded:not(.is-error){display:none}
/* THE FULL CONVERSATION (the founder via the Master 2026-10-02): the stored thread drawn on open, its notes and its files/checks line; a fold keeps the
   lines that name a failure, an error or a fix in sight */
.code-history{display:flex;flex-direction:column;gap:inherit}
.code-history-top{height:1px}
.code-history-turn{display:flex;flex-direction:column;gap:12px}
.code-history-note{align-self:flex-end;max-width:85%;color:#5b7180;font-size:.78rem;line-height:1.45}
.code-history-meta{color:#5b7180;font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}
.code-history-meta.is-error{color:#9a3f2c}
.code-history-meta.is-fixed{color:#2f6b4c}
.code-thinking-problems{margin:2px 0 10px;color:#9a3f2c;font-size:.84rem;line-height:1.45}
.code-thinking-problems p{margin:0 0 3px}
.code-thinking-problems p.is-fix{color:#2f6b4c} /* what was fixed: in sight, not alarming */
/* REVIEW + UNDO (2026-10-02): the card after each turn, the History list in Changes */
.code-review{align-self:stretch;padding:12px 14px;border:1px solid #d8e7ed;border-radius:13px;background:#fff;color:#385e72;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-review-head{display:flex;align-items:center;gap:10px}
.code-review-head strong{color:#294d61;font-size:.84rem}
.code-review-stat{color:#7d94a1;font:600 .72rem ui-monospace,SFMono-Regular,Menlo,monospace}
.code-review-undo{margin-left:auto;padding:6px 12px;border:1px solid #cddde4;border-radius:8px;background:#f8fbfc;color:#365f76;font-size:.74rem;font-weight:700;cursor:pointer}
.code-review-undo:hover:not(:disabled){border-color:#365f76}
.code-review-undo:disabled{opacity:.5;cursor:default}
.code-review-summary{margin:6px 0 0;color:#5a7584;font-size:.8rem;line-height:1.5}
.code-review-files{display:grid;gap:4px;margin:10px 0 0;padding:0;list-style:none}
.code-review-file{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;border:1px solid #e3ecef;border-radius:8px;background:#fbfdfd;color:#385e72;font-size:.76rem;text-align:left;cursor:pointer}
.code-review-file:hover{border-color:#c4d8e1}
.code-review-file[aria-expanded="true"]{border-bottom-left-radius:0;border-bottom-right-radius:0}
.code-review-file code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}
.code-review-kind{flex:none;min-width:58px;font-size:.68rem;font-weight:700}
.code-review-kind.is-new{color:#2e8a5f}.code-review-kind.is-edited{color:#3d7d9f}.code-review-kind.is-removed{color:#a9564c}
.code-review-count{flex:none;color:#8aa0ac;font:600 .7rem ui-monospace,SFMono-Regular,Menlo,monospace}
.code-review-diff{max-height:420px;overflow:auto;border:1px solid #e3ecef;border-top:0;border-radius:0 0 8px 8px;color:#7d94a1;font-size:.74rem}
.code-review-diff>.code-diff .code-diff-file{border:0;border-radius:0}
.code-review-diff>.code-diff .code-diff-head{display:none}
.code-review-more{padding:2px 8px;color:#8aa0ac;font-size:.72rem}
.code-review-note{margin:9px 0 0;color:#7d6a2c;font-size:.76rem}
.code-review.is-undone .code-review-files,.code-review.is-undone .code-review-summary{opacity:.55}
.code-review-done{align-self:center;padding:6px 12px;border-radius:99px;background:#eef5f7;color:#557383;font-size:.76rem}
.code-history{display:grid;gap:6px;padding:4px 17px 14px}
.code-history-head{padding:10px 17px 6px;color:#566d79;font-size:.72rem;font-weight:700}
.code-history>.code-history-head{padding:6px 0 2px}
.code-history-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e3ecef;border-radius:9px;background:#fff}
.code-history-row.is-current{border-color:#bcd6e1;background:#f5fafc}
.code-history-text{display:grid;flex:1;min-width:0;gap:2px;padding:0;border:0;background:transparent;color:#385e72;text-align:left;cursor:pointer}
.code-history-text:disabled{cursor:default}
.code-history-text strong{overflow:hidden;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}
.code-history-text span{color:#8aa0ac;font-size:.69rem}
.code-history-back{flex:none;padding:5px 10px;border:1px solid #cddde4;border-radius:8px;background:#fff;color:#365f76;font-size:.7rem;font-weight:700;cursor:pointer}
.code-history-back:disabled{opacity:.5;cursor:default}
.code-history-files{margin:0 0 4px}
@media(max-width:700px){.code-review{padding:11px 12px}.code-review-kind{min-width:50px}.code-review-stat{display:none}}
:root[data-theme="dark"] .code-review,:root[data-theme="dark"] .code-history-row{border-color:#2a3f4c;background:#14212a;color:#cfe0e8}
:root[data-theme="dark"] .code-review-head strong,:root[data-theme="dark"] .code-history-text strong{color:#e2ecf1}
:root[data-theme="dark"] .code-review-summary{color:#a9bcc7}
:root[data-theme="dark"] .code-review-file{border-color:#2a3f4c;background:#182833;color:#cfe0e8}
:root[data-theme="dark"] .code-review-file:hover{border-color:#3b5666}
:root[data-theme="dark"] .code-review-diff{border-color:#2a3f4c;color:#a9bcc7}
:root[data-theme="dark"] .code-review-kind.is-new{color:#8fd6ae}:root[data-theme="dark"] .code-review-kind.is-edited{color:#8fc3e0}:root[data-theme="dark"] .code-review-kind.is-removed{color:#f3a39a}
:root[data-theme="dark"] .code-review-undo,:root[data-theme="dark"] .code-history-back{border-color:#36505f;background:#182833;color:#cfe0e8}
:root[data-theme="dark"] .code-review-note{color:#e3c46f}
:root[data-theme="dark"] .code-review-done{background:#182833;color:#a9bcc7}
:root[data-theme="dark"] .code-history-row.is-current{border-color:#3b5666;background:#182833}
:root[data-theme="dark"] .code-history-text{color:#cfe0e8}
:root[data-theme="dark"] .code-history-head{color:#9fb3bf}
:root[data-theme="dark"] .code-diff-file>.code-diff-hunk{background:#14212a;color:#7f98a6}
:root[data-theme="dark"] .code-diff-file>div span:first-child{border-right-color:#2a3f4c;color:#6f8794}
:root[data-theme="dark"] .code-diff-file{border-color:#2a3f4c;background:#14212a}
/* SAVE TO GITHUB (2026-10-02): a repository project's strip under the title */
.code-repo-bg{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:7px;color:#6d8593;font-size:.74rem}
.code-github{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:9px 25px;border-bottom:1px solid #e2eaee;background:#f7fbfc;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.code-github-main{display:flex;flex-wrap:wrap;align-items:center;gap:2px 9px;flex:1 1 220px;min-width:0}
.code-github-mark{color:#3d7d9f;font-size:.95rem}
.code-github-repo{flex:none;max-width:100%;color:#294d61;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.code-github-status{color:#7d94a1;font-size:.74rem}
.code-github-actions{display:flex;align-items:center;gap:7px}
.code-github-actions button,.code-github-view{white-space:nowrap;padding:6px 12px;border:1px solid #cddde4;border-radius:8px;background:#fff;color:#365f76;font-size:.74rem;font-weight:700;text-decoration:none;cursor:pointer}
.code-github-pr{border-color:#365f76!important;background:#365f76!important;color:#fff!important}
.code-github-actions button:disabled{opacity:.5;cursor:default}
.code-github-details{flex-basis:100%;color:#6d8593;font-size:.72rem}
.code-github-details summary{cursor:pointer;width:max-content}
.code-github-details dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 12px;margin:6px 0 2px}
.code-github-details dt{color:#8aa0ac}.code-github-details dd{margin:0;color:#385e72;overflow-wrap:anywhere}
.code-review-done a{margin-left:4px;color:#365f76;font-weight:700}
@media(max-width:700px){.code-github{padding:8px 13px}.code-github-actions{flex-basis:100%}.code-github-actions button,.code-github-view{flex:1;text-align:center}}
:root[data-theme="dark"] .code-github{border-color:#2a3f4c;background:#14212a}
:root[data-theme="dark"] .code-github-repo{color:#e2ecf1}
:root[data-theme="dark"] .code-github-status,:root[data-theme="dark"] .code-github-details,:root[data-theme="dark"] .code-repo-bg{color:#9fb3bf}
:root[data-theme="dark"] .code-github-actions button,:root[data-theme="dark"] .code-github-view{border-color:#36505f;background:#182833;color:#cfe0e8}
:root[data-theme="dark"] .code-github-pr{border-color:#5d8fae!important;background:#2f5d77!important;color:#fff!important}
:root[data-theme="dark"] .code-github-details dd{color:#cfe0e8}
:root[data-theme="dark"] .code-review-done a{color:#8fc3e0}
/* THE SIGNED-OUT ALLOWANCE BANNER (JTAO_ANON_WARNING) */
.code-anon-warning{display:flex;align-items:center;gap:12px;margin:0 0 8px;padding:8px 12px;border:1px solid #ecd9a8;border-radius:12px;background:#fff8e6;color:#6b5320;font-size:.8rem;line-height:1.45}
.code-anon-warning p{margin:0;flex:1}
.code-anon-warning.is-empty{border-color:#f0d0cb;background:#fdf1ef;color:#8a3a31}
.code-anon-signin{flex:0 0 auto;display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:10px;background:#183b51;color:#fff;font-weight:650;text-decoration:none}
@media(max-width:700px){.code-layout:has(.code-anon-warning.is-work) .code-artifacts-open{bottom:236px}} /* the phone's Project output button sits above the banner, not on it */
/* PLAN MODE (A7): the plan card under TAO-1's answer, Approve plan · Change it; the sticky Plan first pill */
.code-plan-card{margin:10px 0;padding:14px 16px;border:1px solid #cfe0ea;border-radius:14px;background:#fff}
.code-plan-card h3{margin:0 0 4px;font-size:.95rem}
.code-plan-card-summary{margin:0 0 8px;color:#4f6d7d;font-size:.84rem;line-height:1.5}
.code-plan-card ol{margin:0 0 8px;padding-left:20px;font-size:.84rem;line-height:1.55}
.code-plan-card li code{font-size:.74rem;color:#46748e}
.code-plan-card-detail{display:block;color:#5d7582;font-size:.78rem}
.code-plan-card-questions p{margin:6px 0 2px;font-weight:650;font-size:.8rem}
.code-plan-card-questions ul{margin:0;padding-left:18px;font-size:.8rem;color:#4f6d7d}
.code-plan-card-estimate{margin:8px 0 0;color:#5d7582;font-size:.76rem}
.code-plan-card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.code-plan-approve,.code-plan-change{min-height:40px;padding:8px 16px;border-radius:10px;font-weight:650;font-size:.84rem;cursor:pointer}
.code-plan-approve{border:1px solid #183b51;background:#183b51;color:#fff}
.code-plan-change{border:1px solid #bdceda;background:#fff;color:#25485d}
.code-plan-card.is-superseded{opacity:.6}
.code-plan-card-state{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#4f7a90}
.code-plan-card.is-approved .code-plan-card-state{color:#2e6f50}
.code-plan-first-pill{border-color:#9cc3d6;background:#eef6fb;color:#25485d}
/* THE HIT FLOOR (row 15, P40; the founder's 44 px phone rule): on touch screens and phone widths every small control gets an invisible hit box of at
   least 44 x 44 px around it (a transparent ::after); nothing it shows changes. A box never covers a neighbour's face: End session grows away from Save. The Project output button is positioned already: it grows instead. */
@media (pointer:coarse),(max-width:700px){
  :where(.code-header .mode-nav a,.code-header .account-link,.code-header .chat-brand,.code-icon-button,.code-session-more,#code-send,.code-chip,.code-save-button,.code-secondary,.code-deploy,.code-thinking-summary,#code-from-new,#code-from-repo,.code-artifacts [role=tab],.code-plan-approve,.code-plan-change,.code-anon-signin,.code-queued-remove){position:relative}
  :where(.code-header .mode-nav a,.code-header .account-link,.code-header .chat-brand,.code-icon-button,.code-session-more,#code-send,.code-chip,.code-save-button,.code-secondary,.code-deploy,.code-thinking-summary,#code-from-new,#code-from-repo,.code-artifacts [role=tab],.code-plan-approve,.code-plan-change,.code-anon-signin,.code-queued-remove)::after{content:'';position:absolute;top:min(0px,calc(50% - 22px));bottom:min(0px,calc(50% - 22px));left:min(0px,calc(50% - 22px));right:min(0px,calc(50% - 22px))}
  .code-artifacts-open{min-height:44px}
  #code-end-session::after{left:0} /* it ends the session: its box must not reach Save */
}
/* THE PHONE HEADER (pending the founder; JTAO_PHONE_ACCOUNT_ICON): on a phone "Your account ↗" overlapped the Repo tab (390 px); a signed-in account
   shows a person icon instead (its aria-label keeps the name); "Sign in" stays words */
@media(max-width:700px){
  .code-account-icon .code-header .account-link[data-signed-in]{font-size:0;width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:99px}
  .code-account-icon .code-header .account-link[data-signed-in]::before{content:'';width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7z'/%3E%3C/svg%3E") center/contain no-repeat}
}
/* AUTOMATIC TURNS (test_fix): a plain status line instead of a user bubble; a queued fix keeps the failed card neutral */
.code-auto-turn{margin:10px 0 4px;color:#4f6d7d;font-size:.82rem;font-style:italic}
.code-progress-checks-line.is-error.is-fixing{border-color:#d6e3ea;background:#f3f8fb;color:#4f6d7d}
.code-progress-checks-line.is-error.is-fixing::before{content:'↻'}
.code-msg-auto .code-queued-text{font-style:italic}
/* A15 LIVE TERMINAL: a block per command, the dev server's rolling block on top, stderr marked, the exit line */
.code-term .code-term-out{max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.code-term .is-stderr{color:#ffa79c} /* light red: the output box is dark in both themes */
.code-term-foot{margin-top:4px;color:#5d7582;font-size:.72rem;font-variant-numeric:tabular-nums}
.code-term.is-error .code-term-foot{color:#a2443a;font-weight:650}
.code-term-server{border-left:3px solid #9cc3d6;padding-left:8px}
.code-plan-text>summary{cursor:pointer;color:#4f6d7d;font-size:.78rem;margin:4px 0}

/* FULL-STACK APPS (W7 2026-10-03): the live-app panel, its secrets, a refusal's reasons, a failed start's log */
.code-app-panel p{margin:0 0 8px}
.code-app-secrets{margin-top:10px}
.code-app-secrets p{margin:0 0 6px}
.code-app-secrets ul,.code-app-reasons{margin:0 0 8px;padding-left:18px}
.code-app-secrets li{margin:3px 0}
.code-app-secrets li button{margin-left:6px;padding:1px 8px;border:1px solid #cfdbe1;border-radius:999px;background:#fff;color:#2c4a5b;font-size:.7rem;cursor:pointer}
.code-app-secrets form{display:flex;flex-wrap:wrap;gap:6px}
.code-app-secrets input{flex:1 1 120px;min-width:0;padding:5px 8px;border:1px solid #cfdbe1;border-radius:8px;font:inherit;font-size:.76rem;background:#fff;color:#263e4e}
.code-app-secrets form button{padding:5px 12px;border:1px solid #315e76;border-radius:999px;background:#315e76;color:#fff;font-size:.76rem;font-weight:600;cursor:pointer}
.code-app-log{max-height:180px;margin:0 0 8px;padding:8px;overflow:auto;border-radius:8px;background:#fff;color:#5b3a33;font-size:.7rem;white-space:pre-wrap;overflow-wrap:anywhere}
/* THE FLOATING "Project output" PILL (phones/tablets, <= 980 px) sits over the transcript's bottom: room under the last line so the end of a card scrolls clear of it (steering's real-tap pass 10-04: a plan line ended under the pill) */
@media(max-width:980px){.code-transcript{padding-bottom:84px}}
/* A14 images: the composer while a file is dragged over it */
.code-composer.is-drop,.code-start-form.is-drop{border-color:#4aa3c7;box-shadow:0 0 0 3px #4aa3c733}

/* THE WORKER DIED MID-BUILD (2026-10-04): the restarted card's line + Resend stay visible on a thinking card too */
.code-progress.is-error.has-thinking .code-progress-idle:not([hidden]){display:block}
.code-progress-idle+.code-resend{margin:8px 0 2px}
/* #22 (2026-10-04): the opt-in 'Notify me when it’s done' in a running card */
.code-progress .finish-notify-offer{display:inline-flex;margin:8px 0 2px;padding:4px 12px;border:1px solid var(--line,#c9d8e2);border-radius:999px;background:transparent;color:var(--blue,#315e76);font-size:.74rem;font-weight:600;cursor:pointer}
.code-progress .finish-notify-offer:disabled{opacity:.6;cursor:default}
