@import "https://fonts.googleapis.com/css2?family=Kanit:wght@400;500;600;700&display=swap";.substitution-panel{overflow:visible}.substitute-toolbar{border-bottom:1px solid #d9e8e5;grid-template-columns:repeat(4,minmax(150px,1fr));gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:grid}.substitute-toolbar label{color:#35564f;gap:.4rem;font-size:.92rem;font-weight:500;display:grid}.substitute-toolbar input,.substitute-toolbar select,.substitute-table select{color:#142d2a;background:#fff;border:1px solid #d3c9c0;border-radius:9px;width:100%;padding:.72rem .8rem}.substitute-toolbar input:focus,.substitute-toolbar select:focus,.substitute-table select:focus{outline-offset:1px;border-color:#f97316;outline:2px solid #f97316}.substitute-table-wrap{border:1px solid #e8d8cc;border-radius:14px;overflow-x:auto}.substitute-table{min-width:700px}.substitute-table th{color:#16332f;background:#fff8ef;font-size:.98rem;font-weight:600}.substitute-table th,.substitute-table td{padding:1rem 1.15rem}.substitute-select-cell{align-items:center;gap:.6rem;display:flex}.substitute-select-cell select{min-width:230px}.empty-state{text-align:center;color:#6b857e;padding:2rem!important}.save-all{justify-content:flex-end;margin-top:1rem;display:flex}.save-all button{background:#15803d;padding:.75rem 1.25rem;box-shadow:0 8px 20px #15803d26}.save-all button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}@media (width<=950px){.substitute-toolbar{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media (width<=500px){.substitute-toolbar{grid-template-columns:1fr}.substitute-table{min-width:620px}}:root{color:#16332f;background:#edf5f3;font-family:Kanit,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#fff;background:#0f766e;border:0;border-radius:9px;padding:.55rem .8rem;font-weight:600}.shell{min-height:100vh;display:flex}.sidebar{color:#eafff8;background:#103c37;flex-direction:column;gap:2rem;width:238px;padding:1.5rem 1rem;display:flex}.brand span{color:#fbbf24;letter-spacing:.08em;font-size:1.6rem;font-weight:700;display:block}.brand small{color:#cde4df}nav{gap:.4rem;display:grid}nav button{text-align:left;color:#d8efea;background:0 0}nav button:hover,nav button.active{color:#fff;background:#1d5c54}.role{color:#b3d2ca;gap:.45rem;margin-top:auto;font-size:.85rem;display:grid}.content{flex:1;max-width:1400px;padding:2rem 3rem}header{margin-bottom:1.8rem}h1,h2,p{margin-top:0}h1{font-size:clamp(1.5rem,3vw,2.15rem)}h2{font-size:1.1rem}.eyebrow{color:#0f766e;margin-bottom:.2rem;font-weight:600}.metrics{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem;display:grid}.metric,.panel,.auth-card{background:#fff;border:1px solid #d9e8e5;border-radius:16px;box-shadow:0 8px 20px #114b420d}.metric{border-top:4px solid;padding:1rem}.metric span{color:#607a74;font-size:.9rem}.metric strong{margin-top:.3rem;font-size:2rem;display:block}.teal{border-top-color:#0f766e}.red{border-top-color:#dc2626}.orange{border-top-color:#f59e0b}.blue{border-top-color:#2563eb}.panel{margin-bottom:1rem;padding:1.25rem;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:460px}th,td{text-align:left;border-bottom:1px solid #e5efec;padding:.7rem;font-size:.92rem}th{color:#66817a;font-weight:500}.actions,.filter-actions{gap:.6rem;margin-top:1rem;display:flex}.secondary{color:#215c54;background:#eff6f5}.link{color:#0f766e;background:0 0;padding:0;font-weight:500;text-decoration:underline}.alert{color:#b91c1c;background:#fff1f2;border-radius:8px;margin-top:1rem;padding:.7rem .9rem}.success{color:#047857;background:#ecfdf5;border-radius:8px;margin:1rem 0;padding:.7rem .9rem}.sub-copy{color:#58736c}.file-input,.auth-card input,.filter-grid input,.filter-grid select{background:#fff;border:1px solid #b8d2cb;border-radius:9px;width:100%;padding:.7rem}.filter-grid{grid-template-columns:repeat(4,minmax(140px,1fr));align-items:end;gap:.75rem;display:grid}.filter-grid label{color:#35564f;gap:.35rem;font-size:.9rem;display:grid}.filter-actions{flex-wrap:wrap;margin:0}.auth-page{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.auth-card{gap:.8rem;width:min(100%,420px);padding:2rem;display:grid}.auth-card label{color:#35564f;gap:.35rem;font-size:.9rem;display:grid}.auth-card button[type=submit]{margin-top:.4rem}.switch{justify-self:start;margin-top:.25rem}@media (width<=820px){.shell{display:block}.sidebar{gap:1rem;width:100%;padding:1rem}nav{display:flex;overflow-x:auto}nav button{white-space:nowrap}.role{margin:0}.content{padding:1.25rem}.metrics,.filter-grid{grid-template-columns:1fr 1fr}}@media (width<=500px){.metrics,.filter-grid{grid-template-columns:1fr}}.schedule-panel{overflow:visible}.schedule-grid-wrap{border:1px solid #d9e8e5;border-radius:14px;overflow-x:auto}.schedule-grid{table-layout:fixed;min-width:980px}.schedule-grid th,.schedule-grid td{vertical-align:top;border:1px solid #d9e8e5}.schedule-grid thead th{color:#16332f;text-align:center;white-space:nowrap;background:#fff8ef}.schedule-grid tbody>tr>th{color:#16332f;white-space:nowrap;text-align:center;background:#f4faf8;width:112px}.schedule-grid td{background:#fff;min-width:140px;height:92px;padding:.45rem}.schedule-cell{border-left:3px solid #0f766e;gap:.16rem;padding:.15rem .4rem;font-size:.8rem;line-height:1.3;display:grid}.schedule-cell strong{color:#0f4f47;font-weight:600}.schedule-cell span,.schedule-cell small{color:#58736c}.schedule-grid td:empty:after{content:"—";color:#b6c9c3;text-align:center;padding-top:1.15rem;display:block}
