@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Fallback;src:local(Arial);ascent-override:99.79%;descent-override:42.32%;line-gap-override:0.0%;size-adjust:106.33%}.noto_sans_thai_aa6c80b6-module__lYg59q__className{font-family:Noto Sans Thai,Noto Sans Thai Fallback;font-style:normal}.noto_sans_thai_aa6c80b6-module__lYg59q__variable{--font-ui:"Noto Sans Thai", "Noto Sans Thai Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.40sczeszzbjw1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.352ti9pm7m6qh.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.0o-3_g79811ob.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.0ngr-xkgqz1kf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.15orukf5wyxb5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.226pwps5o-gq_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_ce75659d-module__2gUnLG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_ce75659d-module__2gUnLG__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--bg:#fff;--bg-subtle:#f3f4f6;--surface:#fff;--border:#e3e4e9;--border-strong:#c7c9d2;--text:#17191f;--text-muted:#63666f;--text-faint:#9799a3;--accent:#d9151a;--accent-hover:#ae1014;--accent-soft:#fce6e6;--accent-on:#fff;--accent2:#1e56e8;--accent2-hover:#1642b8;--accent2-soft:#e8eefd;--accent2-on:#fff;--focus-ring:var(--accent2);--success:#0ca30c;--success-soft:#e3f7e3;--warning:#fab219;--warning-soft:#fff2d9;--danger:#c2410c;--danger-soft:#fdece1;--neutral-dot:#9799a3;--shadow-sm:0 1px 2px #17191f14;--shadow-md:0 4px 16px #17191f1f;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3{text-wrap:balance;margin:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}svg.icon{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.topbar{background:var(--surface);border-bottom:1px solid var(--border)}.topbar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1120px;margin:0 auto;padding:16px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{width:auto;height:38px;display:block}.brand-tag{letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-size:11px;font-weight:700;display:block}.brand h1{letter-spacing:-.01em;color:var(--text);font-size:19px;font-weight:700}.tabs{background:var(--bg-subtle);border-radius:var(--radius-md);gap:4px;padding:4px;display:flex}.tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s,color .12s;display:flex}.tab:hover{color:var(--text)}.tab[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.shell{max-width:1120px;margin:0 auto;padding:24px 24px 64px}.view{display:none}.view.active{display:block}.stat-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;margin-bottom:26px;padding-bottom:20px;display:flex}.stat{border-left:1px solid var(--border);flex:1;min-width:140px;padding:0 22px}.stat:first-child{border-left:none;padding-left:0}.stat-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);font-size:27px;font-weight:600;line-height:1.2;display:block}.stat-label{color:var(--text-muted);margin-top:3px;font-size:12px}.stat.accent .stat-num{color:var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.search-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;color:var(--text-faint);flex:1;align-items:center;gap:8px;padding:9px 12px;display:flex}.search-box input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:13px}.filter-row{border-bottom:1px solid var(--border);gap:22px;margin-bottom:14px;display:flex}.filter-chip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 10px;font-size:13px;font-weight:600}.filter-chip:hover{color:var(--text)}.filter-chip[aria-pressed=true]{color:var(--accent2);border-bottom-color:var(--accent2)}.table-scroll{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:600}tbody tr{border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;position:relative}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg-subtle)}tbody td{vertical-align:middle;padding:12px 16px}.serial-cell{font-family:var(--font-mono);color:var(--text);font-size:12.5px}.row-link:after{content:"";position:absolute;inset:0}.loc-primary{font-weight:500}.loc-secondary{color:var(--text-faint);font-size:12px}.muted-empty{color:var(--text-faint);font-style:normal}.status-dot-row{white-space:nowrap;align-items:center;gap:7px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.dot.provisioning{background:var(--neutral-dot)}.dot.ready{background:var(--warning)}.dot.active{background:var(--success)}.dot.attention{background:var(--danger)}.progress-mini{gap:3px;display:flex}.progress-mini span{background:var(--border-strong);border-radius:2px;width:12px;height:4px}.progress-mini span.done{background:var(--success)}.updated-cell{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.detail-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:16px;display:grid}@media (max-width:760px){.detail-grid{grid-template-columns:1fr}}.back-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:14px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.back-link:hover{color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.card+.card{margin-top:14px}.card h2{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:14px;font-size:13px;font-weight:700}.device-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.device-serial{font-family:var(--font-mono);letter-spacing:-.01em;font-size:21px;font-weight:600}.device-sub{color:var(--text-muted);margin-top:4px;font-size:13px}.status-pill{border-radius:var(--radius-full);align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.status-pill.provisioning{background:var(--bg-subtle);color:var(--text-muted)}.status-pill.ready{background:var(--warning-soft);color:var(--warning)}.status-pill.active{background:var(--success-soft);color:var(--success)}.field-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:9px 0;font-size:13px;display:flex}.field-row:last-child{border-bottom:none}.field-row .k{color:var(--text-muted)}.field-row .v{text-align:right;font-weight:500}.programs-block{border-bottom:1px solid var(--border);padding:9px 0;font-size:13px}.programs-block .label{color:var(--text-muted);margin-bottom:8px}.tag-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-chip{background:var(--bg-subtle);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-full);align-items:center;gap:4px;padding:4px 4px 4px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.tag-chip button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:flex}.tag-chip button svg{stroke-width:2.4px;width:11px;height:11px}.tag-chip button:hover{color:var(--danger);background:var(--danger-soft)}.tag-add-btn{border:1px dashed var(--border-strong);color:var(--text-muted);border-radius:var(--radius-full);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:4px 10px 4px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.tag-add-btn svg{width:13px;height:13px}.tag-add-btn:hover{color:var(--accent);border-color:var(--accent)}.tag-add-row{flex-wrap:wrap;align-items:center;gap:6px;width:100%;margin-top:8px;display:flex}.tag-add-row select,.tag-add-row input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:6px 8px;font-family:inherit;font-size:12.5px}.tag-add-row .mini-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 10px;font-size:12px;font-weight:600}.tag-add-row .mini-btn.confirm{background:var(--accent);color:var(--accent-on)}.tag-add-row .mini-btn.confirm:hover{background:var(--accent-hover)}.tag-add-row .mini-btn.cancel{background:var(--bg-subtle);color:var(--text-muted)}.tag-list-mini{flex-wrap:wrap;gap:4px;max-width:240px;display:flex}.mini-tag{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted);white-space:nowrap;padding:2px 9px;font-size:11.5px}.checklist-step{border-bottom:1px solid var(--border);gap:12px;padding:10px 0;display:flex}.checklist-step:last-child{border-bottom:none}.step-mark{border:1.6px solid var(--border-strong);color:#0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.checklist-step.done .step-mark{background:var(--success);border-color:var(--success);color:#fff}.checklist-step.done .step-mark svg{stroke-width:3px;width:12px;height:12px}.step-body{flex:1}.step-label{font-size:13.5px;font-weight:500}.checklist-step:not(.done) .step-label{color:var(--text-muted)}.step-time{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-top:1px;font-size:12px}.credential-row{align-items:center;gap:8px;display:flex}.credential-value{font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;flex:1;padding:8px 10px;font-size:13px;overflow:hidden}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s;display:flex}.icon-btn:hover{color:var(--accent2);border-color:var(--accent2)}.photo-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.photo-slot{aspect-ratio:4/3;border-radius:var(--radius-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex}.photo-slot.empty{border:1.5px dashed var(--border-strong);color:var(--text-faint)}.photo-slot.filled{background:var(--success-soft);color:var(--success);border:1px solid var(--border);position:relative}.photo-slot .cap{font-size:11px;font-weight:600}.photo-slot .sub{color:var(--text-faint);font-size:10px}.photo-badge{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:6px;right:6px}.photo-badge svg{stroke-width:3px;width:10px;height:10px}.qr-box{align-items:center;gap:16px;display:flex}canvas#qrCanvas{border-radius:var(--radius-sm);border:1px solid var(--border)}.qr-note{color:var(--text-muted);font-size:12.5px}.qr-note strong{color:var(--text);margin-bottom:4px;font-size:13px;display:block}.device-select{width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:9px 12px;font-family:inherit;font-size:13.5px}.checklist-step.interactive{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm)}.checklist-step.interactive:hover{background:var(--bg-subtle)}.checklist-step.interactive .step-mark{cursor:pointer}.form-title{color:var(--text);margin-bottom:18px;font-size:17px;font-weight:700}.form-group{margin-bottom:16px}.form-row-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-label{color:var(--text-muted);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.form-label .required{color:var(--accent)}.form-input{width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 12px;font-family:inherit;font-size:13.5px}.form-input.mono{font-family:var(--font-mono);font-size:12.5px}.form-input:focus{border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft);outline:none}.db-split-note{background:var(--accent2-soft);color:var(--text);border-radius:var(--radius-md);align-items:flex-start;gap:10px;margin:4px 0 18px;padding:12px 14px;font-size:12.5px;line-height:1.6;display:flex}.db-split-note svg{color:var(--accent2);flex-shrink:0;width:18px;height:18px;margin-top:1px}.db-split-note code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 5px;font-size:11.5px}.form-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.btn-primary,.btn-secondary{border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary svg{width:16px;height:16px}.btn-secondary{background:var(--bg-subtle);color:var(--text-muted)}.btn-secondary:hover{color:var(--text)}@media (max-width:560px){.form-row-2{grid-template-columns:1fr}}.autocomplete{position:relative}.autocomplete-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:30;max-height:220px;margin-top:4px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete-list.open{display:block}.autocomplete-item{cursor:pointer;padding:8px 12px;font-size:13px}.autocomplete-item:hover{background:var(--bg-subtle)}.autocomplete-item.add-new{color:var(--accent);border-top:1px solid var(--border);font-weight:600}.autocomplete-empty{color:var(--text-faint);padding:10px 12px;font-size:12.5px}.date-field{position:relative}.date-input{cursor:pointer;padding-right:38px!important}.date-icon-btn{width:28px;height:28px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.date-icon-btn:hover{color:var(--accent2)}.date-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-md);z-index:30;padding:12px;display:none;position:absolute;top:calc(100% + 6px);left:0}.date-popover.open{display:block}.date-popover-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.date-nav-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 8px;font-size:16px}.date-nav-btn:hover{color:var(--text);background:var(--bg-subtle)}.date-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;font-size:11.5px;display:grid}.date-grid .dow{color:var(--text-faint);padding:4px 0;font-weight:600}.date-cell{border-radius:var(--radius-sm);cursor:pointer;padding:6px 0}.date-cell:hover{background:var(--bg-subtle)}.date-cell.selected{background:var(--accent);color:var(--accent-on);font-weight:700}.date-cell.today{box-shadow:inset 0 0 0 1px var(--accent2)}.date-clear-btn{width:100%;margin-top:8px}.pagination{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:14px;font-size:12.5px;display:flex}.pagination-btns{gap:6px;display:flex}.page-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;padding:6px 12px;font-size:12.5px;font-weight:600}.page-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.page-btn:disabled{opacity:.4;cursor:default}.report-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:700px){.report-grid-2{grid-template-columns:1fr}}.report-list{flex-direction:column;gap:12px;display:flex}.report-empty{color:var(--text-faint);font-size:12.5px}.overview-card,.trend-card{margin-bottom:16px}.donut-row{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.donut-row svg circle[data-tip]{transition:opacity .1s}.donut-row svg circle[data-tip]:hover{opacity:.85}.status-chart-legend-vertical{flex-direction:column;gap:12px;display:flex}.trend-chart-wrap{max-width:640px}.chart-tooltip{pointer-events:none;background:var(--text);color:var(--bg);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;opacity:0;white-space:nowrap;padding:6px 10px;font-size:12px;font-weight:600;transition:opacity 80ms;position:fixed}.chart-tooltip.show{opacity:1}.status-chart-legend{flex-wrap:wrap;gap:20px;display:flex}.status-chart-legend-item{color:var(--text-muted);align-items:center;gap:7px;font-size:12.5px;display:flex}.status-chart-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.status-chart-legend-item .count{font-family:var(--font-mono);color:var(--text);font-weight:700}.vbar-chart{border-bottom:1px solid var(--border);align-items:flex-end;gap:14px;height:148px;padding-top:20px;display:flex}.vbar-col{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.vbar-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600}.vbar-fill{cursor:default;border-radius:4px 4px 0 0;width:100%;max-width:36px;transition:opacity .1s}.vbar-fill:hover{opacity:.85}.vbar-labels{gap:14px;margin-top:8px;display:flex}.vbar-label-item{text-align:center;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.hbar-chart{flex-direction:column;gap:12px;display:flex}.hbar-row{grid-template-columns:1.3fr 1.7fr 28px;align-items:center;gap:10px;display:grid}.hbar-cat{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.hbar-track{background:var(--bg-subtle);border-radius:0 4px 4px 0;height:18px;overflow:hidden}.hbar-fill{cursor:default;border-radius:0 4px 4px 0;height:100%;transition:opacity .1s}.hbar-fill:hover{opacity:.85}.hbar-value{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:600}.dash-filters{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:20px;padding-bottom:20px;display:flex}.filter-field{min-width:170px}.filter-field .form-label{margin-bottom:6px}.filter-field select.form-input{cursor:pointer}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;padding:10px 16px;font-size:13px;font-weight:600;transition:opacity .18s,transform .18s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(12px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (max-width:640px){.stat-bar{flex-direction:column;gap:12px}.stat{border-left:none;padding-left:0}.shell{padding:16px 14px 48px}.topbar-inner{align-items:flex-start}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
