@import url('https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;500;600;700;800&family=Noto+Sans+Thai:wght@400;500;600;700;800&display=swap');
@font-face{font-family:THSarabunPrint;src:url('/assets/fonts/THSarabun.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:THSarabunPrint;src:url('/assets/fonts/THSarabun Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:THSarabunPrint;src:url('/assets/fonts/THSarabun Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:THSarabunPrint;src:url('/assets/fonts/THSarabun BoldItalic.ttf') format('truetype');font-weight:700;font-style:italic;font-display:swap}
:root{
  --bg:#f5fbff;--bg2:#ecfff8;--surface:#ffffff;--surface2:rgba(255,255,255,.84);--text:#102033;--muted:#667085;--line:#dce9ee;
  --primary:#09a7b6;--primary2:#20c997;--primary3:#2f80ed;--accent:#ffd43b;--coral:#ff7a59;
  --soft:#e8fbff;--soft-green:#eaffe9;--soft-yellow:#fff7d6;--danger:#e11d48;--success:#16a34a;--warning:#f59e0b;--info:#0284c7;
  --radius:24px;--radius-sm:16px;--shadow:0 22px 60px rgba(15,76,117,.13);--shadow-sm:0 12px 30px rgba(15,76,117,.09);
  --sidebar:#065f6b;--sidebar2:#073b4c;--ui-font:"Kanit","Noto Sans Thai","Sarabun","Segoe UI",Tahoma,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--ui-font);background:radial-gradient(circle at 12% 0%,#d8fff7 0,#f5fbff 330px,transparent 540px),radial-gradient(circle at 92% 10%,#fff1b8 0,transparent 340px),linear-gradient(180deg,#f7fcff 0%,#eefbff 100%);color:var(--text);font-size:16px;line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 18px 18px,rgba(9,167,182,.09) 2px,transparent 0);background-size:38px 38px;mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 62%);z-index:-1}a{color:inherit}::selection{background:#c9fff6;color:#073b4c}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#ccfff4 0,transparent 32%),radial-gradient(circle at 85% 18%,#fff0ad 0,transparent 28%),linear-gradient(135deg,#0a5f6d 0%,#0bb2c0 47%,#f4fbff 47%,#ecfff8 100%)}.login-card{width:min(468px,100%);background:rgba(255,255,255,.91);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.8);border-radius:34px;box-shadow:0 30px 90px rgba(7,59,76,.22);padding:38px;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;right:-50px;top:-48px;width:160px;height:160px;background:linear-gradient(135deg,var(--accent),#fff7bf);border-radius:42px;transform:rotate(22deg);opacity:.85}.login-logo{width:76px;height:76px;border-radius:26px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;display:grid;place-items:center;font-size:36px;font-weight:800;margin-bottom:20px;box-shadow:0 18px 40px rgba(9,167,182,.36);position:relative}.login-card h1{margin:0;font-size:30px;letter-spacing:-.2px;font-weight:800;position:relative}.login-card p{margin:8px 0 24px;color:var(--muted);position:relative}
.app-shell{display:flex;min-height:100vh}.sidebar{width:294px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));color:#fff;position:fixed;top:0;bottom:0;left:0;padding:22px 16px;overflow:auto;box-shadow:18px 0 50px rgba(7,59,76,.16);z-index:30}.sidebar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 0%,rgba(255,212,59,.23),transparent 32%),radial-gradient(circle at 100% 12%,rgba(32,201,151,.22),transparent 28%);pointer-events:none}.brand,.nav{position:relative}.brand{display:flex;gap:12px;align-items:center;margin-bottom:22px;padding:12px}.brand-mark{width:56px;height:56px;background:linear-gradient(135deg,#fff,#dffff8);color:#087281;border-radius:21px;display:grid;place-items:center;font-weight:900;font-size:30px;box-shadow:0 14px 30px rgba(0,0,0,.18)}.brand strong{display:block;font-size:22px;line-height:1.15;letter-spacing:-.2px}.brand span{display:block;color:#d4fff8;font-size:13px;margin-top:2px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:10px;color:#ecfeff;text-decoration:none;padding:11px 13px;border-radius:17px;font-weight:600;transition:.18s ease;border:1px solid transparent}.nav a:hover{background:rgba(255,255,255,.12);transform:translateX(3px);border-color:rgba(255,255,255,.12)}.nav a.active{background:linear-gradient(135deg,#ffffff,#eafff9);color:#076575;box-shadow:0 14px 30px rgba(0,0,0,.16)}.nav-icon{width:26px;height:26px;display:inline-grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.12);font-size:15px;flex:0 0 26px}.nav a.active .nav-icon{background:#d8fff7;color:#076575}
.main-content{margin-left:294px;flex:1;padding:28px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.topbar>div:first-child{display:flex;align-items:center;gap:14px}.topbar-title{font-size:30px;font-weight:800;letter-spacing:-.25px}.topbar-subtitle{color:var(--muted);font-size:14px}.mobile-menu-btn{display:none}.user-chip{background:rgba(255,255,255,.86);border:1px solid rgba(220,233,238,.86);border-radius:24px;padding:10px 15px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:flex-end;backdrop-filter:blur(14px);min-width:170px}.user-chip span{font-weight:800}.user-chip small{color:var(--muted)}
.card{background:rgba(255,255,255,.91);border:1px solid rgba(220,233,238,.92);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;margin-bottom:18px;backdrop-filter:blur(12px);transition:.18s ease}.card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:22px;border-radius:26px;background:linear-gradient(180deg,#ffffff,#f4feff);border:1px solid var(--line);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-28px;bottom:-32px;width:96px;height:96px;border-radius:30px;background:linear-gradient(135deg,rgba(255,212,59,.55),rgba(32,201,151,.38));transform:rotate(18deg)}.stat .label{color:var(--muted);font-size:14px;font-weight:700;position:relative}.stat .value{font-size:38px;font-weight:800;margin-top:4px;letter-spacing:-.8px;color:#087281;position:relative}.doc-title{font-size:25px;font-weight:800;margin:0 0 14px;letter-spacing:-.15px}.doc-title-sm{font-size:18px;font-weight:800;margin:0 0 10px}.muted{color:var(--muted)}.help,.small-note{color:var(--muted);font-size:13px;margin-top:4px}.pill{display:inline-flex;align-items:center;padding:4px 12px;background:var(--soft);color:#087281;border-radius:999px;font-weight:800;font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:15px;padding:10px 16px;text-decoration:none;cursor:pointer;font-family:inherit;font-size:15px;font-weight:700;background:#e8fbff;color:#087281;transition:.16s ease;min-height:42px}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(7,59,76,.12)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.btn-success{background:linear-gradient(135deg,#16a34a,#52d273);color:#fff}.btn-warning{background:linear-gradient(135deg,#ffd43b,#ffb703);color:#1f2937}.btn-danger{background:linear-gradient(135deg,#e11d48,#fb7185);color:#fff}.btn-outline{background:#fff;border:1px solid var(--line);color:var(--text)}.btn-sm{font-size:13px;padding:7px 10px;border-radius:12px;min-height:34px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form{display:inline;margin:0}.link-danger{color:var(--danger);font-weight:800}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group.full{grid-column:1/-1}label{font-weight:700;color:#183047}input,select,textarea{width:100%;border:1px solid #d8e8ee;border-radius:16px;padding:11px 14px;font-family:inherit;font-size:15px;background:#fff;color:var(--text);outline:none;transition:.16s ease}input:focus,select:focus,textarea:focus{border-color:#67d8df;box-shadow:0 0 0 4px rgba(9,167,182,.13)}input[readonly]{background:#f6fbfc;color:#667085}textarea{min-height:118px;resize:vertical}.check-line{display:flex;align-items:center;gap:8px}.check-line input{width:auto}.search-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.search-row .form-group{min-width:220px;flex:1}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(7,59,76,.05)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{position:sticky;top:0;background:linear-gradient(180deg,#f5feff,#edfafa);font-weight:800;white-space:nowrap;color:#1d5361;font-size:14px;z-index:1}td{font-size:14px}.table-wrap tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#f7feff}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;white-space:nowrap}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fff3bf;color:#8a5a00}.badge-info{background:#dff8ff;color:#076575}.badge-primary{background:#e2f7ff;color:#075985}.badge-secondary{background:#eef7f7;color:#475467}.badge-danger{background:#ffe4e6;color:#be123c}.alert{padding:12px 16px;border-radius:17px;margin-bottom:14px;font-weight:700;border:1px solid transparent}.alert-success{background:#ecfdf3;color:#027a48;border-color:#abefc6}.alert-danger{background:#fff1f3;color:#c01048;border-color:#fecdd6}.alert-warning{background:#fff8dc;color:#9a6700;border-color:#ffe08a}.alert-info{background:#e8fbff;color:#087281;border-color:#bdeef4}.detail-list{display:grid;grid-template-columns:220px 1fr;gap:10px;border-top:1px solid var(--line);padding-top:12px}.detail-list dt{font-weight:800}.detail-list dd{margin:0}.print-only{display:none}.print-header{text-align:center;margin-bottom:18px}.empty-state{text-align:center;color:var(--muted);padding:28px}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:14px}.danger-zone{border-color:#fecdd3;background:#fff6f7}
.print-report{background:#fff!important;font-family:THSarabunPrint,"TH Sarabun New",serif;font-size:18pt;line-height:1.25;color:#000}.print-report .card{box-shadow:none;border:0;background:#fff;padding:0}.print-report .print-header h1{font-size:28pt;margin:0}.print-report .print-header h2{font-size:22pt;margin:4px 0}.print-report .print-header p{font-size:16pt;margin:4px 0}.print-report table{min-width:0;border-collapse:collapse}.print-report th,.print-report td{font-family:THSarabunPrint,"TH Sarabun New",serif;font-size:16pt;border:1px solid #000;padding:4px 6px;line-height:1.2}.print-report th{background:#fff;color:#000;text-align:center}.print-report .actions{font-family:var(--ui-font)}
@media(max-width:1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){body.sidebar-open{overflow:hidden}.sidebar{transform:translateX(-104%);transition:.24s ease;width:min(320px,88vw);position:fixed}.sidebar.is-open{transform:translateX(0)}.app-shell{display:block}.main-content{margin-left:0;padding:18px}.mobile-menu-btn{display:inline-flex}.topbar{align-items:flex-start;flex-direction:column}.topbar>div:first-child{display:flex;gap:10px;align-items:center;width:100%}.user-chip{align-items:flex-start;width:100%}.grid-4,.grid-3,.form-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}.login-card{padding:28px}.topbar-title{font-size:25px}.card{padding:18px;border-radius:22px}}
@media(max-width:560px){body{font-size:15px}.main-content{padding:14px}.actions .btn{width:100%}.search-row .form-group{min-width:100%}.stat .value{font-size:31px}.doc-title{font-size:22px}table{min-width:680px}.login-page{padding:14px}.login-card{border-radius:26px}.topbar-title{font-size:23px}}
@media print{body{background:#fff!important;font-family:THSarabunPrint,"TH Sarabun New",serif!important;font-size:16pt;color:#000;line-height:1.25}.sidebar,.topbar,.no-print,.actions,.btn{display:none!important}.main-content{margin:0!important;padding:0!important}.card{box-shadow:none!important;border:0!important;background:#fff!important;padding:0!important}.print-only{display:block}.table-wrap{border:0;overflow:visible}table{min-width:0;border-collapse:collapse!important}th,td{font-family:THSarabunPrint,"TH Sarabun New",serif!important;border:1px solid #000!important;padding:4px 6px!important;color:#000!important;background:#fff!important;font-size:16pt;line-height:1.2}.badge{border:0;background:transparent;color:#000;padding:0}.print-page{page-break-after:always}@page{size:A4;margin:14mm}}

.check-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid rgba(15,23,42,.10);border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(240,253,250,.85));font-weight:700;color:#0f172a}
.check-row input{width:18px;height:18px;margin-top:2px;accent-color:#0ea5a4}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px}
.stat-card{border:1px solid rgba(15,23,42,.08);border-radius:22px;padding:18px;background:linear-gradient(135deg,#ffffff,#f0fdfa);box-shadow:0 14px 34px rgba(14,165,164,.08)}
.stat-card span{display:block;color:#64748b;font-weight:700;margin-bottom:8px}.stat-card strong{font-size:2rem;color:#0f766e;line-height:1}
textarea{resize:vertical;min-height:110px}
@media (max-width: 760px){.stats-grid{grid-template-columns:1fr}.check-row{border-radius:14px}}
