:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:dark;--bg: #101416;--surface: #151c1e;--surface-hover: #1e292b;--screen: #080c0d;--text: #f1f5f4;--muted: #9ba9a6;--border: #344345;--line: #2a3739;--accent: #7be5b5;--accent-ink: #062a1b;--input: #172022;--danger: #ffaaa8;--shadow: 0 18px 60px #0003;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-weight:400;background:var(--bg);color:var(--text)}:root[data-theme=light]{color-scheme:light;--bg: #f7f9f8;--surface: #fff;--surface-hover: #eef5f1;--screen: #080c0d;--text: #172322;--muted: #627370;--border: #c6d5d0;--line: #dce5e1;--accent: #3bc58c;--accent-ink: #072c1c;--input: #f4f8f6;--danger: #b92f36;--shadow: 0 18px 60px #17372b0a}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button,a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button,input{transition:background .15s,border-color .15s,opacity .15s}h1,h2,h3,p{margin:0}button svg{flex-shrink:0}button{touch-action:manipulation}::selection{background:var(--accent);color:var(--accent-ink)}.app-shell{max-width:1460px;margin:18px auto;min-height:calc(100dvh - 36px);border:1px solid var(--border);border-radius:14px;overflow:clip;background:var(--surface);box-shadow:var(--shadow)}.app-header{min-height:76px;padding:0 27px 0 30px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;display:flex;align-items:center;gap:13px;font-size:23px;font-weight:700;letter-spacing:-.65px;white-space:nowrap}.brand svg{color:var(--accent)}.header-actions{display:flex;align-items:center;gap:25px}.theme-toggle{display:flex;align-items:center;gap:9px;border:0;background:none;padding:8px 0}.theme-toggle>svg{color:var(--muted)}.moon-icon{display:none}.switch{width:37px;height:22px;border-radius:30px;background:var(--border);padding:3px;display:block}.switch>span{display:block;width:16px;height:16px;border-radius:100%;background:var(--surface);transform:translate(0);transition:transform .18s}.switch.on{background:var(--accent)}.switch.on>span{transform:translate(15px);background:#1b3c30}.account-menu{position:relative}.account-menu summary{list-style:none;display:flex;align-items:center;gap:10px;font-size:14px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;max-width:230px}.account-menu summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu summary::-webkit-details-marker{display:none}.menu-items{position:absolute;right:0;top:calc(100% + 10px);min-width:210px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);padding:6px;border-radius:10px;z-index:20}.menu-items button{border:0;background:transparent;display:flex;width:100%;gap:10px;align-items:center;padding:12px;border-radius:6px;font-size:13px;text-align:left}.menu-items button:hover{background:var(--surface-hover)}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 365px;position:relative;min-height:calc(100dvh - 114px)}.device-column{display:flex;flex-direction:column;min-width:0;background:var(--bg);padding:24px 28px 15px;align-items:center}.device-stage{flex:1;display:flex;width:100%;min-height:390px;align-items:center;justify-content:center}.phone-frame{position:relative;width:clamp(235px,calc((100dvh - 249px)*.49),385px);height:clamp(470px,calc(100dvh - 249px),785px);max-width:100%;background:#080c0d;border:2px solid #67716f;border-radius:35px;box-shadow:0 0 0 4px #13191a,0 0 0 5px #46504e,0 12px 40px #0003;overflow:hidden}.vnc-viewport{position:absolute;inset:7px;border-radius:26px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#080c0d}.vnc-viewport>div{border-radius:20px}.screen-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:25px;color:#a2b4ad;text-align:center;pointer-events:none;background:#080c0d}.screen-placeholder>svg{color:#7be5b5}.screen-placeholder p{color:#eef4f1;font-size:15px;font-weight:500;line-height:1.5}.screen-placeholder>span{font-size:12px;line-height:1.6;max-width:205px;color:#899c95}.device-bottom{width:100%;max-width:720px;margin-top:27px}.device-toolbar{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:12px 4px;min-height:58px}.device-toolbar button{flex:1;border:0;border-right:1px solid var(--border);background:none;display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px;letter-spacing:.1px;padding:3px 11px;white-space:nowrap}.device-toolbar button:nth-child(3){flex:1.6}.device-toolbar button:last-child{flex:.6;border:0}.device-toolbar button:hover:enabled{color:var(--accent)}.screen-caption{display:flex;align-items:center;justify-content:space-between;padding:11px 2px 0;font-size:11px;color:var(--muted)}.screen-caption>span{display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--muted);flex-shrink:0}.status-dot.active,.state-indicator.running .status-dot{background:var(--accent)}.text-button{display:flex;align-items:center;gap:7px;border:0;background:none;font-size:11px;padding:1px;color:var(--muted)}.text-button:hover,.text-button.selected{color:var(--accent)}.virtual-keyboard{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:8px}.virtual-keyboard label{font-size:11px;color:var(--muted);display:block;margin-bottom:8px}.virtual-keyboard>div{display:flex;gap:5px}.virtual-keyboard input{min-width:0;flex:1;font-size:12px;padding:9px}.device-column:fullscreen{width:100%;height:100dvh;padding:20px;background:var(--bg)}.device-column:fullscreen .phone-frame{height:calc(100dvh - 135px);width:calc((100dvh - 135px)*.49);max-width:calc(100vw - 30px)}.device-column:fullscreen .device-stage{min-height:0}.device-column:fullscreen .device-bottom{margin-top:15px;max-width:600px}.operations-rail{border-left:1px solid var(--border);min-width:0}.system-section{padding:23px 22px 20px}.status-heading{display:flex;align-items:center;gap:9px;justify-content:space-between;border:0;background:none;padding:0;text-align:left;width:100%;cursor:default}.status-heading h2,.apps-section h2{font-size:16px;font-weight:650;letter-spacing:-.25px;line-height:1.45}.state-indicator{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);white-space:nowrap}.state-indicator.running{color:var(--accent)}.state-indicator.starting .status-dot{background:#dfc47a}.state-indicator.error{color:var(--danger)}.state-indicator.error .status-dot{background:var(--danger)}.mobile-chevron{display:none}.status-rows{margin:13px 0 0;font-size:12px}.status-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:29px;padding:6px 1px;border-bottom:1px solid var(--line)}.status-rows dt{white-space:nowrap;color:var(--text)}.status-rows dd{margin:0;text-align:right;color:var(--muted);max-width:66%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uptime{font-size:10px;color:var(--muted);padding-top:9px}.system-message{font-size:11px;line-height:1.6;padding-top:12px;color:var(--muted)}.control-list{display:grid;gap:7px;margin-top:17px}.button{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--input);border:1px solid var(--border);border-radius:7px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.25;min-height:39px}.button:hover:enabled{background:var(--surface-hover);border-color:var(--muted)}.control-list .button{justify-content:flex-start;text-align:left;padding:9px 13px;gap:17px;font-size:13px;min-height:37px}.control-list .button>svg{width:20px;height:20px}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}.button.primary:hover:enabled{background:color-mix(in srgb,var(--accent),#fff 13%);border-color:var(--accent)}.button.danger{color:var(--danger);border-color:var(--danger);background:transparent}.button.compact{padding:7px 12px;min-height:32px;font-size:11px}.screenshot-link{font-size:11px;color:var(--accent);display:block;margin-top:13px;text-underline-offset:3px}.apps-section{border-top:1px solid var(--border);padding:20px 22px 24px}.apk-picker{display:flex;gap:7px;margin-top:12px}.filename{min-width:0;flex:1;display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:6px;padding:8px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.filename svg{flex-shrink:0}.field-help{font-size:10px;line-height:1.6;color:var(--muted);margin-top:7px}.apps-heading{margin-top:25px;display:flex;justify-content:space-between;align-items:center}.apps-heading h3{font-size:12px;font-weight:500}.apps-heading>span{font-size:10px;color:var(--muted)}.app-list{list-style:none;padding:0;margin:10px 0 0}.app-list li{border-bottom:1px solid var(--line)}.app-list button{background:none;border:0;padding:9px 0;width:100%;display:flex;align-items:center;gap:10px;text-align:left}.app-list button:hover:enabled .launch-icon{color:var(--accent)}.app-icon{width:29px;height:29px;border-radius:7px;background:var(--surface-hover);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.app-name strong{font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-name>span{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.launch-icon{color:var(--muted)}.empty-apps{color:var(--muted);font-size:11px;padding:23px 0;line-height:1.6}.empty-apps>svg{margin-bottom:8px;opacity:.65}.upload-state{margin-top:13px}.upload-state>div{font-size:11px;display:flex;align-items:center;gap:7px;color:var(--accent)}progress{display:block;width:100%;height:4px;margin-top:10px;accent-color:var(--accent);border:0;border-radius:5px;overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}.installed-message{display:flex;align-items:center;justify-content:space-between;margin-top:13px;gap:8px}.installed-message>span{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--accent)}.auth-shell{max-width:1100px}.auth-main{display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - 114px);padding:60px 25px;background:var(--bg)}.auth-content{width:100%;max-width:370px}.auth-intro{text-align:center;margin-bottom:37px}.auth-lock{display:none}.auth-intro h1{font-size:31px;line-height:1.23;letter-spacing:-.9px;font-weight:650;max-width:360px;margin:auto}.auth-intro>p{margin-top:18px;color:var(--muted);font-size:14px;line-height:1.65}.auth-form{display:flex;flex-direction:column;gap:21px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:550}.field input,input{background:var(--input);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:12px 13px;font-size:13px;line-height:1.4;min-height:44px;width:100%}input::placeholder{color:var(--muted);opacity:.85}.auth-submit{margin-top:8px;min-height:47px;font-size:13px}.auth-form .field-help{font-size:11px}.form-error{font-size:12px;line-height:1.6;color:var(--danger);margin-top:10px}.auth-form>.form-error{margin:0}.initial-loading{min-height:60dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted);font-size:13px}.loading-ring{width:26px;height:26px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.global-error{margin:20px;color:var(--danger);font-size:13px;display:flex;justify-content:space-between}.global-error button{background:none;border:0}.icon-button{border:0;background:transparent;display:flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;border-radius:6px}.icon-button:hover{background:var(--surface-hover)}.dialog{padding:0;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);max-width:calc(100vw - 32px);width:440px;max-height:calc(100dvh - 40px);box-shadow:0 24px 100px #0005}.dialog::backdrop{background:#050c0bbf;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog-inner{padding:25px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.dialog-heading h2{font-size:19px;font-weight:650;letter-spacing:-.4px}.dialog-wide{width:850px}.logs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.logs-toolbar p{font-size:12px;color:var(--muted)}.logs-output{background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:17px;color:var(--text);font-size:11px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.7;overflow:auto;max-height:60dvh;min-height:200px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.confirm-copy{font-size:13px;color:var(--muted);line-height:1.8}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:28px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);font-size:12px;max-width:calc(100vw - 32px);min-width:min(360px,calc(100vw - 32px))}.toast>svg{color:var(--accent);flex-shrink:0}.toast>span{flex:1}.toast>button{border:0;background:none;display:flex;padding:4px}.toast-error,.toast-error>svg{color:var(--danger)}.success-panel>p{font-size:14px;margin-bottom:13px;line-height:1.6}.success-panel>.muted{font-size:12px;color:var(--muted)}.success-panel>.button{margin-top:25px;width:100%}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1500px){.app-shell{margin-top:25px;min-height:calc(100dvh - 50px)}.dashboard{min-height:calc(100dvh - 128px)}.device-stage{min-height:580px}.phone-frame{width:clamp(295px,calc((100dvh - 270px)*.49),385px);height:clamp(590px,calc(100dvh - 270px),785px)}}@media(max-width:1000px){.app-shell{margin:12px;min-height:calc(100dvh - 24px)}.dashboard{grid-template-columns:minmax(0,1fr) 330px;min-height:calc(100dvh - 102px)}.app-header{padding:0 21px}.device-column{padding-left:17px;padding-right:17px}.system-section,.apps-section{padding-left:18px;padding-right:18px}.device-toolbar button{gap:7px;padding-left:7px;padding-right:7px;font-size:9px}.device-toolbar button:nth-child(3) span{max-width:72px;white-space:normal;line-height:1.4}.device-toolbar button:nth-child(3){flex:1.2}.phone-frame{height:clamp(420px,calc(100dvh - 247px),720px);width:clamp(210px,calc((100dvh - 247px)*.49),353px)}}@media(max-width:740px){.app-shell{margin:0;border:0;border-radius:0;min-height:100dvh;overflow:clip}.app-header{min-height:69px;padding:0 19px;gap:10px}.brand{font-size:18px;gap:9px;letter-spacing:-.5px}.brand svg{width:24px;height:27px}.header-actions{gap:14px}.theme-toggle{gap:7px}.theme-toggle>svg{width:17px}.switch{width:32px;height:19px;padding:2.5px}.switch>span{width:14px;height:14px}.switch.on>span{transform:translate(13px)}.account-menu summary{padding:7px;border-radius:7px;gap:0}.account-menu summary>span,.account-menu summary>svg:last-child{display:none}.dashboard{display:flex;flex-direction:column;min-height:calc(100dvh - 69px)}.device-column{padding:25px 17px 13px}.device-stage{min-height:0}.phone-frame{height:clamp(380px,calc(100dvh - 259px),710px);width:clamp(190px,calc((100dvh - 259px)*.49),348px);border-radius:29px}.vnc-viewport{border-radius:21px;inset:6px}.device-bottom{margin-top:25px}.device-toolbar{padding:11px 0;min-height:63px}.device-toolbar button{gap:5px;flex-direction:column;font-size:9px;padding:0 8px}.device-toolbar button:nth-child(3){flex:1.05}.device-toolbar button:nth-child(3) span{font-size:8px;max-width:85px;text-align:center}.device-toolbar button:last-child{flex:.7}.screen-caption{font-size:10px;padding-top:10px}.screen-caption .text-button{font-size:10px}.operations-rail{border-left:0;margin:0 17px 25px;display:flex;flex-direction:column;gap:18px}.system-section{border:1px solid var(--border);border-radius:10px;padding:0;overflow:hidden}.status-heading{cursor:pointer;padding:17px 16px}.status-heading h2{font-size:14px;flex:1}.state-indicator{font-size:10px}.mobile-chevron{display:block;color:var(--muted)}.mobile-open .mobile-chevron{transform:rotate(180deg)}.status-content{display:none;padding:0 16px 17px}.mobile-open .status-content{display:block}.status-rows{margin-top:0}.status-rows>div{min-height:31px;font-size:12px}.control-list{padding:0 13px 14px;margin-top:0;grid-template-columns:1fr 1fr;gap:7px}.control-list .button{font-size:10px;gap:7px;min-height:39px;padding:8px;justify-content:center}.control-list .button>svg{width:16px;height:16px}.control-list .button:last-child{grid-column:1/-1}.system-section>.form-error,.screenshot-link{margin:0 15px 14px}.apps-section{padding:0 0 10px;border:0}.apps-section h2{font-size:15px}.apk-picker{margin-top:13px}.filename{padding:12px 10px;font-size:11px}.apk-picker .compact{font-size:11px;padding:9px 14px}.app-list button{padding:12px 0}.app-name strong{font-size:12px}.app-name>span{font-size:10px}.app-icon{width:32px;height:32px}.auth-main{min-height:calc(100dvh - 69px);padding:43px 24px}.auth-intro{margin-bottom:32px}.auth-intro h1{font-size:29px;max-width:310px}.auth-intro>p{font-size:13px}.auth-form{gap:20px}.auth-form .field{font-size:12px}.field input{font-size:14px;min-height:46px}.auth-submit{min-height:48px}.dialog-inner{padding:21px}.dialog-heading{margin-bottom:22px}.dialog-heading h2{font-size:17px}.dialog-actions .button{font-size:12px;padding:11px}.logs-toolbar{align-items:flex-start}.logs-toolbar p{font-size:11px;line-height:1.5}.logs-toolbar .button{font-size:11px}.logs-output{font-size:10px}.toast{bottom:16px;font-size:12px}.virtual-keyboard input{font-size:16px}.virtual-keyboard label{font-size:11px}}@media(max-width:370px){.app-header{padding:0 13px}.header-actions{gap:9px}.brand{font-size:16px}.brand svg{width:21px}.theme-toggle>svg{display:none}.device-column{padding-left:13px;padding-right:13px}.operations-rail{margin-left:13px;margin-right:13px}.control-list .button{font-size:9px}.status-heading{padding-left:13px;padding-right:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:3s!important}}
