@import"https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;700&family=Sarabun:wght@400;500;600;700&display=swap";:root{font-family:Sarabun,Segoe UI,sans-serif;line-height:1.45;font-weight:400;color:#133a50;background:radial-gradient(circle at 10% 10%,rgba(255,205,132,.22),transparent 40%),radial-gradient(circle at 90% 20%,rgba(35,176,150,.16),transparent 48%),#f2f9fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}#root{min-height:100vh}.app-shell{max-width:1240px;margin:0 auto;padding:26px 16px 20px;display:flex;flex-direction:column;gap:14px}.card{border:1px solid #b2cfe3;border-radius:16px;background:#f8fcffeb;box-shadow:0 12px 28px #103a561f;padding:18px;animation:cardIn .55s ease both}.hero{background:radial-gradient(circle at top right,rgba(36,180,145,.18),transparent 60%),linear-gradient(120deg,#105c8617,#ffb44929)}.hero-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.hero-description{font-size:14px;line-height:1.55}.brand-logo{width:64px;height:64px;object-fit:contain;border-radius:12px;background:#fff;padding:6px;border:1px solid #c5d9e7}h1{margin:8px 0 2px;font-family:Chakra Petch,sans-serif;font-size:clamp(1.45rem,3vw,2rem);color:#113b56}h2{margin:0 0 12px;font-family:Chakra Petch,sans-serif;color:#124964;font-size:1.12rem}p{margin:0;color:#244c62}.tab-bar{display:inline-flex;align-self:flex-start;gap:6px;border:1px solid #a9c7d9;border-radius:12px;background:#fff;padding:4px}.tab-button{border:0;border-radius:9px;background:transparent;color:#24566d;cursor:pointer;font-weight:700;padding:9px 14px}.tab-button.is-active{background:#0f7ea9;color:#fff;box-shadow:0 6px 14px #0f7ea93d}.control-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:14px}.control-grid .card:nth-child(1){animation-delay:.08s}.control-grid .card:nth-child(2){animation-delay:.16s}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-width:0}.field span{font-size:13px;font-weight:600;color:#2f5566}.field input,.field select{border:1px solid #a4bfd0;border-radius:10px;padding:10px 12px;font-size:14px;color:#1b4156;outline:none;background:#fff;min-width:0;width:100%}.field select{min-height:42px}.field input:focus,.field select:focus{border-color:#1f7ca6;box-shadow:0 0 0 3px #1f7ca633}.hidden-file-input{display:none}.file-picker{width:100%;border:1px solid #9fbdd0;border-radius:12px;background:#fff;display:flex;align-items:center;overflow:hidden;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.file-picker:hover{border-color:#2c8db5}.file-picker-button{padding:10px 14px;background:linear-gradient(120deg,#0f7ea9,#1ba7c6);color:#fff;font-size:13px;font-weight:700;white-space:nowrap}.file-picker-name{padding:0 12px;font-size:14px;color:#2d556a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-helper{margin-top:6px;font-size:12px;color:#4c6b7d}.import-note{margin:6px 0 12px;font-size:13px;color:#3a6075}.rules-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:13px;color:#33586c}.rules-note{margin-bottom:10px;font-size:13px;color:#355d70;background:#eaf5fc;border-left:4px solid #2d91bc;border-radius:8px;padding:8px 10px}.table-wrap{margin-top:6px;overflow-x:auto}.rule-table,.coefficient-table{width:100%;border-collapse:collapse}.rule-table{min-width:960px}.coefficient-table{min-width:520px}.rule-table th,.rule-table td,.coefficient-table th,.coefficient-table td{border:1px solid #c9dbe7;padding:8px;text-align:left;font-size:13px;vertical-align:top}.rule-table thead th,.coefficient-table thead th{background:#eff6fb;color:#244f65;text-align:center;font-weight:700}.rule-table .desc-col{min-width:460px}.rule-table input{width:86px;border:1px solid #9fbacd;border-radius:8px;padding:6px 8px;text-align:center}.action-card{animation-delay:.24s}.action-row{display:flex;gap:10px;flex-wrap:wrap}.btn{border:none;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn-primary{background:linear-gradient(120deg,#0d7ea6,#1aa4c0);color:#fff;box-shadow:0 8px 20px #1a7ca64d}.btn-export{background:linear-gradient(120deg,#f08342,#f2b340);color:#fff;box-shadow:0 8px 20px #d6823a47}.btn-secondary{background:#e7f4fb;color:#13526d}.btn-outline{background:#fff;color:#13526d;border:1px solid #95b8cd}.summary-row{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:#2e5163}.status{margin-top:10px;padding:10px 12px;border-left:4px solid #1a8bb4;background:#edf7fc;border-radius:8px;color:#1f4f65;font-size:14px}.issues{margin-top:10px;border-radius:10px;border:1px solid #f0c8a8;background:#fff7f0;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.issues p{font-size:13px;color:#8a4622}.rules-panel{animation-delay:.28s}.table-card{animation-delay:.32s}.overtime-workspace{display:grid;grid-template-columns:minmax(360px,1fr) minmax(420px,1fr);gap:14px}.input-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px}.option-grid{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(260px,1.1fr);gap:12px;margin-top:4px}.toggle-field{align-items:center;border:1px solid #b9d0de;border-radius:10px;color:#244f65;display:flex;font-size:14px;font-weight:600;gap:10px;min-height:42px;padding:10px 12px}.toggle-field input{width:18px;height:18px}.select-field{margin-bottom:0}.section-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.section-heading h2{margin-bottom:0}.overtime-row-list{display:flex;flex-direction:column;gap:10px}.overtime-row{align-items:end;border:1px solid #c8dce8;border-radius:12px;display:grid;gap:10px;grid-template-columns:minmax(140px,1.2fr) minmax(82px,.6fr) minmax(110px,.75fr) minmax(94px,.7fr);padding:10px}.overtime-row .field{margin-bottom:0}.row-delete{min-height:42px;padding-left:8px;padding-right:8px;white-space:nowrap;width:100%}.result-card{animation-delay:.28s}.result-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(170px,1fr))}.metric-cell{border:1px solid #c6dce8;border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:4px;min-height:78px;padding:11px 12px}.metric-cell span{color:#476a7d;font-size:12px;font-weight:700}.metric-cell strong{color:#163f55;font-size:18px;line-height:1.25;word-break:break-word}.metric-cell.is-strong{border-color:#2f91b8;background:#eef8fc}.status-badge{border-radius:999px;display:inline-flex;font-size:13px;font-weight:800;padding:4px 9px;width:fit-content;white-space:nowrap}.status-short{background:#fde8e4;color:#9c331f}.status-enough{background:#e5f7e9;color:#1c6b34}.status-surplus{background:#e4f2ff;color:#1d5f94}.single-issue{border:1px solid #f0c8a8;border-radius:10px;background:#fff7f0;color:#8a4622;margin:0 0 10px;padding:10px 12px}.formula-band{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(180px,1fr))}.formula-item{border-left:4px solid #2b8aae;background:#eef7fb;border-radius:10px;padding:10px 12px}.formula-item span{color:#244f65;display:block;font-size:13px;font-weight:800;margin-bottom:5px}.formula-item code{color:#315b6e;font-family:Sarabun,Segoe UI,sans-serif;font-size:13px;white-space:normal}.empty{color:#4c6878;font-size:14px}.preview-table,.overtime-table{width:100%;border-collapse:collapse}.preview-table{min-width:1320px}.overtime-table{min-width:760px}.preview-table th,.preview-table td,.overtime-table th,.overtime-table td{border-bottom:1px solid #d3e2ec;padding:8px;text-align:left;font-size:13px}.preview-table thead th,.overtime-table thead th{background:#f0f8fc;color:#234f65;position:sticky;top:0}.preview-table tbody tr:hover,.overtime-table tbody tr:hover{background:#f8fdff}.compare-short{background:#fff7f5}.compare-enough{background:#f3fff5}.compare-surplus{background:#f3f9ff}.footer{text-align:center;font-weight:600;color:#355d72;padding:8px}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1000px){.control-grid,.overtime-workspace,.option-grid,.formula-band{grid-template-columns:1fr}.input-grid,.result-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.overtime-row{grid-template-columns:1fr 1fr}.hero-brand{align-items:flex-start}}@media(max-width:640px){.tab-bar{align-self:stretch;display:grid;grid-template-columns:1fr 1fr}.input-grid,.result-grid,.overtime-row{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column}}
