:root{--bg:#09090d;--panel:#111118;--panel2:#15151d;--line:#282833;--text:#f7f7fb;--muted:#9b9baa;--purple:#7c3aed;--purple2:#a855f7;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;--shadow:0 24px 70px rgba(0,0,0,.36);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 75% -10%,rgba(124,58,237,.14),transparent 32%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.muted{color:var(--muted)}.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:#a78bfa}.brand-mark{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#6d28d9,#a855f7);font-weight:900;box-shadow:0 16px 32px rgba(124,58,237,.28)}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:13px;box-shadow:none}.btn{border:0;border-radius:13px;padding:12px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.2s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff;box-shadow:0 10px 28px rgba(124,58,237,.2)}.btn.secondary{background:#1c1c25;color:#fff;border:1px solid #30303b}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.danger{background:#2a1115;color:#fecaca;border:1px solid #4c1d24}.btn.wide{width:100%;padding:14px 18px}.hidden{display:none!important}
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 20%,rgba(124,58,237,.18),transparent 34%),#09090d}.auth-shell{width:min(1050px,100%);display:grid;grid-template-columns:1.02fr .98fr;border:1px solid var(--line);background:#0d0d13;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);min-height:610px}.auth-shell.compact{width:min(940px,100%);min-height:560px}.auth-brand-panel{padding:54px;position:relative;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#111119,#0b0b10);overflow:hidden}.auth-brand-panel:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:#7c3aed2b;filter:blur(70px);right:-120px;bottom:-100px}.auth-brand-panel>*{position:relative;z-index:1}.auth-brand-panel .kicker{margin-top:26px}.auth-brand-panel h1{font-size:48px;letter-spacing:-.045em;margin:8px 0 10px}.auth-brand-panel>p{max-width:520px;color:#aaaabb;line-height:1.7;font-size:16px}.feature-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:38px}.feature-mini-grid div{border:1px solid #242430;border-radius:16px;padding:16px;background:#121219a8}.feature-mini-grid strong,.feature-mini-grid span{display:block}.feature-mini-grid span{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.45}.auth-card{background:#121219;padding:54px;display:flex;justify-content:center;flex-direction:column}.auth-card h2{font-size:28px;margin:0 0 8px;letter-spacing:-.02em}.auth-card>p{margin:0 0 28px;line-height:1.6}.form-stack{display:grid;gap:17px}.form-stack label>span{display:block;font-size:12px;color:#c3c3cf;font-weight:700;margin-bottom:8px}.form-stack input,.form-stack select,.message-box{width:100%;border:1px solid #30303b;background:#0c0c11;color:#fff;border-radius:13px;padding:13px 14px;outline:none;transition:.2s}.form-stack input:focus,.form-stack select:focus,.message-box:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.11)}.form-stack small{display:block;color:#767685;font-size:11px;margin-top:6px}.field-grid{display:grid;gap:14px}.field-grid.two{grid-template-columns:1fr 1fr}.input-prefix{display:flex;align-items:center;border:1px solid #30303b;background:#0c0c11;border-radius:13px;overflow:hidden}.input-prefix b{padding:0 0 0 14px;color:#666676}.input-prefix input{border:0!important;box-shadow:none!important;background:transparent!important}.form-foot{text-align:center!important;font-size:11px;color:#6f6f7e;margin:20px 0 0!important}.alert{border-radius:13px;padding:12px 14px;margin-bottom:18px;font-size:13px}.alert.error{background:#2a1115;border:1px solid #4c1d24;color:#fecaca}.alert.success{background:#0f2418;border:1px solid #1d5031;color:#bbf7d0}.alert ul{margin:8px 0 0 18px;padding:0}.mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:30px}.login-visual{position:relative;height:150px;margin-top:34px}.visual-card{position:absolute;left:0;top:8px;width:260px;border:1px solid #292936;background:#13131b;padding:16px 18px;border-radius:16px;box-shadow:var(--shadow)}.visual-card.shift{left:68px;top:76px}.visual-card b,.visual-card small{display:block;margin-left:20px}.visual-card small{color:var(--muted);margin-top:4px;font-size:11px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.green{background:var(--green);box-shadow:0 0 0 4px rgba(34,197,94,.1)}.dot.purple{background:#a855f7;box-shadow:0 0 0 4px rgba(168,85,247,.1)}.setup-shell{width:min(1180px,100%)}.setup-card{padding:42px}.step-indicator{display:flex;align-items:center;margin-bottom:28px}.step-indicator span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid #343440;color:#777788;font-size:11px}.step-indicator span.active{background:#7c3aed;border-color:#7c3aed;color:#fff}.step-indicator i{height:1px;background:#30303b;width:34px}.health-row{display:flex;gap:8px;flex-wrap:wrap}.health{padding:7px 9px;border-radius:999px;font-size:11px;border:1px solid}.health.ok{color:#bbf7d0;background:#0f2418;border-color:#245b39}.health.bad{color:#fecaca;background:#2a1115;border-color:#4c1d24}
.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid #23232c;background:#0c0c11;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:4px 7px 20px}.brand span:last-child{display:flex;flex-direction:column}.brand b{font-size:15px}.brand small{font-size:10px;color:#777786;margin-top:3px}.sidebar nav{display:grid;gap:5px;margin-top:10px}.sidebar nav a{border-radius:12px;padding:11px 12px;color:#9292a0;font-weight:700;display:flex;align-items:center;gap:11px}.sidebar nav a:hover,.sidebar nav a.active{background:#17171f;color:#fff}.side-foot{margin-top:auto;display:grid;gap:14px}.server-pill{border:1px solid #252530;border-radius:14px;padding:11px;display:flex;gap:10px;align-items:flex-start;background:#111118}.server-pill div{display:flex;flex-direction:column}.server-pill b{font-size:11px}.server-pill small{font-size:10px;color:#6f6f7e;margin-top:3px}.logout{font-size:12px;color:#858594;padding:10px}.main{padding:36px 40px 54px;min-width:0}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.topbar h1{font-size:33px;letter-spacing:-.035em;margin:5px 0 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stats-grid article{border:1px solid var(--line);background:linear-gradient(145deg,#121219,#0f0f15);border-radius:18px;padding:18px}.stats-grid span,.stats-grid small{display:block;color:#7f7f8f;font-size:11px}.stats-grid strong{display:block;font-size:28px;letter-spacing:-.03em;margin:6px 0 4px}.panel{border:1px solid var(--line);background:#101017;border-radius:20px;overflow:hidden}.panel-head{padding:20px 22px;border-bottom:1px solid #24242e;display:flex;justify-content:space-between;align-items:center;gap:18px}.panel-head h2{font-size:17px;margin:0}.panel-head p{font-size:12px;color:#7e7e8c;margin:5px 0 0}.search input{width:230px;border:1px solid #2e2e39;background:#0a0a0f;color:#fff;border-radius:11px;padding:10px 12px;outline:none}.empty{padding:68px 20px;text-align:center}.empty-icon{width:58px;height:58px;border-radius:18px;background:#191923;margin:0 auto 16px;display:grid;place-items:center;font-size:24px}.empty h3{margin:0}.empty p{max-width:510px;margin:9px auto 20px;color:#858594;line-height:1.6}.project-list{display:grid}.project-row{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #21212a}.project-row:first-child{border-top:0}.project-row:hover{background:#13131a}.project-main{display:flex;gap:14px;min-width:0}.project-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#22222d,#181820);border:1px solid #30303b;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.title-line{display:flex;align-items:center;gap:9px}.title-line h3{font-size:14px;margin:0}.project-main a{display:block;color:#858594;font-size:11px;margin-top:4px;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px}.mini-meta span{font-size:10px;color:#6f6f7e}.badge{font-size:9px!important;border-radius:999px;padding:4px 7px!important;border:1px solid}.badge.active{color:#86efac;border-color:#225c37;background:#102819}.badge.expired{color:#fcd34d;border-color:#614b13;background:#241d0b}.badge.inactive{color:#c4c4cf;border-color:#40404a;background:#1a1a21}.row-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:38px;height:38px;border-radius:11px;border:1px solid #30303a;background:#17171e;color:#d5d5dc;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:#202029}
.modal{position:fixed;inset:0;display:none;z-index:60}.modal.open{display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px)}.modal-card{position:relative;z-index:1;width:min(700px,calc(100% - 28px));max-height:92vh;overflow:auto;border:1px solid #2c2c37;background:#111118;border-radius:24px;box-shadow:0 30px 100px rgba(0,0,0,.55);animation:modalIn .24s ease}.modal-head{padding:22px 24px 16px;display:flex;align-items:flex-start;justify-content:space-between}.modal-head h2{margin:5px 0 0;font-size:24px}.close-btn{width:36px;height:36px;border:1px solid #30303a;background:#191920;color:#aaaab8;border-radius:11px;font-size:22px;cursor:pointer}.upload-modal form{padding:0 24px 24px}.dropzone{border:1px dashed #3a3a48!important;background:#0d0d13;border-radius:17px!important;padding:24px!important;text-align:center;cursor:pointer;transition:.2s}.dropzone.drag{border-color:#8b5cf6!important;background:#171320}.dropzone input{display:none}.dropzone strong,.dropzone span,.dropzone small{display:block!important}.dropzone strong{margin-top:9px}.dropzone span{font-size:12px;color:#858594;margin-top:5px}.dropzone small{color:#a78bfa!important;margin-top:12px!important}.drop-icon{width:46px;height:46px;margin:auto;border-radius:14px;background:#1c1727;display:grid;place-items:center;color:#c4b5fd;font-size:20px}.upload-progress{border:1px solid #2a2a35;background:#0d0d13;border-radius:15px;padding:14px}.progress-top{display:flex;justify-content:space-between;font-size:11px;color:#aaaab8}.progress-bar{height:6px;border-radius:99px;background:#24242f;margin-top:10px;overflow:hidden}.progress-bar i{display:block;width:0;height:100%;background:linear-gradient(90deg,#7c3aed,#c084fc);transition:width .25s}.progress-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.progress-steps span{font-size:9px;color:#60606f}.progress-steps span.current{color:#c4b5fd}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:3px}.modal-open{overflow:hidden}.toast{position:fixed;right:22px;bottom:22px;z-index:100;transform:translateY(20px);opacity:0;pointer-events:none;background:#17171f;border:1px solid #33333e;color:#fff;border-radius:13px;padding:12px 15px;box-shadow:var(--shadow);transition:.25s}.toast.show{opacity:1;transform:none}.toast.error{border-color:#5b242a;color:#fecaca}.project-top .project-url{font-size:11px;color:#8b8b99}.top-actions{display:flex;gap:8px}.project-stats .status-word{font-size:20px;letter-spacing:.03em}.status-word.active{color:#86efac}.status-word.expired{color:#fcd34d}.status-word.inactive{color:#b3b3bf}.date-stat{font-size:17px!important;margin-top:12px!important}.detail-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:16px}.detail-card{padding-bottom:20px}.detail-card .panel-head{margin-bottom:18px}.detail-card form,.detail-card>.message-box,.detail-card>.message-actions,.detail-card>.info-list,.detail-card>.btn{margin-left:20px;margin-right:20px}.switch-line{display:flex!important;align-items:center;justify-content:space-between;border:1px solid #292934;border-radius:14px;padding:13px 14px}.switch-line div{display:flex;flex-direction:column}.switch-line b{font-size:13px}.switch-line small{margin-top:3px!important}.switch-line input{display:none}.switch{width:42px;height:24px;background:#2d2d38;border-radius:999px;position:relative;transition:.2s}.switch:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#a3a3af;transition:.2s}.switch-line input:checked+.switch{background:#7c3aed}.switch-line input:checked+.switch:after{transform:translateX(18px);background:#fff}.message-box{min-height:240px;resize:vertical;line-height:1.55;font-size:12px}.message-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.small-text{font-size:10px;text-align:right}.info-list{display:grid}.info-list div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #23232c}.info-list div:first-child{border-top:0}.info-list span{color:#7c7c8b;font-size:12px}.info-list b{font-size:12px;text-align:right}.danger-card{border-color:#402025}.danger-card .panel-head{border-color:#3a1f23}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:1000px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.sidebar{padding:20px 12px}.brand span:last-child,.sidebar nav span,.server-pill div,.logout{display:none}.brand{justify-content:center}.sidebar nav a{justify-content:center;font-size:18px}.server-pill{justify-content:center;padding:12px}.stats-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.main{padding:30px 28px}.auth-brand-panel{padding:42px}.auth-card{padding:42px}.feature-mini-grid{grid-template-columns:1fr}}
@media(max-width:720px){body{font-size:14px}.app-shell{display:block}.sidebar{position:fixed;z-index:50;left:0;right:0;bottom:0;top:auto;height:70px;border-right:0;border-top:1px solid #272731;display:flex;flex-direction:row;padding:8px 12px;background:#0d0d13e8;backdrop-filter:blur(16px)}.brand{display:none}.sidebar nav{display:flex;flex:1;justify-content:space-around;margin:0}.sidebar nav a{width:48%;padding:8px;font-size:18px}.side-foot{display:none}.main{padding:24px 16px 96px}.topbar{align-items:center}.topbar h1{font-size:27px}.topbar>.btn{font-size:0;width:44px;height:44px;padding:0}.topbar>.btn:after{content:"＋";font-size:22px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stats-grid article{padding:14px;border-radius:15px}.stats-grid strong{font-size:23px}.panel{border-radius:17px}.panel-head{padding:16px;align-items:flex-start;flex-direction:column}.search,.search input{width:100%}.project-row{padding:14px;align-items:flex-start}.project-main{min-width:0}.project-icon{display:none}.row-actions{align-self:center}.row-actions .icon-btn{display:none}.row-actions .btn{font-size:11px;padding:10px}.project-main a{max-width:54vw}.mini-meta{gap:7px}.mini-meta span:nth-child(3),.mini-meta span:nth-child(4){display:none}.title-line{align-items:flex-start;flex-direction:column;gap:5px}.auth-body{padding:0}.auth-shell,.auth-shell.compact,.setup-shell{display:block;border:0;border-radius:0;min-height:100vh}.auth-brand-panel{display:none}.auth-card,.setup-card{min-height:100vh;padding:34px 22px;background:#0f0f15}.mobile-brand{display:flex}.field-grid.two{grid-template-columns:1fr}.feature-mini-grid{display:none}.modal.open{align-items:end}.modal-card{width:100%;max-height:94vh;border-radius:24px 24px 0 0;border-left:0;border-right:0;border-bottom:0}.upload-modal form{padding:0 18px 22px}.modal-head{padding:19px 18px 14px}.progress-steps{grid-template-columns:repeat(2,1fr)}.top-actions .secondary{display:none}.project-top{align-items:flex-start}.project-top .btn.primary{font-size:0;width:44px;height:44px;padding:0}.project-top .btn.primary:after{content:"↗";font-size:18px}.message-actions{align-items:flex-start;flex-direction:column}.small-text{text-align:left}.toast{left:14px;right:14px;bottom:84px;text-align:center}}
.settings-alert{margin:0 20px 18px}.settings-alert+form{margin-top:0}
.upload-progress.error{border-color:#5b242a}.upload-progress.error .progress-bar i{background:#ef4444}.upload-progress.error .progress-top{color:#fecaca}

/* DeployHub 2.2 — atualização de projetos por ZIP */
.update-project-card{scroll-margin-top:22px}.update-count-badge{font-size:10px;color:#c4b5fd;border:1px solid #3d3159;background:#171221;padding:6px 9px;border-radius:999px;white-space:nowrap}.project-update-form{margin-left:20px;margin-right:20px}.update-dropzone{padding:20px!important}.form-section-label{display:block;font-size:12px;color:#c3c3cf;font-weight:700;margin-bottom:9px}.update-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.update-mode-option{display:flex!important;gap:12px;align-items:flex-start;border:1px solid #2d2d38;border-radius:15px;padding:14px;background:#0d0d13;cursor:pointer;transition:.2s}.update-mode-option:hover{border-color:#454553}.update-mode-option.active{border-color:#7c3aed;background:#151021;box-shadow:0 0 0 3px rgba(124,58,237,.08)}.update-mode-option.danger-option.active{border-color:#7f3038;background:#1a1013;box-shadow:0 0 0 3px rgba(239,68,68,.06)}.update-mode-option input{display:none}.update-mode-option>span:last-child{min-width:0}.update-mode-option b,.update-mode-option small{display:block}.update-mode-option b{font-size:12px;color:#fff;margin-bottom:5px}.update-mode-option small{font-size:10px!important;line-height:1.55;color:#858594;margin:0!important}.mode-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#1d1727;color:#c4b5fd;font-weight:900}.danger-option .mode-icon{background:#271317;color:#fca5a5}.preserve-options{border:1px solid #292934;background:#0d0d13;border-radius:15px;padding:14px}.preserve-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}.preserve-chips span{font-size:9px;padding:5px 7px;border-radius:999px;background:#171722;border:1px solid #2d2d3a;color:#aaaabd}.preserve-options textarea{width:100%;border:1px solid #30303b;background:#09090e;color:#fff;border-radius:12px;padding:11px 12px;resize:vertical;outline:none;line-height:1.5}.preserve-options textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.1)}.preserve-options em{font-style:normal;color:#6f6f7e;font-weight:500}.replace-confirm{display:flex!important;align-items:center;gap:11px;border:1px solid #56232a;background:#211014;border-radius:14px;padding:13px 14px}.replace-confirm input{width:18px;height:18px;accent-color:#ef4444;flex:0 0 auto}.replace-confirm span{display:flex;flex-direction:column}.replace-confirm b{font-size:12px;color:#fecaca}.replace-confirm small{margin:3px 0 0!important;color:#b9878d!important}.update-note{display:flex;align-items:flex-start;gap:10px;border:1px solid #253a2e;background:#0d1b13;border-radius:14px;padding:12px 13px}.update-note>span{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#123320;color:#86efac;font-weight:900;flex:0 0 auto}.update-note p{font-size:10px;line-height:1.55;color:#8ba596;margin:0}.update-note b{color:#c8f5d8}.update-progress-steps{grid-template-columns:repeat(4,1fr)!important}.update-progress-steps span.current{color:#c4b5fd!important}.update-top-btn{white-space:nowrap}
@media(max-width:720px){.update-mode-grid{grid-template-columns:1fr}.project-update-form{margin-left:16px;margin-right:16px}.update-count-badge{align-self:flex-start}.top-actions .update-top-btn{display:inline-flex;width:44px;height:44px;padding:0;font-size:0}.top-actions .update-top-btn:after{content:"⇧";font-size:18px}.update-progress-steps{grid-template-columns:repeat(2,1fr)!important}.preserve-options{padding:12px}.project-update-card .panel-head{gap:10px}}

.analytics-owner-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:14px 16px;border:1px solid #24543a;background:#0d1a13;border-radius:16px}.analytics-owner-note>div{display:flex;align-items:center;gap:12px;min-width:0}.analytics-owner-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#123f26;color:#86efac;font-weight:900;flex:0 0 auto}.analytics-owner-note b,.analytics-owner-note small{display:block}.analytics-owner-note b{font-size:12px;color:#dcfce7;margin-bottom:3px}.analytics-owner-note small{font-size:10px;color:#8eaa98;line-height:1.45}.btn.compact{padding:10px 13px;font-size:10px;white-space:nowrap}@media(max-width:720px){.analytics-owner-note{align-items:stretch;flex-direction:column}.analytics-owner-note .btn{width:100%}}
