@font-face{font-family:BYekan;src:url('/static/fonts/BYekan.ttf') format('truetype');font-display:swap}@font-face{font-family:BMitra;src:url('/static/fonts/BMitra.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--base:#06101d;--bg:#081727;--card:#0c2031;--card2:#0e2840;--muted:#91aabb;--text:#ecf9ff;--cyan:#66e6df;--blue:#55b8f3;--line:rgba(135,206,238,.15);--yellow:#eacd7c;--green:#48f3ab;--red:#f58c91;--shadow:0 18px 45px rgba(0,0,0,.25);--round:22px;--head:82px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}html{scrollbar-width:none}body{position:relative;isolation:isolate;font:17px BYekan,Tahoma,sans-serif;color:var(--text);background:radial-gradient(ellipse 70% 70% at 80% 0%,#15344b 0,transparent 66%),linear-gradient(140deg,#091a2a,#050f1d 73%)}button,input,select{font-family:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,.device-drop:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}a{text-decoration:none;color:inherit}em{font-style:normal;color:var(--cyan)}code,.terminal{font-family:Consolas,'Courier New',monospace}.ambient{position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(85px);opacity:.42;animation:drift 14s ease-in-out infinite alternate}.ambient-a{height:450px;width:450px;top:-140px;right:20%;background:#174a64}.ambient-b{height:390px;width:390px;left:-120px;bottom:-150px;background:#09546e;animation-delay:-5s}.ambient-c{height:330px;width:330px;bottom:10%;right:16%;background:#19335c;animation-delay:-9s}@keyframes drift{from{transform:translate3d(-15px,0,0)}to{transform:translate3d(35px,28px,0)}}
/* Shared controls */
.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:45px;border-radius:13px;border:1px solid transparent;padding:10px 22px;transition:transform .25s,box-shadow .25s,background .25s;font-size:17px;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{position:relative;background:linear-gradient(115deg,#62e7dc,#5cbbec);color:#082438;font-weight:bold;box-shadow:0 10px 22px rgba(39,191,217,.13);overflow:hidden}.btn-primary::after{content:'';position:absolute;top:-80%;left:-40%;width:30%;height:260%;transform:rotate(30deg) translateX(-250%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);animation:shine 5s ease-in-out infinite}@keyframes shine{0%,65%{transform:rotate(30deg) translateX(-260%)}100%{transform:rotate(30deg) translateX(580%)}}.btn-primary:hover{box-shadow:0 12px 30px rgba(55,226,227,.27)}.btn-outline{background:#112b40;border-color:var(--line);color:#e4f7ff}.btn-outline:hover{background:#173a4f}.btn-ghost{border-color:rgba(101,227,218,.28);background:rgba(11,40,53,.58);color:var(--cyan)}.full{width:100%}.mini-button{color:#d9edf8;background:#102a40;border:1px solid var(--line);padding:7px 13px;border-radius:10px;font-size:15px}.mini-button:hover{background:#20425b}.small-tag{color:#91c9d4;background:#0c2939;border:1px solid rgba(101,223,219,.15);border-radius:99px;padding:5px 12px;font-size:13px;white-space:nowrap}.eyebrow{font-size:13px;letter-spacing:.3px;color:var(--cyan)}.blink-dot{width:8px;height:8px;display:inline-block;flex:none;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green),0 0 22px rgba(72,243,171,.65);animation:blinker 1.85s ease-in-out infinite}@keyframes blinker{50%{opacity:.55;box-shadow:0 0 3px var(--green)}}.glass-card{position:relative;min-width:0;background:linear-gradient(155deg,rgba(15,43,63,.88),rgba(10,29,48,.94));border:1px solid var(--line);border-radius:var(--round);padding:20px;box-shadow:var(--shadow);overflow:hidden}.glass-card::before{content:'';position:absolute;pointer-events:none;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 34%,rgba(89,228,224,.075) 47%,transparent 60%);background-size:220% 100%;animation:cardGlow 10s linear infinite}.glass-card>*{position:relative;z-index:1}@keyframes cardGlow{to{background-position:-220% 0}}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.section-header h3{font-size:23px;margin:1px 0 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.page-heading h2{font-size:31px;margin:6px 0 2px}.page-heading p{color:var(--muted);margin:3px 0 0;font-size:17px}.row-tools,.inline-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.server-select{border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:var(--text);background:#0b2437;min-width:168px}.form-stack{display:flex;flex-direction:column;gap:14px}.form-stack label{display:flex;flex-direction:column;gap:6px;color:#cee5f2;font-size:16px;min-width:0}.form-stack input:not([type=radio]):not([type=file]),.form-stack select,.folder-controls input{min-height:44px;width:100%;background:#091c2d;border:1px solid #24435d;color:#eafaff;padding:8px 13px;border-radius:11px;outline:none}.form-stack input:focus,.folder-controls input:focus{border-color:#60d9df;box-shadow:0 0 0 3px rgba(69,226,215,.08)}input::placeholder{color:#7896aa}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.help-note{font:21px/1.5 BMitra,serif;color:var(--yellow);background:rgba(10,22,33,.82);border:1px solid rgba(242,214,126,.15);border-radius:15px;text-align:center;padding:10px 15px}.collapsed{display:none!important}.view{display:none;height:100%;overflow:auto;scrollbar-width:none;padding:24px max(24px,calc((100vw - 1520px)/2));animation:appear .35s ease}.view::-webkit-scrollbar,.file-list::-webkit-scrollbar,.terminal::-webkit-scrollbar{display:none}.view.active{display:block}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* Header + drawer */
.topbar{height:var(--head);padding:0 28px;border-bottom:1px solid rgba(125,195,222,.14);display:flex;align-items:center;justify-content:space-between;background:rgba(6,22,35,.9);backdrop-filter:blur(22px);box-shadow:0 8px 28px rgba(0,0,0,.14)}.topbar:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),#3072be,transparent);opacity:.75}.top-right,.top-left,.top-center{display:flex;align-items:center;gap:12px}.top-center{flex-direction:column;gap:1px}.top-location{font-size:18px}.top-server{font-size:13px;display:flex;gap:7px;align-items:center;color:var(--muted)}.brand-icon{height:44px;width:44px;display:grid;place-items:center;flex-shrink:0;border-radius:13px;background:linear-gradient(130deg,#78f0dc,#5ca8ed);color:#00374b;font-size:26px;box-shadow:0 0 25px rgba(88,211,235,.19)}.brand-title strong{font-size:24px;line-height:1}.brand-title small,.drawer-head small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.hamburger{width:20px;display:flex;flex-direction:column;gap:5px}.hamburger i{display:block;width:20px;height:2px;border-radius:2px;background:#dffaff;transition:.2s}.icon-button:hover .hamburger i:nth-child(2){width:13px}.icon-button{height:44px;width:44px;background:#102c3f;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center}.user-chip{color:#aaccdf;font-size:15px}.user-chip b{color:#dffaff}.logout-button{display:flex;gap:8px;align-items:center;color:#d5f1fe;background:#102b3e;border:1px solid var(--line);border-radius:12px;padding:9px 13px}.logout-button svg{width:19px;height:19px}.logout-button:hover{background:#193c50}.main-content{height:calc(100% - var(--head));overflow:hidden}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,7,15,.7);z-index:30;opacity:0;visibility:hidden;transition:.32s}.drawer-backdrop.open{opacity:1;visibility:visible}.drawer{position:fixed;right:0;top:0;bottom:0;width:290px;max-width:86vw;z-index:35;background:linear-gradient(180deg,#0c2940,#071927 80%);box-shadow:-25px 0 50px rgba(0,0,0,.34);border-left:1px solid rgba(93,224,226,.15);transform:translateX(104%);transition:transform .38s cubic-bezier(.19,1,.22,1);display:flex;flex-direction:column;padding:19px}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;gap:11px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}.drawer-head b{font-size:21px}.close-drawer{margin-right:auto;color:#b8d4e5;border:none;background:transparent;font-size:30px}.drawer-links{margin-top:20px;display:flex;flex-direction:column;gap:9px}.navitem{width:100%;display:flex;align-items:center;gap:12px;color:#c4d9e4;background:transparent;border:1px solid transparent;padding:12px 14px;border-radius:14px;text-align:right}.navitem span:last-child{margin-right:auto}.navitem:hover,.navitem.active{border-color:rgba(88,233,213,.2);background:rgba(87,227,219,.11);color:var(--cyan)}.nav-ico{font-size:21px;color:#7fcad8}.drawer-footer{margin-top:auto;display:flex;align-items:center;gap:7px;color:#cbebf2;flex-wrap:wrap;font-size:14px;padding-top:18px;border-top:1px solid var(--line)}.drawer-footer small{width:100%;font-size:12px;color:var(--muted)}
/* Dashboard */
.dashboard-wrap{max-width:1420px;margin:0 auto;display:flex;flex-direction:column;gap:17px}.hero{min-height:280px;background:radial-gradient(circle at 18% 50%,rgba(16,101,118,.16),transparent 35%),linear-gradient(120deg,rgba(12,38,60,.96),rgba(14,42,65,.76));border:1px solid rgba(108,224,222,.22);border-radius:28px;padding:25px 38px;display:grid;grid-template-columns:1.5fr .8fr;align-items:center;gap:18px;position:relative;overflow:hidden}.glimmer-frame:before{content:'';position:absolute;inset:-1px;background:conic-gradient(from var(--angle,0deg),transparent 0 55%,rgba(111,240,223,.05) 63%,rgba(83,235,217,.9) 67%,rgba(100,183,255,.15) 72%,transparent 80%);animation:rotateGlow 6s linear infinite;z-index:0}.glimmer-frame:after{content:'';position:absolute;inset:1px;border-radius:inherit;background:#0b253a;z-index:0}.glimmer-frame>*,.hero>*{position:relative;z-index:1}@property --angle{syntax:'<angle>';initial-value:0deg;inherits:false}@keyframes rotateGlow{to{--angle:360deg}}.hero:after{background:radial-gradient(circle at 76% 50%,rgba(38,146,157,.11),transparent 28%),linear-gradient(130deg,#0a2234,#0b2a41)}.hero h1{font-size:clamp(32px,3.1vw,51px);line-height:1.32;margin:10px 0}.hero p{color:#b8d6e4;max-width:650px;margin:0;line-height:1.9;font:22px/1.65 BMitra,serif}.hero-kicker{color:var(--cyan);display:flex;gap:8px;align-items:center;font-size:14px}.hero-actions{display:flex;gap:12px;margin-top:22px}.hero-orb{display:flex;flex-direction:column;align-items:center;gap:8px}.orb-shell{height:200px;width:200px;position:relative;display:grid;place-items:center}.orb-symbol{font-size:72px;color:#92fae8;text-shadow:0 0 30px rgba(90,233,218,.54);animation:orbFloat 4s ease-in-out infinite}.ring{position:absolute;border:1px solid rgba(94,235,223,.25);border-radius:50%}.ring-1{width:140px;height:140px;box-shadow:inset 0 0 24px rgba(54,191,185,.13),0 0 20px rgba(73,220,204,.18)}.ring-2{width:176px;height:176px;border-style:dashed;animation:spin 20s linear infinite}.ring-3{width:198px;height:198px;border-color:rgba(84,162,241,.13);border-top-color:#52dfd3;animation:spin 5s linear infinite reverse}@keyframes orbFloat{50%{transform:translateY(-8px)}}@keyframes spin{to{transform:rotate(360deg)}}.orb-caption{font-size:12px;letter-spacing:1.4px;color:#8dbccc;display:flex;align-items:center;gap:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{padding:16px 20px;min-height:126px}.metric-symbol{position:absolute;left:21px;top:18px;color:#5fd5cf;font-size:25px}.metric-label{font-size:15px;color:#c6d8e4}.metric strong{display:block;font-size:42px;line-height:1.15;margin:6px 0}.metric small{color:#829eb3;font-size:13px}.dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dash-host,.dash-quick{min-height:154px}.text-action{color:var(--cyan);font-size:14px;background:transparent;border:0}.host-line{display:flex;align-items:center;gap:12px}.host-line b{display:block}.host-line small{display:block;color:var(--muted);font-size:14px}.server-emblem{display:grid;place-items:center;background:#133951;color:var(--cyan);border-radius:14px;width:48px;height:48px;font-size:26px}.state-label{margin-right:auto;color:var(--green);font-size:14px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-grid button{border-radius:13px;background:#0b2437;border:1px solid var(--line);color:#dcecf4;padding:9px 7px}.quick-grid button:hover{border-color:#54bdbd;transform:translateY(-2px)}.quick-grid span{display:block;color:var(--cyan);font-size:24px}
/* Servers */
.page-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.host-cards{display:flex;flex-direction:column;gap:13px}.host-card{background:#0a2132;border:1px solid var(--line);padding:15px;border-radius:16px}.host-card.selected{border-color:rgba(98,228,219,.57);box-shadow:inset 0 0 30px rgba(30,152,156,.08)}.host-card-head{display:flex;align-items:center;justify-content:space-between;gap:9px}.host-card b{font-size:20px}.host-card small{display:block;color:var(--muted);margin:4px 0}.host-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.status-bubble{border-radius:20px;background:#1d3445;color:#b1cbda;padding:4px 11px;font-size:13px}.status-bubble.ok{color:#78e4ac;background:#173b31;box-shadow:0 0 14px rgba(33,224,130,.1)}
/* File manager */
.file-manager{display:grid;grid-template-columns:1fr 1.16fr;gap:19px;height:min(610px,calc(100vh - 220px));min-height:420px}.file-manager .glass-card{display:flex;flex-direction:column;min-height:0}.device-drop{flex:none;min-height:175px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(130deg,rgba(18,75,84,.2),rgba(10,32,49,.68));border:1px dashed rgba(89,219,212,.43);border-radius:18px;text-align:center;padding:12px;gap:6px;transition:background .2s,transform .2s}.device-drop.drag,.remote-pane.drag{background:rgba(46,177,166,.18);border-color:#58ecd4;box-shadow:inset 0 0 35px rgba(25,204,175,.11)}.device-drop small{color:var(--muted)}.drop-icon{color:var(--cyan);font-size:38px}.device-actions{display:flex;gap:9px;margin-top:6px}.file-list{overflow:auto;scrollbar-width:none;min-height:0;flex:1;margin:12px 0}.file-list .file-empty{border:1px dashed var(--line);border-radius:13px;padding:23px 10px;text-align:center;color:var(--muted)}.file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(7,24,39,.68);padding:10px 13px;border:1px solid rgba(255,255,255,.05);border-radius:12px;margin-bottom:7px;min-width:0}.file-row:hover{border-color:rgba(93,213,224,.3)}.file-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.file-main .file-type{color:var(--cyan);font-size:21px}.file-meta{min-width:0}.file-meta b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:290px;font-size:16px}.file-meta small{display:block;color:#7897ac;font-size:12px}.path-bar{display:flex;align-items:center;gap:12px;background:#06192b;border:1px solid var(--line);border-radius:11px;padding:10px 13px}.path-bar span{color:#8cacc0}.path-bar code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:left}.folder-controls{margin-top:12px;flex-wrap:nowrap}.folder-controls input{min-width:90px}.remote-pane .help-note{font-size:18px;margin-top:auto}.transfer-symbol{color:#72dddb;font-size:24px}
/* Deploy */
.deploy-layout{display:grid;grid-template-columns:minmax(395px,.95fr) minmax(380px,1.05fr);gap:20px;align-items:start}.deploy-form-card,.deploy-output-card{min-height:610px}.deploy-layout .glass-card{max-height:calc(100vh - 207px);overflow:auto;scrollbar-width:none}.deploy-layout .glass-card::-webkit-scrollbar{display:none}.grow-field{flex:1}.field-bottom{display:flex;align-items:end}.field-bottom .btn{width:100%}.port-result{color:var(--muted);font:19px BMitra;padding:7px 10px;border-radius:10px;background:#0c2234}.port-result.good{color:var(--green)}.port-result.bad{color:var(--yellow)}.protocol-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#0a1b2d;border:1px solid var(--line);padding:12px 13px;border-radius:13px}.protocol-box>span{color:var(--muted);margin-left:auto}.protocol-box label{display:inline-flex;align-items:center;flex-direction:row;gap:5px}.protocol-box input[type=radio]{accent-color:#56dcd0;width:16px;height:16px}.zip-target{border:1px dashed #357780;border-radius:12px;padding:12px;color:var(--cyan)}.zip-target input{margin-top:7px;width:100%}.deploy-footer{padding-top:4px}.live-status{display:flex;gap:8px;align-items:center;color:var(--cyan)}.step-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 14px}.step-list>div{font-size:14px;padding:11px;border:1px solid var(--line);background:#092338;border-radius:12px;color:var(--cyan)}.step-list span{display:block;color:#b5d2e3;margin-top:4px}.terminal{background:#020e1b;border:1px solid #1c3d51;border-radius:17px;padding:18px;white-space:pre-wrap;overflow:auto;scrollbar-width:none;color:#8ff7c0;font:13px/1.7 Consolas,monospace;text-align:left;direction:ltr}.terminal-large{height:290px;min-height:250px}.result-link{display:block;text-align:center;border:1px solid rgba(87,224,202,.4);background:#0d3b42;color:#78f5e1;margin-top:14px;padding:11px;border-radius:12px}.result-link[hidden]{display:none}
/* Service discovery */
.managed-grid,.discovered-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.service-card{padding:15px;background:#0a1e31;border:1px solid var(--line);border-radius:16px}.service-card-head{display:flex;gap:8px;align-items:center;justify-content:space-between}.service-card b{display:block;font-size:20px}.service-card .details{font-size:13px;color:#a1bdcf;display:flex;flex-wrap:wrap;gap:8px;margin:9px 0}.service-card .details span{background:#0f2b41;border-radius:7px;padding:3px 8px}.service-card-actions{display:flex;gap:8px;flex-wrap:wrap}.service-card .service-path{direction:ltr;text-align:left;color:#759caf;font:12px Consolas,monospace;overflow-wrap:anywhere}.discovered-card{margin-top:17px}.service-url{color:var(--cyan);font-size:14px;direction:ltr;display:block;overflow:hidden;text-overflow:ellipsis}.terminal-card{height:calc(100vh - 240px);display:flex;flex-direction:column}.terminal-card .terminal{flex:1;min-height:0}.terminal-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.terminal-top>div{display:flex;align-items:center;gap:8px;color:var(--cyan)}
/* modal toast */
.toast{position:fixed;z-index:60;bottom:20px;left:20px;background:#10354b;border:1px solid rgba(101,234,224,.34);padding:11px 16px;border-radius:13px;box-shadow:0 0 25px rgba(34,187,188,.15);font:18px BMitra;opacity:0;transform:translateY(20px);pointer-events:none;transition:.23s;max-width:calc(100vw - 40px)}.toast.show{opacity:1;transform:none}.toast.error{border-color:#a94e53;background:#432530}.confirm-dialog{background:transparent;border:0;padding:0;color:var(--text);width:min(450px,92vw)}.confirm-dialog::backdrop{background:rgba(1,7,15,.82);backdrop-filter:blur(5px)}.confirm-frame{background:#0b2335;border:1px solid #357685;border-radius:22px;padding:25px;text-align:center;box-shadow:0 0 50px rgba(60,209,217,.13)}.confirm-frame h3{margin:0;font-size:25px}.confirm-frame p{font:23px/1.7 BMitra;color:#b9d2e0}.confirm-actions{display:flex;justify-content:center;gap:12px}
/* Login: animated racing light around card */
.login-body{background:radial-gradient(circle at 65% 20%,#10334a 0,transparent 40%),#06111e}.login-main{display:grid;grid-template-columns:1.06fr .94fr;height:100vh;max-height:100vh;max-width:1530px;margin:0 auto;padding:35px 6%;gap:6%;align-items:stretch}.login-showcase{display:flex;flex-direction:column;min-height:0}.login-brand{display:flex;gap:12px;align-items:center}.login-brand strong{font-size:30px}.login-brand small{display:block;color:#99b9cd;margin-top:3px}.showcase-center{margin:auto 0;text-align:center;display:flex;flex-direction:column;align-items:center}.showcase-center h1{font-size:clamp(42px,4.3vw,69px);margin:4px 0;line-height:1.35}.showcase-center p{font:26px/1.65 BMitra;color:#b7d2e2;max-width:490px;margin:8px 0 22px}.feature-chips{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.feature-chips span{padding:6px 13px;border:1px solid rgba(93,216,215,.17);border-radius:20px;background:#0d2a3e;color:#9fced8;font-size:13px}.showcase-icon{width:165px;height:165px;position:relative;display:grid;place-items:center;margin-bottom:26px}.central-symbol{font-size:76px;color:#81f1e3;text-shadow:0 0 32px #268c9c}.sweep-ring{position:absolute;inset:0;border:1px solid #3c8091;border-top:2px solid #83f4da;border-radius:50%;box-shadow:inset 0 0 30px rgba(60,222,214,.1),0 0 35px rgba(31,214,199,.1);animation:spin 5s linear infinite}.sweep-ring:before{content:'';position:absolute;inset:15px;border:1px dashed #306b84;border-radius:50%;animation:spin 9s linear infinite reverse}.login-area{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-width:0}.login-card{position:relative;max-width:480px;width:100%;padding:2px;border-radius:26px;background:conic-gradient(from var(--angle,0deg),rgba(31,90,104,.32) 0%,rgba(63,231,211,.85) 12%,rgba(38,144,203,.34) 19%,rgba(15,49,71,.3) 36%,rgba(19,63,78,.31) 68%,rgba(85,242,216,.8) 77%,rgba(25,72,92,.45) 89%);animation:rotateGlow 5s linear infinite;box-shadow:0 20px 90px rgba(0,0,0,.33),0 0 30px rgba(24,191,190,.09)}.login-card:before,.login-card:after{display:none}.login-card .card-inner{background:radial-gradient(circle at var(--mouse-x,70%) var(--mouse-y,20%),rgba(39,133,140,.13),transparent 40%),linear-gradient(155deg,#102e43,#091d30 76%);border-radius:24px;padding:30px 33px;position:relative}.login-card .card-inner:before{content:'';position:absolute;inset:0;border-radius:24px;border:1px solid rgba(86,230,219,.09);pointer-events:none}.login-status{display:flex;justify-content:space-between;align-items:center}.pulse-pill{display:inline-flex;gap:8px;align-items:center;font-size:14px;color:#9cddc8}.lock-icon{height:38px;width:38px;display:grid;place-items:center;border-radius:11px;background:#174457;color:var(--cyan);font-size:23px}.login-heading{text-align:center;margin:18px 0 26px}.login-heading h2{font-size:39px;margin:4px 0 0}.login-heading p{margin:1px 0;color:#98b5c8;font:23px BMitra}.login-label{display:block;margin-bottom:8px;font-size:17px}.input-shell{position:relative;display:flex;align-items:center;gap:9px;border-radius:13px;background:#071c2f;border:1px solid #224762;padding:0 13px;margin-bottom:16px;transition:box-shadow .2s,border-color .2s}.input-shell:focus-within{border-color:#61e4dd;box-shadow:0 0 0 4px rgba(89,234,218,.09),0 0 18px rgba(60,226,213,.13)}.input-shell span{color:var(--cyan)}.input-shell input{height:48px;min-width:0;flex:1;border:0;outline:0;background:none;color:#eaf9ff;font:19px BYekan}.pass-visibility{background:transparent;color:var(--cyan);border:0;font-size:15px}.login-submit{margin-top:8px;height:52px;font-size:21px}.login-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:#91aec2;display:flex;gap:9px;align-items:center;justify-content:center;font:19px BMitra}.login-copyright{font:12px Consolas,monospace;color:#5f8095;letter-spacing:.6px}.login-warning{background:#472a30;color:#ffd9da;border-radius:10px;text-align:center;padding:10px;font:21px BMitra;margin-bottom:15px}.form-error{color:#ffb0b4;min-height:18px;font:18px BMitra}
/* Breakpoints */
@media(max-width:1110px){.view{padding:17px}.hero{grid-template-columns:1.6fr .65fr}.hero-orb{transform:scale(.84)}.quick-grid{grid-template-columns:repeat(2,1fr)}.deploy-layout{grid-template-columns:1fr 1fr}.deploy-layout .glass-card{max-height:calc(100vh - 190px)}.page-heading p{max-width:650px}.login-main{padding:28px 4%;gap:3%}}
@media(max-width:780px){:root{--head:72px}.topbar{padding:0 14px}.brand-title strong{font-size:21px}.brand-title small{display:none}.top-center{display:none}.top-left{gap:6px}.user-chip{font-size:13px}.view{padding:13px}.page-heading{align-items:stretch;flex-direction:column;gap:10px;margin-bottom:13px}.page-heading h2{font-size:27px}.page-heading p{font-size:15px}.hero{padding:20px 21px;grid-template-columns:1fr;min-height:260px}.hero-orb{display:none}.hero h1{font-size:39px}.hero p{font-size:21px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric{min-height:106px;padding:13px}.metric strong{font-size:32px}.dashboard-bottom,.page-columns,.file-manager,.deploy-layout{grid-template-columns:1fr}.file-manager{height:auto;min-height:0}.file-manager .glass-card{min-height:335px}.file-manager .remote-pane{min-height:480px}.deploy-layout .glass-card{max-height:unset;min-height:0}.deploy-output-card{margin-bottom:15px}.login-main{display:flex;align-items:center;justify-content:center;padding:12px;height:100vh}.login-showcase{display:none}.login-area{width:100%}.login-card .card-inner{padding:23px 23px}.login-card{max-width:440px}.login-heading h2{font-size:34px}.terminal-card{height:calc(100vh - 200px)}.dashboard-wrap{gap:11px}.glass-card{padding:14px}.step-list{grid-template-columns:1fr 1fr}}
@media(max-height:720px) and (min-width:781px){.view{padding-top:13px}.hero{min-height:215px;padding:17px 26px}.orb-shell{transform:scale(.8);height:150px}.metric{min-height:94px;padding:12px}.metric strong{font-size:34px}.hero p{font-size:20px}.login-card .card-inner{padding:18px 29px}.showcase-icon{height:110px;width:110px;margin-bottom:12px}.showcase-center h1{font-size:43px}.login-heading{margin:9px 0 14px}.login-heading h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.secondary-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;color:#b9d7e3;font-size:14px!important;cursor:pointer}.secondary-checkbox input{width:16px;height:16px;accent-color:var(--cyan)}

.job-history-card{margin-top:16px}.job-history{max-height:210px;overflow:auto;scrollbar-width:none}.job-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0a2134;border:1px solid var(--line);border-radius:12px;padding:9px 13px;margin-bottom:8px;color:#bdd6e4;font-size:14px}.job-row span{flex:1;min-width:0;overflow-wrap:anywhere}

/* Prerequisites check in deploy wizard (v2.0.1) */
.preflight-panel{display:flex;flex-direction:column;gap:10px;padding:13px 15px;background:rgba(3,16,29,.66);border:1px solid rgba(86,218,224,.25);border-radius:18px;margin:10px 0}
.preflight-title{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.preflight-title strong{font-family:BYekan,Tahoma,sans-serif;font-size:16px}
.preflight-result{white-space:pre-line;direction:rtl;text-align:right;font-family:BMitra,serif;font-size:22px;line-height:1.5;color:#ffdf86;background:rgba(0,10,20,.4);border:1px solid rgba(255,220,134,.1);border-radius:13px;padding:11px 13px}
.preflight-result.good{color:#8be9b1;border-color:rgba(73,220,148,.26)}
.preflight-result.bad{color:#ffb0a8;border-color:rgba(255,120,130,.25)}
.preflight-checkbox{display:flex;flex-direction:row;gap:10px;align-items:flex-start;font-family:BMitra,serif;font-size:20px;line-height:1.5;color:#e9ebf7}
.preflight-checkbox input{width:18px;height:18px;flex:0 0 auto;margin:7px 0 0;accent-color:#61ddd2}
.preflight-footnote{color:#a8bed3;font-family:BMitra,serif;font-size:18px;margin:0;line-height:1.45}
@media(max-width:620px){.preflight-title{align-items:stretch}.preflight-title button{width:100%}.preflight-result{font-size:20px}}

/* v2.0.2: repair the form-stack flex-column and 100%-width inheritance. */
.form-stack label.preflight-checkbox {display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:11px;min-width:0;padding:0;margin:0;font:18px/1.55 BMitra,serif;color:#d8e5ee;cursor:pointer}
.form-stack label.preflight-checkbox span {flex:1;min-width:0;overflow-wrap:anywhere}
.form-stack .preflight-checkbox input[type=checkbox],
.form-stack .secondary-checkbox input[type=checkbox] {
 display:block;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;
 flex:0 0 18px;margin:0;padding:0;appearance:auto;accent-color:#5bded7;background:transparent;
 border:0;border-radius:0;box-shadow:none;cursor:pointer;
}
.form-stack .secondary-checkbox{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:24px}
.preflight-panel .prereq-guidance {margin:0;padding:12px 14px;background:#261d2c;border:1px solid rgba(255,139,149,.38);border-radius:12px;color:#ffcfca;text-align:center;font:20px/1.65 BMitra,serif}
.prereq-guidance[hidden]{display:none}
.preflight-result{font-size:19px;line-height:1.72;overflow-wrap:anywhere;word-break:normal;direction:rtl;text-align:right}
@media(max-width:620px){.form-stack label.preflight-checkbox{font-size:17px}.preflight-result{font-size:17px}.preflight-panel{padding:12px}.preflight-panel .prereq-guidance{font-size:18px}}

/* SSL recovery for already deployed HTTP sites; scoped to project cards. */
.ssl-retry-box{display:flex;flex-direction:column;gap:10px;background:#0a2033;border:1px solid #285b6c;border-radius:14px;padding:13px;margin:12px 0}
.ssl-retry-title{font:18px BMitra,serif;color:#ffd785;text-align:center}
.ssl-retry-box input.ssl-email{border:1px solid #326278;border-radius:10px;background:#071927;color:#eafaff;padding:10px 12px;max-width:100%;font:14px BYekan,Tahoma}
.ssl-retry-box .ssl-option{display:flex;align-items:center;gap:9px;font:17px BMitra,serif;color:#bbdbe5}
.ssl-retry-box .ssl-option input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;accent-color:#57ded0}
.ssl-retry-box .ssl-retry-button{background:linear-gradient(120deg,#36cabe,#68baf0);color:#051a28}

/* v2.0.4 — targeted layout, controls and two-mode deployment refinements */
.topbar{justify-content:space-between}
.top-left{display:flex;align-items:center;gap:9px}
.top-right{display:flex;align-items:center;gap:10px}
.top-left form{margin:0}
.top-left .icon-button,.top-left .icon-button svg{width:42px;height:42px}
.top-left .icon-button svg{width:23px;height:23px}
.top-left .icon-button{display:grid;place-items:center;border:1px solid #24445e;border-radius:12px;background:#102c43;color:#c6f5f2;transition:box-shadow .2s,border-color .2s,transform .2s}
.top-left .icon-button:hover{border-color:#67e6d3;box-shadow:0 0 18px rgba(72,218,204,.18);transform:translateY(-1px)}
.power-button{color:#ffa5a0!important}
.top-right .install-icon{appearance:none;cursor:pointer;display:grid;place-items:center;flex-shrink:0;border:1px solid rgba(125,244,231,.3)}
.top-right .install-icon.install-ready{animation:installGlow 1.8s ease-in-out infinite}
@keyframes installGlow{50%{box-shadow:0 0 25px rgba(92,239,223,.65),0 0 55px rgba(72,202,247,.22)}}
.brand-title{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}
.brand-title strong,.brand-title small{text-align:center}
.hero-actions{flex-wrap:wrap}
.hero-actions .btn{white-space:nowrap}
.host-corner{display:inline-flex;align-items:center;gap:8px;margin-top:9px;font-size:13px;color:#8ef2d2}
.dash-host{position:relative}
.dash-host .section-header{align-items:center}
.dash-host .host-line .state-label{margin-right:auto}
.metric strong{color:#ffd877;text-align:center;font-variant-numeric:tabular-nums;text-shadow:0 0 19px rgba(244,181,69,.13)}
.metric small{display:block;text-align:center}
.metric-label{display:block}
.metric{display:flex;flex-direction:column;justify-content:center}
.service-card-new{display:flex;flex-direction:column;gap:11px;min-width:0;text-align:center;border-color:rgba(93,181,211,.18);background:linear-gradient(165deg,#0b283c,#071b2e);box-shadow:inset 0 0 24px rgba(58,170,185,.04)}
.service-card-new .service-card-head{flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0}
.service-card-new .service-title{font-family:BYekan,Tahoma,sans-serif;font-size:18px;line-height:1.7;overflow-wrap:anywhere;text-align:center;direction:ltr}
.service-card-new .service-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.service-card-new .service-info-cell{display:flex;flex-direction:column;align-items:center;gap:3px;justify-content:center;background:#0a2035;border:1px solid rgba(87,182,210,.09);border-radius:11px;padding:8px 5px;min-width:0}
.service-card-new .service-info-cell small{font-size:12px;color:#8caec2}
.service-card-new .service-info-cell strong{font:15px/1.6 BYekan,Tahoma,sans-serif;color:#f0e8c4;overflow-wrap:anywhere;max-width:100%;text-align:center;direction:auto}
.service-card-new .service-path{width:100%;margin:0;padding:10px 6px;border-radius:10px;background:rgba(0,12,23,.43);font:12px/1.6 Consolas,monospace;text-align:center;direction:ltr;overflow-wrap:anywhere}
.service-card-new .service-url{text-align:center;overflow-wrap:anywhere;white-space:normal}
.service-card-new .service-card-actions{justify-content:center;gap:7px;margin-top:auto}
.service-card-new .service-card-actions .mini-button{padding:8px 12px;font-size:13px}
.service-card-new .restart-button{color:#bffded;background:#0b3b43;border-color:#276f75}
.service-card-new .restart-button:hover{box-shadow:0 0 14px rgba(75,228,216,.22)}
.service-card-new .cmd-details{width:100%;background:#091e30;border:1px solid rgba(139,190,220,.11);border-radius:10px;padding:8px 10px;color:#b3cddd;text-align:right;font-size:12px}
.service-card-new .cmd-details summary{cursor:pointer;text-align:center;color:#9dd0d8}
.service-card-new .cmd-details code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;direction:ltr;margin-top:8px;color:#b4d4e5;font:11px/1.6 Consolas,monospace}
.service-card-new .ssl-retry-box{margin:0}
/* Full path field, without the oversized yellow block from previous version */
.project-address-field input{direction:ltr;text-align:left;unicode-bidi:plaintext}
.project-address-field small{display:block;color:#9ebed4;font:18px/1.5 BMitra,serif;margin-top:5px;text-align:right}
.path-preview{padding:8px 14px;border-radius:11px;border:1px solid #27536a;background:#061c2b;color:#8de4ca;direction:ltr;text-align:left;font:13px/1.6 Consolas,monospace;overflow-wrap:anywhere;min-height:34px}
/* SSH modal */
.connect-dialog{padding:0;background:transparent;border:0;color:var(--text);width:min(560px,94vw);max-height:min(94vh,850px);overflow:auto;scrollbar-width:none}
.connect-dialog::backdrop{background:rgba(0,7,19,.82);backdrop-filter:blur(9px)}
.connect-modal-frame{position:relative;border:1px solid rgba(101,239,220,.34);border-radius:23px;background:linear-gradient(135deg,#102c41,#071b2c);box-shadow:0 0 60px rgba(29,169,187,.25);padding:2px;overflow:hidden}
.connect-modal-frame:before{content:'';position:absolute;inset:-130%;background:conic-gradient(from 0deg,transparent 0 59%,rgba(65,226,208,.8) 65%,rgba(66,172,248,.23) 72%,transparent 83%);animation:spin 8s linear infinite;pointer-events:none}
.connect-dialog-body{position:relative;background:linear-gradient(160deg,#0b273c,#071b2e);border-radius:21px;padding:22px 26px}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.dialog-heading h3{font-size:26px;margin:4px 0}
.connect-dialog .form-stack{display:flex;flex-direction:column;gap:15px}
.connect-dialog .form-stack label{display:flex;flex-direction:column;gap:7px}
.connect-dialog .form-stack label.remember-option{display:flex;flex-direction:row;align-items:center;gap:10px;cursor:pointer}
.connect-dialog label.remember-option input[type=checkbox]{appearance:auto;width:18px;height:18px;flex:0 0 18px;accent-color:#5ce4d9;margin:0;padding:0}
.connect-dialog .modal-help{color:#b0cbd7;font:19px/1.65 BMitra,serif;text-align:center;margin:0}
.connect-card p{font:21px/1.6 BMitra,serif;color:#b3d0df}
[hidden]{display:none!important}
@media(max-width:780px){
 .brand-title strong{font-size:20px}.brand-title small{display:none}
 .top-left .icon-button{width:39px;height:39px}
 .top-right .install-icon{height:39px;width:39px}
 .hero-actions{display:grid;grid-template-columns:repeat(2,1fr)}
 .hero-actions .btn{padding:11px 8px;font-size:13px}
 .service-card-new .service-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .connect-dialog-body{padding:18px 16px}
}
