:root{color-scheme:dark;--bg: #121514;--bg-soft: #1b211f;--panel: rgba(20, 24, 23, .82);--line: rgba(187, 210, 190, .13);--text: #eef3eb;--muted: #9fb2a4;--accent: #a3ff72;--accent-strong: #d8ff7a;--warn: #f7b267;--shadow: 0 24px 80px rgba(0, 0, 0, .3);--console-font-size: .68rem;font-family:Bahnschrift,Segoe UI Variable Text,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(163,255,114,.09),transparent 30%),radial-gradient(circle at top right,rgba(247,178,103,.1),transparent 30%),linear-gradient(180deg,#101311,#151a18);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:transparent}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(163,255,114,.7);outline-offset:3px}#root{min-height:100vh}.page-shell,.login-shell{min-height:100vh;padding:40px 32px 56px}.login-shell{display:grid;place-items:center}.login-card,.panel,.app-card,.modal-shell,.empty-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.login-card{width:min(560px,100%);border-radius:32px;padding:40px}.login-card h1,.page-header h1{margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.4rem);line-height:.95}.login-card p,.page-header p,.panel-subtitle,.app-card p,.empty-panel p{color:var(--muted)}.eyebrow,.muted-label,.panel-subtitle{text-transform:uppercase;letter-spacing:.18em;font-size:.76rem}.stack-form{display:grid;gap:16px}.stack-form label{display:grid;gap:8px}input,textarea,select{border:1px solid rgba(255,255,255,.12);border-radius:16px;background:#ffffff0a;color:var(--text);padding:14px 16px;outline:none}input:focus,textarea:focus,select:focus{border-color:#a3ff7280;box-shadow:0 0 0 4px #a3ff7214}.primary-button,.secondary-button,.danger-button,.ghost-button,.tab-button,.inline-link,.tree-item,.history-row{transition:.18s ease}.primary-button,.secondary-button,.danger-button,.ghost-button{border:1px solid transparent;border-radius:999px;padding:12px 18px}.button-with-icon,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:10px}.button-with-icon{justify-content:flex-start}.button-with-icon svg,.icon-button svg{width:16px;height:16px;flex:0 0 auto}.icon-button{min-width:46px;min-height:46px;padding:0}.run-toggle-button svg{width:22px;height:22px}.primary-button{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);color:#161b11;font-weight:700}.secondary-button{background:#ffffff0f;color:var(--text);border-color:#ffffff1a}.ghost-button{background:transparent;color:var(--muted);border-color:#ffffff14}.danger-button{background:#ff7f7f1f;color:#ffd2d2;border-color:#ff7f7f38}.primary-button:hover,.secondary-button:hover,.danger-button:hover,.ghost-button:hover,.inline-link:hover,.tree-item:hover,.history-row:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.page-header.compact h1{font-size:clamp(1.8rem,4vw,2.8rem)}.header-actions,.form-actions{display:flex;gap:12px;flex-wrap:wrap}.custom-select{position:relative}.custom-select.disabled{opacity:.55}.custom-select-trigger{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:#ffffff0a;color:var(--text);min-height:50px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.custom-select-trigger:focus{border-color:#a3ff7280;box-shadow:0 0 0 4px #a3ff7214}.custom-select-value{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-chevron{color:var(--muted)}.custom-select-menu{position:absolute;z-index:45;top:calc(100% + 6px);left:0;right:0;border-radius:14px;border:1px solid var(--line);background:#121615fa;box-shadow:var(--shadow);padding:6px;max-height:280px;overflow:auto}.custom-select-option{width:100%;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;padding:10px 12px}.custom-select-option:hover,.custom-select-option.active{background:#a3ff7229}.push-right{margin-left:auto}.user-menu{position:relative}.user-menu-trigger{min-width:150px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.role-chip{border-radius:999px;border:1px solid rgba(163,255,114,.28);background:#a3ff721f;color:var(--accent-strong);font-size:.68rem;line-height:1;padding:4px 7px;text-transform:uppercase;letter-spacing:.06em}.user-menu-popover{position:absolute;right:0;top:calc(100% + 8px);display:grid;gap:4px;min-width:190px;border-radius:16px;padding:8px;border:1px solid var(--line);background:#121615fa;box-shadow:var(--shadow);z-index:40}.user-menu-item{border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;padding:10px 12px}.user-menu-item:hover{background:#ffffff14}.user-menu-item.danger{color:#ffb5b5}.user-menu-divider{height:1px;margin:4px 2px;background:#ffffff1a}.card-grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.app-card,.panel{border-radius:28px;padding:22px}.clickable-card{cursor:pointer}.app-card-top,.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.app-card h3,.panel h3{margin:0;font-size:1.18rem}.app-meta{display:grid;gap:8px;color:var(--muted);margin-bottom:20px}.app-card-actions{display:flex;flex-wrap:wrap;gap:10px}.console-toggle-button{margin-left:auto}.app-inline-console-wrap{margin-top:14px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#0c100fcc;padding:10px}.app-inline-console-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.app-inline-console-header .ghost-button{padding:8px 12px}.app-inline-console{white-space:pre-wrap;background:#0d1110;border-radius:12px;border:1px solid rgba(255,255,255,.08);padding:12px;font-family:Consolas,Courier New,monospace;font-size:var(--console-font-size);min-height:160px;max-height:280px;overflow:auto}.active-icon-button{background:#a3ff7221;border-color:#a3ff7247;color:var(--accent-strong)}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;font-size:.85rem;border:1px solid rgba(255,255,255,.08)}.status-running{background:#a3ff7226;color:var(--accent-strong)}.status-starting,.status-stopping{background:#f7b26724;color:var(--warn)}.status-error,.status-completed_error{background:#ff7f7f24;color:#ffb5b5}.status-stopped,.status-completed_success{background:#ffffff0f;color:var(--text)}.detail-grid,.files-layout{display:grid;gap:18px}.help-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.help-panel h3{margin-top:0;margin-bottom:14px}.help-list{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--text)}.help-list.ordered{padding-left:22px}.help-key-values{display:grid;gap:10px}.help-key-values p{margin:0;color:var(--muted);line-height:1.45}.help-key-values strong{color:var(--text)}.help-faq{display:grid;gap:12px}.help-faq>div{border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#ffffff08;padding:12px 14px}.help-faq h4{margin:0 0 8px;font-size:1rem}.help-faq p{margin:0;color:var(--muted);line-height:1.45}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.key-value-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.key-value-grid strong{display:block;margin-top:6px}.tab-strip{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.tab-button{border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--muted);padding:11px 16px}.tab-button.active{background:#a3ff7221;border-color:#a3ff7247;color:var(--accent-strong)}.console-output,.history-log{white-space:pre-wrap;background:#0f1312;border-radius:20px;border:1px solid rgba(255,255,255,.06);padding:18px;font-family:Consolas,Courier New,monospace;font-size:var(--console-font-size);overflow:auto}.console-output{min-height:60vh;max-height:70vh}.history-log{min-height:48vh;max-height:60vh}.compact-log{min-height:24vh}.history-list{display:grid;gap:10px}.history-row{display:grid;grid-template-columns:1.3fr 1fr 1fr .8fr;gap:10px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text);text-align:left;padding:14px 16px}.files-layout{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.files-tree-panel{max-height:78vh;display:flex;flex-direction:column}.file-tree{display:grid;gap:6px;flex:1;min-height:0;overflow:auto}.files-tree-actions{margin-top:14px;display:grid;gap:10px}.tree-item{width:100%;text-align:left;border:0;background:#ffffff08;color:inherit;border-radius:14px;padding:10px 14px}.tree-item.directory{color:var(--accent-strong)}.tree-item.selected{background:#a3ff7224;border:1px solid rgba(163,255,114,.18)}.tree-folder-row{display:inline-flex;align-items:center;gap:8px}.tree-folder-toggle{width:24px;height:24px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0f;color:var(--text);display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}.tree-folder-toggle:hover{background:#a3ff7226;border-color:#a3ff7259}.tree-folder-name{word-break:break-word}.tree-file-row{display:flex;align-items:center;gap:8px}.tree-file-button{flex:1;min-width:0;border:0;background:transparent;color:inherit;text-align:left;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.tree-action-button{width:30px;height:30px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0f;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;padding:0}.tree-action-button svg{width:14px;height:14px}.tree-action-button:hover{color:var(--text)}.tree-action-button.danger{color:#ffb5b5}.editor-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.env-editor{display:grid;gap:10px}.env-row{display:grid;gap:10px;grid-template-columns:1fr 1fr auto}.env-hint{align-self:center;color:var(--muted);font-size:.88rem}.inline-toggle{display:inline-flex;gap:10px;align-items:center}.inline-toggle input{width:18px;height:18px;padding:0}.error-banner{margin-bottom:18px;border-radius:18px;border:1px solid rgba(255,127,127,.22);background:#ff7f7f1a;color:#ffd2d2;padding:14px 16px}.success-banner{margin-bottom:18px;border-radius:18px;border:1px solid rgba(163,255,114,.25);background:#a3ff721a;color:var(--accent-strong);padding:14px 16px}.empty-panel{border-radius:26px;padding:24px}.compact-empty{border-radius:16px;padding:16px;box-shadow:none}.admin-shell{padding-bottom:72px}.admin-stats{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.admin-stat{border-radius:18px;border:1px solid var(--line);background:#ffffff0a;padding:16px}.admin-stat strong{display:block;margin-top:8px;font-size:1.65rem;line-height:1}.admin-layout{display:grid;gap:18px;grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start}.admin-users-panel{display:grid;gap:16px;max-height:calc(100vh - 240px);overflow:hidden}.admin-list-controls{display:grid;gap:12px}.admin-filter-strip{display:flex;gap:8px;flex-wrap:wrap}.admin-filter-strip .tab-button{padding:9px 12px}.admin-user-list,.admin-detail,.admin-app-list{display:grid;gap:10px}.admin-user-list{min-height:0;overflow:auto;padding-right:4px}.admin-user-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#ffffff09;color:var(--text);text-align:left;padding:13px 14px}.admin-user-row:hover,.admin-user-row.selected{background:#a3ff721f;border-color:#a3ff723d}.admin-user-row strong,.admin-app-heading h4{overflow-wrap:anywhere}.admin-row-meta{display:block;margin-top:4px;color:var(--muted);font-size:.86rem}.admin-row-badges,.admin-title-badges{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.status-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.1);padding:5px 8px;font-size:.74rem;line-height:1;white-space:nowrap}.status-chip.ok{background:#a3ff721f;color:var(--accent-strong);border-color:#a3ff723d}.status-chip.danger{background:#ff7f7f1f;color:#ffd2d2;border-color:#ff7f7f3d}.status-chip.admin{background:#80b8ff1f;color:#cfe1ff;border-color:#80b8ff47}.admin-user-kpis strong{overflow-wrap:anywhere}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.admin-app-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#ffffff09;padding:16px}.admin-app-main{min-width:0}.admin-app-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.admin-app-heading h4{margin:0;font-size:1rem}.admin-app-row p{margin:0 0 12px;color:var(--muted)}.admin-app-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;color:var(--muted);font-size:.9rem}.admin-app-meta span{min-width:0;overflow-wrap:anywhere}.modal-backdrop{position:fixed;inset:0;background:#080a09b8;display:grid;place-items:center;padding:24px;z-index:20}.modal-shell{width:min(680px,100%);max-height:90vh;overflow:auto;border-radius:30px;padding:28px}.hidden-file-input,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.inline-link{display:inline-flex;margin-bottom:10px;color:var(--accent-strong)}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.site-signature{position:fixed;right:14px;bottom:8px;color:#9fb2a4c7;font-size:.72rem;letter-spacing:.03em;z-index:15;-webkit-user-select:none;user-select:none;pointer-events:auto}.site-signature-link{color:#b8c6bceb;text-decoration:underline;text-decoration-color:#b8c6bc47}.site-signature-link:hover{color:var(--text);text-decoration-color:#eef3eba6}.toast-viewport{position:fixed;right:24px;bottom:24px;z-index:110;width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-item{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;border-radius:16px;padding:12px 14px;border:1px solid rgba(255,255,255,.12);background:#141817f0;box-shadow:var(--shadow);animation:toast-in .22s ease}.toast-success{border-color:#a3ff7261}.toast-error{border-color:#ff7f7f6b}.toast-info{border-color:#ffffff38}.toast-content{flex:1;min-width:0}.toast-title{font-weight:700;line-height:1.25}.toast-description{margin-top:4px;color:var(--muted);font-size:.86rem;line-height:1.3}.toast-close{width:26px;height:26px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0a;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:17px;line-height:1}.toast-close:hover{color:var(--text);border-color:#a3ff725c}@keyframes toast-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:980px){.card-grid,.files-layout,.admin-layout{grid-template-columns:1fr}.admin-users-panel{max-height:none}.history-row{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.page-shell,.login-shell{padding:22px 16px 32px}.toast-viewport{right:12px;bottom:12px;width:calc(100vw - 24px)}.page-header,.panel-header,.modal-header{flex-direction:column}.header-actions,.admin-actions{width:100%}.header-actions>*,.admin-actions>*{min-width:0}.detail-shell>.page-header>.header-actions{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:12px}.detail-shell>.page-header>.header-actions .icon-button{width:100%;min-width:58px;min-height:58px}.detail-shell>.page-header>.header-actions .icon-button svg{width:20px;height:20px}.detail-shell>.page-header>.header-actions .run-toggle-button svg{width:26px;height:26px}.admin-stats{grid-template-columns:1fr}.admin-user-row,.admin-app-row,.admin-app-heading{grid-template-columns:1fr;align-items:stretch}.admin-user-row,.admin-app-heading{flex-direction:column}.admin-app-meta,.env-row{grid-template-columns:1fr}}
