:root{--page: #f4f5f7;--card: #ffffff;--border: #d9dee5;--border-strong: #c3cad3;--text: #1f2933;--muted: #5b6b7b;--accent: #0b5f58;--accent-hover: #094d47;--accent-soft: #e3efed;--accent-border: #b7d4cf;--danger: #b42318;--danger-hover: #93201a;--danger-soft: #fbeae9;--danger-border: #efb3ad;--warning: #b54708;--warning-soft: #fdf1e5;--warning-border: #f2c99a;--neutral-soft: #eceff3;--neutral-strong: #dfe4ea;--sidebar-bg: #1b222b;--sidebar-line: #2b343f;--sidebar-hover: #29323d;--sidebar-text: #cfd6de;--sidebar-admin-bg: #2b1315;--sidebar-admin-line: #4a1f22;--sidebar-admin-hover: #6b2226;--sidebar-admin-text: #ecd6d6;--radius: 4px;--radius-badge: 3px;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;color:var(--text);background:var(--page);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.35;letter-spacing:0}*{box-sizing:border-box}html,body{font-size:13px;line-height:1.35}body{margin:0;background:var(--page)}#root button,#root input,#root select,#root textarea{font:inherit}.shell{height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr);overflow:hidden}.sidebar{background:var(--sidebar-bg);color:#f3f5f7;padding:16px 0 16px 12px;display:flex;flex-direction:column;gap:18px;min-height:0;overflow:hidden}.admin-shell .sidebar{background:var(--sidebar-admin-bg)}.brand{display:flex;align-items:center;flex:0 0 auto;padding-right:12px}.brand img{display:block;width:100%;max-width:190px;height:auto}nav{display:grid;gap:4px;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.nav-inline{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:4px;width:calc(100% - 12px)}.nav-section{display:grid;gap:2px;padding-top:8px;margin-top:4px;border-top:1px solid var(--sidebar-line)}.admin-shell .nav-section{border-top-color:var(--sidebar-admin-line)}#root .nav-item,#root .nav-group{width:calc(100% - 12px);background:transparent;border:0;color:var(--sidebar-text);padding:7px 10px;border-radius:var(--radius);justify-content:flex-start;text-align:left;font-size:13px}#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:30px}.icon-nav svg{display:block;width:16px;height:16px;fill:currentColor}#root .nav-group{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:transparent}.source-icon{flex:0 0 14px;width:14px;height:14px;fill:currentColor}.admin-shell #root .nav-group,#root .admin-shell .nav-group{background:transparent}#root .nav-item.child{padding-left:30px;color:var(--sidebar-text)}#root .nav-item.active,#root .nav-item:hover,#root .nav-group.active,#root .nav-group:hover{background:var(--sidebar-hover);color:#fff}#root .admin-shell .nav-item,#root .admin-shell .nav-item.child{color:var(--sidebar-admin-text)}#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:var(--sidebar-admin-hover);color:#fff}.main{padding:18px;min-height:0;height:100vh;overflow-y:auto;overflow-x:hidden}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px;min-height:32px}.topbar-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}h1,h2,h3,p{margin:0}h1{font-size:18px;line-height:1.25;font-weight:700}h2{font-size:15px;line-height:1.3;font-weight:700}h3{font-size:13px;line-height:1.35;font-weight:700}.topbar p,.section-title span,.module p,small{color:var(--muted)}.auth-box{display:flex;gap:6px;align-items:center;justify-content:flex-end;min-width:200px}.auth-box span{color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px}.voucher-form{display:flex;align-items:center;gap:6px;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:10px;align-items:stretch}.voucher-redeem-form,.payment-skeleton{margin:0;padding:10px;border:1px solid var(--border);background:var(--page);border-radius:var(--radius)}.payment-skeleton{display:grid;gap:4px}.payment-skeleton span{color:var(--muted)}.positive-amount{color:var(--accent)}.negative-amount{color:var(--danger)}#root input,#root select,#root textarea{border:1px solid var(--border-strong);border-radius:var(--radius);padding:6px 8px;background:var(--card);color:var(--text);font-size:13px;line-height:1.35}#root input:focus-visible,#root select:focus-visible,#root textarea:focus-visible{outline:1px solid var(--accent);outline-offset:0;border-color:var(--accent)}code{border:1px solid var(--border);border-radius:var(--radius-badge);padding:1px 5px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:.92em}#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:var(--accent)}#root input[type=radio],#root input[type=checkbox]{width:auto;padding:0;margin:0;accent-color:var(--accent)}#root textarea{min-height:140px;resize:vertical;font-family:var(--font-mono);line-height:1.4}.project-switcher{display:grid;gap:3px;min-width:200px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}#root button{border:1px solid var(--accent);border-radius:var(--radius);padding:6px 10px;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;line-height:1.35;min-height:30px}#root button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.secondary-action{background:var(--neutral-soft);color:var(--text)}.danger-action{background:var(--danger);color:#fff}#root .secondary-action{background:var(--card);border-color:var(--border-strong);color:var(--text)}#root .secondary-action:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border-strong)}#root .danger-action{background:var(--danger);border-color:var(--danger);color:#fff}#root .danger-action:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}#root .dns-info-action{background:var(--card);border-color:var(--border-strong);color:var(--text)}#root .dns-info-action:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border-strong)}#root .modal-close{width:26px;height:26px;min-height:0;padding:0;justify-self:end;align-self:start;border:1px solid var(--border);border-radius:var(--radius-badge);background:var(--card);color:var(--muted);font-size:16px;line-height:1}#root .modal-close:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border);color:var(--text)}#root .admin-entry-link{background:var(--danger);color:#fff;border-color:var(--danger)}#root .admin-entry-link:hover{background:var(--danger-hover);border-color:var(--danger-hover);color:#fff}#root .user-space-link{background:var(--card);color:var(--text);border-color:var(--border-strong)}#root .user-space-link:hover{background:var(--neutral-soft);border-color:var(--border-strong);color:var(--text)}#root button:disabled,#root input:disabled,#root select:disabled,#root textarea:disabled{opacity:.55;cursor:not-allowed}.activity-indicator{min-height:30px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--accent-border);border-radius:var(--radius);padding:5px 8px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.spinner{width:12px;height:12px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.stats div,.panel,.wide{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.stats div{padding:12px 14px}.stats strong{display:block;font-size:18px;line-height:1.25}.stats span{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.grid{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:14px;margin-bottom:14px}.panel,.wide{padding:14px}.mutualized-guard-space{position:relative;min-height:calc(100vh - 150px)}.mutualized-guard-content.is-muted{filter:grayscale(.35);opacity:.34;pointer-events:none;-webkit-user-select:none;user-select:none}.mutualized-project-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:grid;place-items:center;padding:24px;background:#f4f5f7b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.first-project-form{width:min(520px,100%)}.inline-form{display:flex;gap:6px;margin:10px 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:4px;min-width:0;flex:1;color:var(--muted);font-size:12px;font-weight:700}.labeled-inline-form input,.plan-form input{width:100%}.inline-form button{white-space:nowrap}.list{display:grid;gap:6px}.row{width:100%;background:var(--page);color:var(--text);border:1px solid var(--border);display:flex;justify-content:space-between;gap:10px;text-align:left;align-items:center}.row.active{background:var(--accent-soft);border-color:var(--accent-border)}.row span,.row small{display:grid;min-width:0}.row em{color:var(--muted);font-style:normal;font-size:12px}.toast-stack{position:fixed;right:14px;bottom:14px;z-index:40;display:grid;gap:6px;width:min(360px,calc(100vw - 28px));pointer-events:none}#root .toast{width:100%;justify-content:flex-start;white-space:normal;text-align:left;pointer-events:auto;border:1px solid var(--accent-hover);background:var(--accent);color:#fff;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:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.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:var(--muted);display:grid;gap:4px;font-size:12px}.service-form label.checkbox-field{grid-template-columns:auto 1fr;align-items:start;gap:8px}.service-form label.checkbox-field input[type=checkbox]{width:auto;margin-top:2px}.service-form label.checkbox-field small{display:block;margin-top:2px}.domain-choice{border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:grid;gap:10px;margin:0}.domain-choice legend{padding:0 4px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.segmented{display:flex;flex-wrap:wrap;gap:6px}.segmented label{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;background:var(--page);color:var(--text)}.security-options{gap:6px}.security-switch{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:34px;border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;background:var(--page);color:var(--text);font-weight:700}.security-switch input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.switch-track{position:relative;inline-size:34px;block-size:18px;border:1px solid var(--border-strong);border-radius:var(--radius-badge);background:var(--neutral-strong);transition:background .16s ease,border-color .16s ease}.switch-thumb{position:absolute;inset-block-start:2px;inset-inline-start:2px;inline-size:12px;block-size:12px;border-radius:2px;background:#fff;border:1px solid var(--border-strong);transition:transform .16s ease}.security-switch input:checked+.switch-track{border-color:var(--accent);background:var(--accent)}.security-switch input:checked+.switch-track .switch-thumb{transform:translate(16px);border-color:var(--accent-hover)}.security-switch:focus-within{border-color:var(--accent)}.security-switch:has(input:disabled){opacity:.62}.switch-state{min-inline-size:30px;color:var(--muted);font-size:11px;text-align:right}.security-switch input:checked~.switch-state{color:var(--accent)}.domain-suffix-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.domain-suffix-field input{border-radius:var(--radius) 0 0 var(--radius)}.domain-suffix-field span{border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--radius) var(--radius) 0;padding:6px 8px;background:var(--page);color:var(--muted)}.purchased-domain-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.pill-input{position:relative;display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:32px;padding:3px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card)}.autocomplete-menu{position:absolute;left:4px;right:4px;top:calc(100% + 4px);z-index:35;display:grid;gap:2px;max-height:240px;overflow:auto;border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px;background:var(--card)}#root .autocomplete-option{display:flex;align-items:center;justify-content:flex-start;gap:6px;width:100%;min-height:0;border:1px solid transparent;border-radius:var(--radius-badge);padding:5px 7px;background:var(--page);color:var(--text);text-align:left}#root .autocomplete-option:hover,#root .autocomplete-option:focus-visible{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.pill-input:focus-within{border-color:var(--accent)}.pill-input input{flex:1 1 160px;min-width:120px;border:0;padding:4px 6px}.pill-input input:focus,.pill-input input:focus-visible{outline:0;border:0}.pill{width:auto;border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-badge);padding:2px 6px;font-size:12px;font-weight:700;overflow-wrap:anywhere}#root .pill{min-height:0;border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}#root .pill:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border-strong)}.pill.removable{cursor:pointer}.wide{margin-bottom:14px}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.section-label{display:block;margin:0;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.table{display:grid;gap:4px}.dns-zone-list{display:grid;gap:10px}.dns-zone{border:1px solid var(--border);border-radius:var(--radius);padding:10px;background:var(--card)}.dns-zone-title{margin-bottom:8px}.dns-zone-heading{display:flex;align-items:center;gap:8px;min-width:0}.dns-zone-title h3{margin:0;font-size:13px}.dns-ns-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px}.dns-ns-entry{display:grid;gap:3px;min-width:0;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--page)}.dns-ns-entry code,.dns-record-row input,.dns-record-form input{overflow-wrap:anywhere}.dns-ns-entry span{color:var(--muted);font-size:12px}.dns-record-row{display:grid;grid-template-columns:14px minmax(140px,1.1fr) 64px minmax(220px,2fr) 64px 42px 66px;gap:8px;padding:4px 8px;align-items:center;width:100%;min-width:0;box-sizing:border-box}.dns-record-name,.dns-record-type,.dns-record-content,.dns-record-ttl,.dns-record-priority{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dns-record-name,.dns-record-type,.dns-record-content,.dns-record-ttl,.dns-record-priority{min-width:0}.dns-record-row .row-actions,.dns-zone-title .row-actions{flex-wrap:nowrap}.dns-record-row .row-actions{flex:0 0 66px;width:66px;gap:6px;justify-content:flex-end}.dns-record-table{display:grid;width:100%;overflow-x:visible}.user-audit-panel{position:fixed;right:0;bottom:0;left:240px;z-index:24;border:1px solid var(--border-strong);border-bottom:0;border-radius:var(--radius);border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--card)}.user-audit-panel summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:32px;padding:5px 12px;cursor:pointer;color:var(--text);font-weight:700;list-style:none}.user-audit-panel summary::-webkit-details-marker{display:none}.audit-panel-handle{display:inline-flex;align-items:center;gap:6px}.audit-panel-arrow{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid var(--border);border-radius:var(--radius-badge);background:var(--neutral-soft);color:var(--text);transition:transform .16s ease}.user-audit-panel[open] .audit-panel-arrow{transform:rotate(180deg)}.user-audit-panel summary small{color:var(--muted);font-weight:700}.user-audit-table{max-height:min(320px,42vh);overflow:auto;padding:0 12px 12px}.user-audit-row{grid-template-columns:minmax(150px,.9fr) minmax(220px,1.4fr) minmax(180px,1fr) 170px}.sync-dot{position:relative;flex:0 0 10px;width:10px;height:10px;min-width:10px;border-radius:50%;border:1px solid var(--border-strong);background:var(--neutral-strong)}.sync-dot.sync-published{background:var(--accent);border-color:var(--accent-hover)}.sync-dot.sync-pending{background:#3b6ea5;border-color:#2f5a86;animation:dns-pending-pulse 1.2s ease-in-out infinite}.sync-dot.sync-deleting{background:var(--danger);border-color:var(--danger-hover);animation:dns-deleting-pulse 1.2s ease-in-out infinite}.sync-dot.sync-error{background:var(--warning);border-color:#8f3906}@keyframes dns-pending-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.9)}}@keyframes dns-deleting-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.9)}}@media (prefers-reduced-motion: reduce){.sync-dot.sync-pending,.sync-dot.sync-deleting{animation:none}}#root .sync-dot[data-tooltip]:after{left:calc(100% + 8px);bottom:auto;top:50%;transform:translateY(-50%)}.dns-record-row input,.dns-record-row select,.dns-record-form input,.dns-record-form select{width:100%;min-width:0}.dns-record-form{align-items:center}.sync-badge{justify-self:start;min-width:80px;border:1px solid var(--border-strong);border-radius:var(--radius-badge);padding:2px 6px;color:var(--muted);background:var(--card);font-size:12px;font-weight:700;text-align:center;white-space:nowrap}.sync-published{border-color:var(--accent-border);color:var(--accent);background:var(--accent-soft)}.sync-pending{border-color:var(--warning-border);color:var(--warning);background:var(--warning-soft)}.sync-deleting{border-color:var(--danger-border);color:var(--danger);background:var(--danger-soft)}.service-row{display:grid;grid-template-columns:1.2fr 1fr .6fr .6fr .6fr;gap:8px;align-items:center;min-height:32px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--page)}#root .dns-record-row{display:grid;grid-template-columns:14px minmax(140px,1.1fr) 64px minmax(220px,2fr) 64px 42px 66px;gap:8px;padding:4px 8px;align-items:center;width:100%;min-width:0;box-sizing:border-box}.service-row span{color:var(--muted);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)}.waf-table .waf-row{grid-template-columns:14px minmax(170px,1.05fr) minmax(140px,.7fr) minmax(160px,.9fr) minmax(130px,.65fr) minmax(110px,.45fr) minmax(200px,.95fr)}.route-pill-list{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.route-pill-list code{max-width:100%;overflow-wrap:anywhere}.dns-info-grid{display:grid;gap:10px}.dns-info-grid>div{display:grid;gap:6px}.dns-info-grid span{color:var(--muted);font-size:12px;font-weight:700}.search-field{display:grid;gap:3px;min-width:min(280px,100%);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.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:4px}.proxy-domain-groups{display:grid;gap:6px;min-width:0}.proxy-domain-groups details{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:6px 8px}.proxy-domain-groups summary{cursor:pointer;font-weight:700}.proxy-domain-groups summary span{margin-left:6px;color:var(--muted);font-weight:700}.proxy-domain-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.proxy-domain-list code{max-width:100%;overflow-wrap:anywhere}.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap;min-width:0}.web-instance-table .web-instance-row{grid-template-columns:30px minmax(180px,1.1fr) minmax(160px,1fr) minmax(160px,1fr) 72px minmax(120px,.6fr)}.database-table .database-row{grid-template-columns:30px minmax(180px,1fr) minmax(120px,.55fr) minmax(160px,1fr) minmax(180px,1fr) minmax(200px,.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:var(--accent-soft);border-color:var(--accent-border)}.project-table .project-row:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.state-indicator{position:relative;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-badge);font-size:12px;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:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.state-stopped{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.state-deleting{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.state-pending{background:var(--neutral-soft);border-color:var(--border-strong);color:var(--muted)}.state-danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger-hover)}.state-badge{display:inline-flex;align-items:center;justify-self:start;min-height:22px;border:1px solid transparent;border-radius:var(--radius-badge);padding:2px 7px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.row-error{display:block;margin-top:1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--danger);font-size:12px;font-weight:500}#root .icon-action{position:relative;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-height:0;padding:0;color:#fff;font-size:15px;font-weight:800}#root .icon-action svg{display:block;width:15px;height:15px;fill:currentColor}#root .icon-action span,#root .state-indicator,#root .state-indicator .state-symbol{color:inherit}#root .icon-action.secondary-action,#root .icon-action.secondary-action span{color:var(--text)}#root .icon-action:not(.secondary-action):not(.dns-info-action) span{color:#fff}#root [data-tooltip]{position:relative}#root [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 6px);z-index:30;transform:translate(-50%);opacity:0;pointer-events:none;white-space:nowrap;border:1px solid var(--sidebar-line);border-radius:var(--radius-badge);padding:3px 6px;background:var(--sidebar-bg);color:#fff;font-size:11px;font-weight:700;line-height:1.2}#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% + 4px);transform:none}.volume-table .volume-row{grid-template-columns:minmax(180px,1fr) minmax(180px,1.1fr) minmax(160px,1fr) 130px minmax(200px,.8fr)}.quota-usage{white-space:nowrap;font-variant-numeric:tabular-nums}.quota-line{display:block;margin-top:1px;font-size:12px;color:var(--muted)}.quota-usage.quota-warning{color:var(--warning);font-weight:600}.quota-usage.quota-exceeded{color:var(--danger);font-weight:700}.dropdown-action{position:relative}.dropdown-action summary{list-style:none;border:1px solid var(--accent);border-radius:var(--radius);padding:6px 10px;background:var(--accent);color:#fff;cursor:pointer}.dropdown-action summary::-webkit-details-marker{display:none}.dropdown-action[open] button{position:absolute;right:0;top:calc(100% + 4px);z-index:5;min-width:180px;background:var(--card);color:var(--text);border:1px solid var(--border-strong)}.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(240px,1fr));gap:10px}.plan-grid{margin-top:10px}.module{border:1px solid var(--border);border-radius:var(--radius);background:var(--page);padding:10px 12px;display:grid;gap:6px}.ssh-management{display:grid;gap:10px}.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:20px;background:#1f293380}.modal{width:min(680px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius);padding:14px}.explorer-modal,.snapshot-modal{width:min(900px,100%)}.path-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:10px 0}.path-actions span{color:var(--muted);overflow-wrap:anywhere}.file-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;text-align:left;align-items:center;background:var(--page);color:var(--text);border:1px solid var(--border)}.file-row.directory{background:var(--accent-soft)}.file-row span{color:var(--muted);text-align:right}.snapshot-table .snapshot-row{grid-template-columns:minmax(180px,1fr) 140px 180px minmax(220px,.8fr)}.plan-admin-table .plan-admin-row{grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) 100px 130px 110px 130px minmax(200px,.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) 80px 70px}.project-node-table .project-node-row{grid-template-columns:minmax(160px,1fr) minmax(220px,1.2fr) 120px minmax(200px,.8fr)}.node-admin-row label,.node-create-form label,.node-provision-form label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:12px;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:var(--muted);font-size:12px;font-weight:500}.field-hint.error-hint{color:var(--danger)}.field-hint.warning-hint{color:var(--warning)}.node-admin-row .node-active-toggle{display:flex;align-items:center;gap:6px}.node-active-toggle input{width:auto}.compact-actions{display:flex;justify-content:flex-end;gap:6px}.provision-console{display:grid;align-content:start;gap:2px;min-height:120px;max-height:360px;overflow:auto;border:1px solid var(--sidebar-bg);border-radius:var(--radius);background:#12171d;color:#fff;font-family:var(--font-mono);padding:10px}.provision-line{display:flex;gap:8px;font-size:12px;line-height:1.4}.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:6px;margin-top:8px}.status-pill{display:inline-flex;align-items:center;min-height:22px;border:1px solid var(--border-strong);border-radius:var(--radius-badge);padding:2px 7px;background:var(--neutral-soft);color:var(--muted);font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.status-pill.active{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.log-console{min-height:440px;max-height:calc(100vh - 260px);overflow:auto;border:1px solid var(--sidebar-bg);border-radius:var(--radius);padding:10px;background:#12171d;color:#d5dde5;font-family:var(--font-mono);font-size:12px;line-height:1.4}.log-console .muted{color:#8d9aa8}.log-line{display:grid;grid-template-columns:82px 72px minmax(0,1fr);gap:8px;padding:1px 0}.log-line time{color:#9cc0e8}.log-line strong{color:#8fd3c8;overflow-wrap:anywhere}.log-line span{min-width:0;color:#e5e9ee;white-space:pre-wrap;overflow-wrap:anywhere}.log-line.error span,.log-line.error strong{color:#f2a9a2}.modal-title{grid-column:1 / -1;margin-bottom:2px}.modal-title>div{min-width:0}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.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 var(--border-strong);border-right:0;border-radius:var(--radius) 0 0 var(--radius);padding:6px 8px;background:var(--page);color:var(--muted);font-family:var(--font-mono)}.ssh-prefix-field input{border-radius:0 var(--radius) var(--radius) 0}.project-summary{margin-top:10px;display:grid;gap:6px;padding:10px;background:var(--page);border:1px solid var(--border);border-radius:var(--radius)}.project-summary span,.muted{color:var(--muted)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--page)}.login-panel{width:min(420px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;display:grid;gap:14px}.login-brand{color:var(--text)}.login-panel h1{font-size:18px}.login-panel p{color:var(--muted)}.primary-action{width:100%}.login-security{border-top:1px solid var(--border);padding-top:12px;color:var(--muted);font-size:12px}.empty-state{min-height:200px;display:grid;align-content:center;gap:8px}.empty-state p{color:var(--muted)}.asn-intro{display:grid;gap:8px;max-width:920px;margin-bottom:12px}.asn-intro p{color:var(--text)}.asn-price{display:inline-flex;align-items:baseline;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--page)}.asn-price strong{font-size:15px}.asn-price span{color:var(--muted);font-size:12px}.asn-order-table .asn-order-row{grid-template-columns:170px minmax(150px,.8fr) minmax(160px,1fr) 150px minmax(200px,1.4fr) 110px}.asn-steps{display:flex;gap:4px;list-style:none;margin:0 0 12px;padding:0}.asn-steps li{flex:1 1 0;min-width:0}#root .asn-step{width:100%;justify-content:flex-start;gap:8px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-weight:700;padding:6px 8px;white-space:normal;text-align:left}#root .asn-step:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border-strong)}#root .asn-step.done{color:var(--text)}#root .asn-step.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}#root .asn-step.locked{opacity:.55}.asn-step-index{display:inline-grid;place-items:center;flex:0 0 auto;width:20px;height:20px;border:1px solid currentColor;border-radius:var(--radius-badge);font-size:11px}.asn-banner{display:grid;gap:4px;margin-bottom:12px;padding:8px 10px;border:1px solid var(--warning-border);border-radius:var(--radius);background:var(--warning-soft);color:var(--warning)}.asn-banner span{color:var(--text);white-space:pre-wrap}.asn-step-body{display:grid;gap:12px}.asn-instructions{margin:0;padding-left:18px;display:grid;gap:4px}.asn-links{display:flex;flex-wrap:wrap;gap:6px}.asn-links a{display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px 8px;background:var(--card);color:var(--accent);font-weight:700;text-decoration:none}.asn-links a:hover{background:var(--neutral-soft)}.asn-form{display:grid;gap:12px}.asn-form label,.asn-grid label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:12px}.asn-form label input,.asn-form label select,.asn-form label textarea,.asn-grid label input{width:100%;min-width:0;color:var(--text)}.asn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.asn-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.asn-span-2{grid-column:span 2}.asn-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.asn-actions-start{justify-content:flex-start}.asn-checkbox{display:flex;align-items:flex-start;gap:8px;color:var(--text)}#root .asn-checkbox input{margin-top:2px}#root .asn-purpose,#root .asn-message{font-family:inherit;min-height:110px}#root .asn-message{min-height:80px}.asn-validation{display:grid;gap:8px}.asn-validation-summary{border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--page);font-weight:700}.asn-validation-summary small{font-weight:500}.asn-validation-summary.ok{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.asn-validation-summary.error{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.asn-validation-table .asn-validation-row{grid-template-columns:110px minmax(140px,.8fr) 130px minmax(220px,2fr);align-items:start}.asn-validation-head{min-height:0;padding:0 10px 2px;border:0;background:transparent}.asn-validation-head span{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.asn-messages{margin:0;padding-left:16px;display:grid;gap:2px;color:var(--text)}.asn-peer-table .asn-peer-row{grid-template-columns:130px minmax(160px,1fr) minmax(200px,1.2fr) 34px}.asn-peer-row input{width:100%;min-width:0}.asn-transit{display:grid;gap:4px;padding:8px 10px;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-soft)}#root .asn-transit label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px;font-weight:600}#root .asn-transit input[type=checkbox]{width:auto;min-width:0;flex:none;margin:0}.asn-transit .field-hint{margin:0}.asn-peer-table .asn-peer-fixed{align-items:center;background:var(--accent-soft);color:var(--text)}.asn-autnum{margin:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--page);color:var(--text);font-family:var(--font-mono);font-size:12px;line-height:1.4;overflow:auto;white-space:pre}.asn-agreement-frame{display:grid;min-height:200px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--page);overflow:hidden}.asn-agreement-frame iframe{display:block;width:100%;height:520px;border:0;background:var(--card)}.asn-agreement-frame .activity-indicator,.asn-agreement-frame p{margin:14px;justify-self:start}.asn-commitments{margin:0;padding-left:18px;display:grid;gap:4px}.asn-signature-layout{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(240px,1fr);gap:14px;align-items:start}.signature-pad{display:grid;gap:6px}.signature-pad.is-disabled{opacity:.6}.signature-canvas-box{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card);overflow:hidden;touch-action:none}.signature-canvas{display:block;width:100%;touch-action:none;cursor:crosshair}.signature-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--border-strong);font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.signature-actions{display:flex;gap:6px}.asn-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.asn-summary-grid>div,.asn-field{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.asn-summary-grid>div{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--page)}.asn-field strong{font-weight:500;color:var(--text);white-space:pre-wrap}.asn-timeline{list-style:none;margin:0;padding:0;display:grid;gap:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--page)}.asn-timeline li{display:grid;grid-template-columns:150px 190px 110px minmax(0,1fr);gap:8px;align-items:center;min-height:32px;padding:4px 10px;border-bottom:1px solid var(--border)}.asn-timeline li:last-child{border-bottom:0}.asn-timeline-date{color:var(--muted);font-variant-numeric:tabular-nums}.asn-timeline-actor{color:var(--muted)}.asn-timeline-message{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.asn-documents{display:flex;flex-wrap:wrap;gap:6px}.asn-admin-table .asn-admin-row{grid-template-columns:170px minmax(180px,1fr) minmax(200px,1.2fr) 150px minmax(220px,1.4fr) 34px}.asn-admin-table .asn-admin-row.selected{background:var(--accent-soft);border-color:var(--accent-border)}.asn-admin-detail>.section-label{margin:14px 0 6px}.asn-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.asn-panel{display:grid;gap:8px;align-content:start;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.asn-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.asn-sign-modal{width:min(760px,100%)}@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}.user-audit-panel{left:0;right:0}.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,#root .dns-record-row,.ssh-user-table .ssh-row,.web-instance-table .web-instance-row,.database-table .database-row,.project-table .project-row,.user-audit-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,.asn-order-table .asn-order-row,.asn-admin-table .asn-admin-row,.asn-validation-table .asn-validation-row,.asn-peer-table .asn-peer-row,.asn-timeline li,.log-line,.file-row{grid-template-columns:1fr}.asn-steps{flex-wrap:wrap}.asn-steps li{flex:1 1 45%}.asn-grid,.asn-grid-3,.asn-signature-layout,.asn-summary-grid,.asn-admin-grid,.asn-field-grid{grid-template-columns:1fr}.asn-span-2{grid-column:auto}.row-actions,.path-actions{justify-content:flex-start}.file-row span{text-align:left}}
