:root{--navy:#172a49;--pink:#dc72ad;--soft:#fbeff6;--muted:#718095;--line:#e7eaf0;--canvas:#f7f8fc;--green:#257a5a;--red:#a83e50}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--navy);font:15px/1.65 system-ui,-apple-system,Thonburi,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 16px;color:var(--navy);cursor:pointer;display:inline-block;font-weight:600}button:hover,.button:hover{border-color:var(--pink)}button:disabled{opacity:.45;cursor:wait}.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.danger{color:var(--red)}aside{width:265px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;font-weight:750;font-size:14px}.brand img{width:46px}.brand small{font-size:10px;font-weight:400;display:block}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700;margin-top:35px}nav{display:flex;flex-direction:column;gap:7px}nav a{padding:12px;border-radius:8px;font-size:14px}nav a.active{background:var(--soft);color:#a74980;font-weight:700}.sidebar-bottom{margin-top:auto;color:var(--muted);font-size:12px}main{margin-left:265px}header{height:75px;padding:0 40px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}#content{padding:34px 40px;max-width:1450px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-title .eyebrow{margin:0}.page-title h1{font-size:29px;margin:6px 0}.page-title p{margin:0;color:var(--muted)}h2{font-size:19px;margin:0 0 14px}h3{font-size:16px;margin:0 0 10px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;margin-bottom:20px}.hero{background:var(--soft);position:relative;overflow:hidden}.hero h2{font-size:27px;line-height:1.5}.hero p{max-width:600px;color:#76556b}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:25px}.stat{padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:12px}.stat strong{display:block;font-size:29px}.stat span,.hint{color:var(--muted);font-size:13px}.badge{border-radius:20px;background:var(--soft);padding:4px 10px;font-size:11px;white-space:nowrap}.toolbar,.section-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section-head{justify-content:space-between;margin-bottom:12px}.section-head h2{margin:0}.toolbar{margin:12px 0}label{display:block;font-size:13px;font-weight:600}input,select,textarea{display:block;width:100%;padding:10px 12px;border:1px solid #dce1ea;border-radius:8px;background:#fff;color:var(--navy);margin:6px 0 16px}input[type=checkbox]{width:auto;display:inline-block}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.wide{grid-column:1/-1}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{color:var(--muted);font-weight:500;background:#fafbfc}th,td{padding:13px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted)}td a{font-weight:700}td select{min-width:180px;margin:0}.empty{text-align:center;padding:35px;color:var(--muted)}.alert{border-left:3px solid var(--pink);padding:14px 18px;background:var(--soft);border-radius:6px;margin-bottom:20px}.error{color:var(--red)}.good{color:var(--green)}.delta{border-left:3px solid var(--green);padding:12px 16px;background:#f2faf6;margin:10px 0}.delta.minus{border-color:var(--red);background:#fff5f6}.week{margin:18px 0 8px;font-weight:700}.step{border-top:1px solid var(--line);padding:20px 0}.step:first-child{border-top:0}.candidate{background:var(--canvas);padding:12px 16px;border-radius:9px;margin:8px 0}.candidate .toolbar{margin:6px 0}.body-copy{white-space:pre-wrap;overflow-wrap:anywhere}.mapping{max-height:430px;overflow:auto}.calendar td{min-width:160px}.calendar .lesson{background:var(--soft);border-radius:8px;padding:9px;margin:6px 0}.calendar button{font-size:11px;padding:4px 8px;margin-top:8px}.calendar small{display:block}.calendar th:first-child{min-width:80px}.check{display:flex;align-items:flex-start;gap:10px}.check input{flex:0 0 auto;margin-top:7px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);padding:12px 22px;background:var(--navy);color:#fff;border-radius:10px;display:none;z-index:10}#toast.show{display:block}[hidden]{display:none!important}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--pink);outline-offset:3px}@media (max-width:1000px){aside{width:220px;padding:22px 15px}main{margin-left:220px}#content{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media (max-width:700px){aside{position:static;width:100%;padding:15px}.brand small{font-size:10px}aside .eyebrow,.sidebar-bottom{display:none}nav{flex-direction:row;overflow:auto;margin-top:15px;gap:4px}nav a{white-space:nowrap;font-size:12px;padding:8px}main{margin:0}header{height:52px;padding:0 20px}#content{padding:20px 16px}.page-title{display:block}.page-title h1{font-size:24px}.form-grid{grid-template-columns:1fr}.card{padding:19px}.stats{gap:10px}.stat{padding:14px}.hero h2{font-size:22px}}@media print{aside,header,.toolbar,button,.button{display:none}main{margin:0}#content{padding:0}.card{break-inside:avoid}.stats{display:none}}h3 small,.candidate p small,.delta b small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}.grid-lesson small{display:block}.choice-card{max-width:600px;background:#fff;border:1px solid #dce0e6;padding:20px;margin:16px 0}#print-sheet{display:none}@media print{@page{size:A4 landscape;margin:12mm}body.printing>*{display:none!important}body.printing #print-sheet{display:block!important;color:#000;background:#fff;font-size:12px}#print-sheet h1{font-size:22px}#print-sheet table{width:100%;border-collapse:collapse;min-width:0;table-layout:fixed}#print-sheet td,#print-sheet th{border:1px solid #333;padding:5px;color:#000;background:#fff}#print-sheet small{display:block}#print-sheet .table-scroll{overflow:visible}#print-sheet .grid-lesson{border:0;padding:3px}body[data-print-kind=memo] #print-sheet{font-size:14px}#print-sheet tr{break-inside:avoid}}.personal-print{background:#fff;color:#000;padding:12px;min-width:max-content;font-family:TH Sarabun New,Sarabun,sans-serif}.personal-print-heading{width:var(--sheet-width);margin:auto;position:relative;min-height:72px;text-align:center;font-size:16pt;line-height:1.25}.personal-print-heading img{position:absolute;left:calc(80px + var(--col-w) * 2);top:0;width:var(--col-w);height:70px;object-fit:contain}.personal-print-grid{width:var(--sheet-width)!important;table-layout:fixed;border-collapse:collapse;margin:auto!important;min-width:0!important}.personal-print-grid th,.personal-print-grid td{border:1px solid #000!important;color:#000!important;background:#fff!important;text-align:center!important;padding:2px!important}.personal-print-grid th:first-child{width:80px;font-size:14pt}.personal-print-grid thead th:not(:first-child){width:var(--col-w);font-size:16pt}.personal-print-grid th.personal-time{font-size:10pt!important;white-space:nowrap;overflow:hidden}.personal-print-grid tbody td{height:var(--col-h);overflow:hidden;vertical-align:middle}.print-line-one{font-size:var(--line-one);line-height:1.15}.print-line-two{font-size:var(--line-two);line-height:1.15}.print-line-three{font-size:var(--line-three);line-height:1.15}.personal-print-note{white-space:pre-wrap;font-size:12pt;margin-top:4px}.personal-print footer{font-size:10pt;border-top:1px solid #ccc;margin-top:12px;display:flex;justify-content:space-between}#print-preview-panel input[type=number]{width:100px}#print-preview-panel label{font-size:13px}@page timetable-landscape{size:A4 landscape;margin:5mm}@page timetable-portrait{size:A4 portrait;margin:5mm}@media print{#print-sheet.paper-landscape{page:timetable-landscape}#print-sheet.paper-portrait{page:timetable-portrait}#print-sheet .personal-print{padding:3mm}#print-sheet .personal-print-grid{min-width:0!important}#print-sheet .personal-print-grid td{padding:2px!important}}.personal-print-heading{display:grid;grid-template-columns:calc(80px + var(--col-w)) var(--col-w) minmax(0,1fr);align-items:center;gap:0;margin-bottom:10px}.personal-print-heading img{position:static;grid-column:2;width:min(62px,100%);height:78px;justify-self:center}.personal-print-heading>div{grid-column:3;padding-left:10px;overflow-wrap:anywhere}.personal-print-grid tbody th{vertical-align:middle!important;text-align:center!important}@font-face{font-family:TH Sarabun New;src:url(/fonts/THSarabunNew.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TH Sarabun New;src:url(/fonts/THSarabunNew_Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}.personal-print,.personal-print *{font-family:TH Sarabun New,Sarabun,sans-serif}.personal-print-grid thead tr:first-child th{height:26px;line-height:1;padding-top:4px!important}.personal-print-grid thead tr:last-child th{height:18px;line-height:1}.personal-print-grid tbody td{height:var(--col-h);max-height:var(--col-h)}.personal-print-signature{margin:6px auto 0;text-align:center;font-size:16pt;line-height:1.25}.personal-print-signature img{display:block;height:40px;width:auto;object-fit:contain;margin:0 auto 2px}.personal-print footer{font-size:12pt}.personal-print-heading{display:block;min-height:56px;line-height:1.25;margin-bottom:6px}.personal-print-heading>div{padding:0;text-align:center}.personal-print-heading img{position:absolute;left:var(--logo-left);top:-8px;width:var(--col-w);height:calc(100% + 8px);object-fit:contain}.personal-print-grid th{font-weight:700}.personal-print-grid thead tr:last-child th{padding:1px 2px!important;line-height:normal}.personal-print-grid th.personal-time{font-size:13pt}.personal-print-grid tbody td{padding:0!important;vertical-align:top}.personal-cell-inner{padding-top:9px;max-height:var(--col-h);overflow:hidden}.personal-cell-inner>div{padding:1px 2px}.print-line-one{line-height:var(--line-one)}.print-line-two{line-height:var(--line-two)}.print-line-three{line-height:var(--line-three)}.personal-print footer{margin-top:6px;padding-top:3px;line-height:normal}@media print{#print-sheet .personal-print-grid td{padding:0!important}}.my-timetable{table-layout:fixed;border-collapse:collapse;min-width:1200px;background:#fff;font-size:12px}.my-timetable th,.my-timetable td{border:1px solid var(--line);background:#fff;color:var(--navy);text-align:center;padding:5px;vertical-align:middle}.my-timetable thead th{font-weight:700}.my-timetable th.personal-time{font-weight:400;font-size:10px;color:var(--muted);white-space:nowrap}.my-timetable th:first-child{width:92px}.my-timetable tbody th{font-weight:700}.my-timetable tbody th small{display:block;font-weight:400;font-size:10px;color:var(--muted);margin-top:2px}.my-timetable tbody td{height:62px}.my-timetable .print-line-one{font-weight:600}.my-timetable .print-line-two,.my-timetable .print-line-three{font-size:11px;color:var(--muted)}.exchange-grid td.slot-pick{cursor:pointer}.exchange-grid td.slot-pick:hover{outline:2px solid var(--pink);outline-offset:-2px}.exchange-grid td.slot-source{background:#fff3d0;box-shadow:inset 0 0 0 2px #c08a16}.exchange-grid td.slot-option{background:#e3f6e9;box-shadow:inset 0 0 0 2px #2a7d53;cursor:pointer}.exchange-grid td.slot-option:hover{background:#d2efdc}.exchange-grid td.slot-chosen{position:relative;background:#bfe6cd;box-shadow:inset 0 0 0 2px #1d6a44}.exchange-grid td.slot-chosen:before{content:attr(data-order);position:absolute;top:2px;left:3px;width:15px;height:15px;border-radius:50%;background:#1d6a44;color:#fff;font-size:10px;line-height:15px;text-align:center}#pending-options p{margin:4px 0;font-size:13px}#stage{font-weight:600;margin:4px 0 12px}.exchange-grid td.no-account{box-shadow:none;outline:2px dashed #2a7d53;outline-offset:-2px;background:#f1faf4}#partner-panel{position:fixed;width:max-content;max-width:96vw;z-index:30}.partner-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #172a4938;padding:16px}.partner-card .section-head{margin-bottom:8px}.partner-card h3{margin:0}.partner-load{font-size:13px;margin:0 0 10px;color:var(--navy)}.partner-grid td.slot-incoming{background:#fff3d0;box-shadow:inset 0 0 0 2px #c08a16}.partner-grid td.slot-compensation{background:#dbe8ff;box-shadow:inset 0 0 0 2px #2b5bb5}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;justify-content:flex-end;margin-top:12px}.detail-actions label{margin:0;font-size:13px}.exchange-grid tbody td,.partner-grid tbody td{height:66px;overflow:hidden;position:relative}.exchange-grid .personal-cell-inner,.partner-grid .personal-cell-inner{height:100%;display:flex;flex-direction:column;justify-content:center;gap:1px}.exchange-grid .personal-cell-inner>div,.partner-grid .personal-cell-inner>div{height:17px;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exchange-grid td.has-detail{cursor:pointer}.exchange-grid td.has-detail .print-line-three{text-decoration:underline dashed;text-underline-offset:2px;font-weight:600}.exchange-grid td.has-detail:hover .print-line-three{color:#1d6a44}.exchange-grid td.no-account:after{content:"";position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:#c08a16}.memo-page{font-family:TH Sarabun New,sans-serif;font-size:16pt;line-height:1;color:#000;background:#fff;width:160mm;min-height:247mm;padding:0;margin:0 auto 20px;overflow-wrap:anywhere}.memo-page p{margin:1mm 0}.memo-heading{height:15mm;position:relative;display:flex;align-items:flex-end;justify-content:center;margin-bottom:3mm}.memo-heading img{position:absolute;left:0;top:0;height:15mm;width:15mm}.memo-heading h1{font-size:29pt!important;font-weight:700;line-height:35pt;margin:0 0 1mm}.memo-meta{display:flex;justify-content:space-between;gap:10mm}.memo-subject{padding-bottom:3mm;border-bottom:1px solid #000}.memo-to{padding:2mm 0}.memo-indent{text-indent:20mm}.memo-reason{white-space:pre-wrap}.memo-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:3mm 0;font-size:13pt;line-height:1}.memo-page .memo-table th,.memo-page .memo-table td{border:1px solid #000!important;background:#fff!important;color:#000!important;padding:1mm!important;text-align:center;vertical-align:middle;font-weight:400}.memo-table tbody tr{height:7mm}.memo-closing{padding:2mm 0}.memo-owner{width:53%;margin:3mm 0 3mm auto;text-align:center;line-height:1}.memo-review{font-size:15pt;line-height:1}.memo-director{padding-top:4mm}.memo-reference{font-size:10pt;color:#555;margin-top:3mm}.memo-evidence h2{font-size:22pt}.memo-evidence h3{margin-top:6mm}.memo-evidence p{margin:3mm 0}.memo-preview-scroll{overflow:auto;background:#e8ebef;padding:16px}.memo-preview-scroll .memo-page{box-shadow:0 2px 8px #0002}@media print{body[data-print-kind=memo] #print-sheet{font-size:16pt}#print-sheet .memo-page{width:100%;min-height:0;margin:0;padding:0;break-after:page}#print-sheet .memo-page:last-child{break-after:auto}#print-sheet .memo-table{font-size:13pt}#print-sheet .memo-heading,#print-sheet .memo-owner,#print-sheet .memo-review,#print-sheet .memo-evidence p{break-inside:avoid}}.memo-col-1{width:14%}.memo-col-2{width:7%}.memo-col-3{width:14%}.memo-col-4{width:10%}.memo-col-5{width:25%}.memo-col-6{width:16%}.memo-col-7{width:14%}@page exchange-memo{size:A4 portrait;margin:25mm 20mm 25mm 30mm}@media print{body[data-print-kind=memo] #print-sheet.paper-portrait{page:exchange-memo}}.memo-status{font-size:14px;padding:12px;margin-bottom:15px;background:#fff5db;border:1px solid #eed49a}.memo-table small{display:block;font-size:11pt}.memo-intro{padding-top:5mm}.memo-activity{white-space:nowrap}.memo-signatures{margin-top:5mm}.memo-signatures .memo-owner{width:48%;margin:0 0 4mm auto;text-align:center;line-height:1}.memo-signatures .memo-review{width:75%;padding:0;font-size:16pt;line-height:1}.memo-signatures .memo-review p{margin:1.5mm 0}.memo-preview-scroll .memo-page{box-sizing:content-box;padding:25mm 20mm 25mm 30mm}.memo-page .memo-table{min-width:0}@media print{.memo-signatures{break-inside:avoid}}.memo-draft-note{font-size:12pt;font-weight:700;text-align:right;color:#9a5700;border-bottom:1px dashed #9a5700;padding-bottom:1mm}@media print{.memo-draft-note{color:#000;border-color:#000}}.memo-to{padding:1mm 0}.memo-intro{padding-top:3mm}.memo-closing{padding:1mm 0}.memo-signatures{margin-top:3mm}.memo-signatures .memo-owner{line-height:1;margin-bottom:3mm}.memo-signatures .memo-review{line-height:1}.memo-signatures .memo-review p{margin:1mm 0}.memo-table small{line-height:1}@media print{#print-sheet .memo-table small{display:none}}.memo-page p,.memo-signatures .memo-review p{margin:.6mm 0}@media print{.memo-page{position:relative}.memo-page .memo-draft-note{position:absolute;right:0;top:-9mm;margin:0}}.memo-heading{margin-bottom:1mm}.memo-intro{padding-top:1mm}.memo-signatures{margin-top:1mm}.memo-signatures .memo-owner{margin-bottom:1mm}.memo-table{margin:2mm 0}.memo-check{display:inline-block;min-width:.8em;text-align:center;font-family:Arial,sans-serif;font-size:.8em;line-height:1;font-weight:700}.memo-page{line-height:1}.memo-page p,.memo-signatures .memo-review p{margin:.3mm 0}.memo-signatures .memo-review,.memo-signatures .memo-owner{line-height:1}.memo-table tbody tr{height:6mm}.memo-page .memo-table td{padding:.5mm!important}.memo-table td:last-child{font-size:12pt}.memo-subject{padding-bottom:2mm}.memo-director{padding-top:2mm}.memo-page .memo-table tbody td{height:6mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memo-signature{display:grid;grid-template-columns:auto minmax(0,1fr);width:60mm;max-width:100%;align-items:baseline;column-gap:0;break-inside:avoid}.memo-signature-label{text-align:left}.memo-signature-line{border-bottom:1px dotted #000;align-self:baseline;height:1em}.memo-signature-name{grid-column:2;text-align:center;white-space:nowrap;line-height:1;margin-top:.3mm}.memo-owner .memo-signature{width:100%}.memo-page{--memo-col:76.7mm}.memo-meta,.memo-align{display:block;gap:0}.memo-meta>span:first-child,.memo-align>span:first-child{display:inline-block;min-width:var(--memo-col);vertical-align:baseline}.settings-tabs{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;margin:0 0 24px}.system-choice{border:0;padding:0;margin:18px 0;display:flex;gap:12px}.system-choice legend{font-size:13px;margin-bottom:10px}.system-choice label{position:relative;cursor:pointer}.system-choice input{position:absolute;opacity:0;width:1px;height:1px}.system-choice span{display:block;padding:13px 44px;border:2px solid var(--line);border-radius:10px;background:#fff}.system-choice input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}.system-choice input:focus-visible+span{outline:3px solid var(--pink);outline-offset:3px}#system-notice:not(:empty){padding:20px 40px 0;max-width:1450px;margin:auto}#system-notice .alert{margin-bottom:0}@media (max-width:700px){#system-notice:not(:empty){padding:16px 16px 0}}@media print{#system-notice,.settings-tabs{display:none}}#ws-zoom{position:fixed;top:4px;right:8px;z-index:2147483000;display:flex;align-items:center;gap:2px;background:#ffffffeb;border:1px solid #D9DFE9;border-radius:8px;padding:2px;font:12px Tahoma,Noto Sans Thai,sans-serif;box-shadow:0 2px 8px #172a491f;opacity:.55;transition:opacity .2s}#ws-zoom:hover,#ws-zoom.show{opacity:1}#ws-zoom button{border:0;background:transparent;color:#172a49;min-width:26px;height:22px;padding:0 6px;border-radius:6px;cursor:pointer;font:inherit;line-height:22px;box-shadow:none}#ws-zoom button:hover{background:#f6e3ec}#ws-zoom .pct{min-width:46px;font-variant-numeric:tabular-nums}@media (hover:none){#ws-zoom{opacity:1}#ws-zoom button{min-width:34px;height:30px}}#content{zoom:var(--ws-zoom,1)}@media print{#content,.main-area,body>.modal-backdrop>.modal{zoom:1!important}#ws-zoom{display:none!important}}@media screen and (min-width:701px){aside{overflow-y:auto;overscroll-behavior:contain}}#partner-panel{max-width:calc(96vw / var(--ws-zoom,1))}
