:root{--blue: #1A4BB5;--blue-dark: #0F2E70;--blue-light: #3A6FD4;--red: #D42030;--ink: #0B1220;--muted: #5A6577;--line: #E4E9F2;--bg: #F5F7FB;--card: #FFFFFF;--radius: 14px;--shadow: 0 10px 30px rgba(15, 46, 112, .08);--font: "Sarabun", "Noto Sans Thai", "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:var(--blue);text-decoration:none}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.topbar-inner{max-width:1200px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1rem;justify-content:space-between}.brand{display:flex;align-items:center;gap:.7rem;font-weight:700;color:var(--blue)}.brand img{width:40px;height:40px;border-radius:50%;object-fit:contain}.brand small{display:block;color:var(--muted);font-weight:500;font-size:.75rem}.nav{display:flex;gap:.25rem;flex-wrap:wrap}.nav button,.nav a.navbtn{border:0;background:transparent;color:var(--muted);padding:.45rem .8rem;border-radius:999px;cursor:pointer;font-weight:600;font-size:.92rem}.nav button.active,.nav a.navbtn.active,.nav button:hover{background:#1a4bb514;color:var(--blue)}.top-actions{display:flex;gap:.5rem;align-items:center}.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}.lang-toggle button{border:0;background:transparent;padding:.3rem .65rem;cursor:pointer;font-weight:700;font-size:.78rem;color:var(--muted)}.lang-toggle button.active{background:var(--blue);color:#fff}.main{max-width:1200px;margin:0 auto;padding:1.25rem;width:100%;flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.25rem}.card+.card{margin-top:1rem}h1,h2,h3{margin:0 0 .6rem;letter-spacing:-.02em}.muted{color:var(--muted)}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}@media(max-width:860px){.grid-2,.grid-3{grid-template-columns:1fr}}label{display:block;font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.25rem}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;background:#fff}.field textarea{min-height:80px;resize:vertical}.btn{border:1px solid transparent;border-radius:999px;padding:.5rem 1rem;cursor:pointer;font-weight:700;font-size:.9rem;display:inline-flex;align-items:center;gap:.35rem}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn-danger{background:#fff;border-color:#f2c4c8;color:var(--red)}.btn:disabled{opacity:.55;cursor:not-allowed}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data th,table.data td{padding:.65rem .55rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}table.data th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}table.data tr:hover td{background:#fafbfe}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#eef2fb;color:var(--blue)}.badge.draft{background:#eef2fb;color:var(--blue)}.badge.sent{background:#e8f6ef;color:#1b7a4a}.badge.accepted{background:#e7f0ff;color:#1a4bb5}.badge.rejected{background:#fdecee;color:var(--red)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 10% -10%,rgba(26,75,181,.18),transparent),radial-gradient(900px 500px at 100% 0%,rgba(212,32,48,.12),transparent),var(--bg)}.login-card{width:min(420px,100%)}.login-card h1{color:var(--blue)}.alert{padding:.7rem .9rem;border-radius:10px;margin:.75rem 0;font-size:.9rem}.alert.error{background:#fdecee;color:#8e1520}.alert.ok{background:#e8f6ef;color:#1b7a4a}.alert.info{background:#eef2fb;color:var(--blue-dark)}.totals{margin-left:auto;width:min(360px,100%);display:grid;gap:.35rem;font-size:.95rem}.totals .line{display:flex;justify-content:space-between;gap:1rem}.totals .grand{font-size:1.15rem;font-weight:800;color:var(--blue);border-top:1px solid var(--line);padding-top:.45rem;margin-top:.2rem}.toolbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.9rem}.search{flex:1;min-width:180px}.item-grid{display:grid;grid-template-columns:90px 1.4fr 70px 80px 100px 90px 90px 36px;gap:.4rem;align-items:end}@media(max-width:980px){.item-grid{grid-template-columns:1fr 1fr}}.item-row{padding:.55rem 0;border-bottom:1px dashed var(--line)}.words{background:#f7f9fc;border-radius:10px;padding:.7rem .85rem;font-size:.92rem}.hidden{display:none!important}.print-sheet{background:#fff;color:#000;width:210mm;min-height:297mm;margin:0 auto;padding:14mm 14mm 16mm;box-shadow:var(--shadow);border:1px solid var(--line)}.print-header{display:flex;justify-content:space-between;gap:1rem;border-bottom:2px solid var(--blue);padding-bottom:.8rem}.print-header img{width:72px;height:72px;object-fit:contain}.print-company h1{font-size:1.15rem;margin:0;color:var(--blue)}.print-company p{margin:.15rem 0;font-size:.82rem;color:#333}.print-title{text-align:center;margin:1rem 0 .8rem}.print-title h2{margin:0;font-size:1.35rem;letter-spacing:.04em}.print-meta,.print-customer{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.85rem;font-size:.88rem}.print-box{border:1px solid #d7deea;border-radius:8px;padding:.65rem .75rem}.print-box h3{margin:0 0 .35rem;font-size:.8rem;color:var(--blue);text-transform:uppercase;letter-spacing:.03em}table.print-items{width:100%;border-collapse:collapse;font-size:.82rem;margin:.6rem 0}table.print-items th,table.print-items td{border:1px solid #cfd7e6;padding:.4rem .45rem}table.print-items th{background:#eef3fb}table.print-items td.num,table.print-items th.num{text-align:right;white-space:nowrap}.print-totals{width:55%;margin-left:auto;font-size:.88rem}.print-totals td{padding:.25rem .4rem}.print-words{margin:.7rem 0;font-size:.88rem}.print-terms{font-size:.82rem;margin-top:.6rem}.print-signs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-top:1.4rem}.sign-box{border:1px solid #cfd7e6;border-radius:8px;min-height:110px;padding:.55rem;text-align:center;font-size:.8rem}.sign-box .space{height:58px}.sample-banner{background:#fff3cd;color:#7a5b00;border:1px solid #ffe08a;padding:.45rem .7rem;border-radius:8px;margin-bottom:.7rem;font-weight:700;text-align:center}@media print{body{background:#fff}.no-print{display:none!important}.main{max-width:none;padding:0}.print-sheet{box-shadow:none;border:0;width:auto;min-height:auto;margin:0;padding:0}@page{size:A4;margin:12mm}}
