/* Remote workspace gateway: shared portal styles. */
:root{--ink:#0b1728;--ink-soft:#526174;--paper:#f7f9fb;--line:#dbe3ea;--blue:#1769ff;--blue-deep:#0753d6;--mint:#21d5a3;--danger:#d8444b;--radius:28px}
*{box-sizing:border-box}html{min-height:100%;background:#07111f}body{min-height:100vh;margin:0;padding:clamp(18px,4vw,52px);font-family:Inter,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at 8% 12%,#1769ff30 0,transparent 32%),radial-gradient(circle at 88% 76%,#21d5a322 0,transparent 34%),linear-gradient(145deg,#07111f 0%,#0b1b30 52%,#071525 100%);overflow-x:hidden}
body:before,body:after{content:"";position:fixed;z-index:0;border-radius:50%;filter:blur(2px);pointer-events:none}body:before{width:36vw;height:36vw;min-width:280px;min-height:280px;right:-14vw;top:-18vw;border:1px solid #ffffff18;box-shadow:0 0 0 60px #ffffff05,0 0 0 120px #ffffff03}body:after{width:180px;height:180px;left:-70px;bottom:8%;border:1px solid #21d5a338;box-shadow:0 0 70px #21d5a318}
.shell{position:relative;z-index:1;width:min(100%,980px);margin:0 auto}.brand{display:flex;align-items:center;gap:12px;margin:0 0 24px 4px;color:#fff}.brand-mark{position:relative;width:34px;height:34px;border:1px solid #ffffff36;border-radius:11px;background:#ffffff0e;box-shadow:inset 0 1px #ffffff28}.brand-mark:before,.brand-mark:after{content:"";position:absolute;border-radius:999px;background:var(--mint)}.brand-mark:before{width:7px;height:18px;left:9px;top:8px}.brand-mark:after{width:7px;height:11px;right:9px;top:8px;background:#fff}.brand-name{font-size:12px;font-weight:760;letter-spacing:.16em}.brand-name small{display:block;margin-top:3px;color:#aab8ca;font-size:9px;font-weight:600;letter-spacing:.11em}
.card{position:relative;width:min(100%,680px);margin:0 auto;padding:clamp(24px,5vw,48px);border:1px solid #ffffff7a;border-radius:var(--radius);background:linear-gradient(145deg,#fffffffa,#f4f7f9f2);box-shadow:0 32px 90px #00000052,0 1px 0 #ffffff inset;overflow:hidden}.dashboard .card{width:min(100%,760px)}.card:before{content:"";position:absolute;width:190px;height:190px;right:-110px;top:-120px;border-radius:50%;background:#1769ff0c;box-shadow:0 0 0 36px #1769ff08}
.eyebrow{margin:0 0 10px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}h1{position:relative;margin:0;font-size:clamp(30px,6vw,48px);line-height:1.05;letter-spacing:-.045em}h2{letter-spacing:-.02em}.lead{max-width:470px;margin:14px 0 28px;color:var(--ink-soft);font-size:15px;line-height:1.7}label{display:block;margin:18px 0 8px;color:#34445a;font-size:13px;font-weight:720}
.field{position:relative}input,select{appearance:none;width:100%;padding:14px 15px;border:1px solid #ccd6e0;border-radius:13px;outline:0;background:#fff;color:var(--ink);font:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s,transform .2s}select{padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%;background-size:6px 6px;background-repeat:no-repeat}input:hover,select:hover{border-color:#9cabb9}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 4px #1769ff17}
button,.button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:0;border-radius:13px;padding:12px 18px;margin:14px 8px 0 0;background:var(--blue);box-shadow:0 9px 24px #1769ff25;color:#fff;text-decoration:none;font:inherit;font-size:14px;font-weight:760;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}button:hover,.button:hover{transform:translateY(-2px);background:var(--blue-deep);box-shadow:0 13px 30px #1769ff35}button:active,.button:active{transform:translateY(0) scale(.98)}button:focus-visible,.button:focus-visible{outline:3px solid #1769ff42;outline-offset:3px}button[disabled]{opacity:.68;cursor:wait;transform:none}.danger{background:#fff1f1;color:#b52b34;box-shadow:none}.danger:hover{background:#ffe4e5;box-shadow:none}.secondary{background:#e8eef4;color:#24354b;box-shadow:none}.secondary:hover{background:#dce5ed;box-shadow:none}.copy-button{min-height:32px;padding:5px 10px;margin:0;font-size:12px}
.muted{color:#68778a;font-size:13px}.flash{margin:20px 0 0;padding:12px 14px;border-radius:12px;font-size:14px;font-weight:650}.error{color:#a9252d;background:#fff0f1;border:1px solid #ffd5d7}.ok{color:#087557}.flash.ok{background:#eafbf5;border:1px solid #bfeedd}.topline{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}.user-pill{flex:none;display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #dce4eb;border-radius:999px;background:#fff;color:#405066;font-size:12px;font-weight:700}.user-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #21d5a319}
.status-panel{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.status-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.status-line strong{display:inline-flex;align-items:center;gap:8px}.status-line strong:before{content:"";width:8px;height:8px;border-radius:50%;background:#9aa8b6}.status-line .running:before{background:var(--mint);box-shadow:0 0 0 5px #21d5a31b}.session-warning{margin:14px 0;padding:13px 15px;border:1px solid #f2d38d;border-radius:13px;background:#fff9e9;color:#70520b;font-size:13px;line-height:1.65}.password-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:15px 0}code{padding:6px 9px;border:1px solid #dfe6ec;border-radius:8px;background:#f2f5f7;color:#19293e;font-family:"SFMono-Regular",Consolas,monospace;word-break:break-all}
.usage-card{margin:0;padding:21px;border:1px solid #dce4eb;border-radius:20px;background:linear-gradient(145deg,#f9fbfc,#f3f6f8)}.section-label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-label h2{margin:0;font-size:17px}.section-label span{color:#7a8797;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.usage-item{min-width:0;padding:14px;border:1px solid #e1e7ec;border-radius:15px;background:#fff;box-shadow:0 8px 22px #16304c08}.usage-item:nth-child(3){grid-column:1/-1}.usage-heading{display:flex;justify-content:space-between;gap:10px;font-size:12px}.usage-heading span{overflow:hidden;color:#536275;text-align:right;text-overflow:ellipsis;white-space:nowrap}.meter{height:6px;margin-top:12px;background:#e8edf1;border-radius:999px;overflow:hidden}.meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#50a0ff);transform-origin:left;animation:meter-in .8s cubic-bezier(.2,.8,.2,1) both}.usage-item:nth-child(2) .meter span{background:linear-gradient(90deg,#7658f6,#b06cff)}.usage-item:nth-child(3) .meter span{background:linear-gradient(90deg,#00a97c,var(--mint))}.usage-percent{margin-top:6px;color:#7a8797;text-align:right;font-size:10px}.usage-meta{grid-column:1/-1;margin:2px 2px 0;padding:10px 12px;border-radius:12px;background:#eef3f6;line-height:1.7}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.actions form{display:inline}.actions button,.actions .button{margin-right:0}
.login .card{max-width:560px}.login-form button{width:100%;margin:24px 0 0}.login-note{display:flex;gap:9px;align-items:flex-start;margin:20px 2px 0;padding-top:18px;border-top:1px solid #e3e8ed;line-height:1.55}.login-note:before{content:"i";display:grid;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;border:1px solid #bdc9d4;border-radius:50%;font-size:11px;font-weight:800}
@keyframes meter-in{from{transform:scaleX(0)}}@keyframes card-in{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}.card{animation:card-in .55s cubic-bezier(.2,.8,.2,1) both}
@media(max-width:620px){body{padding:16px}.brand{margin:6px 0 18px 3px}.card{padding:25px 20px;border-radius:22px}.topline{display:block;margin-bottom:22px}.user-pill{margin-top:15px}.usage-grid{grid-template-columns:1fr}.usage-item:nth-child(3),.usage-meta{grid-column:auto}.usage-heading{font-size:11px}.status-panel{padding:16px}.actions{display:grid;grid-template-columns:1fr}.actions form,.actions button,.actions .button{width:100%;margin:6px 0 0}}
html{height:100%}body{height:100svh;min-height:0;padding:clamp(12px,2.2vh,24px);overflow:hidden}.shell{display:flex;flex-direction:column;height:100%}.brand{flex:none;margin-bottom:clamp(8px,1.5vh,16px)}.card{max-height:none;margin:auto;padding:clamp(20px,3vh,34px)}.lead{margin:8px 0 16px;line-height:1.5}.dashboard .lead{display:none}label{margin:11px 0 5px}.topline{margin-bottom:14px}.account-tools{display:flex;flex:none;align-items:center;gap:6px}.account-tools form{margin:0}.account-tools button{min-height:34px;margin:0;padding:7px 10px;border-radius:999px;font-size:12px}.usage-card{padding:14px}.section-label{margin-bottom:9px}.usage-item{padding:10px 12px}.meter{margin-top:8px}.usage-meta{padding:7px 10px;line-height:1.45}.status-panel{margin-top:10px;padding:13px 15px}.status-line{margin-bottom:8px}.session-warning{margin:8px 0;padding:8px 10px;line-height:1.45}.password-row{margin:9px 0}.login-form button{margin-top:18px}.login-note{margin-top:14px;padding-top:12px}
@media(max-width:620px){body{padding:10px 12px}.brand{margin:0 0 8px 2px}.brand-mark{width:30px;height:30px}.brand-mark:before{height:15px;left:8px;top:7px}.brand-mark:after{height:10px;right:8px;top:7px}.card{max-height:calc(100% - 39px);padding:17px 16px;border-radius:19px}h1{font-size:clamp(26px,9vw,36px)}.eyebrow{margin-bottom:6px}.topline{display:flex;margin-bottom:10px}.topline .lead{display:none}.account-tools{align-items:flex-start}.user-pill{margin-top:0;padding:6px 8px}.account-tools button{width:auto;min-height:30px;margin:0;padding:5px 8px}.usage-card{padding:10px}.section-label{margin-bottom:6px}.section-label h2{font-size:15px}.usage-grid{gap:6px}.usage-item{padding:7px 9px}.meter{margin-top:5px}.usage-percent{margin-top:3px}.usage-meta{padding:5px 8px;font-size:11px}.status-panel{margin-top:7px;padding:10px}.status-line{margin-bottom:5px}.session-warning{margin:5px 0;padding:6px 8px;font-size:11px}.status-panel label{margin-top:7px}input,select{padding:10px 12px}button,.button{min-height:40px;margin-top:8px;padding:9px 13px}.actions{display:flex}.actions form,.actions button,.actions .button{width:auto;margin:4px 0 0}.login .card{padding:20px 18px}.login .lead{margin-bottom:12px}.login-note{margin-top:11px;padding-top:9px;font-size:11px}}
@media(max-height:700px){.brand-name small{display:none}.brand-mark{width:28px;height:28px}.card{max-height:calc(100% - 34px);padding-top:16px;padding-bottom:16px}.dashboard h1{font-size:28px}.section-label span{display:none}.usage-heading{font-size:11px}.session-warning br{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* ---- Control centre (v1.1.0): single-screen workspace; panels scroll inside. ---- */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body.workspace{height:100svh;min-height:0;padding:clamp(10px,1.8vh,20px) clamp(10px,2vw,24px);padding-left:max(clamp(10px,2vw,24px),env(safe-area-inset-left));padding-right:max(clamp(10px,2vw,24px),env(safe-area-inset-right));padding-bottom:max(clamp(10px,1.8vh,20px),env(safe-area-inset-bottom));overflow:hidden}
.ws{position:relative;z-index:1;display:flex;flex-direction:column;gap:clamp(8px,1.4vh,14px);width:min(100%,1440px);height:100%;margin:0 auto}
.ws-top{display:flex;flex:none;align-items:center;gap:16px;min-width:0}.ws-top .brand{flex:none;margin:0}
.ws-tabs{display:flex;gap:4px;margin:0 auto;padding:4px;border:1px solid #ffffff1f;border-radius:16px;background:#ffffff0d;box-shadow:inset 0 1px #ffffff12}
.ws-tab{min-height:40px;margin:0;padding:8px 18px;border-radius:12px;background:transparent;box-shadow:none;color:#c8d4e2;font-size:14px;font-weight:720;white-space:nowrap}
.ws-tab:hover{background:#ffffff14;box-shadow:none;transform:none}.ws-tab[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 8px 22px #00000030}
.ws-top .account-tools{flex:none}.ws-top .user-pill{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-body{display:grid;flex:1;grid-template-columns:minmax(0,1fr) 288px;gap:clamp(10px,1.4vw,16px);min-height:0}
.ws-main{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid #ffffff7a;border-radius:24px;background:linear-gradient(145deg,#fffffffa,#f4f7f9f2);box-shadow:0 32px 90px #00000052,0 1px 0 #fff inset;overflow:hidden;animation:card-in .55s cubic-bezier(.2,.8,.2,1) both}
.ws-flash{flex:none;margin:14px 16px 0}.ws-panel{display:flex;flex:1;flex-direction:column;min-height:0;padding:clamp(12px,2vh,22px)}.ws-panel[hidden]{display:none}
#panel-browser{overflow:auto}#panel-browser .status-panel{width:min(100%,680px);margin:auto}
.ws-usage{min-height:0;overflow:auto;border-color:#ffffff7a;border-radius:24px;background:linear-gradient(145deg,#fffffff5,#f1f5f8ee);box-shadow:0 24px 70px #00000040}.ws-usage .usage-grid{grid-template-columns:1fr}.ws-usage .usage-item:nth-child(3),.ws-usage .usage-meta{grid-column:auto}
/* File manager */
.fm{display:flex;flex:1;flex-direction:column;gap:10px;min-height:0}
.fm-head{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.fm-crumbs{display:flex;flex:1 1 260px;flex-wrap:wrap;align-items:center;gap:2px;min-width:0;font-size:14px}
.fm-crumbs button{min-height:34px;margin:0;padding:5px 9px;border-radius:9px;background:transparent;box-shadow:none;color:#24354b;font-weight:700;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.fm-crumbs button:hover{background:#e8eef4;box-shadow:none;transform:none}.fm-crumbs button[aria-current=page]{color:var(--blue)}.fm-crumbs .sep{color:#9aa8b6}
.fm-tools{display:flex;flex-wrap:wrap;gap:6px}.fm-tools button,.fm-tools .button{min-height:40px;margin:0;padding:8px 13px}
.fm-upload{position:relative;cursor:pointer}.fm-upload:focus-within{outline:3px solid #1769ff42;outline-offset:3px}
.fm-bar{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:8px 14px;min-height:40px;padding:4px 12px;border:1px solid var(--line);border-radius:13px;background:#f6f9fb;font-size:13px}
.fm-check{display:inline-flex;align-items:center;gap:7px;margin:0;color:#34445a;font-size:13px;font-weight:650;cursor:pointer}.fm-check input,.fm-row input[type=checkbox]{appearance:auto;width:18px;height:18px;margin:0;padding:0;accent-color:var(--blue)}
.fm-count{color:#68778a}.fm-batch{display:inline-flex;gap:6px}.fm-batch[hidden],.fm-transfers[hidden]{display:none}.fm-batch button{min-height:34px;margin:0;padding:5px 12px;font-size:13px}.fm-hidden-toggle{margin-left:auto}
.fm-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:16px;background:#fff}
.fm-row{display:grid;grid-template-columns:34px minmax(0,1fr) 96px 150px 44px;align-items:center;gap:8px;min-height:52px;padding:4px 10px;border-bottom:1px solid #edf1f4}
.fm-row:last-child{border-bottom:0}.fm-row:hover{background:#f7faff}.fm-row.selected{background:#eef4ff}
.fm-name{display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;margin:0;padding:0 4px;border-radius:10px;background:transparent;box-shadow:none;color:var(--ink);font-size:14px;font-weight:620;text-align:left;justify-content:flex-start}
.fm-name:hover{background:transparent;box-shadow:none;transform:none;color:var(--blue)}.fm-name span.label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-icon{display:grid;flex:none;place-items:center;width:32px;height:32px;border-radius:9px;background:#e8eef4;color:#405066;font-size:9px;font-weight:800;letter-spacing:.02em}
.fm-icon.dir{background:linear-gradient(145deg,#ffd76a,#f7b733);color:#6b4a00}.fm-icon.link{background:#efe9ff;color:#6146c9}.fm-icon.other{background:#f1f1f1;color:#777}
.fm-size,.fm-time{color:#68778a;font-size:12px;white-space:nowrap}.fm-size{text-align:right}.fm-meta{display:none}
.fm-more{width:40px;min-height:40px;margin:0;padding:0;border-radius:10px;background:transparent;box-shadow:none;color:#405066;font-size:20px;line-height:1}.fm-more:hover{background:#e8eef4;box-shadow:none;transform:none}
.fm-empty{display:grid;place-items:center;height:100%;min-height:160px;padding:24px;color:#7a8797;font-size:14px;text-align:center}
.fm-status{flex:none;min-height:1.4em;margin:0;color:#526174;font-size:13px}.fm-status.error{color:#a9252d}.fm-status.ok{color:#087557}
.fm-transfers{flex:none;max-height:30%;overflow:auto;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:#f6f9fb}
.fm-transfer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:6px 0;font-size:12px}.fm-transfer+.fm-transfer{border-top:1px solid #e3e9ee}
.fm-transfer .t-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.fm-transfer .t-state{color:#526174}.fm-transfer.failed .t-state{color:#a9252d}.fm-transfer.done .t-state{color:#087557}
.fm-transfer .meter{grid-column:1/-1;margin-top:0}.fm-transfer .meter span{animation:none;transition:width .2s}.fm-transfer button{min-height:30px;margin:0;padding:3px 10px;font-size:12px}
/* Dialog */
.dlg{width:min(calc(100vw - 32px),520px);max-height:min(86svh,640px);padding:0;border:1px solid #ffffff9a;border-radius:22px;background:#fff;box-shadow:0 30px 90px #00000066;color:var(--ink)}
.dlg::backdrop{background:#07111fb3;backdrop-filter:blur(3px)}.dlg[open]{display:flex}
.dlg-form{display:flex;flex:1;flex-direction:column;min-height:0;max-height:inherit;padding:22px}
.dlg-title{flex:none;margin:0 0 12px;font-size:19px}.dlg-body{flex:1;min-height:0;overflow:auto;color:#34445a;font-size:14px;line-height:1.6}
.dlg-body ul{margin:8px 0;padding-left:20px;word-break:break-all}.dlg-body label{margin-top:4px}
.dlg-actions{display:flex;flex:none;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.dlg-actions button{margin:0}
.dlg-actions .danger-strong,.danger-strong{background:var(--danger);color:#fff;box-shadow:0 9px 24px #d8444b30}.danger-strong:hover{background:#b8323a}
.dlg-menu{display:grid;gap:6px}.dlg-menu button{justify-content:flex-start;width:100%;margin:0}
.picker{display:flex;flex-direction:column;gap:8px}.picker-path{padding:8px 10px;border-radius:10px;background:#f2f5f7;font-size:13px;word-break:break-all}
.picker-list{max-height:min(40svh,320px);overflow:auto;border:1px solid var(--line);border-radius:12px}
.picker-list button{display:flex;width:100%;min-height:44px;margin:0;padding:8px 12px;border-radius:0;background:#fff;box-shadow:none;color:var(--ink);font-weight:620;justify-content:flex-start}
.picker-list button+button{border-top:1px solid #edf1f4}.picker-list button:hover{background:#f7faff;transform:none;box-shadow:none}
@media(max-width:1020px){.ws-body{grid-template-columns:minmax(0,1fr) 240px}.fm-row{grid-template-columns:34px minmax(0,1fr) 86px 44px}.fm-time{display:none}}
@media(max-width:760px){
body.workspace{padding:8px 10px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
.ws{gap:8px}.ws-top{flex-wrap:wrap;gap:8px}.ws-top .brand-name small{display:none}.ws-top .brand-mark{width:28px;height:28px}
.ws-top .account-tools{margin-left:auto}.ws-top .account-tools button{min-height:36px}
.ws-tabs{order:3;width:100%;margin:0}.ws-tab{flex:1;min-height:42px;padding:8px 4px;font-size:13px}
.ws-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px}
.ws-main{border-radius:18px}.ws-panel{padding:10px}
.ws-usage{padding:8px 10px;border-radius:16px;overflow:hidden}.ws-usage .section-label{display:none}
.ws-usage .usage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ws-usage .usage-item{padding:6px 8px;box-shadow:none}
.ws-usage .usage-heading{flex-direction:column;gap:1px;font-size:10px}.ws-usage .usage-heading span{text-align:left}
.ws-usage .usage-percent,.ws-usage .usage-meta,.ws-usage p.muted{display:none}.ws-usage .meter{height:4px;margin-top:4px}
.fm-head{gap:8px}.fm-tools{width:100%}.fm-tools button,.fm-tools .button{flex:1 1 auto;padding:8px 8px;font-size:13px}
.fm-row{grid-template-columns:34px minmax(0,1fr) 44px;min-height:56px;padding:4px 6px}.fm-size,.fm-time{display:none}
.fm-name{flex-wrap:nowrap}.fm-meta{display:block;color:#7a8797;font-size:11px;font-weight:500}.fm-name .text{display:flex;flex-direction:column;min-width:0}
.fm-hidden-toggle{margin-left:0}.dlg-form{padding:18px}
}
@media(max-height:560px){body.workspace{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.ws{gap:6px}.ws-top .brand-name small{display:none}.ws-tab{min-height:36px;padding:6px 14px}.ws-body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:6px}.ws-usage{padding:6px 8px;border-radius:14px;overflow:hidden}.ws-usage .section-label{display:none}.ws-usage .usage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ws-usage .usage-item{padding:4px 8px;box-shadow:none}.ws-usage .usage-heading{font-size:10px}.ws-usage .usage-percent,.ws-usage .usage-meta,.ws-usage p.muted{display:none}.ws-usage .meter{height:4px;margin-top:3px}}
/* ---- Web terminal (v1.2.0) ---- */
body.workspace{height:var(--app-height,100svh)}
.term{display:flex;flex:1;flex-direction:column;gap:10px;min-height:0}
.term-head{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.term-state{display:flex;align-items:center;gap:9px;min-width:0;font-size:15px}.term-state .muted{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.term-dot{flex:none;width:9px;height:9px;border-radius:50%;background:#9aa8b6}.term-dot.running{background:var(--mint);box-shadow:0 0 0 5px #21d5a31b}.term-dot.busy{background:#f2b33d;box-shadow:0 0 0 5px #f2b33d22}.term-dot.error{background:var(--danger);box-shadow:0 0 0 5px #d8444b1f}
.term-tools{display:flex;flex-wrap:wrap;gap:6px}.term-tools button{min-height:40px;margin:0;padding:8px 14px}.term-tools button[hidden],.term-keys[hidden]{display:none}
.term-frame{position:relative;flex:1;min-height:0;overflow:hidden;border:1px solid #0b1728;border-radius:16px;background:#0b1220}
.term-frame iframe{display:block;width:100%;height:100%;border:0;background:#000}
.term-placeholder{display:grid;place-content:center;gap:2px;height:100%;padding:24px;color:#d5deea;font-size:14px;line-height:1.7;text-align:center}.term-placeholder p{max-width:520px;margin:0 auto}.term-placeholder .muted{color:#8fa0b5}
.term-keys{display:flex;flex:none;gap:6px;overflow-x:auto;overscroll-behavior:contain;padding-bottom:2px;scrollbar-width:thin}
.term-keys button{flex:none;min-width:48px;min-height:40px;margin:0;padding:6px 12px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:13px}
.term-note{flex:none;margin:0;font-size:12px}
.dlg-body textarea{width:100%;min-height:140px;padding:10px 12px;border:1px solid #ccd6e0;border-radius:12px;font:inherit;font-family:"SFMono-Regular",Consolas,monospace;font-size:14px;resize:vertical}
@media(max-width:760px){.term-note{display:none}.term-tools{width:100%}.term-tools button{flex:1 1 auto}.term{gap:8px}.term-frame{border-radius:12px}}
@media(max-height:560px){.term-note{display:none}}
.ws-usage:not(:has([data-usage])) .usage-grid{display:block}@media(max-width:760px),(max-height:560px){.ws-usage:not(:has([data-usage])){display:none}}

/* Compact usage panel, explicit download action and terminal connection feedback. */
.section-label{gap:10px}.section-label span{margin-left:auto}.usage-toggle{min-height:30px;margin:0;padding:5px 9px;border-radius:9px;background:#e8eef4;box-shadow:none;color:#405066;font-size:12px}.usage-toggle:hover{background:#dce5ed;box-shadow:none;transform:none}
@media(min-width:761px){.usage-collapsed .ws-body{grid-template-columns:minmax(0,1fr) 52px}.usage-collapsed .ws-usage{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:8px 5px;overflow:hidden}.usage-collapsed .ws-usage .section-label{display:flex;order:2;margin:0}.usage-collapsed .ws-usage .section-label h2,.usage-collapsed .ws-usage .section-label span{display:none}.usage-collapsed .ws-usage .usage-grid{display:flex;order:1;align-items:flex-end;justify-content:center;gap:3px;width:100%;height:88px}.usage-collapsed .ws-usage .usage-item{position:relative;width:10px;height:78px;padding:0;border:0;background:#e5ebf0;box-shadow:none;overflow:visible}.usage-collapsed .ws-usage .usage-heading,.usage-collapsed .ws-usage .usage-percent,.usage-collapsed .ws-usage .usage-meta,.usage-collapsed .ws-usage p.muted{display:none}.usage-collapsed .ws-usage .meter{position:absolute;left:50%;top:50%;width:68px;height:7px;margin:0;transform:translate(-50%,-50%) rotate(-90deg)}.usage-collapsed .usage-toggle{min-width:36px;padding:8px 5px;writing-mode:vertical-rl;letter-spacing:.08em}}
@media(max-width:760px){.ws-usage{position:relative}.ws-usage .section-label{display:flex;position:absolute;right:8px;top:8px;z-index:2;margin:0}.ws-usage .section-label h2,.ws-usage .section-label span{display:none}.usage-collapsed .ws-body{grid-template-rows:minmax(0,1fr) 40px}.usage-collapsed .ws-usage{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:5px 8px}.usage-collapsed .ws-usage .usage-grid{display:flex;align-items:center;gap:4px;height:28px}.usage-collapsed .ws-usage .usage-item{position:relative;width:8px;height:26px;padding:0;border:0;background:#e5ebf0;box-shadow:none;overflow:visible}.usage-collapsed .ws-usage .usage-heading,.usage-collapsed .ws-usage .usage-percent,.usage-collapsed .ws-usage .usage-meta,.usage-collapsed .ws-usage p.muted{display:none}.usage-collapsed .ws-usage .meter{position:absolute;left:50%;top:50%;width:22px;height:5px;margin:0;transform:translate(-50%,-50%) rotate(-90deg)}.usage-collapsed .ws-usage .section-label{position:static}.usage-toggle{min-height:28px;padding:4px 8px}}
.term-loading{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;background:linear-gradient(145deg,#091221f5,#050a12f2);color:#eef5ff;text-align:center}.term-loading .muted{color:#91a2b8;font-size:12px}.term-spinner{width:28px;height:28px;border:3px solid #ffffff25;border-top-color:var(--mint);border-radius:50%;animation:term-spin .8s linear infinite}@keyframes term-spin{to{transform:rotate(360deg)}}
.fm-tools button[disabled]{cursor:not-allowed}
