@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#070c15;--panel:#0d1420;--panel2:#111a28;--line:#1a3440;--line2:#243342;--cyan:#42c9f4;--cyan2:#13b8ea;--green:#39d899;--yellow:#edbf55;--red:#f06a83;--text:#d8e1ec;--mut:#6f7b8f;--soft:#9aa7b8;--nav:76px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}body{background:radial-gradient(700px 380px at 50% -180px,#12304455,transparent),var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}.mono,.eyebrow,.meta,.state,.field-label{font-family:'JetBrains Mono',monospace}.shell{max-width:760px;margin:auto;min-height:100vh;padding:0 14px calc(var(--nav) + env(safe-area-inset-bottom) + 18px)}.top{height:88px;display:flex;align-items:center;justify-content:center;position:sticky;top:0;z-index:10;background:linear-gradient(var(--bg) 74%,transparent);text-align:center}.top h1{font-size:16px;letter-spacing:.02em;margin:0}.top small{display:block;color:var(--mut);font:10px 'JetBrains Mono';letter-spacing:.22em;margin-top:3px}.back,.top-action{position:absolute;border:0;background:none;color:var(--cyan);font-size:27px;padding:12px}.back{left:0}.top-action{right:0;font-size:20px}.hero{padding:12px 4px 20px}.eyebrow,.field-label{font-size:10px;color:var(--mut);letter-spacing:.2em;text-transform:uppercase}.hero h2{font-size:31px;margin:12px 0 4px;letter-spacing:-.04em}.hero p{color:var(--mut);margin:0;font-size:13px}.status-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.chip{border:1px solid var(--line2);border-radius:999px;padding:6px 9px;font:10px 'JetBrains Mono';color:var(--soft)}.chip i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:5px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:24px 4px 10px}.section-title span:first-child{font:11px 'JetBrains Mono';letter-spacing:.18em;color:var(--mut);text-transform:uppercase}.section-title a{font-size:12px;color:var(--cyan)}.card{position:relative;background:linear-gradient(145deg,#0e1623,#0b121d);border:1px solid var(--line2);border-radius:14px;padding:16px;margin:10px 0;box-shadow:0 10px 25px #0002}.card.click{cursor:pointer}.card.click:active{transform:scale(.992)}.card.accent{border-left:3px solid var(--cyan);box-shadow:-8px 0 22px #14bbed10}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.title{font-size:16px;font-weight:600;line-height:1.35}.meta{font-size:10px;color:var(--mut);margin-top:9px;letter-spacing:.02em}.path{font:11px 'JetBrains Mono';color:#7f8da2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:600;letter-spacing:.12em;background:#173047;color:var(--cyan)}.state:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.state.done{background:#12352e;color:var(--green)}.state.fail,.state.cancel{background:#351d27;color:var(--red)}.state.wait{background:#3b321b;color:var(--yellow)}.state.run{animation:pulse 1.6s infinite}@keyframes pulse{50%{box-shadow:0 0 20px #42c9f433}}.duration{font:11px 'JetBrains Mono';color:var(--mut)}.arrow{color:var(--cyan);font-size:18px}.btn{width:100%;border:1px solid var(--line2);border-radius:10px;padding:15px 18px;background:#101827;color:var(--text);font-weight:650;margin:6px 0}.btn.primary{background:linear-gradient(110deg,#48d2fb,#2fb7e7);color:#06111a;border:0;box-shadow:0 6px 25px #31c5f42b}.btn.danger{border-color:#5a2936;color:var(--red);background:#26131b}.btn.warn{border-color:#6c5524;color:var(--yellow);background:#211b11}.btn:disabled{opacity:.32;cursor:not-allowed}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.floating-actions{position:sticky;bottom:calc(var(--nav) + 8px);z-index:8;background:linear-gradient(transparent,var(--bg) 28%);padding:25px 0 5px}.nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);height:calc(var(--nav) + env(safe-area-inset-bottom));padding:8px 10px env(safe-area-inset-bottom);background:#090f19ee;border-top:1px solid #162431;backdrop-filter:blur(16px);display:grid;grid-template-columns:repeat(5,1fr)}.nav button{border:0;background:none;color:#566477;font-size:9px;display:flex;flex-direction:column;align-items:center;gap:4px}.nav b{font-size:20px;font-weight:400}.nav button.active{color:var(--cyan)}.form{padding:3px 2px}.field{margin:18px 0}.field-label{display:flex;justify-content:space-between;margin:0 3px 9px}.control,textarea{width:100%;background:#0b121d;border:1px solid var(--line2);border-radius:10px;color:var(--text);padding:15px;outline:none}.control:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #42c9f412}textarea{min-height:166px;resize:vertical;line-height:1.65}.textarea-wrap{position:relative}.mic{position:absolute;right:12px;bottom:12px;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:#101927;color:var(--cyan);font-size:20px}.mic.recording{color:var(--red);border-color:var(--red);animation:pulse 1s infinite}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seg button{padding:14px 5px;background:#0a111b;border:1px solid #192738;color:#8894a6;border-radius:9px}.seg button.active{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 12px #42c9f422}.hint{color:var(--mut);font-size:12px;line-height:1.55;margin-top:8px}.drop{border:1px dashed #284252;border-radius:10px;padding:18px;text-align:center;color:var(--cyan);font:12px 'JetBrains Mono';display:block}.drop input{display:none}.file-pill{display:flex;justify-content:space-between;align-items:center;background:#101a28;border-radius:8px;padding:10px;margin-top:7px;font:11px 'JetBrains Mono'}.session-select{max-height:290px;overflow:auto;background:#101827;border:1px solid var(--line);border-radius:10px;margin-top:4px}.select-row{padding:13px 14px;border-bottom:1px solid #1d2938;font:12px 'JetBrains Mono';color:var(--soft)}.select-row.active{color:var(--cyan);background:#173048}.select-row:last-child{border:0}.log{background:#070b12;border-top:1px solid #1b303d;border-bottom:1px solid #1b303d;margin:12px -14px;padding:16px 18px;min-height:340px;max-height:62vh;overflow:auto;font:12px/1.65 'JetBrains Mono';color:#abb7c8}.log-line{margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}.log-line.tool{color:#63c7e8}.log-line.phase{color:var(--yellow)}.log-line.system{color:#688198}.plan,.result{white-space:pre-wrap;line-height:1.62;color:#bdc7d5;font-size:13px}.conversation .msg{border:1px solid #1e303d;border-radius:12px;padding:14px;margin:10px 0;white-space:pre-wrap;line-height:1.55;font-size:13px}.conversation .user{border-color:#2d6e85;background:#102333}.conversation .assistant{background:#0e1622}.changed{list-style:none;padding:0;margin:0}.changed li{display:grid;grid-template-columns:20px 1fr auto;gap:8px;padding:10px 2px;font:11px 'JetBrains Mono';border-bottom:1px solid #182431}.plus{color:var(--green)}.minus{color:var(--red)}.checks{display:grid;gap:7px}.check{display:flex;justify-content:space-between;border-bottom:1px solid #1b2735;padding:9px 0;font-size:12px}.ok{color:var(--green)}.bad{color:var(--red)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.stat{background:#0c1420;border:1px solid #1b2938;border-radius:10px;padding:12px 6px;text-align:center}.stat b{font-size:20px;display:block}.stat span{font-size:9px;color:var(--mut)}.empty{text-align:center;color:var(--mut);padding:48px 20px}.files .file-row{display:grid;grid-template-columns:25px 1fr auto;gap:9px;padding:13px 8px;border-bottom:1px solid #172331;font:12px 'JetBrains Mono';cursor:pointer}.file-row small{color:var(--mut)}.viewer{white-space:pre-wrap;overflow:auto;background:#070b12;border:1px solid #1b2c38;border-radius:10px;padding:15px;font:11px/1.55 'JetBrains Mono';max-height:70vh}.viewer-img{max-width:100%;border-radius:10px}.splash{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font:16px 'JetBrains Mono';letter-spacing:.15em}.splash small{font-size:8px;color:var(--mut);margin-top:5px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--cyan);border-radius:12px;color:var(--cyan);margin-bottom:14px}.loader{width:24px;height:24px;border:2px solid #20303c;border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite;margin-top:25px}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;z-index:99;left:50%;top:16px;transform:translateX(-50%);width:min(520px,calc(100% - 28px));pointer-events:none}.toast{padding:13px 15px;border-radius:10px;background:#172333;border:1px solid #304255;box-shadow:0 12px 40px #0008;margin-bottom:7px;font-size:12px}.toast.error{border-color:#6c3041;color:#ff9caf}.auth-error{max-width:500px;margin:120px auto;padding:24px;text-align:center}.auth-error h2{font-size:20px}.auth-error p{color:var(--mut);line-height:1.6}@media(min-width:700px){.shell{padding-left:28px;padding-right:28px}.top{height:82px}.cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cards-grid .card{margin:0}.hero h2{font-size:36px}}

/* Chat-first session UI and Telegram viewport hardening. */
:root{--app-height:100vh;--tg-safe-bottom:0px}.shell{min-height:var(--app-height);padding-bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 18px)}.nav{height:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)));padding-bottom:max(env(safe-area-inset-bottom),var(--tg-safe-bottom))}.task-card,.project-card{-webkit-touch-callout:none;user-select:none;touch-action:pan-y}.task-card.pinned{border-color:#3d8191;box-shadow:-8px 0 22px #14bbed18,0 0 20px #42c9f412}.task-card.pressing,.project-card.pressing{transform:scale(.985);border-color:var(--cyan)}.card-side{display:flex;align-items:center;gap:8px;min-width:0}.card-menu{width:34px;height:34px;border:0;border-radius:8px;background:#111c2a;color:var(--soft);font-size:18px;line-height:1}.file-pill span{display:grid;gap:3px;min-width:0}.file-pill b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-pill small{color:var(--mut);font-size:9px}.file-pill button{width:34px;height:34px;border:0;border-radius:8px;background:#1c2634;color:var(--red);font-size:18px}.conversation,.conversation *{-webkit-user-select:text;user-select:text}.session-composer{position:sticky;bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 6px);z-index:9;margin:18px -4px 4px;padding:10px;background:#0b121df5;border:1px solid var(--line2);border-radius:14px;box-shadow:0 -16px 36px #050911cc;backdrop-filter:blur(18px)}.composer-head{height:30px;display:flex;align-items:center;justify-content:space-between;color:var(--soft);font:10px 'JetBrains Mono';letter-spacing:.08em}.composer-head button{border:0;background:transparent;color:var(--cyan);padding:7px 3px;font:10px 'JetBrains Mono'}.session-composer.collapsed{padding:7px 10px}.session-composer.collapsed .composer-body{display:none}.session-composer textarea{min-height:58px;max-height:28vh;padding:11px 13px;resize:vertical}.session-composer #attached{max-height:140px;overflow:auto}.composer-row{display:grid;grid-template-columns:44px 44px 1fr;gap:7px;align-items:center;margin-top:7px}.composer-icon{height:44px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:10px;background:#111a28;color:var(--cyan);font-size:18px;cursor:pointer}.composer-icon input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.composer-send{height:44px;margin:0;padding:9px}.composer-hint{margin:5px 2px 0;font-size:9px}.session-actions{margin-top:7px;border-top:1px solid #1a2a38;padding-top:7px}.session-actions summary{color:var(--cyan);font:10px 'JetBrains Mono';cursor:pointer;padding:4px 2px}.session-actions .model-grid .field{margin:12px 0}.task-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.danger-outline{border-color:#643041;color:var(--red);background:#20131a}.chat-progress{display:flex;align-items:center;gap:9px;margin-top:7px;padding:8px;border-radius:9px;background:#101a28;color:var(--soft);font-size:11px}.chat-progress button{margin-left:auto;border:1px solid #5a2936;border-radius:7px;background:#26131b;color:var(--red);padding:7px 10px}.conversation .msg.pending{opacity:.75}.keyboard-open .nav{display:none}.keyboard-open .shell{padding-bottom:18px}.keyboard-open .session-composer{bottom:6px}.keyboard-open .floating-actions{bottom:6px}
@media(max-height:560px) and (min-width:560px){:root{--nav:52px}.top{height:54px;position:relative}.top small{display:none}.hero{padding-top:2px;padding-bottom:10px}.hero h2{margin-top:7px}.session-hero .status-row{margin-top:8px}.nav{padding-top:4px}.nav button{font-size:0;gap:0}.nav b{font-size:18px}.section-title{margin-top:14px}.conversation .msg{padding:10px;margin:7px 0;font-size:12px}.session-composer{padding:7px 9px;margin-top:8px}.session-composer:not(.collapsed){position:relative;bottom:auto}.session-composer textarea{min-height:52px;max-height:24vh}.session-composer #attached{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:78px;overflow:auto}.session-composer .file-pill{margin:0;padding:6px}.composer-row{margin-top:5px}.composer-hint{display:none}.session-actions{margin-top:5px}.log{min-height:180px;max-height:48vh}}

/* AUDIT-3: overflow + copy buttons */
.conversation .msg{position:relative;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.plan,.result,.md-body,.log-line{overflow-wrap:anywhere;word-break:break-word}
.md-body code,.plan code,.result code{background:#0e1d2a;border-radius:4px;padding:1px 5px;font:11px 'JetBrains Mono'}
.code-wrap{position:relative;margin:8px 0}
.md-code{overflow-x:auto;max-width:100%;background:#070b12;border:1px solid #1b2c38;border-radius:8px;padding:11px 13px;margin:0;font:11px/1.55 'JetBrains Mono';white-space:pre}
.code-copy{position:absolute;top:5px;right:5px;width:30px;height:30px;border:1px solid #22394a;border-radius:7px;background:#101a28e6;color:var(--soft);font-size:14px;line-height:1;z-index:2}
.msg-copy{position:absolute;top:8px;right:8px;width:30px;height:30px;border:0;border-radius:7px;background:#16243466;color:var(--soft);font-size:14px;line-height:1;z-index:2}
.code-copy:active,.msg-copy:active{color:var(--cyan);border-color:var(--cyan)}
.msg-actions{position:absolute;top:8px;right:8px;z-index:2;display:flex;align-items:center;gap:5px}
.msg-actions .msg-copy{position:static;top:auto;right:auto}
.msg-speak,.msg-speech-stop{width:32px;height:30px;border:1px solid #22394a;border-radius:7px;background:#101a28e6;color:var(--cyan);font-size:14px;line-height:1;padding:0}
.msg-speech-stop{color:var(--red);border-color:#5a2936}
.msg-speak.speaking{color:#06111a;background:var(--cyan);box-shadow:0 0 14px #42c9f455}
.conversation .assistant:has(.msg-speak){padding-top:48px}
.voice-settings{margin-top:14px}.voice-mode-seg{grid-template-columns:repeat(3,1fr)}.voice-test{margin-top:12px}


/* UX-FORGE-CARDS-1: session pin/archive + ⋯ card menu popover */
.session-card{-webkit-touch-callout:none;user-select:none;touch-action:pan-y}
.session-card.pinned{border-color:#3d8191;box-shadow:0 0 20px #42c9f412}
.session-card.pressing{transform:scale(.985);border-color:var(--cyan)}
.task-card.archived,.session-card.archived{opacity:.5}
.card-menu-pop{position:fixed;z-index:80;min-width:186px;background:#111c2a;border:1px solid var(--line2);border-radius:12px;box-shadow:0 18px 44px #000b;padding:5px;display:flex;flex-direction:column}
.card-menu-pop button{border:0;background:none;color:var(--text);text-align:left;padding:13px 14px;border-radius:8px;font-size:13px}
.card-menu-pop button:active{background:#18283a;color:var(--cyan)}
.inline-turn{border:1px solid #24384a;border-radius:12px;padding:12px;margin:10px 0;background:#0e1826}
.inline-turn .turn-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:8px}
.inline-turn .turn-log{color:var(--soft);font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.inline-turn .turn-error{color:var(--red);white-space:pre-wrap;overflow-wrap:anywhere}
.inline-turn .turn-edit{margin:8px 0}
.inline-turn .turn-edit textarea{width:100%;box-sizing:border-box;background:#0b1420;border:1px solid var(--line);border-radius:9px;color:var(--text);padding:9px;font-size:13px;resize:vertical;margin-bottom:8px}
.inline-turn .btn-row{margin-top:9px}
.turn-stop{background:none;border:1px solid var(--line);color:var(--soft);border-radius:8px;padding:4px 10px;font-size:11px;cursor:pointer}
.turn-stop:active{background:#1a2634}
.md-table{background:#0b1420;border:1px solid var(--line);border-radius:9px;padding:9px;font-size:10.5px;line-height:1.6;overflow-x:auto;white-space:pre;margin:7px 0}
.md-quote{border-left:3px solid var(--line);padding:2px 0 2px 10px;color:var(--soft);margin:5px 0}
.md-hr{border:none;border-top:1px solid var(--line);margin:11px 0}
.sys-chip{text-align:center;color:var(--mut);font-size:10px;letter-spacing:.08em;margin:9px 0}
.md-body a{color:var(--cyan);text-decoration:underline;overflow-wrap:anywhere}
.md-li{margin:3px 0;padding-left:14px;text-indent:-14px}

/* FORGE-SEARCH-1: session deep-search popup + mic overlay fix */
.textarea-wrap textarea{padding-right:64px}
.textarea-wrap .mic{opacity:.45}
.textarea-wrap .mic.recording,.textarea-wrap .mic:active,.textarea-wrap .mic:focus{opacity:1}
.search-pop{position:fixed;inset:0;z-index:70;background:#050911cc;backdrop-filter:blur(6px);display:flex;justify-content:center;padding:14px}
.search-panel{width:min(640px,100%);max-height:min(78vh,640px);display:flex;flex-direction:column;background:#0d1420;border:1px solid var(--line2);border-radius:14px;padding:12px;box-shadow:0 24px 60px #000c;margin-top:max(10px,env(safe-area-inset-top))}
.search-head{display:flex;gap:8px;align-items:center}
.search-head input{flex:1;padding:12px 14px}
.search-close{width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line2);border-radius:10px;background:#111a28;color:var(--soft);font-size:16px}
.search-results{overflow:auto;margin-top:10px;-webkit-overflow-scrolling:touch}
.search-pop .empty{padding:22px 10px}
.search-hit{border:1px solid #1e303d;border-radius:11px;padding:11px 12px;margin:7px 0;cursor:pointer}
.search-hit:active{border-color:var(--cyan)}
.search-hit-title{font-size:14px;font-weight:600;line-height:1.35}
.search-hit-snip{color:var(--soft);font-size:12px;line-height:1.5;margin-top:5px;overflow-wrap:anywhere}
.search-hit .meta{margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* P2-020: task_quick + global Stop above nav / Telegram safe-area */
.seg-4{grid-template-columns:repeat(4,1fr)}
.seg-4 button{font-size:12px;padding:12px 4px}
.level-guide{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-bottom:10px}
.level-guide div{display:flex;gap:7px;align-items:flex-start;font-size:11px;color:var(--soft);line-height:1.35}
.level-guide b{color:var(--cyan);font:10px 'JetBrains Mono';min-width:18px}
.quick-mark{font:10px 'JetBrains Mono';color:var(--yellow);letter-spacing:.04em}
.task-card.quick-flow{border-left-color:var(--yellow)}
.quick-outline{border-color:#6c5524;color:var(--yellow);background:#211b11;margin-top:7px}
.shell.has-global-stop{padding-bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 78px)}
.global-stop{position:fixed;z-index:25;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 8px);width:min(732px,calc(100% - 28px));pointer-events:none}
.global-stop-btn{pointer-events:auto;margin:0;padding:12px 16px;box-shadow:0 10px 28px #000a}
.keyboard-open .global-stop{bottom:8px}
.keyboard-open .shell.has-global-stop{padding-bottom:78px}
.stop-picker-title,.card-menu-pop .stop-picker-title{padding:10px 14px 6px;color:var(--mut);font:10px 'JetBrains Mono';letter-spacing:.08em}

.shell.has-global-stop .floating-actions{bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 62px)}
.shell.has-global-stop .session-composer{bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 62px)}
.keyboard-open .shell.has-global-stop .floating-actions,.keyboard-open .shell.has-global-stop .session-composer{bottom:62px}

/* P2-021: chat-first surface, persistent policy, and Classic fallback. */
.new-chat-stage{min-height:calc(var(--app-height) - 170px);display:flex;flex-direction:column}
.empty-chat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:42px 18px 24px}
.empty-chat .brand-mark{margin:0 0 18px}
.empty-chat h2{font-size:27px;margin:0 0 9px}
.empty-chat p{max-width:440px;color:var(--mut);line-height:1.55;margin:0}
.new-chat-composer{position:sticky;margin-top:auto}
.compact-field{margin:0 0 8px}
.compact-field .control{min-height:42px;padding:8px 11px;font-size:11px}
.policy-line{margin:7px 2px;color:var(--soft);font:10px 'JetBrains Mono';letter-spacing:.025em}
.chat-settings{border-top:1px solid #1a2a38;margin-top:7px;padding-top:7px}
.chat-settings summary{color:var(--cyan);font:10px 'JetBrains Mono';cursor:pointer;padding:6px 2px}
.chat-settings .field{margin:11px 0}
.policy-grid{display:grid;grid-template-columns:1fr;gap:0}
.full-access-chip{display:inline-flex;align-items:center;border:1px solid #a13349;border-radius:999px;background:#35131d;color:#ff7189;padding:5px 9px;font:700 9px 'JetBrains Mono';letter-spacing:.09em;box-shadow:0 0 18px #ff46622b}
.revoke-copy{border-left:2px solid #6c3041;padding-left:9px;color:#c8909a}
.btn-row{flex-wrap:wrap}
.inline-turn .btn-row .btn{min-width:min(100%,180px)}
@media(min-width:620px){.policy-grid{grid-template-columns:repeat(3,1fr);gap:9px}.new-chat-composer{margin-left:auto;margin-right:auto;width:min(680px,100%)}}

/* P2-022: one understandable work mode and compact project-context notice. */
.work-mode-list{display:grid;gap:7px}
.work-mode{display:flex;align-items:flex-start;gap:10px;border:1px solid #213442;border-radius:11px;background:#0d1723;padding:11px 12px;cursor:pointer}
.work-mode:has(input:checked){border-color:#3e94a9;background:#10232d;box-shadow:0 0 0 1px #2b718244}
.work-mode.danger-mode:has(input:checked){border-color:#a74459;background:#28141b;box-shadow:0 0 0 1px #a7445944}
.work-mode input{margin:3px 0 0;accent-color:var(--cyan);flex:0 0 auto}
.work-mode span{display:grid;gap:3px;min-width:0}
.work-mode b{font-size:12px;color:var(--text);line-height:1.35}
.work-mode small{font-size:11px;color:var(--soft);line-height:1.45}
.context-notice{border:1px solid #244153;border-radius:11px;background:#0b1823;padding:10px 12px;margin:8px 0 12px;color:var(--soft);font-size:11px;line-height:1.5}
.context-ok{color:#8bd7c8;font-weight:650}
.context-notice details{margin-top:5px}
.context-notice summary{cursor:pointer;color:var(--cyan);font:10px 'JetBrains Mono';list-style:none}
.context-notice summary::-webkit-details-marker{display:none}
.context-notice details>div{border-top:1px solid #203746;margin-top:7px;padding-top:7px;overflow-wrap:anywhere}
.context-notice code{font-size:10px}

/* P2-021 mobile repair: keep long task titles, paths and code inside the viewport. */
html,body,#app{width:100%;max-width:100%;overflow-x:hidden}
.shell{width:100%;min-width:0}
.card,.hero,.conversation,.conversation .msg,.inline-turn,.result,.plan,.log,.code-wrap,.md-body,.changed,.checks,.viewer{min-width:0;max-width:100%}
.card-head>*{min-width:0}
.card-head .title{flex:1}
.title,.meta,.hero h2,.result,.plan,.turn-log,.turn-error,.changed li span,.check span{overflow-wrap:anywhere;word-break:break-word}
.md-code,.md-table,.viewer,.log{min-width:0;max-width:100%;-webkit-overflow-scrolling:touch}
.changed li{grid-template-columns:minmax(0,20px) minmax(0,1fr) minmax(0,auto)}
.changed li>span:last-child{white-space:nowrap}
.stop-icon{display:inline-block;flex:0 0 auto;width:.72em;height:.72em;margin-right:.48em;border-radius:2px;background:currentColor}
.global-stop-btn{display:flex;align-items:center;justify-content:center;min-width:0;white-space:nowrap}
.global-stop-btn .stop-label{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* P2-023: chronological chat timeline and non-disruptive mobile follow mode. */
.timeline-work{margin:12px 0}
.timeline-work>.eyebrow{margin:0 4px 6px}
.timeline-work.deep-linked{border-radius:16px;outline:2px solid rgba(255,190,68,.9);outline-offset:5px;animation:forge-focus 1.4s ease-out}
.timeline-files{margin:12px 0}
.timeline-files>.eyebrow{margin:0 4px 6px}
.lifecycle-note{margin:10px 0;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.4}
.lifecycle-note.ok{background:rgba(69,202,133,.1);border:1px solid rgba(69,202,133,.35);color:var(--green)}
.lifecycle-note.fail{background:rgba(255,91,105,.1);border:1px solid rgba(255,91,105,.35);color:var(--red)}
.lifecycle-note.rollback{background:rgba(255,190,68,.1);border:1px solid rgba(255,190,68,.35);color:var(--yellow)}
.lifecycle-note.resolved{background:rgba(109,129,153,.08);border:1px solid rgba(109,129,153,.28);color:var(--soft)}
.lifecycle-note.resolved b,.lifecycle-note.resolved span{display:block}.lifecycle-note.resolved b{color:var(--green);margin-bottom:5px}.lifecycle-note.resolved span{font:10px/1.45 'JetBrains Mono';overflow-wrap:anywhere}
.lifecycle-history{margin:10px 0;border:1px solid var(--line2);border-radius:10px;background:#09111b}.lifecycle-history>summary{padding:10px 12px;color:var(--mut);font:10px 'JetBrains Mono';cursor:pointer}.lifecycle-history>div{padding:0 10px 2px}
@keyframes forge-focus{0%{box-shadow:0 0 0 8px rgba(255,190,68,.28)}100%{box-shadow:0 0 0 0 rgba(255,190,68,0)}}
.session-new-messages{position:fixed;z-index:24;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 76px);width:auto;max-width:calc(100% - 36px);border:1px solid #3a8499;border-radius:999px;padding:10px 16px;background:#102b38f2;color:var(--cyan);box-shadow:0 10px 28px #000b;font:600 11px 'JetBrains Mono';white-space:nowrap;backdrop-filter:blur(14px)}
.shell.has-global-stop .session-new-messages{bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 136px)}
.keyboard-open .session-new-messages{bottom:72px}
.keyboard-open .shell.has-global-stop .session-new-messages{bottom:126px}
@media(max-height:560px) and (min-width:560px){.session-new-messages{bottom:calc(var(--nav) + max(env(safe-area-inset-bottom),var(--tg-safe-bottom)) + 62px)}}

/* P2-024: task-scoped file artifacts and full-screen mobile WebView reader. */
.nav{grid-template-columns:repeat(6,1fr)}
.session-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:#090f19;border:1px solid var(--line);border-radius:12px}
.session-tabs button{border:1px solid transparent;border-radius:8px;padding:10px;background:transparent;color:var(--mut)}
.session-tabs button.active{border-color:#28728c;background:#102331;color:var(--cyan)}
.artifact-grid{display:grid;gap:10px;min-width:0}
.file-artifact{min-width:0;border:1px solid var(--line2);border-radius:12px;padding:12px;background:#0c1420}
.artifact-head{display:flex;justify-content:space-between;gap:8px;color:var(--mut);font:9px 'JetBrains Mono'}
.artifact-kind{color:var(--cyan);text-transform:uppercase}.artifact-kind.created{color:var(--green)}.artifact-kind.modified{color:var(--yellow)}
.artifact-path{margin:9px 0 11px;color:var(--text);font:11px/1.45 'JetBrains Mono';overflow-wrap:anywhere;word-break:break-word}
.artifact-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.artifact-actions button,.artifact-viewer-actions button{min-width:0;border:1px solid var(--line2);border-radius:8px;padding:9px 5px;background:#111c2a;color:var(--cyan);font-size:10px}
.artifact-disclosure{margin:10px 0;border:1px solid var(--line2);border-radius:12px;background:#09111b;overflow:hidden}.artifact-disclosure>summary{display:flex;align-items:center;gap:8px;padding:12px;color:var(--cyan);font:10px 'JetBrains Mono';cursor:pointer;list-style:none}.artifact-disclosure>summary::-webkit-details-marker{display:none}.artifact-disclosure>summary::after{content:'⌄';order:3;margin-left:2px;transition:transform .15s ease}.artifact-disclosure[open]>summary::after{transform:rotate(180deg)}.artifact-disclosure .disclosure-count{order:2;margin-left:auto;min-width:24px;padding:3px 7px;border-radius:999px;background:#122333;color:var(--soft);text-align:center}.artifact-disclosure-body{padding:0 10px 10px;border-top:1px solid var(--line2)}.artifact-disclosure-body>.artifact-grid{padding-top:10px}
.legacy-diff{margin-top:12px;color:var(--mut);font:10px 'JetBrains Mono'}.legacy-diff summary{padding:10px 2px;cursor:pointer}
html.artifact-open,html.artifact-open body{overflow:hidden}
.artifact-viewer{position:fixed;z-index:200;inset:0;width:100%;height:var(--app-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);padding:env(safe-area-inset-top) 0 max(env(safe-area-inset-bottom),var(--tg-safe-bottom));overscroll-behavior:contain}
.artifact-viewer-head{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;min-height:64px;border-bottom:1px solid var(--line2);background:#090f19;padding:4px 6px}
.artifact-viewer-head button{height:44px;border:0;background:transparent;color:var(--cyan);font-size:25px}.artifact-viewer-head div{min-width:0;text-align:center}.artifact-viewer-head b,.artifact-viewer-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-viewer-head b{font-size:13px}.artifact-viewer-head small{margin-top:4px;color:var(--mut);font:8px 'JetBrains Mono'}
.artifact-viewer-body{min-width:0;max-width:100%;height:100%;margin:0;padding:16px;overflow:auto;white-space:pre;tab-size:2;background:#070b12;color:#c5d0df;font:11px/1.6 'JetBrains Mono';-webkit-overflow-scrolling:touch}
.artifact-viewer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 12px;border-top:1px solid var(--line2);background:#090f19}
@media(min-width:700px){.artifact-grid{grid-template-columns:1fr 1fr}.artifact-actions{grid-template-columns:repeat(4,1fr)}.artifact-viewer{left:50%;transform:translateX(-50%);width:min(900px,100%);border-left:1px solid var(--line2);border-right:1px solid var(--line2)}}

/* P1-035: exact-turn Codex interruption from a remote Forge session. */
.codex-native-runtime{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 13px;border:1px solid #734653;border-radius:12px;background:#25141b;color:var(--text)}
.codex-native-runtime>div{display:grid;gap:4px;min-width:0}.codex-native-runtime b{font-size:12px;color:#ff91a3}.codex-native-runtime span{font-size:11px;line-height:1.45;color:#d4a6ae}.codex-native-runtime .btn{flex:0 0 auto;padding:10px 12px;display:flex;align-items:center}
.codex-native-runtime.unavailable{border-color:#66522d;background:#231e12}.codex-native-runtime.unavailable b{color:var(--yellow)}.codex-native-runtime.unavailable span{color:#c7b98e}
@media(max-width:430px){.codex-native-runtime{align-items:stretch;flex-direction:column}.codex-native-runtime .btn{justify-content:center;width:100%}}

.session-active-work{margin:14px 0 8px;padding:10px;border:1px solid #2a7187;border-radius:14px;background:#0c1b27;box-shadow:0 0 20px #1fbde51a}
.session-active-work>.eyebrow{margin:0 4px 7px;color:var(--cyan)}
.session-active-work .inline-turn{margin:0}
.queued-message{border-style:dashed!important;border-color:#376479!important;background:#0d1c28!important}
.composer-row:has(.composer-steer){grid-template-columns:44px 44px minmax(150px,.9fr) minmax(120px,1fr)}
.composer-steer{height:44px;margin:0;padding:8px 10px;border:1px solid #357d91;background:#102632;color:#72d8ef}
@media(max-width:520px){.composer-row:has(.composer-steer){grid-template-columns:44px 44px 1fr}.composer-steer{grid-column:1/4;grid-row:2}}
