@font-face{font-family:AS Display;src:url(display.ttf) format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:AS Body;src:url(body.ttf) format('truetype');font-weight:400;font-display:swap}
.asp-shell{margin:0;background:#101010;color:#f1f0ea;font-family:'AS Body',Arial,sans-serif}.asp-shell-header,.asp-shell-footer{max-width:1320px;margin:auto;padding:28px 30px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #333330}.asp-shell-header a{color:#f1f0ea;text-decoration:none}.asp-logo{font:800 clamp(20px,3vw,30px)/1 'AS Display',Impact,sans-serif}.asp-logo>span:first-child{color:#ff4b32}.asp-logo-muted{color:#aaa9a3}.asp-shell-footer{font-size:11px;letter-spacing:.08em;border-top:1px solid #333330;border-bottom:0;color:#aaa9a3}.asp-skip{position:absolute;left:-9999px}.asp-skip:focus{left:12px;top:40px;background:#101010;color:white;padding:10px;z-index:99999}
.asp{--red:#ff4b32;--bg:#101010;--panel:#181818;--white:#f1f0ea;--muted:#aaa9a3;box-sizing:border-box;background:var(--bg);color:var(--white);font:16px/1.6 'AS Body',Arial,sans-serif;padding:clamp(22px,4vw,60px);max-width:1440px;margin:0 auto}
.asp *{box-sizing:border-box}.asp h1,.asp h2,.asp h3{font-family:'AS Display',Impact,sans-serif;color:var(--white);font-weight:800;line-height:1.05;letter-spacing:-.025em}.asp h1,.asp>h2{font-size:clamp(38px,5vw,68px);margin:20px 0}.asp h3,.asp-card h2{font-size:28px;margin:0 0 15px}.asp em{font-style:normal;color:var(--red)}.asp-kicker{font-size:12px;letter-spacing:.13em;color:var(--muted)}.asp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:20px;margin:28px 0}.asp-card{padding:24px;border:1px solid #333330;background:var(--panel);min-width:0}.asp p{margin:12px 0}.asp a{color:var(--red)}.asp label{display:block;margin:16px 0}.asp input:not([type=checkbox]),.asp select,.asp textarea{display:block;width:100%;padding:12px;margin-top:6px;background:#101010;color:var(--white);border:1px solid #77766f;border-radius:0;font:inherit}.asp button{background:var(--red);color:#101010;border:0;border-radius:0;padding:12px 18px;font:700 15px/1.4 'AS Body',Arial,sans-serif;cursor:pointer;margin:5px 8px 5px 0}.asp button:disabled{opacity:.45;cursor:wait}.asp :focus-visible{outline:3px solid #f1f0ea;outline-offset:3px}.asp-muted,.asp small{color:var(--muted)}.asp pre{background:#080808;color:var(--white);padding:18px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:440px;overflow:auto;font:13px/1.5 ui-monospace,monospace}.asp table{width:100%;border-collapse:collapse;text-align:left}.asp td,.asp th{padding:12px;border-bottom:1px solid #333330;color:var(--white)}.asp-scroll{overflow:auto}.asp-badge{font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #77766f;padding:5px 9px;display:inline-block}.asp-banner{padding:15px;border:2px solid var(--red);margin:15px 0}.asp-node{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid #333330}.asp [role=status]:not(:empty){border-left:3px solid var(--red);padding:10px 14px}.asp-detail{border-top:1px solid #77766f;padding-top:28px;margin-top:20px}.asp-status h2{font-size:clamp(32px,4vw,52px)}
.asp-shell #asp-main{max-width:1440px;margin:auto;min-height:65vh;padding:32px}.asp-shell-header nav{display:flex;gap:20px;flex-wrap:wrap}.asp-shell .woocommerce{color:#f1f0ea}.asp-shell .woocommerce a{color:#ff4b32}.asp-shell .woocommerce-MyAccount-navigation ul{list-style:none;padding:0}.asp-shell .woocommerce-MyAccount-navigation li{padding:12px;border-bottom:1px solid #333}.asp-shell .woocommerce-MyAccount-content .asp{padding:0}.asp-shell h1,.asp-shell h2{color:#f1f0ea}.asp-shell .woocommerce input:not([type=checkbox]),.asp-shell .woocommerce select{background:#181818;color:#f1f0ea;border:1px solid #777;padding:12px}.asp-shell .woocommerce button.button{background:#ff4b32;color:#101010;border-radius:0;padding:13px 20px}.asp-shell .woocommerce-info,.asp-shell .woocommerce-message{background:#191919;color:#f1f0ea;border-color:#ff4b32}@media(max-width:768px){.asp-shell #asp-main{padding:20px}.asp-shell-header{align-items:flex-start;flex-direction:column}.asp-shell .woocommerce-MyAccount-navigation ul{display:flex;gap:12px;overflow:auto}.asp-shell .woocommerce-MyAccount-navigation li{white-space:nowrap}.asp-shell .asp-node{flex-wrap:wrap}}
/* WordPress overrides select text on hover/focus; keep native menus readable. */
.wp-core-ui .asp select,.asp-shell select{color-scheme:dark;appearance:auto;background-image:none;background-color:#101010;color:#f1f0ea}
.wp-core-ui .asp select:hover,.wp-core-ui .asp select:focus,.wp-core-ui .asp select:active,.asp-shell select:hover,.asp-shell select:focus,.asp-shell select:active{background-color:#101010;color:#f1f0ea}
.wp-core-ui .asp select option,.wp-core-ui .asp select optgroup,.asp-shell select option,.asp-shell select optgroup{background-color:#181818;color:#f1f0ea}
.wp-core-ui .asp select:disabled,.wp-core-ui .asp select option:disabled,.asp-shell select:disabled,.asp-shell select option:disabled{color:#aaa9a3}
.wp-core-ui .asp select:focus,.asp-shell select:focus{border-color:#ff4b32;box-shadow:0 0 0 1px #ff4b32}

/* Public node scanner lights; labels remain readable without color or motion. */
/* WordPress notices retain light backgrounds inside the dark operations page. */
.wp-admin .asp :is(.notice,.updated,.error){color:#1d2327}
.wp-admin .asp :is(.notice,.updated,.error) :is(td,th,p,strong,code,h1,h2,h3){color:#1d2327}
.wp-admin .asp :is(.notice,.updated,.error) a:not(.button){color:#135e96}
.asp-provisioning{margin:20px 0;padding:20px;border:1px solid #bf4b35;border-radius:8px;background:#211714;overflow-wrap:anywhere}
.asp .asp-provisioning h4{margin:8px 0;font-size:21px;line-height:1.25;color:#fff4ed}
.asp-provisioning p{line-height:1.5;color:#e2d6d0}
.asp-provisioning small{display:block;margin-top:10px;color:#d3c2b9;line-height:1.5}
.asp-provisioning-track{height:7px;margin:18px 0;background:#48312a;border-radius:6px;overflow:hidden}
.asp-provisioning-track span{display:block;width:35%;height:100%;background:#ff6b45;border-radius:6px}
.asp-provisioning[data-active=true] .asp-provisioning-track span{animation:asp-provision 2s ease-in-out infinite alternate}
@keyframes asp-provision{from{transform:translateX(0)}to{transform:translateX(185%)}}
@media(prefers-reduced-motion:reduce){.asp-provisioning[data-active=true] .asp-provisioning-track span{animation:none}}
.asp-status .asp-node-status{align-items:center;flex-wrap:wrap;gap:18px 28px;padding:25px 0;--signal:#ff4545}
.asp-status [data-health=green]{--signal:#53f58d}
.asp-status [data-health=yellow]{--signal:#ffd24a}
.asp-node-identity{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.asp-node-identity strong{display:block;font-size:19px;color:#f1f0ea}
.asp-node-identity small{display:block;font-size:12px;margin-top:4px}
.asp-node-indicator{display:flex;flex-direction:column;gap:9px;align-items:flex-end;color:var(--signal)}
.asp-scanner{position:relative;display:block;width:168px;height:24px;overflow:hidden;border:1px solid #4b4b46;border-radius:4px;background:#080b0d;box-shadow:inset 0 0 8px #000;color:var(--signal)}
.asp-scanner::before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:40px;background:linear-gradient(90deg,transparent,currentColor 40%,currentColor 60%,transparent);filter:drop-shadow(0 0 5px currentColor);animation:asp-scan 1.65s ease-in-out infinite alternate}
.asp-scanner::after{content:"";position:absolute;inset:3px;background:repeating-linear-gradient(90deg,transparent 0 15px,#080b0d 15px 18px);border:1px solid #ffffff0d;border-radius:1px}
.asp-status-label{font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--signal)}
.asp-status .asp-motion-toggle{background:transparent;color:#aaa9a3;border:1px solid #55554f;padding:7px 11px;font-size:12px;margin-top:8px}
.asp-lights-paused .asp-scanner::before{animation-play-state:paused}
@keyframes asp-scan{from{transform:translateX(0)}to{transform:translateX(116px)}}
@media(max-width:540px){.asp-node-indicator{align-items:flex-start}.asp-status .asp-node-status{gap:14px}.asp-node-identity{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.asp-scanner::before{animation:none;left:4px;right:4px;width:auto;background:currentColor;opacity:.8}.asp-status .asp-motion-toggle{display:none}}

.asp-install-log{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#090d10!important;color:#c7f0d8!important;border:1px solid #455148;border-radius:6px;padding:16px;font:12px/1.6 Consolas,monospace;text-align:left}.asp-provisioning h5{color:#fff;margin:20px 0 8px;font-size:14px}
.asp-settings-group{margin:20px 0 8px;color:#fff;font-size:15px;border-bottom:1px solid #55443d;padding-bottom:6px}
.asp-file-nav{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.asp-file-nav button{background:#2a2a29;color:#f1f0ea;border:1px solid #555}
.asp-file-list{border:1px solid #44443f;max-height:360px;overflow:auto;margin:12px 0 24px}
.asp-file-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-bottom:1px solid #30302d;overflow-wrap:anywhere}
.asp-file-row:last-child{border-bottom:0}.asp-file-row button{background:transparent;color:#f1f0ea;padding:4px;text-align:left}
.asp-file-row small{white-space:nowrap}.asp-file-upload{border:1px solid #555;padding:18px;margin:18px 0}.asp-file-upload h4{margin:0;color:#f1f0ea}
.asp-file-preview{max-height:65vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#171716;color:#f1f0ea;border:1px solid #555;padding:16px}
.asp-detail label small{display:block;color:#bbb9af;font-size:12px;line-height:1.4;margin-top:4px}
.asp-detail textarea{width:100%;box-sizing:border-box;min-height:360px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.4}
.asp-detail [hidden]{display:none!important}
@media(max-width:540px){.asp-file-row{align-items:flex-start;flex-direction:column}.asp-file-row small{white-space:normal}}
.asp .asp-server-management{grid-template-columns:minmax(0,1fr)}
.asp .asp-server-back{display:inline-block;margin-bottom:1.25rem}
.asp .asp-manage-server{display:inline-block;padding:.75rem 1rem;margin-top:.5rem;background:#ef352d;color:#fff;border-radius:4px;font-weight:700;text-decoration:none}
.asp .asp-manage-server:focus-visible,.asp .asp-server-back:focus-visible{outline:3px solid #fff;outline-offset:3px}

.asp .asp-node-status{flex-wrap:wrap}.asp-health-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;width:100%;margin:14px 0}.asp-health-item{display:flex;flex-direction:column;gap:5px;padding:10px 12px;background:#191919;border-left:3px solid #8b8b8b;color:#ddd;font-size:13px}.asp-health-item strong{color:#fff}.asp-health-item[data-severity="ok"]{border-color:#56d68b}.asp-health-item[data-severity="warning"]{border-color:#f0c24b}.asp-health-item[data-severity="down"]{border-color:#ff5656}.asp-backup-warning{color:#f0c24b!important}
.asp-health-breakdown:empty{display:none}
