/* Industrial 3D Training Center — Tailwind v3-compatible utility subset (generated). */
*,::before,::after{box-sizing:border-box;border:0 solid #334155;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(34 211 238 / .5)}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:"Segoe UI",Inter,system-ui,-apple-system,Roboto,"Noto Sans Thai",sans-serif;color-scheme:dark}
body{margin:0;line-height:inherit;background-color:#080d19;color:#e2e8f0;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,dl,dd,ul,ol{margin:0}ul,ol{list-style:none;padding:0}h1,h2,h3{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}svg{display:block;vertical-align:middle}
button,input{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}
button{background-color:transparent;background-image:none;cursor:pointer;text-transform:none}button:disabled{cursor:default}
[hidden]{display:none}input::placeholder{opacity:1}
:focus-visible{outline:2px solid transparent;outline-offset:2px;box-shadow:0 0 0 2px #080d19,0 0 0 4px #22d3ee}
.panel{border-radius:0.5rem}
.panel{border-width:1px}
.panel{border-color:rgb(30 41 59 / 0.8)}
.panel{background-color:rgb(13 20 36 / 1)}
.field{display:block}
.field{width:100%}
.field{border-radius:0.375rem}
.field{border-width:1px}
.field{border-color:rgb(51 65 85 / 1)}
.field{background-color:rgb(8 13 25 / 1)}
.field{padding-left:0.75rem;padding-right:0.75rem}
.field{padding-top:0.625rem;padding-bottom:0.625rem}
.field{color:rgb(241 245 249 / 1)}
.field::placeholder{color:rgb(100 116 139 / 1)}
.field:focus{border-color:rgb(34 211 238 / 1)}
.field:focus{outline:2px solid transparent;outline-offset:2px}
.field:focus{box-shadow:0 0 0 calc(1px + var(--tw-ring-offset-width,0px)) var(--tw-ring-color),0 0 0 var(--tw-ring-offset-width,0px) var(--tw-ring-offset-color,#fff)}
.field:focus{--tw-ring-color:rgb(34 211 238 / 1)}
.btn-primary{display:inline-flex}
.btn-primary{align-items:center}
.btn-primary{justify-content:center}
.btn-primary{gap:0.5rem}
.btn-primary{border-radius:0.375rem}
.btn-primary{background-color:rgb(34 211 238 / 1)}
.btn-primary{padding-left:1rem;padding-right:1rem}
.btn-primary{padding-top:0.625rem;padding-bottom:0.625rem}
.btn-primary{font-weight:600}
.btn-primary{color:rgb(8 13 25 / 1)}
.btn-primary{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.btn-primary:hover{background-color:rgb(103 232 249 / 1)}
.btn-primary:disabled{cursor:not-allowed}
.btn-primary:disabled{opacity:0.6}
.btn-ghost{display:inline-flex}
.btn-ghost{align-items:center}
.btn-ghost{gap:0.5rem}
.btn-ghost{border-radius:0.375rem}
.btn-ghost{border-width:1px}
.btn-ghost{border-color:rgb(51 65 85 / 1)}
.btn-ghost{padding-left:0.75rem;padding-right:0.75rem}
.btn-ghost{padding-top:0.5rem;padding-bottom:0.5rem}
.btn-ghost{font-size:0.875rem;line-height:1.25rem}
.btn-ghost{color:rgb(203 213 225 / 1)}
.btn-ghost{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.btn-ghost:hover{border-color:rgb(34 211 238 / 0.6)}
.btn-ghost:hover{color:rgb(103 232 249 / 1)}
.btn-ghost:disabled{opacity:0.6}
.label-caps{font-size:0.75rem;line-height:1rem}
.label-caps{font-weight:600}
.label-caps{text-transform:uppercase}
.label-caps{letter-spacing:0.05em}
.label-caps{color:rgb(148 163 184 / 1)}
.bg-blueprint { background-color: #080d19; background-image: linear-gradient(rgba(34, 211, 238, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(34, 211, 238, 0.06) 1px, transparent 1px), linear-gradient(rgba(34, 211, 238, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(34, 211, 238, 0.03) 1px, transparent 1px); background-size: 80px 80px, 80px 80px, 16px 16px, 16px 16px; }
.viewport { background: radial-gradient(ellipse at 50% 35%, #13203a 0%, #0b1324 55%, #070b16 100%); }
.viewport:fullscreen, #workspace:fullscreen { background-color: #080d19; }
.progress-bar { width: 0; transition: width 0.2s ease-out; }
.component-label { position: absolute; left: 0; top: 0; margin: -12px 0 0 -12px; display: flex; align-items: center; gap: 6px; padding: 2px 10px 2px 2px; border-radius: 9999px; border: 1px solid rgba(56, 189, 248, 0.55); background: rgba(8, 13, 25, 0.86); color: #e2e8f0; font-size: 12px; white-space: nowrap; }
.component-label-num { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 9999px; background: #38bdf8; color: #080d19; font-size: 11px; font-weight: 700; }
.lamp { display: inline-block; width: 10px; height: 10px; border-radius: 9999px; background: #475569; }
.lamp[data-state="running"] { background: #22c55e; box-shadow: 0 0 8px #22c55e; }
.lamp[data-state="starting"], .lamp[data-state="stopping"] { background: #fbbf24; animation: lamp-blink 0.8s infinite; }
.lamp[data-state="stalled"] { background: #ef4444; box-shadow: 0 0 8px #ef4444; animation: lamp-blink 0.45s infinite; }
.step-badge { display: inline-flex; align-items: center; border-radius: 4px; padding: 2px 8px; font-size: 12px; font-weight: 600; background: rgba(34, 211, 238, 0.1); color: #67e8f9; }
.step-badge-warning { background: rgba(251, 191, 36, 0.12); color: #fcd34d; }
.step-warning { border-left: 3px solid #fbbf24; }
.chip { border-radius: 9999px; border: 1px solid #334155; padding: 4px 10px; font-size: 12px; color: #cbd5e1; }
.chip:hover { border-color: #22d3ee; color: #67e8f9; }
@keyframes lamp-blink { 50% { opacity: 0.35; } } @media (prefers-reduced-motion: reduce) { .lamp { animation: none !important; } }
.\!py-0\.5{padding-top:0.125rem !important;padding-bottom:0.125rem !important}
.\!py-1\.5{padding-top:0.375rem !important;padding-bottom:0.375rem !important}
.\!py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}
.\!text-\[10px\]{font-size:10px !important}
.\!text-cyan-400{color:rgb(34 211 238 / 1) !important}
.\!text-cyan-400\/80{color:rgb(34 211 238 / 0.8) !important}
.\!w-auto{width:auto !important}
.absolute{position:absolute}
.accent-cyan-400{accent-color:rgb(34 211 238 / 1)}
.bg-amber-400{background-color:rgb(251 191 36 / 1)}
.bg-amber-400\/10{background-color:rgb(251 191 36 / 0.1)}
.bg-amber-400\/5{background-color:rgb(251 191 36 / 0.05)}
.bg-cyan-400{background-color:rgb(34 211 238 / 1)}
.bg-cyan-400\/10{background-color:rgb(34 211 238 / 0.1)}
.bg-cyan-400\/5{background-color:rgb(34 211 238 / 0.05)}
.bg-cyan-400\/50{background-color:rgb(34 211 238 / 0.5)}
.bg-emerald-400\/5{background-color:rgb(52 211 153 / 0.05)}
.bg-navy-900{background-color:rgb(13 20 36 / 1)}
.bg-navy-950{background-color:rgb(8 13 25 / 1)}
.bg-navy-950\/80{background-color:rgb(8 13 25 / 0.8)}
.bg-navy-950\/90{background-color:rgb(8 13 25 / 0.9)}
.bg-navy-950\/95{background-color:rgb(8 13 25 / 0.95)}
.bg-red-500\/10{background-color:rgb(239 68 68 / 0.1)}
.bg-slate-700{background-color:rgb(51 65 85 / 1)}
.bg-slate-800{background-color:rgb(30 41 59 / 1)}
.block{display:block}
.border{border-width:1px}
.border-amber-400\/40{border-color:rgb(251 191 36 / 0.4)}
.border-b{border-bottom-width:1px}
.border-cyan-400{border-color:rgb(34 211 238 / 1)}
.border-cyan-400\/30{border-color:rgb(34 211 238 / 0.3)}
.border-emerald-400\/40{border-color:rgb(52 211 153 / 0.4)}
.border-l-2{border-left-width:2px}
.border-r{border-right-width:1px}
.border-red-500\/40{border-color:rgb(239 68 68 / 0.4)}
.border-slate-600{border-color:rgb(71 85 105 / 1)}
.border-slate-800{border-color:rgb(30 41 59 / 1)}
.border-t{border-top-width:1px}
.border-transparent{border-color:transparent}
.bottom-3{bottom:0.75rem}
.cursor-not-allowed{cursor:not-allowed}
.cursor-pointer{cursor:pointer}
.disabled\:opacity-40:disabled{opacity:0.4}
.divide-slate-800\/70 > :not([hidden]) ~ :not([hidden]){border-color:rgb(30 41 59 / 0.7)}
.divide-y > :not([hidden]) ~ :not([hidden]){border-top-width:1px;border-bottom-width:0}
.flex{display:flex}
.flex-1{flex:1 1 0%}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.font-medium{font-weight:500}
.font-mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace}
.font-semibold{font-weight:600}
.gap-1{gap:0.25rem}
.gap-1\.5{gap:0.375rem}
.gap-2{gap:0.5rem}
.gap-2\.5{gap:0.625rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.grid{display:grid}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.h-1\.5{height:0.375rem}
.h-2{height:0.5rem}
.h-4{height:1rem}
.h-8{height:2rem}
.h-9{height:2.25rem}
.h-\[52vh\]{height:52vh}
.h-\[58vh\]{height:58vh}
.h-full{height:100%}
.hidden{display:none}
.hover\:bg-navy-800:hover{background-color:rgb(18 26 46 / 1)}
.hover\:text-cyan-300:hover{color:rgb(103 232 249 / 1)}
.hover\:text-slate-100:hover{color:rgb(241 245 249 / 1)}
.hover\:underline:hover{text-decoration-line:underline}
.inline-block{display:inline-block}
.inset-0{inset:0px}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.leading-relaxed{line-height:1.625}
.leading-tight{line-height:1.25}
.left-3{left:0.75rem}
.line-through{text-decoration-line:line-through}
.list-disc{list-style-type:disc}
.max-h-\[420px\]{max-height:420px}
.max-w-2xl{max-width:42rem}
.max-w-\[80\%\]{max-width:80%}
.max-w-full{max-width:100%}
.max-w-md{max-width:28rem}
.max-w-sm{max-width:24rem}
.mb-1\.5{margin-bottom:0.375rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.min-h-0{min-height:0px}
.min-h-\[300px\]{min-height:300px}
.min-h-\[320px\]{min-height:320px}
.min-h-screen{min-height:100vh}
.min-w-0{min-width:0px}
.min-w-\[140px\]{min-width:140px}
.ml-auto{margin-left:auto}
.mt-0\.5{margin-top:0.125rem}
.mt-1{margin-top:0.25rem}
.mt-1\.5{margin-top:0.375rem}
.mt-2{margin-top:0.5rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.mt-auto{margin-top:auto}
.opacity-60{opacity:0.6}
.order-1{order:1}
.order-2{order:2}
.order-3{order:3}
.overflow-hidden{overflow:hidden}
.overflow-y-auto{overflow-y:auto}
.p-12{padding:3rem}
.p-2{padding:0.5rem}
.p-3{padding:0.75rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.pl-5{padding-left:1.25rem}
.pointer-events-none{pointer-events:none}
.pt-4{padding-top:1rem}
.pt-6{padding-top:1.5rem}
.px-1\.5{padding-left:0.375rem;padding-right:0.375rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-2\.5{padding-left:0.625rem;padding-right:0.625rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.relative{position:relative}
.right-3{right:0.75rem}
.ring-1{box-shadow:0 0 0 calc(1px + var(--tw-ring-offset-width,0px)) var(--tw-ring-color),0 0 0 var(--tw-ring-offset-width,0px) var(--tw-ring-offset-color,#fff)}
.ring-cyan-400\/40{--tw-ring-color:rgb(34 211 238 / 0.4)}
.rounded{border-radius:0.25rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:0.5rem}
.rounded-md{border-radius:0.375rem}
.shrink-0{flex-shrink:0}
.space-y-1 > :not([hidden]) ~ :not([hidden]){margin-top:0.25rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:0.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:0.75rem}
.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem}
.space-y-5 > :not([hidden]) ~ :not([hidden]){margin-top:1.25rem}
.space-y-8 > :not([hidden]) ~ :not([hidden]){margin-top:2rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-5xl{font-size:3rem;line-height:1}
.text-\[11px\]{font-size:11px}
.text-amber-200{color:rgb(253 230 138 / 1)}
.text-amber-300{color:rgb(252 211 77 / 1)}
.text-base{font-size:1rem;line-height:1.5rem}
.text-center{text-align:center}
.text-cyan-300{color:rgb(103 232 249 / 1)}
.text-cyan-400{color:rgb(34 211 238 / 1)}
.text-emerald-200{color:rgb(167 243 208 / 1)}
.text-emerald-300{color:rgb(110 231 183 / 1)}
.text-left{text-align:left}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-red-300{color:rgb(252 165 165 / 1)}
.text-right{text-align:right}
.text-slate-100{color:rgb(241 245 249 / 1)}
.text-slate-200{color:rgb(226 232 240 / 1)}
.text-slate-300{color:rgb(203 213 225 / 1)}
.text-slate-400{color:rgb(148 163 184 / 1)}
.text-slate-500{color:rgb(100 116 139 / 1)}
.text-slate-600{color:rgb(71 85 105 / 1)}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-white{color:rgb(255 255 255 / 1)}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-xs{font-size:0.75rem;line-height:1rem}
.top-3{top:0.75rem}
.tracking-wide{letter-spacing:0.025em}
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-10{width:2.5rem}
.w-2{width:0.5rem}
.w-4{width:1rem}
.w-5{width:1.25rem}
.w-56{width:14rem}
.w-8{width:2rem}
.w-9{width:2.25rem}
.w-full{width:100%}
.z-10{z-index:10}
.z-20{z-index:20}
.z-30{z-index:30}
@media (min-width:640px){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:inline{display:inline}.sm\:p-12{padding:3rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}}
@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.lg\:block{display:block}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:flex{display:flex}.lg\:flex-1{flex:1 1 0%}.lg\:flex-col{flex-direction:column}.lg\:flex-row{flex-direction:row}.lg\:grid-cols-\[1\.1fr_1fr\]{grid-template-columns:1.1fr 1fr}.lg\:grid-cols-\[250px_minmax\(0\,1fr\)_300px\]{grid-template-columns:250px minmax(0,1fr) 300px}.lg\:grid-cols-\[250px_minmax\(0\,1fr\)_340px\]{grid-template-columns:250px minmax(0,1fr) 340px}.lg\:h-auto{height:auto}.lg\:hidden{display:none}.lg\:items-stretch{align-items:stretch}.lg\:justify-start{justify-content:flex-start}.lg\:max-h-\[calc\(100vh-7\.5rem\)\]{max-height:calc(100vh - 7.5rem)}.lg\:max-h-none{max-height:none}.lg\:min-h-\[480px\]{min-height:480px}.lg\:min-h-\[520px\]{min-height:520px}.lg\:mt-10{margin-top:2.5rem}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:p-6{padding:1.5rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.lg\:w-64{width:16rem}}
@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}
