/* STRMS Web App Design System 22.33.7 · screen only; print templates remain independent. */
:root{
  --web-font:"Noto Sans Thai","Leelawadee UI","Thonburi",Tahoma,system-ui,sans-serif;
  --web-ink:#172b47;--web-muted:#5c6f88;--web-line:#dce6f3;
  --web-bg:#f3f7fc;--web-blue:#245ed7;--web-blue-dark:#174bb2;
  --web-surface:#fff;--web-radius:18px;--web-shadow:0 8px 28px rgba(21,51,100,.065);
  --strms-official-font:var(--web-font);--strms-bg:var(--web-bg);--strms-ink:var(--web-ink);
}
@media screen{
  html{font-size:16px;-webkit-text-size-adjust:100%}
  html body,html body :is(h1,h2,h3,h4,h5,h6,p,a,label,small,strong,b,button,input,select,textarea,table,th,td,summary),html body .sidebar,html body .topbar{font-family:var(--web-font)!important}
  html body{font-size:16px;line-height:1.55;color:var(--web-ink);background:var(--web-bg);-webkit-font-smoothing:antialiased}
  html body :is(input,select,textarea,button){font-size:16px;line-height:1.45}
  html body :focus-visible{outline:3px solid #67a4ff;outline-offset:2px}
  html body .shell{min-height:100vh}
  /* Navigation: hierarchy stays legible on all screens. */
  html body .sidebar{width:284px;background:linear-gradient(180deg,#112e5a 0%,#153e78 55%,#102d57 100%);box-shadow:8px 0 32px rgba(13,40,86,.12)}
  html body .sidebar-head{min-height:84px;padding:15px 17px}
  html body .brandmark{flex-basis:48px;width:48px;height:48px;border-radius:15px}
  html body .brand b{font-family:var(--web-font)!important;font-size:21px;line-height:1.15;font-weight:800;letter-spacing:0}
  html body .brand small{max-width:185px;font-size:11.5px;line-height:1.35;letter-spacing:0}
  html body .sidebar-user{margin:3px 13px 14px;border-radius:14px;background:rgba(255,255,255,.09)}
  html body .sidebar-user b{font-size:14px;line-height:1.4}
  html body .sidebar-user small{font-size:12px;line-height:1.35}
  html body .sidebar-section-label{font-size:11px;letter-spacing:.04em}
  html body .main-nav{padding:4px 9px 15px}
  html body .main-nav .nav-group{margin:3px 0;border-radius:12px}
  html body .main-nav .nav-group-toggle{min-height:45px;padding:9px 12px;border-radius:11px;color:#dceaff;font-size:15px!important;line-height:1.35;font-weight:700;letter-spacing:0}
  html body .main-nav .nav-group-toggle:hover{background:rgba(255,255,255,.09)}
  html body .main-nav .nav-group-toggle i{font-size:16px}
  html body .main-nav .nav-children{padding:3px 5px 9px 12px}
  html body .main-nav .nav-item{min-height:43px;padding:8px 11px;border-radius:10px;font-size:14.5px!important;line-height:1.42;color:#ebf3ff;gap:10px}
  html body .main-nav .nav-children .nav-item{min-height:42px;padding:8px 10px;font-size:14px!important;color:#dceaff}
  html body .main-nav .nav-item b{font-size:inherit!important;font-weight:600!important;line-height:inherit;white-space:normal;overflow-wrap:anywhere}
  html body .main-nav .nav-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:27px;height:27px;font-size:17px!important;line-height:1}
  html body .main-nav .nav-item:hover,html body .main-nav .nav-item.active{background:rgba(255,255,255,.15);color:#fff}
  html body .main-nav .nav-item.active{box-shadow:inset 3px 0 #76caff}
  html body .role-menu details summary{font-size:14px!important;line-height:1.4;font-weight:650}
  html body .sidebar-foot{font-size:12px;display:grid;gap:5px}
  html body .sidebar-foot .session-online{display:flex;align-items:center;gap:7px;color:#c5ffe2;font-weight:650}
  html body .online-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:#eafbf3;color:#147447;font-size:12px;font-weight:700;white-space:nowrap}
  html body .online-pill .status-dot,html body .session-online .status-dot{background:#21ce76;box-shadow:0 0 0 3px rgba(33,206,118,.18)}
  /* Shell and page heading. */
  html body .main{margin-left:284px;min-width:0}
  html body .topbar{height:72px;padding:0 24px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--web-line);box-shadow:0 3px 14px rgba(23,50,93,.035)}
  html body .topbar .breadcrumb,html body .topbar .top-context{font-size:13px}
  html body .content{max-width:1560px;padding:26px clamp(16px,2.5vw,34px) 48px}
  html body .page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:21px}
  html body .page-head h1{font-size:clamp(23px,2.25vw,31px);line-height:1.28;letter-spacing:0;font-weight:750;color:#17345a;margin:0 0 4px}
  html body .page-head p{font-size:14px;line-height:1.6;color:var(--web-muted);margin:0}
  html body .page-head .row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  /* Common controls and content surfaces. */
  html body .card,html body .panel{background:var(--web-surface);border:1px solid var(--web-line);border-radius:var(--web-radius);box-shadow:var(--web-shadow)}
  html body .card-head h2,html body .card-head h3{font-size:clamp(18px,1.6vw,21px);line-height:1.35;color:#19375d}
  html body .card-head p,html body .card-head small{font-size:13px;line-height:1.5;color:var(--web-muted)}
  html body .btn,html body .btn-primary,html body .btn-secondary,html body .btn-ghost{min-height:40px;padding:8px 14px;border-radius:11px;font-size:14px!important;font-weight:650;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;gap:7px}
  html body .btn-primary{background:var(--web-blue);border-color:var(--web-blue);color:#fff}
  html body .btn-primary:hover{background:var(--web-blue-dark);color:#fff}
  html body :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:10px;min-height:42px}
  html body textarea{min-height:90px}
  html body .form-grid{gap:16px}
  html body :is(.form-grid,.equipment-form) label{font-size:14px;line-height:1.5;font-weight:600;color:#344962}
  html body :is(.form-grid,.equipment-form) label small{display:block;font-size:12px;line-height:1.5;font-weight:400;color:var(--web-muted)}
  html body .toolbar{gap:10px;align-items:center}
  html body .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
  html body .table-wrap table{width:100%;font-size:14px;line-height:1.5}
  html body .table-wrap th{padding:12px 13px;background:#f1f5fb;color:#39516e;font-size:13px;font-weight:700;white-space:nowrap}
  html body .table-wrap td{padding:12px 13px;vertical-align:middle;border-bottom:1px solid #e8eef6}
  html body .table-wrap tbody tr:hover td{background:#f9fbff}
  html body .table-sub{font-size:12px;line-height:1.45;color:var(--web-muted)}
  html body .badge{font-size:12px;line-height:1.3;border-radius:999px}
  html body .pagination{font-size:13px}
  html body .alert{border-radius:12px;line-height:1.5}
  html body .asset-help{padding:15px 18px;margin:0 0 16px;border:1px solid #bfd4fc;background:#edf4ff;border-radius:14px;color:#23436a;font-size:14px}
  html body .asset-help a{font-weight:700;color:#1649ad;text-decoration:underline;text-underline-offset:3px}
  html body .equipment-form .form-section{margin-bottom:16px}
  html body .equipment-form .card-head h3{font-size:19px}
  html body .equipment-form .card-head p{font-size:13px}
  html body .table-wrap td form{display:inline-flex;margin:0}
  html body .record-dates{margin-top:4px;font-size:11.5px}
  html body .asset-record-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
  html body .asset-record-meta>div{display:grid;gap:2px;min-width:0;padding:12px 15px;background:#fff;border:1px solid var(--web-line);border-radius:14px;box-shadow:var(--web-shadow)}
  html body .asset-record-meta span{font-size:12px;color:var(--web-muted)}
  html body .asset-record-meta strong{font-size:14px;font-weight:700;color:#254065}
  html body .asset-record-meta .record-current{color:#138253}
  html body .activity-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
  html body .activity-list li{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-top:1px solid #edf2f8}
  html body .activity-list .activity-mark{flex:none;margin:7px 0 0;width:9px;height:9px;border-radius:50%;background:#4e8bee;box-shadow:0 0 0 4px #eaf2ff}
  html body .activity-list b{display:block;font-size:14px;color:#243f62}
  html body .activity-list small{display:block;font-size:12px;color:var(--web-muted)}
  html body .activity-list .activity-empty{color:var(--web-muted);font-size:13px}
  /* Login uses the same type scale; branding can keep its display treatment. */
  html body.guest-page :is(.login-copy,.bright-login-form,.login-security-note,.strms-hero-copy){font-family:var(--web-font)!important}
  html body.guest-page :is(input,button){font-size:16px}
  html body.guest-page .login-copy p{font-size:14px;line-height:1.55}
}
@media screen and (max-width:900px){
  html body .sidebar{width:min(88vw,320px);transform:translate3d(-105%,0,0)}
  html body.sidebar-open .sidebar{transform:translate3d(0,0,0)}
  html body .main{margin-left:0}
  html body .topbar{height:66px;padding:0 14px}
  html body .content{padding:18px 16px 34px}
}
@media screen and (max-width:650px){
  html body .page-head{align-items:stretch}
  html body .page-head .row-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  html body .page-head .row-actions .btn{width:100%;white-space:normal}
  html body .content{padding:14px 12px 28px}
  html body .card,html body .panel{padding:15px}
  html body .toolbar-wide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  html body .toolbar-wide input[name="q"]{grid-column:1/-1}
  html body .table-wrap th,html body .table-wrap td{padding:10px 11px}
  html body .form-grid{grid-template-columns:1fr}
  html body .asset-record-meta{grid-template-columns:1fr}
  html body .online-pill{padding:5px 8px;font-size:11px}
}
@media screen and (max-width:390px){html body .page-head .row-actions{grid-template-columns:1fr}}
