:root{color:#18202f;background:#eef2f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;letter-spacing:0}*{box-sizing:border-box}body{margin:0}#root button,#root input,#root select,#root textarea{font:inherit}.shell{height:100vh;display:grid;grid-template-columns:288px minmax(0,1fr);overflow:hidden}.sidebar{background:#111827;color:#f8fafc;padding:24px 0 24px 18px;display:flex;flex-direction:column;gap:28px;min-height:0;overflow:hidden}.admin-shell .sidebar{background:#2f0606}.brand{display:flex;align-items:center;flex:0 0 auto;padding-right:18px}.brand img{display:block;width:100%;max-width:226px;height:auto}nav{display:grid;gap:6px;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.nav-inline{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px;width:calc(100% - 18px)}.nav-section{display:grid;gap:4px;padding-top:12px;margin-top:6px;border-top:1px solid #263244}.admin-shell .nav-section{border-top-color:#6f1010}#root .nav-item,#root .nav-group{width:calc(100% - 18px);background:transparent;border:0;color:#d1d5db;padding:11px 12px;border-radius:6px;justify-content:flex-start;text-align:left}#root .nav-inline .nav-item{width:100%}#root .icon-nav{display:flex;align-items:center;justify-content:center;padding:0;text-align:center;min-height:42px}.icon-nav svg{display:block;width:22px;height:22px;fill:currentColor}#root .nav-group{color:#fff;font-weight:700;background:#172033}.admin-shell #root .nav-group,#root .admin-shell .nav-group{background:#6f1010}#root .nav-item.child{padding-left:34px;color:#cbd5e1}#root .nav-item.active,#root .nav-item:hover,#root .nav-group.active,#root .nav-group:hover{background:#253044;color:#fff}#root .admin-shell .nav-item{color:#fee2e2}#root .admin-shell .nav-item.child{color:#fecaca}#root .admin-shell .nav-item.active,#root .admin-shell .nav-item:hover,#root .admin-shell .nav-group.active,#root .admin-shell .nav-group:hover{background:#b91c1c;color:#fff}.main{padding:26px;min-height:0;height:100vh;overflow-y:auto;overflow-x:hidden}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.topbar-actions{display:flex;justify-content:flex-end;align-items:flex-end;gap:12px;flex-wrap:wrap}h1,h2,p{margin:0}h1{font-size:28px;line-height:1.2}h2{font-size:18px}.topbar p,.section-title span,.module p,small{color:#64748b}.auth-box{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:260px}.auth-box span{color:#475569;background:#fff;border:1px solid #dbe3eb;border-radius:6px;padding:10px 11px}.voucher-form{display:flex;align-items:center;gap:8px;min-width:0}.voucher-form strong{white-space:nowrap}.voucher-form input{width:118px}.billing-options{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:12px;align-items:stretch}.voucher-redeem-form,.payment-skeleton{margin:0;padding:14px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:6px}.payment-skeleton{display:grid;gap:6px}.payment-skeleton span{color:#64748b}.positive-amount{color:#047857}.negative-amount{color:#b91c1c}#root input,#root select,#root textarea{border:1px solid #cbd5e1;border-radius:6px;padding:10px 11px;background:#fff;color:#111827}code{border:1px solid #cbd5e1;border-radius:5px;padding:2px 6px;background:#eef6f5;color:#0f766e;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9em}#root .name-rename-trigger{display:inline;width:auto;max-width:100%;min-width:0;padding:0;border:0;border-bottom:1px dotted currentColor;border-radius:0;background:transparent;color:inherit;font-weight:700;line-height:1.25;white-space:normal;text-align:left;overflow-wrap:anywhere}#root .name-rename-trigger:hover,#root .name-rename-trigger:focus-visible{color:#0f766e}#root input[type=radio]{width:auto;padding:0;margin:0;accent-color:#0f766e}#root textarea{min-height:180px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;line-height:1.45}.project-switcher{display:grid;gap:6px;min-width:240px;color:#475569;font-size:13px}#root button{border:0;border-radius:6px;padding:10px 12px;background:#0f766e;color:#fff;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px}.secondary-action{background:#e2e8f0;color:#1f2937}.danger-action{background:#b91c1c;color:#fff}#root .admin-entry-link{background:#b91c1c;color:#fff;border-color:#991b1b}#root .admin-entry-link:hover{background:#991b1b;color:#fff}#root .user-space-link{background:#e2e8f0;color:#1f2937;border-color:#cbd5e1}#root .user-space-link:hover{background:#cbd5e1;color:#111827}#root button:disabled,#root input:disabled,#root select:disabled,#root textarea:disabled{opacity:.55;cursor:not-allowed}.activity-indicator{min-height:40px;display:inline-flex;align-items:center;gap:8px;border:1px solid #bae6fd;border-radius:6px;padding:9px 11px;background:#f0f9ff;color:#0369a1;font-size:13px;font-weight:700}.spinner{width:14px;height:14px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stats div,.panel,.wide{background:#fff;border:1px solid #dbe3eb;border-radius:8px}.stats div{padding:18px}.stats strong{display:block;font-size:24px}.stats span{color:#64748b}.grid{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:18px;margin-bottom:18px}.panel,.wide{padding:18px}.inline-form{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.inline-form input{min-width:0;flex:1}.plan-form,.labeled-inline-form{align-items:end}.labeled-inline-form label,.plan-form label{display:grid;gap:6px;min-width:0;flex:1;color:#475569;font-size:13px;font-weight:700}.labeled-inline-form input,.plan-form input{width:100%}.inline-form button{white-space:nowrap}.list{display:grid;gap:8px}.row{width:100%;background:#f8fafc;color:#111827;border:1px solid #e2e8f0;display:flex;justify-content:space-between;gap:12px;text-align:left;align-items:center}.row.active{background:#ccfbf1;border-color:#5eead4}.row span,.row small{display:grid;min-width:0}.row em{color:#64748b;font-style:normal;font-size:13px}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:40;display:grid;gap:8px;width:min(360px,calc(100vw - 36px));pointer-events:none}#root .toast{width:100%;justify-content:flex-start;white-space:normal;text-align:left;pointer-events:auto;border:1px solid #5eead4;background:#0f766e;color:#fff;box-shadow:0 14px 34px #0f172a38;animation:toast-in .18s ease-out}#root .toast.toast-leaving{animation:toast-out .2s ease-in forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(12px)}}.service-form{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-form input[name=name],.service-form .full-field,.service-form .domain-choice,.service-form input[name=customImage],.service-form textarea[name=dockerfile],.service-form input[name=domains],.service-form button{grid-column:1 / -1}.service-form label{color:#475569;display:grid;gap:6px;font-size:13px}.domain-choice{border:1px solid #e2e8f0;border-radius:6px;padding:12px;display:grid;gap:12px}.domain-choice legend{padding:0 6px;color:#475569;font-size:13px}.segmented{display:flex;flex-wrap:wrap;gap:8px}.segmented label{display:flex;align-items:center;gap:6px;border:1px solid #dbe3eb;border-radius:6px;padding:8px 10px;background:#f8fafc}.domain-suffix-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.domain-suffix-field input{border-radius:6px 0 0 6px}.domain-suffix-field span{border:1px solid #cbd5e1;border-left:0;border-radius:0 6px 6px 0;padding:10px 11px;background:#f8fafc;color:#475569}.purchased-domain-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.wide{margin-bottom:18px}.section-title{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.table{display:grid;gap:8px}.service-row{display:grid;grid-template-columns:1.2fr 1fr .6fr .6fr .6fr;gap:10px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.service-row span{color:#475569;min-width:0;overflow-wrap:anywhere}.service-row button{min-width:0}.proxy-endpoint-table .proxy-endpoint-row{grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr) minmax(220px,1.2fr)}.search-field{display:grid;gap:6px;min-width:min(320px,100%);color:#475569;font-size:13px;font-weight:700}.proxy-domain-table .proxy-domain-row{grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);align-items:start}.proxy-domain-row>div:first-child{display:grid;gap:6px}.proxy-domain-groups{display:grid;gap:8px;min-width:0}.proxy-domain-groups details{border:1px solid #dbe4ee;border-radius:6px;background:#fff;padding:8px 10px}.proxy-domain-groups summary{cursor:pointer;font-weight:800}.proxy-domain-groups summary span{margin-left:8px;color:#64748b;font-weight:700}.proxy-domain-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.proxy-domain-list code{max-width:100%;overflow-wrap:anywhere}.row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;min-width:0}.web-instance-table .web-instance-row{grid-template-columns:42px minmax(180px,1.1fr) minmax(160px,1fr) minmax(160px,1fr) 88px minmax(128px,.6fr)}.database-table .database-row{grid-template-columns:42px minmax(180px,1fr) minmax(120px,.55fr) minmax(160px,1fr) minmax(180px,1fr) minmax(220px,.8fr)}.project-table .project-row{grid-template-columns:minmax(180px,1.2fr) minmax(120px,.7fr) minmax(200px,1fr) minmax(110px,.55fr) minmax(140px,.65fr);cursor:pointer}.project-table .project-row.selected{background:#ecfdf5;border-color:#5eead4}.project-table .project-row:focus-visible{outline:2px solid #14b8a6;outline-offset:2px}.state-indicator{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;font-weight:800;line-height:1}.state-symbol{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;transform:translateY(-1px)}.state-running{background:#0f766e;color:#fff}.state-stopped{background:#ca8a04;color:#fff}.state-deleting{background:#b91c1c;color:#fff}#root .icon-action{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;color:#fff;font-size:18px;font-weight:800}#root .icon-action svg{display:block;width:20px;height:20px;fill:currentColor}#root .icon-action span,#root .state-indicator,#root .state-indicator .state-symbol{color:#fff}#root [data-tooltip]{position:relative}#root [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);z-index:30;transform:translate(-50%);opacity:0;pointer-events:none;white-space:nowrap;border-radius:5px;padding:5px 7px;background:#111827;color:#fff;font-size:12px;font-weight:700;line-height:1.2;box-shadow:0 8px 18px #0f172a2e}#root [data-tooltip]:hover:after,#root [data-tooltip]:focus-visible:after{opacity:1}#root .icon-nav[data-tooltip]:after{left:auto;right:0;bottom:auto;top:calc(100% + 6px);transform:none}.volume-table .volume-row{grid-template-columns:minmax(180px,1fr) minmax(180px,1.1fr) minmax(160px,1fr) 90px minmax(220px,.8fr)}.dropdown-action{position:relative}.dropdown-action summary{list-style:none;border-radius:6px;padding:10px 12px;background:#0f766e;color:#fff;cursor:pointer}.dropdown-action summary::-webkit-details-marker{display:none}.dropdown-action[open] button{position:absolute;right:0;top:calc(100% + 6px);z-index:5;min-width:180px;background:#fff;color:#111827;border:1px solid #dbe3eb;box-shadow:0 12px 30px #0f172a29}.ssh-user-table .ssh-row{grid-template-columns:1fr 1fr minmax(220px,1.4fr) 120px 120px}.ssh-row strong{min-width:0;overflow-wrap:anywhere}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.plan-grid{margin-top:12px}.module{border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;padding:14px;display:grid;gap:8px}.ssh-management{display:grid;gap:12px}.compact-form{grid-template-columns:minmax(0,1fr) minmax(120px,180px)}.compact-form textarea,.compact-form button{grid-column:1 / -1}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0f172a8a}.modal{width:min(680px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;background:#fff;border:1px solid #dbe3eb;border-radius:8px;padding:18px;box-shadow:0 22px 70px #0f172a3d}.explorer-modal,.snapshot-modal{width:min(900px,100%)}.path-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0}.path-actions span{color:#64748b;overflow-wrap:anywhere}.file-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:12px;text-align:left;align-items:center;background:#f8fafc;color:#111827;border:1px solid #e2e8f0}.file-row.directory{background:#eef6f5}.file-row span{color:#64748b;text-align:right}.snapshot-table .snapshot-row{grid-template-columns:minmax(180px,1fr) 140px 180px minmax(240px,.8fr)}.plan-admin-table .plan-admin-row{grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) 100px 130px 110px 130px minmax(220px,.9fr)}.node-admin-table .node-admin-row{grid-template-columns:minmax(150px,1fr) 90px minmax(120px,.8fr) minmax(150px,.9fr) 110px 130px minmax(170px,1fr) minmax(150px,1fr) 90px 96px}.project-node-table .project-node-row{grid-template-columns:minmax(160px,1fr) minmax(220px,1.2fr) 120px minmax(220px,.8fr)}.node-admin-row label,.node-create-form label,.node-provision-form label{display:grid;gap:6px;min-width:0;color:#475569;font-size:13px;font-weight:700}.node-admin-row input,.node-create-form input,.node-create-form select,.node-provision-form input,.node-provision-form select,.project-node-row select{width:100%}.field-hint{color:#64748b;font-size:12px;font-weight:700}.node-admin-row .node-active-toggle{display:flex;align-items:center;gap:8px}.node-active-toggle input{width:auto}.compact-actions{display:flex;justify-content:flex-end;gap:8px}.provision-console{display:grid;align-content:start;gap:2px;min-height:120px;max-height:360px;overflow:auto;border:1px solid #111827;border-radius:6px;background:#050505;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;padding:12px}.provision-line{display:flex;gap:8px;font-size:13px;line-height:1.45}.provision-line span{color:#fff;flex:0 0 auto}.provision-line code{color:#fff;background:transparent;border:0;padding:0;border-radius:0;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.provision-stderr code,.provision-error code,.provision-done code{color:#fff}.node-log-modal{width:min(960px,calc(100vw - 36px))}.node-log-console{min-height:420px;max-height:min(68vh,680px)}.provision-runs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.status-pill{display:inline-flex;align-items:center;min-height:36px;border-radius:6px;padding:8px 10px;background:#e2e8f0;color:#475569;font-size:13px;font-weight:700}.status-pill.active{background:#d1fae5;color:#047857}.log-console{min-height:440px;max-height:calc(100vh - 260px);overflow:auto;border:1px solid #111827;border-radius:6px;padding:12px;background:#0b1220;color:#d1fae5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.45}.log-console .muted{color:#94a3b8}.log-line{display:grid;grid-template-columns:82px 72px minmax(0,1fr);gap:10px;padding:2px 0}.log-line time{color:#93c5fd}.log-line strong{color:#5eead4;overflow-wrap:anywhere}.log-line span{min-width:0;color:#e5e7eb;white-space:pre-wrap;overflow-wrap:anywhere}.log-line.error span,.log-line.error strong{color:#fca5a5}.modal-title{grid-column:1 / -1;margin-bottom:2px}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.modal-actions button{grid-column:auto}.ssh-prefix-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}.ssh-prefix-field span{border:1px solid #cbd5e1;border-right:0;border-radius:6px 0 0 6px;padding:10px 11px;background:#f8fafc;color:#475569;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.ssh-prefix-field input{border-radius:0 6px 6px 0}.project-summary{margin-top:14px;display:grid;gap:8px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}.project-summary span,.muted{color:#64748b}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef2f6}.login-panel{width:min(460px,100%);background:#fff;border:1px solid #dbe3eb;border-radius:8px;padding:28px;display:grid;gap:18px}.login-brand{color:#111827}.login-panel h1{font-size:26px}.login-panel p{color:#64748b}.primary-action{width:100%}.login-security{border-top:1px solid #e2e8f0;padding-top:16px;color:#64748b;font-size:13px}.empty-state{min-height:240px;display:grid;align-content:center;gap:8px}.empty-state p{color:#64748b}@media (max-width: 980px){.shell{height:auto;min-height:100vh;grid-template-columns:1fr;overflow:visible}.sidebar{position:static;overflow:visible}nav{max-height:48vh}.main{height:auto;overflow:visible}.topbar,.topbar-actions,.auth-box,.voucher-form,.inline-form{flex-direction:column;align-items:stretch;min-width:0;width:100%}.voucher-form input{width:100%}.stats,.grid,.billing-options,.service-row,.ssh-user-table .ssh-row,.web-instance-table .web-instance-row,.database-table .database-row,.project-table .project-row,.volume-table .volume-row,.proxy-domain-table .proxy-domain-row,.plan-admin-table .plan-admin-row,.node-admin-table .node-admin-row,.project-node-table .project-node-row,.snapshot-table .snapshot-row,.log-line,.file-row{grid-template-columns:1fr}.row-actions,.path-actions{justify-content:flex-start}.file-row span{text-align:left}}
