@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Noto+Sans+Thai:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";
html,body,#root{min-height:100%}*{box-sizing:border-box}:root{--portal-font:"Outfit", "Inter", "Noto Sans Thai", "Leelawadee UI", "Segoe UI", Tahoma, Arial, sans-serif;--portal-bg:#f3f5fb;--portal-bg-soft:#e8ecf7;--portal-panel:#fff;--portal-border:#e2e6f0;--portal-border-strong:#cdd4e6;--portal-text:#15203a;--portal-text-soft:#28336a;--portal-muted:#66708a;--portal-heading:#1e29b8;--portal-primary:#4150ff;--portal-primary-soft:#e4e6ff;--portal-primary-hover:#2f3ce6;--portal-primary-dark:#1e29b8;--portal-accent:#f30505;--portal-accent-soft:#ffe5e5;--portal-success:#16a34a;--portal-warning:#f59e0b;--portal-danger:#ef4444;--portal-sidebar-bg:#fff;--portal-sidebar-bg-soft:#f3f5fb;--portal-sidebar-text:#4b526b;--portal-sidebar-text-strong:#15203a;--portal-sidebar-active:#4150ff;--portal-sidebar-border:#e8ecf5;--portal-sidebar-width:264px;--portal-sidebar-width-collapsed:72px;--portal-radius-sm:6px;--portal-radius:10px;--portal-radius-lg:14px;--portal-radius-xl:18px;--portal-shadow-sm:0 1px 2px #0f172a0a;--portal-shadow:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--portal-shadow-md:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a0a;--portal-shadow-lg:0 10px 24px -6px #0f172a1f, 0 4px 8px -4px #0f172a0d;--heading-1-size:44px;--heading-2-size:30px;--heading-3-size:22px;--heading-4-size:18px;--heading-weight:700;--heading-tight-tracking:-.015em;--heading-tighter-tracking:-.02em}body{background:var(--portal-bg);color:var(--portal-text);font-family:var(--portal-font);letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;font-weight:400;line-height:1.55}h1,h2,h3,h4{font-family:"Outfit", "Inter", var(--portal-font);font-weight:var(--heading-weight);color:var(--portal-text)}.portal-shell h2,.portal-shell h3{color:var(--portal-heading)!important}em.portal-emphasis,.portal-emphasis{color:var(--portal-heading);font-style:italic;font-weight:700}.portal-eyebrow-chip{background:var(--portal-panel);border:1px solid var(--portal-border);color:var(--portal-muted);letter-spacing:.02em;border-radius:999px;align-items:center;gap:6px;padding:4px 14px;font-size:12px;font-weight:500;display:inline-flex}.portal-pill-cta{background:var(--portal-primary);color:#fff;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:14px;font-weight:600;transition:background .15s,transform .15s;display:inline-flex;box-shadow:0 6px 14px -4px #4150ff59}.portal-pill-cta:hover{background:var(--portal-primary-hover);transform:translateY(-1px)}h1{font-size:var(--heading-1-size);letter-spacing:var(--heading-tight-tracking);line-height:1}h2{font-size:var(--heading-2-size);letter-spacing:var(--heading-tight-tracking);line-height:1}h3{font-size:var(--heading-3-size);letter-spacing:var(--heading-tighter-tracking);line-height:1.2}h4{font-size:var(--heading-4-size);letter-spacing:var(--heading-tighter-tracking);line-height:1.2}.portal-login{min-height:100vh;color:var(--portal-text);background:radial-gradient(1000px 600px at -10% -10%,#6366f11a,#0000 60%),radial-gradient(800px 500px at 110% 110%,#f9731614,#0000 55%),#fff}.portal-login-brandline{align-items:center;gap:14px;margin-bottom:36px;display:flex}.portal-login-brandtext{flex-direction:column;line-height:1.1;display:flex}.portal-login-brandtext strong{letter-spacing:var(--heading-tight-tracking);color:var(--portal-text);font-size:20px;font-weight:800}.portal-login-brandtext span{letter-spacing:.16em;text-transform:uppercase;color:var(--portal-muted);font-size:11px;font-weight:600}.portal-login-eyebrow{background:var(--portal-primary-soft);color:var(--portal-primary);letter-spacing:.02em;border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.portal-login-features{z-index:3;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:32px;right:28px}.portal-login-feature{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--portal-text);background:#ffffffeb;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 6px 20px -8px #0f172a4d}.portal-login-feature svg{color:var(--portal-primary)}.portal-login-visual-sub{color:#ffffffb8;letter-spacing:0;margin-top:8px;font-size:14px;font-weight:500;display:block}.portal-login-layout{grid-template-columns:minmax(360px,1fr) minmax(520px,1fr);align-items:stretch;min-height:100vh;display:grid}.portal-login-panel{justify-content:center;align-items:center;padding:48px;display:flex}.portal-login-copy{width:min(100%,470px)}.portal-login-copy h1{color:#0c1326;font-size:clamp(36px, 4.4vw, var(--heading-1-size));line-height:1;font-weight:var(--heading-weight);letter-spacing:var(--heading-tight-tracking);margin:0}.portal-login-copy>p{color:#666b78;letter-spacing:0;margin:28px 0 40px;font-size:clamp(18px,2vw,24px);font-weight:400;line-height:1.35}.portal-login-button{background:var(--portal-primary);color:#fff;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:14px;width:100%;min-height:60px;font-size:17px;font-weight:600;transition:background .15s,transform .15s;display:inline-flex;box-shadow:0 12px 22px -8px #4150ff73}.portal-login-button:hover{background:var(--portal-primary-hover);transform:translateY(-1px)}.portal-login-button span{font-size:28px;line-height:1}.portal-login-secure{color:#5b64ff;background:#f1efff;border:1px solid #c9c7fa;border-radius:12px;gap:18px;margin-top:36px;padding:22px 24px;display:flex}.portal-login-secure h2{color:#171923;font-size:var(--heading-4-size);line-height:1.2;font-weight:var(--heading-weight);letter-spacing:var(--heading-tighter-tracking);margin:0 0 10px}.portal-login-secure p{color:#77727f;margin:0;font-size:16px;font-weight:400;line-height:1.35}.portal-login-visual{isolation:isolate;background:radial-gradient(600px 400px at 110% -10%,#f3050547,#0000 60%),linear-gradient(135deg,#1e29b8 0%,#4150ff 55%,#6470ff 100%);border-radius:22px;min-height:calc(100vh - 64px);margin:32px 48px 32px 0;position:relative;overflow:hidden;box-shadow:0 30px 60px -20px #1e29b873}.portal-login-visual:before,.portal-login-visual:after{content:"";z-index:-1;opacity:.45;clip-path:polygon(50% 0,100% 100%,0 100%);position:absolute;inset:auto}.portal-login-visual:before{background:#6470ff;width:360px;height:360px;top:32px;right:260px;transform:rotate(45deg)}.portal-login-visual:after{opacity:.32;background:#f30505;width:250px;height:250px;top:76px;right:96px;transform:rotate(75deg)}.portal-login-visual-brand{z-index:2;color:#fff;padding:82px 64px 36px;position:relative}.portal-login-visual-brand img{filter:brightness(0)invert();width:170px;height:auto;display:block}.portal-login-visual-brand p{color:#ffffffdb;margin:18px 0 0;font-size:22px;font-weight:500}.portal-login-device{transform-origin:0 100%;background:#fafaff;border:26px solid #0b0b0b;border-bottom-width:48px;border-radius:34px 34px 0 0;height:56%;position:absolute;bottom:-86px;left:-24px;right:74px;transform:rotate(4deg);box-shadow:24px 20px #fff8e0db}.portal-device-screen{background:#fbfbff;border-radius:8px 8px 0 0;height:100%;overflow:hidden}.portal-device-nav{color:#575a66;border-bottom:1px solid #ececf6;justify-content:center;align-items:center;gap:28px;height:62px;font-size:13px;font-weight:700;display:flex}.portal-device-nav span:first-child{color:#5360f6}.portal-device-nav b{color:#6161d8;background:#ecebff;border-radius:999px;place-items:center;width:34px;height:34px;font-size:12px;display:grid;position:absolute;right:42px}.portal-device-content{padding:42px 46px}.portal-device-title{color:#171923;align-items:center;gap:12px;font-size:26px;display:flex}.portal-device-title span,.portal-flow-card span{color:#ffa323;background:#fff1d0;border-radius:8px;width:fit-content;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.portal-device-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;display:grid}.portal-device-card{background:#fff;border:1px solid #e5e6f0;border-radius:10px;flex-direction:column;gap:9px;min-height:155px;padding:22px;display:flex;box-shadow:0 6px 18px #1418340f}.portal-device-card small{color:#8a8d98;font-weight:700}.portal-device-card b{color:#171923}.portal-device-card em{color:#575a66;background:#f3f4fb;border-radius:7px;width:fit-content;padding:6px 9px;font-size:12px;font-style:normal;font-weight:800}.portal-flow-card span:first-of-type{color:#80c725;background:#e9ffd6}.portal-flow-card span:last-of-type{color:#5aa4ee;background:#e6f2ff}.portal-shell{background:var(--portal-bg);font-family:var(--portal-font)}.portal-sidebar{width:var(--portal-sidebar-width);background:var(--portal-sidebar-bg);color:var(--portal-sidebar-text);border-right:1px solid var(--portal-sidebar-border);flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;overflow:hidden}.portal-sidebar.is-collapsed{width:var(--portal-sidebar-width-collapsed)}.portal-sidebar-brand{border-bottom:1px solid var(--portal-sidebar-border);color:var(--portal-sidebar-text-strong);align-items:center;gap:12px;padding:18px 18px 14px;display:flex}.portal-sidebar-brand-text{flex-direction:column;min-width:0;display:flex}.portal-sidebar-brand-text strong{letter-spacing:var(--heading-tight-tracking);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:800;overflow:hidden}.portal-sidebar-brand-text small{color:var(--portal-muted);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:600}.portal-sidebar-body{scrollbar-width:thin;scrollbar-color:#94a3b84d transparent;flex:auto;padding:12px 10px 24px;overflow-y:auto}.portal-sidebar-body::-webkit-scrollbar{width:6px}.portal-sidebar-body::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:999px}.portal-sidebar-footer{border-top:1px solid var(--portal-sidebar-border);color:var(--portal-muted);letter-spacing:.02em;padding:14px 16px;font-size:11px}.portal-topbar{z-index:30;flex-wrap:nowrap;gap:14px;min-height:72px;position:sticky;top:0;background:var(--portal-panel)!important;color:var(--portal-text)!important;border-bottom:1px solid var(--portal-border)!important;box-shadow:var(--portal-shadow-sm)!important;align-items:center!important;padding:14px 28px!important}.portal-brand{flex:none;align-items:center;gap:10px;min-width:0;display:flex}.portal-brand img,.portal-brand svg{-o-object-fit:contain;object-fit:contain;width:32px;height:32px}.portal-brand h1{letter-spacing:var(--heading-tighter-tracking);color:var(--portal-text);font-size:16px;font-weight:700;line-height:1.1}.portal-nav{flex-wrap:wrap;flex:0 0 100%;order:3;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-width:0;padding:4px 0 2px;display:flex;overflow:visible}.portal-nav-item{color:#242633;min-height:32px;font-size:13px;font-weight:var(--heading-weight);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 7px;line-height:1;display:inline-flex}.portal-nav-item svg{color:currentColor}.portal-nav-item.is-active{background:var(--portal-primary-soft);color:var(--portal-primary)}.portal-avatar{background:linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:999px;place-items:center;width:40px;height:40px;font-size:14px;font-weight:700;transition:box-shadow .15s,transform .15s;display:grid;box-shadow:0 1px 2px #0f172a1a}.portal-avatar:hover{box-shadow:0 0 0 3px var(--portal-primary-soft)}.portal-avatar:active{transform:scale(.96)}.portal-usermenu{z-index:50;border:1px solid var(--portal-border);background:#fff;border-radius:14px;width:268px;padding:6px;animation:.12s portal-usermenu-in;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 28px #0f172a24}@keyframes portal-usermenu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.portal-usermenu-head{align-items:center;gap:12px;padding:12px 12px 10px;display:flex}.portal-usermenu-avatar{background:linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-dark) 100%);color:#fff;border-radius:999px;flex:none;place-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:grid}.portal-usermenu-name{color:var(--portal-heading);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.portal-usermenu-email{color:var(--portal-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.portal-usermenu-section{padding:8px 12px 10px}.portal-usermenu-label{text-transform:uppercase;letter-spacing:.08em;color:var(--portal-muted);margin-bottom:6px;font-size:11px;font-weight:700}.portal-usermenu-roles{flex-wrap:wrap;gap:6px;display:flex}.portal-usermenu-role{background:var(--portal-primary-soft);color:var(--portal-primary);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:600;line-height:1}.portal-usermenu-divider{background:var(--portal-border);height:1px;margin:4px 6px}.portal-usermenu-item{width:100%;color:var(--portal-text-soft);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:600;transition:background .12s,color .12s;display:flex}.portal-usermenu-item:hover{color:var(--portal-danger);background:#fef2f2}.portal-noti-badge{background:var(--portal-danger,#ef4444);color:#fff;border:2px solid #fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:grid;position:absolute;top:-3px;right:-3px}.portal-noti-menu{z-index:50;border:1px solid var(--portal-border);background:#fff;border-radius:14px;width:320px;padding:6px;animation:.12s portal-usermenu-in;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 28px #0f172a24}.portal-noti-head{color:var(--portal-heading);justify-content:space-between;align-items:center;padding:10px 12px 8px;font-size:13px;font-weight:700;display:flex}.portal-noti-head-count{background:var(--portal-primary-soft);color:var(--portal-primary);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.portal-noti-empty{text-align:center;color:var(--portal-muted);padding:22px 12px;font-size:13px}.portal-noti-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;width:100%;padding:10px 12px;transition:background .12s;display:flex}.portal-noti-item:hover{background:var(--portal-bg-soft,#f8fafc)}.portal-noti-item-icon{background:var(--portal-primary-soft);width:32px;height:32px;color:var(--portal-primary);border-radius:9px;flex:none;place-items:center;display:grid}.portal-noti-item-text{min-width:0;color:var(--portal-text,#334155);flex:1;font-size:13px;font-weight:600}.portal-noti-item-count{background:var(--portal-danger,#ef4444);color:#fff;border-radius:999px;flex:none;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:grid}.portal-noti-item-chevron{color:var(--portal-muted);flex:none}.portal-palette-overlay{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:.12s portal-usermenu-in;display:flex;position:fixed;inset:0}.portal-palette{border:1px solid var(--portal-border);background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:560px;max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a47}.portal-palette-input{border-bottom:1px solid var(--portal-border);align-items:center;gap:10px;padding:14px 16px;display:flex}.portal-palette-input input{color:var(--portal-heading);background:0 0;border:none;outline:none;flex:1;font-size:15px}.portal-palette-kbd{background:var(--portal-bg-soft,#f1f5f9);border:1px solid var(--portal-border);color:var(--portal-muted);border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.4}.portal-palette-list{padding:6px;overflow-y:auto}.portal-palette-empty{text-align:center;color:var(--portal-muted);padding:28px 12px;font-size:13px}.portal-palette-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;width:100%;padding:10px 12px;display:flex}.portal-palette-item.is-active{background:var(--portal-primary-soft)}.portal-palette-item-icon{background:var(--portal-bg-soft,#f1f5f9);width:30px;height:30px;color:var(--portal-text-soft);border-radius:8px;flex:none;place-items:center;display:grid}.portal-palette-item.is-active .portal-palette-item-icon{color:var(--portal-primary);background:#fff}.portal-palette-item-label{min-width:0;color:var(--portal-heading);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:600;overflow:hidden}.portal-palette-item-group{color:var(--portal-muted);flex:none;font-size:11px;font-weight:600}.portal-palette-item-enter{color:var(--portal-primary);flex:none}.portal-palette-foot{border-top:1px solid var(--portal-border);color:var(--portal-muted);align-items:center;gap:14px;padding:9px 16px;font-size:11px;display:flex}.portal-palette-foot span:last-child{margin-left:auto;font-weight:600}.portal-logout{border:1px solid var(--portal-border);width:40px;height:40px;color:var(--portal-muted);background:#fff;border-radius:999px;place-items:center;transition:all .15s;display:inline-grid}.portal-logout:hover{color:var(--portal-danger);background:#fef2f2;border-color:#fecaca}.portal-side-group{margin-bottom:6px}.portal-side-group-header{width:100%;color:var(--portal-muted);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;margin:10px 0 4px;padding:10px 14px;font-size:11px;font-weight:700;transition:color .15s;display:flex}.portal-side-group-header:hover{color:var(--portal-sidebar-text-strong)}.portal-side-item{border-radius:var(--portal-radius);width:100%;color:var(--portal-sidebar-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;margin-bottom:2px;padding:10px 14px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.portal-side-item:hover{background:var(--portal-sidebar-bg-soft);color:var(--portal-sidebar-text-strong)}.portal-side-item.is-active{background:var(--portal-primary-soft);color:var(--portal-primary);box-shadow:none;font-weight:600}.portal-side-item svg{opacity:.9;flex-shrink:0;width:18px;height:18px}.portal-side-item.is-active svg{opacity:1}.portal-sidebar-toggle{border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--portal-panel);width:40px;height:40px;color:var(--portal-text-soft);cursor:pointer;place-items:center;transition:all .15s;display:inline-grid}.portal-sidebar-toggle:hover{background:var(--portal-primary-soft);color:var(--portal-primary);border-color:var(--portal-primary)}.portal-sidebar-toggle svg{width:18px;height:18px}.portal-footer{background:var(--portal-panel);border-top:1px solid var(--portal-border);color:var(--portal-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:16px 28px;font-size:12px;display:flex}.portal-footer a{color:var(--portal-primary);font-weight:500;text-decoration:none}.portal-footer a:hover{text-decoration:underline}.portal-shell main>.flex-1.overflow-y-auto{background:var(--portal-bg);padding:28px 24px!important}.portal-shell main>.flex-1.overflow-y-auto>div{width:min(100%,1320px);max-width:none;margin-left:auto;margin-right:auto}.portal-shell main>.flex-1.overflow-y-auto>.portal-modal-overlay{width:100vw;max-width:none;margin:0}.portal-shell h2{letter-spacing:var(--heading-tighter-tracking);line-height:1.2;color:var(--portal-text)!important;font-size:var(--heading-3-size)!important;font-weight:var(--heading-weight)!important}.portal-shell .bg-white{background-color:#0000!important}.portal-shell .portal-modal-panel{color:var(--portal-text);background:#fff!important}.portal-shell .portal-modal-panel .bg-white{background-color:#fff!important}.portal-shell .portal-modal-body{background:#fff!important}.portal-shell .portal-modal-footer{background:#f8fafc!important}.portal-shell .rounded-xl{border-radius:8px!important}.portal-shell .shadow-sm{box-shadow:none!important}.portal-shell select,.portal-shell input[type=text],.portal-shell input[type=month],.portal-shell input[type=date],.portal-shell textarea{color:#27272f;min-height:38px;font-family:var(--portal-font);font-size:15px;font-weight:400;background:#fff!important;border-color:#dedde7!important;border-radius:7px!important}.portal-shell input::placeholder{color:#8a8d98;font-weight:400}.portal-shell button{font-family:var(--portal-font);font-weight:var(--heading-weight);letter-spacing:0}.portal-shell .bg-blue-600,.portal-shell .bg-emerald-600,.portal-shell .bg-orange-600{font-weight:600;transition:background-color .15s;background-color:var(--portal-primary)!important;color:#fff!important;border-color:var(--portal-primary)!important;border-radius:var(--portal-radius)!important}.portal-shell .bg-blue-600:hover,.portal-shell .bg-emerald-600:hover,.portal-shell .bg-orange-600:hover{background-color:var(--portal-primary-hover)!important;border-color:var(--portal-primary-hover)!important}.portal-shell .bg-slate-100,.portal-shell .bg-emerald-50{background-color:#fff!important}.portal-shell .border{border-color:var(--portal-border)!important}.portal-shell table{border-collapse:separate;border-spacing:0;min-width:980px;font-size:14px;overflow:hidden}.portal-shell thead{background:#f0edf9!important}.portal-shell th{color:#23232a;font-size:13px;font-weight:700;border-bottom:0!important;padding-top:10px!important;padding-bottom:10px!important}.portal-shell td{color:#303340;background:#fff;font-weight:400;border-bottom:1px solid #ebe9f2!important;padding-top:11px!important;padding-bottom:11px!important}.portal-shell td.font-bold,.portal-shell .font-bold{font-weight:700!important}.portal-shell .h-full.flex.flex-col.rounded-xl.border{background:var(--portal-panel)!important;border-color:var(--portal-border)!important}.portal-shell .overflow-x-auto{-webkit-overflow-scrolling:touch;scrollbar-color:#9ca0aa transparent;scrollbar-width:thin;max-width:100%}.portal-shell .overflow-x-auto::-webkit-scrollbar{height:8px}.portal-shell .overflow-x-auto::-webkit-scrollbar-thumb{background:#a7aab4;border-radius:999px}.portal-shell .overflow-x-auto::-webkit-scrollbar-track{background:0 0}.portal-shell tbody tr:hover td{background:#fafaff}.portal-shell table th:first-child{border-top-left-radius:8px}.portal-shell table th:last-child{border-top-right-radius:8px}.portal-shell .text-blue-600{color:#5662f0!important}.portal-shell .text-emerald-700,.portal-shell .text-emerald-600{color:#85c726!important}.portal-shell .bg-emerald-100{border:1px solid #b8ed64;font-weight:700;color:#77b821!important;background:#efffd8!important}.portal-shell .bg-blue-100{font-weight:700;color:#5261f6!important;background:#eef0ff!important}@media (max-width:1180px){.portal-brand{flex:auto;min-width:220px}.portal-nav{justify-content:flex-start;padding-bottom:2px}.portal-shell main>.flex-1.overflow-y-auto{padding:24px 18px!important}.portal-shell .h-full.flex.flex-col>.flex:first-child{align-items:stretch!important}.portal-shell .h-full.flex.flex-col>.flex:first-child>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%!important;display:grid!important}.portal-shell .h-full.flex.flex-col>.flex:first-child>div:last-child>*{justify-content:center;width:100%!important}}@media (max-width:900px){.portal-login-layout{grid-template-columns:1fr}.portal-login-panel{min-height:58vh;padding:36px 22px}.portal-login-button{min-height:56px;font-size:17px}.portal-login-visual{min-height:460px;margin:0 16px 22px}.portal-login-visual-brand{padding:44px 34px 24px}.portal-login-visual-brand img{width:132px}.portal-login-device{border-width:18px 18px 34px;height:54%;bottom:-54px;left:18px;right:18px}.portal-device-nav{gap:14px;font-size:11px}.portal-device-content{padding:28px 24px}.portal-device-title{font-size:20px}.portal-device-grid{grid-template-columns:1fr}.portal-brand{width:calc(100% - 96px);min-width:0}.portal-shell main>.flex-1.overflow-y-auto{padding:22px 14px!important}.portal-shell .h-full.flex.flex-col{min-height:auto}.portal-shell .h-full.flex.flex-col>.flex:first-child{margin-bottom:18px!important}.portal-shell .h-full.flex.flex-col>.flex:first-child>div:first-child{justify-content:space-between;align-items:center;width:100%}.portal-shell .h-full.flex.flex-col>.flex:first-child>div:last-child{grid-template-columns:1fr}}@media (max-width:560px){.portal-topbar{gap:8px;padding-left:14px!important;padding-right:14px!important}.portal-brand img{width:28px;height:28px}.portal-brand h1{font-size:16px}.portal-nav-item{font-size:13px}.portal-avatar{width:32px;height:32px}.portal-logout{width:30px;height:30px}.portal-shell main>.flex-1.overflow-y-auto{padding:14px 10px!important}.portal-shell .h-full.flex.flex-col.rounded-xl.border{border-radius:10px!important;padding:14px!important}.portal-shell h2{font-size:24px!important}.portal-shell table{min-width:900px;font-size:13px}}:root{--tmt-cream:#f5f7fc;--tmt-cream-2:#eef1fa;--tmt-border:#e2e6f0;--tmt-border-soft:#eef1f7;--tmt-ink:#15203a;--tmt-muted:#66708a;--tmt-accent:#4150ff;--tmt-accent-soft:#e4e6ff;--tmt-accent-ink:#1e29b8;--tmt-sage:#16a34a}.portal-shell .tmt-panel{border-radius:26px!important;box-shadow:0 24px 70px -24px #1e29b833!important}.tmt-req-header{z-index:20;background:linear-gradient(180deg, #fbfcff 0%, var(--tmt-cream) 100%);border-bottom:1px solid var(--tmt-border);position:sticky;top:0}.tmt-req-footer{z-index:20;background:linear-gradient(0deg, #fbfcff 0%, var(--tmt-cream) 100%);border-top:1px solid var(--tmt-border);position:sticky;bottom:0}.tmt-req-body{background:#fbfcff}.tmt-section{background:var(--tmt-cream);border:1px solid var(--tmt-border);border-radius:20px}.tmt-card{border:1px solid var(--tmt-border);background:#fff;border-radius:18px;transition:box-shadow .2s,transform .18s,border-color .2s}.tmt-card:hover{border-color:#cdd4e6;box-shadow:0 12px 28px -16px #4150ff38}@keyframes tmtLineIn{0%{opacity:0;transform:translateY(-8px)scale(.99)}to{opacity:1;transform:none}}.tmt-line-in{animation:.26s cubic-bezier(.2,.7,.3,1) tmtLineIn}.tmt-num{background:var(--tmt-accent-soft);width:26px;height:26px;color:var(--tmt-accent-ink);border-radius:999px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.tmt-stepper{border:1px solid var(--tmt-border);background:var(--tmt-cream);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.tmt-step-btn{width:34px;height:34px;color:var(--tmt-accent-ink);cursor:pointer;background:0 0;border:0;place-items:center;font-size:18px;font-weight:700;line-height:1;transition:background .15s,transform 80ms;display:grid}.tmt-step-btn:hover{background:var(--tmt-accent-soft)}.tmt-step-btn:active{transform:scale(.86)}.tmt-step-btn:disabled{opacity:.35;cursor:not-allowed}.portal-shell input.tmt-qty{-moz-appearance:textfield;text-align:center!important;width:46px!important;min-height:34px!important;color:var(--tmt-ink)!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important;font-size:15px!important;font-weight:700!important}.portal-shell input.tmt-qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.portal-shell input.tmt-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tmt-toggle{border:1px solid var(--tmt-border);color:var(--tmt-muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .18s;display:inline-flex}.tmt-toggle:hover{border-color:#cdd4e6}.tmt-toggle[data-on=true]{background:var(--tmt-accent-soft);color:var(--tmt-accent-ink);border-color:#c7ccff}.tmt-add{background:var(--tmt-accent-soft);width:100%;color:var(--tmt-accent-ink);cursor:pointer;border:1.5px dashed #c1c7ee;border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:15px;font-weight:700;transition:all .2s;display:flex}.tmt-add:hover{border-color:var(--tmt-accent);background:#d7dbff;transform:translateY(-1px)}.tmt-add:active{transform:translateY(0)scale(.995)}.tmt-chip{background:var(--tmt-accent-soft);color:var(--tmt-accent-ink);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.tmt-btn-primary{transition:transform .12s,box-shadow .2s,background .2s;box-shadow:0 10px 22px -10px #4150ff8c;background:var(--tmt-accent)!important;color:#fff!important;border-radius:999px!important}.tmt-btn-primary:hover{transform:translateY(-1px);background:var(--tmt-accent-ink)!important}.tmt-btn-primary:disabled{opacity:.55}.tmt-btn-ghost{transition:background .15s;border:1px solid var(--tmt-border)!important;color:var(--tmt-ink)!important;background:#fff!important;border-radius:999px!important}.tmt-btn-ghost:hover{background:var(--tmt-cream)!important}.tmt-trash{color:#c4756b;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background .15s,color .15s;display:grid}.tmt-trash:hover{color:#b3493c;background:#fbeae7}@media (max-width:768px){.portal-shell .tmt-panel{border-radius:20px!important}.tmt-section{border-radius:16px}}
