@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url("fonts/Inter-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url("fonts/Inter-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url("fonts/Inter-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url("fonts/Inter-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("fonts/JetBrainsMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("fonts/JetBrainsMono-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Thai";src:url("fonts/IBMPlexSansThai-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Thai";src:url("fonts/IBMPlexSansThai-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Thai";src:url("fonts/IBMPlexSansThai-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Thai";src:url("fonts/IBMPlexSansThai-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Chakra Petch";src:url("fonts/ChakraPetch-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Chakra Petch";src:url("fonts/ChakraPetch-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Chakra Petch";src:url("fonts/ChakraPetch-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{--jvh-bg:#05060f;--jvh-surface:#0d1025;--jvh-surface-raised:#131830;--jvh-border:#242b50;--jvh-border-strong:#3a4268;--jvh-primary:#10d9e5;--jvh-success:#2dd87a;--jvh-warning:#f5a623;--jvh-error:#f04f5e;--jvh-violet:#8b5cf6;--jvh-text:#e8eaf5;--jvh-text-muted:#8a94ad;--jvh-text-subtle:#4a5368;--jvh-focus:0 0 0 2px var(--jvh-bg),0 0 0 4px var(--jvh-primary);--jvh-radius-sm:6px;--jvh-radius:8px;--jvh-radius-lg:12px;--jvh-sidebar:200px;color-scheme:dark}
*{box-sizing:border-box}html{background:var(--jvh-bg)}body.jvh-body{margin:0;min-height:100vh;background:var(--jvh-bg);color:var(--jvh-text);font-family:"Noto Sans Thai",Inter,system-ui,sans-serif;font-size:15px;line-height:1.6}a{color:var(--jvh-primary);text-underline-offset:3px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--jvh-focus)}.jvh-skip-link{position:fixed;z-index:2000;left:16px;top:8px;transform:translateY(-160%);padding:8px 12px;background:var(--jvh-primary);color:#05060f;border-radius:var(--jvh-radius)}.jvh-skip-link:focus{transform:none}.jvh-wordmark{display:inline-flex;gap:5px;align-items:center;color:var(--jvh-text);font:700 18px/1 Inter,system-ui,sans-serif;letter-spacing:.035em;text-decoration:none}.jvh-wordmark span{color:var(--jvh-primary)}.jvh-app-shell{display:grid;grid-template-columns:var(--jvh-sidebar) minmax(0,1fr);min-height:100vh}.jvh-sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;border-right:1px solid var(--jvh-border);background:#08091a}.jvh-nav{display:grid;gap:4px;margin-top:32px}.jvh-nav-link,.jvh-mobile-menu a{padding:10px 12px;border-radius:var(--jvh-radius);color:var(--jvh-text-muted);font-weight:500;text-decoration:none}.jvh-nav-link:hover,.jvh-nav-link.is-active,.jvh-mobile-menu a:hover{background:var(--jvh-surface-raised);color:var(--jvh-text)}.jvh-nav-link.is-active{box-shadow:inset 2px 0 var(--jvh-primary)}.jvh-app-main{display:flex;min-width:0;flex-direction:column}.jvh-topbar{display:flex;min-height:64px;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--jvh-border);background:rgba(8,9,26,.92);backdrop-filter:blur(12px)}.jvh-topbar-label{font-weight:600}.jvh-menu-button{display:none;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:var(--jvh-surface);color:var(--jvh-text);padding:8px 12px}.jvh-content{width:100%;max-width:1280px;margin:0 auto;padding:32px 24px;flex:1}.jvh-footer,.jvh-public-footer{padding:20px 24px;border-top:1px solid var(--jvh-border);color:var(--jvh-text-muted)}.jvh-mobile-menu{border-bottom:1px solid var(--jvh-border);background:var(--jvh-surface);padding:8px 16px}.jvh-mobile-menu nav{display:grid}.jvh-public-body{display:flex;flex-direction:column}.jvh-public-header{display:flex;align-items:center;justify-content:space-between;padding:20px clamp(20px,5vw,64px);border-bottom:1px solid var(--jvh-border)}.jvh-public-header nav{display:flex;align-items:center;gap:16px}.jvh-public-main{width:100%;max-width:1120px;margin:0 auto;padding:48px 24px;flex:1}.jvh-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border:1px solid var(--jvh-border-strong);border-radius:var(--jvh-radius);background:var(--jvh-surface-raised);color:var(--jvh-text);font:600 14px/1.4 inherit;text-decoration:none}.jvh-button-primary{border-color:var(--jvh-primary);background:var(--jvh-primary);color:#05060f}.jvh-button:disabled{opacity:.45;cursor:not-allowed}.jvh-panel{padding:24px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius-lg);background:linear-gradient(145deg,var(--jvh-surface-raised),var(--jvh-surface));box-shadow:0 16px 48px rgba(0,0,0,.22)}.jvh-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.jvh-panel h2{margin:0;font-size:24px}.jvh-eyebrow{margin:0 0 4px;color:var(--jvh-primary);font:700 11px/1.4 Inter,system-ui,sans-serif;letter-spacing:.12em}.jvh-status{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--jvh-border);border-radius:999px;color:var(--jvh-text-muted);font-size:13px}.jvh-status-success{border-color:color-mix(in srgb,var(--jvh-success),transparent 55%);color:var(--jvh-success)}.jvh-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.jvh-metric{display:grid;gap:4px;padding:16px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:rgba(5,6,15,.56)}.jvh-metric span{color:var(--jvh-text-muted);font-size:13px}.jvh-metric strong{font:700 30px/1.2 Inter,system-ui,sans-serif}.jvh-console-screen{display:grid;min-height:260px;place-items:center;margin:20px 0;padding:24px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:#02030a;color:var(--jvh-text-muted);font-family:"JetBrains Mono",monospace}.jvh-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.jvh-preview-note{padding:12px 16px;border-left:3px solid var(--jvh-warning);background:color-mix(in srgb,var(--jvh-warning),transparent 90%);color:var(--jvh-text)}
.jvh-nav-link.is-disabled{color:var(--jvh-text-subtle);cursor:not-allowed}
@media (max-width:1023px){.jvh-app-shell{display:block}.jvh-sidebar{display:none}.jvh-menu-button{display:inline-flex}.jvh-mobile-menu:not([hidden]){display:block}.jvh-content{padding:24px 16px}.jvh-preview-grid{grid-template-columns:1fr}}
@media (max-width:767px){.jvh-public-header{padding:16px 20px}.jvh-public-header nav a:first-child{display:none}.jvh-public-main{padding:32px 16px}.jvh-metric-grid{grid-template-columns:1fr}.jvh-panel-header{display:grid}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* JVH GATE C FUNCTIONAL MIGRATION R1 */
.jvh-page-heading{margin:0 0 24px}.jvh-page-heading h1,.jvh-page-heading h3{margin:0 0 8px;font-weight:700}.jvh-page-heading p:last-child{margin:0;color:var(--jvh-text-muted)}
.jvh-auth-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:clamp(32px,7vw,96px);align-items:center;min-height:62vh}.jvh-auth-intro h1{font-size:clamp(34px,5vw,62px);line-height:1.08}.jvh-auth-intro p:last-child{max-width:560px;color:var(--jvh-text-muted);font-size:17px}.jvh-auth-card{width:100%}.jvh-form-foot{margin:16px 0 0;color:var(--jvh-text-muted);font-size:13px}.jvh-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.jvh-signup-shell{max-width:900px;margin:0 auto}.jvh-signup-form{display:grid;gap:24px}.jvh-form-section{margin:0;padding:20px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:rgba(5,6,15,.42)}.jvh-form-section>legend{float:none;width:auto;margin:0 0 16px;padding:0;color:var(--jvh-text);font-size:18px;font-weight:700}.jvh-nested-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jvh-grid-span{grid-column:1/-1}.jvh-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px}.jvh-form-control-state[data-jvh-ui-state="submitting"]{opacity:.75;pointer-events:none}
.jvh-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jvh-action-card{display:grid;gap:4px;color:var(--jvh-text);text-decoration:none;transition:transform .16s ease,border-color .16s ease}.jvh-action-card:hover{transform:translateY(-2px);border-color:var(--jvh-primary)}.jvh-action-card span{color:var(--jvh-text-muted)}.jvh-guest-dashboard{max-width:760px}.jvh-guest-dashboard h1{font-size:clamp(30px,4vw,48px)}
.jvh-order-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 20px}.jvh-order-progress span{padding:8px 10px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);color:var(--jvh-text-muted);font-size:12px;text-align:center}.jvh-order-progress .is-current{border-color:var(--jvh-primary);color:var(--jvh-primary)}.jvh-order-step{background:var(--jvh-surface);border-color:var(--jvh-border)}.jvh-order-step .accordion-button{gap:12px;background:var(--jvh-surface-raised);color:var(--jvh-text);font-weight:700}.jvh-order-step .accordion-button:not(.collapsed){box-shadow:inset 0 -1px var(--jvh-border);color:var(--jvh-primary)}.jvh-step-number{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--jvh-border-strong);border-radius:999px;font:700 12px/1 Inter,sans-serif}.jvh-product-category+.jvh-product-category{margin-top:28px}.jvh-section-heading{margin-bottom:16px}.jvh-section-heading h3,.jvh-section-heading h4{margin:0 0 4px}.jvh-section-heading p,.jvh-section-heading div{margin:0;color:var(--jvh-text-muted)}.jvh-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.jvh-product-card{display:grid;gap:6px;min-height:130px;padding:18px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:rgba(5,6,15,.45);color:var(--jvh-text);text-decoration:none}.jvh-product-card:hover{border-color:var(--jvh-primary)}.jvh-product-card>span:last-child,.jvh-product-type{color:var(--jvh-text-muted);font-size:12px}.jvh-product-type{text-transform:uppercase;letter-spacing:.08em}.jvh-empty-state{padding:24px;border:1px dashed var(--jvh-border);border-radius:var(--jvh-radius);color:var(--jvh-text-muted);text-align:center}.jvh-product-config-form{display:grid;gap:20px}.jvh-product-heading{margin-bottom:0}.jvh-prose{color:var(--jvh-text-muted)}.jvh-billing-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:16px;align-items:center;padding:18px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:rgba(5,6,15,.45)}.jvh-billing-card>div{display:grid;gap:4px}.jvh-billing-card span{color:var(--jvh-text-muted)}.jvh-field-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}.jvh-field-row input{max-width:140px}.jvh-vps-specs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.jvh-vps-specs span{padding:5px 9px;border-radius:999px;background:var(--jvh-surface-raised);color:var(--jvh-text-muted);font:600 12px/1.4 Inter,sans-serif}.jvh-addon-grid{display:grid;gap:10px}.jvh-addon-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:18px;align-items:center;padding:16px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius)}.jvh-addon-copy{display:grid;gap:5px}.jvh-addon-copy div{color:var(--jvh-text-muted)}.jvh-addon-choice{display:grid;gap:8px}
.jvh-cart-lines{display:grid;gap:10px}.jvh-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:16px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius)}.jvh-cart-line small{display:block;color:var(--jvh-text-muted)}.jvh-cart-price{display:flex;align-items:center;gap:10px}.jvh-cart-price del{color:var(--jvh-text-muted)}.jvh-cart-setup{grid-column:1/-1;display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--jvh-border);color:var(--jvh-text-muted)}.jvh-checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:24px;margin:24px 0}.jvh-order-summary{display:grid;gap:8px;padding:18px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius);background:rgba(5,6,15,.45)}.jvh-order-summary>div{display:flex;justify-content:space-between;gap:20px}.jvh-order-summary .is-grand-total{margin-top:6px;padding-top:12px;border-top:1px solid var(--jvh-border);font-size:18px}.jvh-gateway-grid{display:flex;flex-wrap:wrap;gap:8px}.jvh-domain-tabs{gap:6px;margin-bottom:16px}.jvh-domain-tabs .nav-link{color:var(--jvh-text-muted)}.jvh-domain-tabs .nav-link.active{background:var(--jvh-primary);color:#05060f}.jvh-domain-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.jvh-domain-facts>div{display:grid;gap:3px;padding:16px;border:1px solid var(--jvh-border);border-radius:var(--jvh-radius)}.jvh-domain-facts span{color:var(--jvh-text-muted);font-size:13px}.jvh-domain-action-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0}.jvh-domain-action-row+.jvh-domain-action-row{border-top:1px solid var(--jvh-border)}.jvh-domain-action-row h2{font-size:18px}.jvh-domain-action-row p{margin:0;color:var(--jvh-text-muted)}.jvh-domain-secret{display:block;margin-top:16px;padding:12px;border:1px solid var(--jvh-primary);border-radius:var(--jvh-radius);font-family:"JetBrains Mono",monospace;color:var(--jvh-primary);overflow-wrap:anywhere}.jvh-maintenance{display:grid;min-height:58vh;place-items:center;text-align:center}.jvh-maintenance .jvh-panel{max-width:680px}.jvh-maintenance h1{font-size:clamp(32px,5vw,56px)}.jvh-maintenance-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;color:var(--jvh-text-muted)}
@media (max-width:991px){.jvh-auth-shell{grid-template-columns:1fr}.jvh-auth-intro{max-width:620px}.jvh-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jvh-checkout-grid{grid-template-columns:1fr}}
@media (max-width:767px){.jvh-nested-grid,.jvh-action-grid,.jvh-product-grid,.jvh-billing-card,.jvh-addon-card,.jvh-domain-facts{grid-template-columns:1fr}.jvh-grid-span{grid-column:auto}.jvh-order-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.jvh-cart-line{grid-template-columns:1fr}.jvh-cart-price{justify-content:space-between}.jvh-field-row{grid-template-columns:1fr}.jvh-domain-action-row{align-items:flex-start;flex-direction:column}}
.jvh-domain-manager{display:block}
/* JVH GATE C CORRECTIVE R4 */
:root {
  --jvh-bg: #070914;
  --jvh-surface: #0c1020;
  --jvh-surface-raised: #11172a;
  --jvh-border: #2b3554;
  --jvh-border-strong: #4b5b7e;
  --jvh-primary: #31d9e6;
  --jvh-violet: #b59cff;
  --jvh-text: #f1f4fb;
  --jvh-text-muted: #aab4c8;
  --jvh-text-subtle: #8490aa;
  --jvh-sidebar: 224px;
}

body.jvh-body,
body.jvh-public-body {
  background:
    radial-gradient(circle at 88% 4%, rgba(49, 217, 230, 0.08), transparent 28rem),
    var(--jvh-bg);
}

.jvh-sidebar {
  overflow-y: auto;
  padding: 24px 16px;
  background: rgba(7, 9, 20, 0.98);
}

.jvh-functional-nav {
  display: grid;
  gap: 4px;
}

.jvh-nav-section-label {
  display: block;
  margin: 24px 12px 8px;
  color: var(--jvh-text-subtle);
  font: 700 11px/1.45 Inter, system-ui, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jvh-functional-nav .jvh-nav-link,
.jvh-mobile-menu .jvh-nav-link {
  display: flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid transparent;
}

.jvh-functional-nav .jvh-nav-link:hover,
.jvh-functional-nav .jvh-nav-link:focus-visible {
  border-color: var(--jvh-border);
  background: var(--jvh-surface-raised);
}

.jvh-nav-link-logout {
  color: #ff9ca6;
}

.jvh-dashboard-r4 {
  display: grid;
  gap: 24px;
}

.jvh-dashboard-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 32px;
  border: 1px solid var(--jvh-border);
  border-radius: var(--jvh-radius-lg);
  background:
    linear-gradient(135deg, rgba(49, 217, 230, 0.08), transparent 52%),
    var(--jvh-surface);
}

.jvh-dashboard-hero h1 {
  margin: 0 0 8px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.2;
}

.jvh-dashboard-hero p:last-child {
  margin: 0;
  color: var(--jvh-text-muted);
}

.jvh-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.jvh-dashboard-metric {
  display: grid;
  min-width: 0;
  gap: 8px;
  padding: 20px;
  border: 1px solid var(--jvh-border);
  border-radius: var(--jvh-radius);
  background: var(--jvh-surface-raised);
}

.jvh-dashboard-metric > span {
  color: var(--jvh-text-muted);
  font-size: 13px;
}

.jvh-dashboard-metric > strong {
  overflow-wrap: anywhere;
  font: 700 clamp(24px, 3vw, 36px)/1.2 Inter, system-ui, sans-serif;
}

.jvh-dashboard-metric > a {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-self: start;
}

.jvh-section-heading h2 {
  margin: 0;
  font-size: 22px;
}

.jvh-body .btn,
.jvh-public-body .btn,
.jvh-body .jvh-button,
.jvh-public-body .jvh-button,
.jvh-menu-button {
  min-width: 44px;
  min-height: 44px;
}

.jvh-body .form-control,
.jvh-body .form-select,
.jvh-public-body .form-control,
.jvh-public-body .form-select {
  min-height: 44px;
}

.jvh-body .form-check,
.jvh-public-body .form-check {
  min-height: 44px;
}

.jvh-body .form-check-label,
.jvh-public-body .form-check-label {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}

@media (max-width: 1199px) {
  .jvh-dashboard-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1023px) {
  .jvh-mobile-menu {
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    padding: 8px 16px 20px;
  }

  .jvh-mobile-menu .jvh-nav-section-label {
    margin-top: 16px;
  }
}

@media (max-width: 767px) {
  .jvh-dashboard-hero {
    align-items: stretch;
    flex-direction: column;
    padding: 24px;
  }

  .jvh-dashboard-hero .jvh-button {
    width: 100%;
  }

  .jvh-dashboard-metrics {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 399px) {
  .jvh-content,
  .jvh-public-main {
    padding-right: 12px;
    padding-left: 12px;
  }

  .jvh-panel,
  .jvh-dashboard-hero,
  .jvh-dashboard-metric {
    padding: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jvh-action-card {
    transform: none !important;
  }
}
