:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#233734;background:#f7f8f5;font-size:15px;--green:#245b50;--line:#dfe5df;--muted:#73827b}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;background:transparent;color:inherit}button:disabled{opacity:.5;cursor:wait}input,textarea{border:1px solid #cfd8d0;border-radius:8px;padding:13px 14px;background:#fff;outline:none;color:#1e3530}input:focus,textarea:focus{border-color:#438879;box-shadow:0 0 0 3px #43887918}input{width:100%}button:focus-visible,a:focus-visible{outline:3px solid #69af9e;outline-offset:4px}[hidden]{display:none!important}.primary{background:var(--green);color:white;border-radius:8px;padding:12px 18px;font-weight:600}.primary:hover{background:#1c483f}.link{color:#326958;font-size:13px;padding:3px}.subtle{border:1px solid var(--line);border-radius:7px;padding:9px 12px;background:#fff;font-size:13px}.muted{color:var(--muted);line-height:1.7}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;color:#738a80}.brand{font-size:21px;font-weight:650;display:flex;align-items:center;gap:10px;letter-spacing:-.5px}.mark{display:inline-flex;border:1px solid #668e7c;border-radius:9px;align-items:center;justify-content:center;width:35px;height:35px;font:700 19px Georgia,serif}.login-shell{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.intro{background:#173b33;color:#e8eee3;padding:42px 9%;display:flex;flex-direction:column;position:relative;overflow:hidden}.intro:after{content:"";position:absolute;width:480px;height:480px;border:1px solid #68897930;border-radius:50%;right:-240px;bottom:-210px;box-shadow:0 0 0 70px #6889790a,0 0 0 140px #68897908}.intro-copy{margin:auto 0;z-index:1}.intro .eyebrow{color:#b8cbb3}.intro h1{font-size:clamp(27px,3.3vw,47px);font-weight:500;line-height:1.5;letter-spacing:-1px;margin:27px 0}.intro p{color:#bbcec0;line-height:1.9;font-size:15px}.flow{display:flex;align-items:center;gap:15px;margin-top:40px;color:#c9d8c6;font-size:12px}.flow span{border:1px solid #6d917967;padding:8px 17px;border-radius:20px}.flow i{height:1px;width:22px;background:#6d9179}.intro footer{font-size:11px;color:#9bb6a7;padding-top:30px}.login-panel{display:flex;align-items:center;justify-content:center;position:relative;padding:60px 35px}.login-panel form{width:355px;max-width:100%}h2{font-size:27px;font-weight:600;letter-spacing:-.5px;margin:14px 0}label{font-size:12px;font-weight:600;display:block;margin:26px 0 10px}.code-label{display:flex;align-items:baseline;justify-content:space-between}.login-button{width:100%;margin-top:24px;display:flex;justify-content:space-between}.notice{font-size:12px;line-height:1.7;min-height:35px;color:var(--muted)}.notice.error{color:#aa4939}.login-foot{position:absolute;bottom:34px;font-size:11px;color:#98a29a}.app-shell{display:flex;height:100dvh;overflow:hidden}aside{width:270px;background:#edf1e9;border-right:1px solid var(--line);padding:26px 20px 18px;display:flex;flex-direction:column;flex-shrink:0}aside .brand{margin-bottom:35px}aside>.primary{width:100%;font-size:14px}.side-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin:28px 2px 12px}nav{overflow:auto;flex:1}.conversation{width:100%;text-align:left;padding:13px 12px;border-radius:8px;margin-bottom:5px;display:block}.conversation:hover{background:#e3e9df}.conversation.selected{background:#fff;box-shadow:0 1px 4px #16352a09}.conversation strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:550}.conversation small{display:block;color:#7b8980;font-size:10px;margin-top:7px}.sidebar-bottom{padding-top:15px;border-top:1px solid var(--line);margin-top:15px}#agent-status{font-size:11px;display:flex;gap:8px;align-items:center}.dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#a5aaa3}.dot.online{background:#499276}.account{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#7b8980;margin-top:15px}.workspace{flex:1;min-width:0;display:flex;flex-direction:column}header{min-height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;justify-content:space-between;padding:18px 37px}header h1{font-size:18px;font-weight:600;margin:7px 0 0}#conversation-actions{display:flex;gap:8px}#menu{display:none}#messages{flex:1;overflow:auto;padding:30px max(30px,calc((100% - 850px)/2));scroll-behavior:smooth}.empty{height:100%;min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#50675c}.empty h2{font-size:23px;margin-top:24px}.empty p{line-height:1.8;font-size:13px;color:#7b8980}.empty .primary{margin-top:15px;font-size:13px}.empty-icon{width:67px;height:67px;background:#e7ede1;color:#6c8b70;border:1px solid #dce5d7;border-radius:20px;display:grid;place-items:center;font-size:30px}.message{margin:8px 0 30px}.message-label{display:flex;align-items:center;gap:10px;font-size:10px;color:#7d8980;margin:0 0 9px}.message-label strong{font-size:12px;color:#486052;font-weight:600}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:14px;padding:17px 21px;border-radius:11px}.user .bubble{background:#e9eee5;border:1px solid #e0e7da}.assistant .bubble{background:#fff;border:1px solid #e6e9e1}.badge{display:inline-flex;font-size:10px;border-radius:12px;padding:2px 8px;background:#edf0e9;color:#6a786b}.badge.running,.badge.claimed,.badge.dispatching{background:#e5eee3;color:#4f7652}.badge.failed,.badge.uncertain{background:#fae9e3;color:#a65440}.badge.completed{background:#e0eee8;color:#477d66}.files{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.files a{color:#245b50;text-decoration:none;background:#eff4ed;border:1px solid #dce6d9;border-radius:7px;font-size:12px;padding:9px 12px}.queue-note{color:#829181;font-size:12px;padding:13px 20px}.message-error{color:#a65440}#composer{padding:10px max(30px,calc((100% - 850px)/2)) 20px}.compose-box{border:1px solid #cdd8ca;background:#fff;border-radius:12px;box-shadow:0 5px 20px #243f2505;overflow:hidden}.compose-box textarea{border:0;border-radius:0;resize:vertical;min-height:85px;max-height:300px;width:100%;padding:16px 18px;font-size:14px}.compose-box textarea:focus{box-shadow:none}.compose-footer{display:flex;align-items:center;justify-content:space-between;padding:0 13px 12px}.compose-footer span,.compose-note{color:#909b8f;font-size:10px}.compose-footer .primary{font-size:12px;padding:9px 15px}.compose-note{text-align:center;margin:10px 0 0}dialog{border:1px solid var(--line);border-radius:14px;padding:32px;width:430px;max-width:90vw;box-shadow:0 20px 80px #173b3320}dialog::backdrop{background:#112b2540;backdrop-filter:blur(3px)}dialog h2{font-size:23px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183e34;color:#fff;border-radius:9px;padding:13px 20px;z-index:20;box-shadow:0 6px 25px #152a2920;font-size:13px;max-width:90vw}@media(max-width:850px){aside{width:230px;padding:22px 14px}header{padding:17px 24px}#messages{padding:25px}#composer{padding:10px 24px 15px}#conversation-actions{gap:5px}.subtle{font-size:11px;padding:8px}.intro{padding:35px 9%}.intro h1{font-size:29px}}

.result-link{color:#286e59;text-decoration:underline;text-underline-offset:3px}

select{font:inherit;width:100%;padding:12px 14px;background:#fff;color:#233734;border:1px solid #cfd8d0;border-radius:8px}select:focus{outline:2px solid #438879}.field-note{color:#73827b;font-size:11px;line-height:1.6;margin:8px 0 0}#conversation-project{margin-top:5px}#new-dialog{max-height:90dvh;overflow:auto}

/* Keep the workspace inside the visible screen, including when a keyboard opens. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.is-authed{overflow:hidden;overscroll-behavior:none}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
.app-shell{position:fixed;inset:var(--viewport-top,0px) 0 auto;height:var(--app-height,100dvh);width:100%}
.workspace,#messages,nav{min-height:0}
header,#composer,.sidebar-bottom{flex-shrink:0}
.header-title{min-width:0;flex:1}
header h1,#conversation-project{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}
.sidebar-heading .brand{margin:0}
.icon-button{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;font-size:23px;border-radius:10px}
.icon-button:hover{background:#dce7da}
#close-sidebar,#sidebar-backdrop{display:none}
.message-label{flex-wrap:wrap}
.files a{max-width:100%;overflow-wrap:anywhere;line-height:1.6}
#messages,nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.login-panel,.login-panel form{min-width:0}
#new-heading:focus{outline:none}

@media(max-width:820px), (max-height:500px) and (max-width:1000px){
 input,textarea,select{font-size:16px}
 button.primary,button.subtle,button.link{min-height:44px}
 .link{padding:8px;font-size:13px}
 .login-shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;align-content:start}
 .intro{min-height:172px;padding:calc(22px + env(safe-area-inset-top)) 24px 24px}
 .intro-copy{margin:16px 0 0}
 .intro h1{font-size:23px;line-height:1.45;margin:0}
 .intro-copy>.eyebrow,.intro p,.intro footer,.flow{display:none}
 .login-panel{padding:30px 24px calc(24px + env(safe-area-inset-bottom));min-height:0;flex-direction:column;gap:18px}
 .login-panel form{width:100%;max-width:420px}
 .login-panel h2{font-size:24px}
 .login-panel label{margin-top:20px}
 .login-foot{position:static;font-size:12px}
 .login-panel .notice{margin-bottom:0}
 .login-panel .code-label{align-items:center;margin-top:12px}
 .login-panel .code-label label{margin:0}
 aside{position:fixed;left:0;top:var(--viewport-top,0px);bottom:auto;height:var(--app-height,100dvh);width:min(86vw,330px);padding:calc(14px + env(safe-area-inset-top)) 18px calc(16px + env(safe-area-inset-bottom));z-index:40;border:0;box-shadow:none;transform:translateX(-100%);visibility:hidden;transition:transform .22s ease,visibility .22s}
 aside.open{transform:translateX(0);visibility:visible;box-shadow:12px 0 40px #12332b24}
 #sidebar-backdrop{display:block;position:fixed;inset:0;background:#102e285c;backdrop-filter:blur(2px);z-index:30}
 #close-sidebar{display:grid;font-size:28px}
 .sidebar-heading{margin-bottom:20px}
 .side-heading{margin-top:22px;align-items:center}
 .conversation{min-height:66px;padding:14px 12px}
 .conversation strong{font-size:14px}
 .conversation small{font-size:12px}
 .sidebar-bottom{padding-top:12px}
 #agent-status,.account{font-size:12px}
 .account{gap:8px;margin-top:8px}
 .account span{min-width:0;overflow-wrap:anywhere}
 #menu{display:grid;margin-left:-6px}
 header{min-height:76px;gap:8px;padding:calc(10px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));justify-content:flex-start}
 header .eyebrow{font-size:9px;letter-spacing:.12em}
 header h1{font-size:16px;max-width:none;margin-top:4px;line-height:1.4}
 #conversation-project{font-size:11px;line-height:1.4;margin-top:4px}
 #conversation-actions{gap:0;flex-shrink:0}
 #conversation-actions .subtle{font-size:12px;padding:8px 10px}
 #open-app{display:none}
 #messages{padding:18px max(14px,env(safe-area-inset-right)) 18px max(14px,env(safe-area-inset-left));scroll-behavior:auto}
 .message{margin:4px 0 24px}
 .message-label{font-size:11px;gap:8px;margin-bottom:8px}
 .message-label strong{font-size:13px}
 .bubble{font-size:15px;line-height:1.8;padding:14px 16px;border-radius:12px}
 .badge{font-size:11px;padding:3px 9px}
 .files{gap:8px}
 .files a{display:block;width:100%;padding:12px 14px;font-size:13px;min-height:46px}
 .queue-note{font-size:13px;line-height:1.6;padding:10px 12px}
 #composer{padding:8px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f7f8f5;border-top:1px solid #e6ebe2}
 .compose-box{border-radius:14px}
 .compose-box textarea{display:block;font-size:16px;line-height:24px;padding:14px;min-height:56px;max-height:168px;resize:none;scroll-padding-block:12px}
 .compose-footer{padding:0 8px 8px;justify-content:flex-end}
 .keyboard-hint{display:none}
 .compose-footer .primary{font-size:14px;min-width:108px;padding:10px 16px}
 .compose-note{font-size:11px;line-height:1.5;margin-top:8px}
 .keyboard-open .compose-note{display:none}
 .empty{min-height:190px;padding:12px 4px}
 .empty h2{font-size:21px;line-height:1.4;margin:18px 0 4px}
 .empty p{font-size:14px}
 .empty .primary{font-size:14px;min-height:46px}
 .empty-icon{height:58px;width:58px;border-radius:18px;font-size:27px}
 #new-dialog{position:fixed;inset:calc(var(--viewport-top,0px) + var(--app-height,100dvh)) 0 auto;margin:0;transform:translateY(-100%);width:100%;max-width:100%;max-height:calc(var(--app-height,100dvh) - 12px);padding:26px 22px max(18px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;border-bottom:0;overscroll-behavior:contain;scroll-padding-bottom:90px}
 #new-dialog h2{font-size:24px}
 #new-dialog label{font-size:13px;margin-top:22px}
 #new-dialog .code-label{align-items:center;margin-top:14px}
 #new-dialog .code-label label{margin:0}
 #new-dialog .field-note{font-size:12px}
 #new-dialog .dialog-actions{position:sticky;bottom:calc(-1 * max(18px,env(safe-area-inset-bottom)));background:#fff;padding:14px 0 max(18px,env(safe-area-inset-bottom));margin-bottom:calc(-1 * max(18px,env(safe-area-inset-bottom)));gap:10px}
 .dialog-actions button{flex:1;min-height:48px;font-size:14px}
 #toast{position:fixed;top:calc(var(--viewport-top,0px) + 12px + env(safe-area-inset-top));bottom:auto;max-width:calc(100vw - 24px);width:max-content;line-height:1.6;z-index:60}
}
@media(max-height:500px) and (max-width:1000px){
 header{min-height:58px;padding-block:6px}
 header .eyebrow,.compose-note{display:none}
 #composer{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .compose-box{display:flex;align-items:flex-end}
 .compose-box textarea{flex:1;min-width:0}
 .compose-footer{flex-shrink:0;padding:6px}
 .compose-footer .primary{min-width:92px}
 #messages{padding-block:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}aside{transition:none}}
