:root{--navy:#063d7a;--blue:#0d5bb5;--yellow:#f7c62f;--ink:#17243a;--muted:#6f7c91;--line:#dce4ef;--bg:#f4f7fb;--white:#fff;font-family:"IBM Plex Sans Thai","Noto Sans Thai",system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:inherit;text-decoration:none}button,input{font:inherit}.login-page{background:#fff}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(460px,1.2fr) minmax(390px,.8fr)}.login-visual{padding:56px clamp(40px,7vw,110px);color:#fff;background:linear-gradient(135deg,#052e61,#0b58a8 70%,#1166ba);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #ffffff24;transform:rotate(30deg);right:-250px;bottom:-250px}.brand{display:flex;flex-direction:column}.brand strong{font-size:24px}.brand em,.adminbar em{color:var(--yellow);font-style:normal}.brand small{font-size:10px;letter-spacing:.12em}.eyebrow{color:#d7a900;font-weight:800;font-size:12px;letter-spacing:.14em}.login-visual h1{font-size:clamp(40px,5vw,66px);line-height:1.15;margin:16px 0}.login-visual p{font-size:18px;max-width:590px;opacity:.86}.features{display:flex;gap:28px;font-size:14px}.features span:before{content:"✓";color:var(--yellow);margin-right:8px}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:40px clamp(32px,6vw,88px)}.login-card{width:min(100%,470px);margin:auto}.login-heading{display:flex;gap:18px;align-items:flex-start;margin-bottom:28px}.login-icon{width:52px;height:52px;display:grid;place-items:center;background:#eaf2fb;color:var(--blue);border-radius:16px;font-size:26px}.login-heading h2{font-size:34px;margin:2px 0}.login-heading p{color:var(--muted);margin:0}.login-card label{display:block;font-weight:700;margin:18px 0 7px}.login-card input{width:100%;padding:13px 14px;border:1px solid #cbd6e4;border-radius:9px;font-size:16px}.primary{width:100%;margin-top:26px;padding:14px;background:var(--blue);color:#fff;border:0;border-radius:9px;font-weight:800;cursor:pointer}.alert{padding:12px 14px;background:#ffe9e7;color:#a3261f;border-left:4px solid #c73931;border-radius:8px}.copyright{text-align:center;color:var(--muted);font-size:12px}.adminbar{min-height:70px;background:var(--navy);color:#fff;display:flex;align-items:center;gap:38px;padding:0 30px;border-bottom:4px solid var(--yellow)}.adminbar>a{font-size:20px}.adminbar nav{display:flex;gap:8px;flex:1}.adminbar nav a{padding:10px 14px;border-radius:7px}.adminbar nav a:hover{background:#ffffff18}.adminbar>div{display:flex;align-items:center;gap:14px}.adminbar form{margin:0}.adminbar button{border:1px solid #ffffff66;background:transparent;color:#fff;border-radius:7px;padding:7px 11px;cursor:pointer}.admin-content{max-width:1760px;margin:0 auto;padding:32px clamp(16px,2.5vw,24px)}.page-head h1{font-size:32px;margin:5px 0}.page-head p{color:var(--muted)}.table-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}th{background:#f0f4f9;color:var(--muted);font-size:13px}.badge{background:#e7f1fc;color:var(--blue);padding:3px 9px;border-radius:999px;font-weight:700}.empty,.empty-state{text-align:center;padding:50px;color:var(--muted)}.systembar{min-height:42px;margin:0 -16px 16px;padding:7px 18px;background:#063d7a;color:#fff;display:flex;justify-content:space-between;align-items:center;font:14px "IBM Plex Sans Thai",system-ui,sans-serif;border-bottom:3px solid #f7c62f}.systembar>span{display:flex;align-items:center;gap:14px}.systembar a{color:#fff}.systembar form{margin:0}.systembar button{border:1px solid #ffffff66;background:transparent;color:#fff;padding:4px 9px;border-radius:6px;cursor:pointer}@media(max-width:800px){.login-shell{grid-template-columns:1fr}.login-visual{min-height:310px;padding:30px}.login-visual h1{font-size:36px}.features{display:none}.login-panel{padding:38px 24px}.adminbar{flex-wrap:wrap;padding:14px 18px}.adminbar nav{order:3;width:100%}.systembar{margin:0 -16px 14px;align-items:flex-start}.systembar>span{flex-wrap:wrap}}
