:root{--navy:#10263f;--blue:#0878d1;--line:#d9e2eb;--bg:#f3f6f9;--text:#1e2d3d;--green:#087f5b}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,"Noto Sans Thai","Noto Sans KR",sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.rail{position:fixed;inset:0 auto 0 0;width:72px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;z-index:20}.rail-logo{margin:16px 0 20px;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#092b4d,#1686d9);color:#fff;display:grid;place-items:center;font-weight:950}.rail-link{width:56px;min-height:55px;border-radius:9px;margin:2px 0;display:flex;align-items:center;justify-content:center;color:#526577;position:relative}.rail-link span{font-size:22px;font-style:normal}.rail-link em{display:none;position:absolute;left:62px;white-space:nowrap;background:#13283d;color:#fff;padding:8px 10px;border-radius:6px;font-size:12px;font-style:normal}.rail-link:hover em{display:block}.rail-link.active{background:#e8f4ff;color:#0878d1}.rail-bottom{margin-top:auto;margin-bottom:14px}.app{margin-left:72px;min-height:100vh}.top{height:78px;padding:0 24px;background:linear-gradient(90deg,#fff,#f5f2fb);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.top h1{margin:0;font-size:20px}.top p{margin:5px 0 0;color:#6d7c8a;font-size:12px}.top p b{padding:3px 6px;background:#e8f4ff;color:#0878d1;border-radius:5px}.top-actions,.langs{display:flex;align-items:center;gap:8px}.updated{font-size:12px;color:#667788}.langs{border:1px solid var(--line);padding:3px;border-radius:7px;background:#fff}.langs a{font-size:11px;font-weight:800;padding:5px 7px;border-radius:5px}.langs a.active{background:#0878d1;color:#fff}.home{font-size:20px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 10px}.tabs{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;gap:5px;padding:0 20px}.tabs a{padding:14px 20px;border:1px solid transparent;border-bottom:3px solid transparent;font-weight:700;font-size:14px}.tabs a.active{color:#0878d1;border-color:var(--line);border-bottom-color:#0878d1;background:#f8fbff}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:20px}.kpis article{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 2px 8px #18324c0a}.kpis i{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;font-style:normal;font-weight:900}.kpis .blue{background:#e5f3ff;color:#0878d1}.kpis .purple{background:#f2eaff;color:#743fc4}.kpis .green{background:#e3f7ef;color:#087f5b}.kpis .orange{background:#fff0df;color:#c76000}.kpis span{display:block;font-size:12px;color:#6d7d8c}.kpis strong{display:block;margin-top:5px;font-size:24px}.kpis small{margin-left:auto;color:#8b99a6;font-size:9px}.dash-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;padding:0 20px 20px}.panel,.data-panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-head h2{font-size:15px}.bars{height:230px;padding:25px 30px 0;display:flex;align-items:flex-end;gap:4%;background:repeating-linear-gradient(to bottom,#fff 0,#fff 44px,#edf1f5 45px)}.bars i{display:block;flex:1;height:var(--h);background:linear-gradient(#0b86de,#075f9e);border-radius:5px 5px 0 0}.chart-label{display:flex;justify-content:space-around;padding:12px;color:#83909c;font-size:11px}.activity{padding:8px 18px}.activity>div{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}.activity i{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#0878d1}.activity p{margin:0;font-size:12px}.activity small{display:block;color:#84919d;margin-top:4px}.toolbar{height:55px;padding:8px 16px;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:7px;align-items:center}.toolbar span{flex:1}.toolbar button,.toolbar a,.filters button{border:1px solid #bfcbd7;background:#fff;border-radius:5px;padding:9px 13px;font-weight:700}.primary,.toolbar .primary{background:#087f5b;color:#fff;border-color:#087f5b}.filters{display:flex;align-items:center;gap:8px;padding:11px 16px}.filters>input,.filters select,.filters label{height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 12px}.filters>input{min-width:240px}.filters label{display:flex;align-items:center;gap:8px;font-size:12px;margin-left:auto}.filters label input{border:0}.data-panel{margin:0 16px 20px;border-radius:6px}.table-scroll{overflow:auto;min-height:420px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{background:#f6f8fa;text-align:left;color:#526372;height:48px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 11px}td{height:49px;border-bottom:1px solid #e6ebef;padding:0 11px}tbody tr:hover,tbody tr.selected{background:#eef7ff}td a{color:#0878d1}.switch{display:inline-block;width:35px;height:19px;border-radius:12px;background:#cbd5df;padding:2px}.switch i{display:block;width:15px;height:15px;border-radius:50%;background:#fff;transition:.2s}.switch.on{background:#0782c9}.switch.on i{transform:translateX(16px)}.badge{font-weight:700}.s-active,.s-paid,.s-completed{color:#087f5b}.s-pending,.s-review,.s-waiting,.s-requested{color:#b36b00}.s-rejected,.s-failed,.s-blocked{color:#c73737}.inline{display:flex;gap:4px}.inline select{border:1px solid var(--line);border-radius:4px;padding:5px}.inline button{border:0;border-radius:4px;background:#0878d1;color:#fff}.data-panel footer{padding:10px 14px;color:#72808c;font-size:11px}.empty{text-align:center;color:#8997a4;padding:38px}.alert{margin:14px 20px;padding:11px 14px;border-radius:6px}.alert.success{background:#def7eb;color:#087452}.alert.danger{background:#ffe7e7;color:#a52020}.auth-page{display:grid;place-items:center;background:radial-gradient(circle at top,#e7f3ff,#f4f6f9 55%)}.auth-card{width:min(430px,calc(100% - 30px));background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;box-shadow:0 24px 70px #17324d24}.auth-logo{display:flex;align-items:center;gap:11px}.auth-logo>b{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#10263f,#1686d9);color:#fff;display:grid;place-items:center;font-size:20px}.auth-logo span{font-weight:900}.auth-logo small{display:block;font-size:10px;color:#768593;margin-top:3px}.auth-card h1{font-size:25px;margin:30px 0 8px}.auth-card>p{color:#768593}.auth-card label{display:block;font-size:12px;font-weight:700;margin:14px 0}.auth-card input{display:block;width:100%;height:44px;margin-top:7px;border:1px solid var(--line);border-radius:7px;padding:0 12px}.wide{display:block;width:100%;border:0;border-radius:7px;padding:13px;text-align:center;font-weight:800;margin-top:20px}.back{display:block;text-align:center;margin-top:20px;color:#6c7b89;font-size:12px}code{background:#eef2f5;padding:2px 5px;border-radius:4px}@media(max-width:900px){.kpis{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}.updated{display:none}.filters{flex-wrap:wrap}.filters label{margin-left:0}.toolbar button:nth-of-type(n+2){display:none}}@media(max-width:620px){.rail{inset:auto 0 0 0;width:auto;height:62px;flex-direction:row;justify-content:space-around;border-right:0;border-top:1px solid var(--line)}.rail-logo,.rail-bottom{display:none}.rail-link{width:auto;flex:1;margin:0}.rail-link em{display:block;position:static;background:none;color:inherit;padding:2px;font-size:9px}.rail-link{flex-direction:column}.app{margin:0 0 62px}.top{height:auto;padding:14px}.top h1{font-size:18px}.top-actions{gap:4px}.home{display:none}.tabs{overflow:auto;padding:0 8px}.tabs a{padding:13px 12px}.kpis{grid-template-columns:1fr;padding:12px;gap:8px}.kpis article{padding:13px}.dash-grid{padding:0 12px 12px}.toolbar{overflow:auto}.filters{padding:9px}.filters>input{min-width:100%;width:100%}.filters label{width:100%;overflow:auto}.data-panel{margin:0 8px 12px}.top p b{display:none}}
