.tc{--navy:#13284a;--teal:#1fc7b6;--teal-ink:#0b7f74;--teal-soft:#ddf6f2;--gold:#ffc93c;--page:#f4f2ec;--card:#fff;--ink:#15284b;--muted:#5e6b80;--hair:#e6e1d6;--red:#c0352b;--red-soft:#fdecec;--amber:#b26a00;--amber-soft:#fff3d6;--blue:#1d5fd1;--blue-soft:#e6eefc;--green-soft:#e3f6ec;--green:#1b7a43;--head:Kanit, "IBM Plex Sans Thai Looped", "Leelawadee UI", Tahoma, sans-serif;--body:"IBM Plex Sans Thai Looped", "Leelawadee UI", Tahoma, sans-serif;background:var(--page);min-height:70vh;color:var(--ink);font:400 15.5px/1.55 var(--body);-webkit-font-smoothing:antialiased;padding-bottom:96px;display:block}.tc *,.tc :before,.tc :after{box-sizing:border-box}.tc h1,.tc h2,.tc h3,.tc h4{font-family:var(--head);color:var(--navy);margin:0;font-weight:600;line-height:1.25}.tc h1{font-size:26px}.tc h2{margin-bottom:6px;font-size:20px}.tc h3{margin:18px 0 8px;font-size:17px}.tc h4{margin:16px 0 6px;font-size:15.5px}.tc p{margin:6px 0}.tc a{color:var(--teal-ink)}:where(.tc) button{font:inherit;color:inherit;cursor:pointer}.tc button:disabled{cursor:not-allowed;opacity:.5}.tc :focus-visible{outline-offset:2px;outline:3px solid #3ea6ff}.tc-sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.tc-wrap{max-width:1120px;margin:0 auto;padding:16px 16px 0}.tc-wrap--narrow{max-width:620px}.tc-back{align-items:center;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex;color:var(--navy)!important}.tc-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.tc-row--end{justify-content:flex-end}.tc-two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tc-hint{color:var(--muted);font-size:14px}.tc-red{color:var(--red)}.tc-ok{color:var(--green)}.tc-warn{color:var(--amber)}.tc-btn{min-height:44px;font:600 16px/1 var(--head);white-space:nowrap;background:linear-gradient(#33d9c7,#17b3a3);border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 20px;text-decoration:none;display:inline-flex;box-shadow:0 8px 18px -12px #13b5a5e6;color:#06312e!important}.tc-btn--big{min-height:52px;padding:0 28px;font-size:18px}.tc-btn--sm{min-height:40px;padding:0 14px;font-size:14.5px}.tc-btn--ghost{background:#fff;box-shadow:inset 0 0 0 1.5px #c9d3e0;color:var(--navy)!important}.tc-btn--danger{background:var(--red);box-shadow:none;color:#fff!important}.tc-link{min-height:44px;color:var(--teal-ink);text-underline-offset:3px;background:0 0;border:0;padding:8px 4px;font-weight:600;text-decoration:underline}.tc-link--danger{color:var(--red)!important}.tc-panel{background:var(--card);border-radius:18px;margin-top:14px;padding:18px;box-shadow:0 10px 22px -18px #10224680}.tc-panel--flush{padding:14px 0 6px}.tc-panel--flush>:not(.tc-gridwrap):not(table):not(.tc-modal){margin-left:16px;margin-right:16px}.tc-panel--alert{box-shadow:inset 4px 0 0 var(--gold), 0 10px 22px -18px #10224680}.tc-panel--soft{background:var(--teal-soft);box-shadow:none}.tc-panel--danger h2{color:var(--red)}.tc-chip{white-space:nowrap;background:#eef3f8;border-radius:999px;align-items:center;gap:6px;min-height:28px;padding:2px 12px;font-size:14px;display:inline-flex}.tc-chip button{min-width:32px;min-height:32px;color:var(--muted);background:0 0;border:0;font-size:14px}.tc-chip--P{background:var(--green-soft);color:var(--green)}.tc-chip--A{background:var(--red-soft);color:var(--red)}.tc-chip--L{background:var(--blue-soft);color:var(--blue)}.tc-chip--T{background:var(--amber-soft);color:var(--amber)}.tc-chip--muted{color:var(--muted);background:#eceae4;margin-left:8px;font-size:13px}.tc-chips{flex-wrap:wrap;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.tc-flag{background:var(--red-soft);color:var(--red);white-space:nowrap;border-radius:999px;margin:2px 4px 2px 0;padding:1px 10px;font-size:13px;font-weight:600;display:inline-block}.tc-flags{display:inline}.tc-note{border-radius:14px;margin:10px 0;padding:12px 14px;font-size:14.5px}.tc-note ul{margin:6px 0 0;padding-left:20px}.tc-note--blue{background:var(--blue-soft);color:#173e86}.tc-note--red{background:var(--red-soft);color:#7a1c14}.tc-note--teal{background:var(--teal-soft);color:#075c54}.tc-dot{color:#fff;min-width:22px;height:22px;font:600 12px/1 var(--body);background:#e5484d;border-radius:999px;place-items:center;margin-left:6px;padding:0 6px;font-style:normal;display:inline-grid}.tc-linked{background:var(--teal-soft);color:var(--teal-ink);border-radius:999px;margin-left:8px;padding:0 8px;font-size:12.5px;font-weight:600;display:inline-block}.tc-no{min-width:30px;height:30px;color:var(--navy);font:600 14px/1 var(--head);background:#eef3f8;border-radius:9px;flex:none;place-items:center;margin-right:8px;display:inline-grid}.tc-sub{color:var(--muted);margin-top:-4px}.tc-form{gap:12px;display:grid}.tc-field{color:var(--navy);gap:6px;font-size:14.5px;font-weight:600;display:grid}.tc-field>span{font-weight:600}.tc-field input,.tc-field select,.tc-paste{width:100%;min-height:46px;font:400 16px/1.4 var(--body);color:var(--ink);background:#fff;border:1.5px solid #c9d3e0;border-radius:12px;padding:8px 14px}.tc-field input:focus,.tc-field select:focus,.tc-paste:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #1fc7b640}.tc-field--num{max-width:120px}.tc-paste{resize:vertical;min-height:150px;font-family:ui-monospace,Consolas,monospace;font-size:15px}.tc-codeinput{letter-spacing:.3em;text-align:center;text-transform:uppercase;font:600 28px/1 var(--head)!important}.tc-addone{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.tc-addone .tc-field{flex:180px}.tc-check{align-items:center;gap:8px;min-height:44px;display:inline-flex}.tc-check input{width:22px;height:22px}.tc-hero{background:#fff;border-radius:22px;grid-template-columns:72px 1fr;align-items:start;gap:18px;padding:22px;display:grid;box-shadow:0 10px 22px -18px #10224680}.tc-hero p{color:var(--muted)}.tc-hero--skel,.tc-classhead--skel{background:linear-gradient(90deg,#ece9e1,#f7f5f0,#ece9e1) 0 0/200% 100%;border-radius:22px;height:120px;animation:1.2s infinite tc-shine}.tc-hero__icon .tc-ic,.tc-top .tc-ic{width:64px;height:64px}.tc-top{flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 4px;display:flex}.tc-top>div:nth-child(2){flex:1;min-width:200px}.tc-top p{color:var(--muted);margin:2px 0 0}.tc-steps3{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;display:grid}.tc-steps3>div{background:#fff;border-radius:16px;align-items:center;gap:10px;padding:14px;display:flex}.tc-steps3 b{background:var(--teal);color:#06312e;width:36px;height:36px;font:600 18px/1 var(--head);border-radius:50%;flex:none;place-items:center;display:grid}.tc-guide{color:#fff;background:linear-gradient(135deg,#13284a,#1e3f70);border-radius:18px;margin-top:12px;padding:16px 18px}.tc-guide b{font:600 18px/1.3 var(--head)}.tc-guide ol{gap:8px;margin:10px 0;padding:0;list-style:none;display:grid}.tc-guide li{align-items:center;gap:10px;display:flex}.tc-guide li span{background:var(--gold);width:28px;height:28px;color:var(--navy);font:600 15px/1 var(--head);border-radius:50%;flex:none;place-items:center;display:grid}.tc-today{margin-top:14px}.tc-today h2 small{font:400 15px var(--body);color:var(--muted);margin-left:6px}.tc-today__grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.tc-todaybox{background:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 10px 22px -18px #10224680}.tc-todaybox.is-todo{box-shadow:inset 0 3px 0 var(--gold), 0 10px 22px -18px #10224680}.tc-todaybox h3{align-items:center;gap:8px;margin:0 0 6px;display:flex}.tc-todaybox p{color:var(--muted);font-size:14.5px}.tc-todaybox ul{margin:0;padding:0;list-style:none}.tc-todaybox li button{border:0;border-top:1px solid var(--hair);text-align:left;background:0 0;grid-template-columns:1fr auto auto;align-items:center;gap:8px;width:100%;min-height:48px;padding:6px 4px;display:grid}.tc-todaybox li button small{color:var(--amber);font-weight:600}.tc-sec{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 6px;display:flex}.tc-classes{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:8px;display:grid}.tc-classcard{background:#fff;border-radius:18px;gap:4px;min-height:120px;padding:16px;text-decoration:none;display:grid;box-shadow:0 10px 22px -18px #10224680;color:var(--ink)!important}.tc-classcard:hover{box-shadow:inset 0 0 0 2px var(--teal), 0 10px 22px -18px #10224680}.tc-classcard__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tc-classcard b{font:600 22px/1.2 var(--head);color:var(--navy)}.tc-classcard small{color:var(--muted)}.tc-classcard__stats{flex-wrap:wrap;gap:6px 12px;margin-top:6px;font-size:14px;font-weight:600;display:flex}.tc-classcard--muted{opacity:.8;min-height:0}.tc-code{background:var(--teal-soft);color:var(--teal-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.tc-code b{font:600 16px/1 var(--head);letter-spacing:.08em}.tc-fold{margin-top:14px}.tc-fold summary{cursor:pointer;min-height:44px;color:var(--navy);align-items:center;font-weight:600;display:flex}.tc-classhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:2px;display:flex}.tc-classhead h1{font-size:28px}.tc-classhead p{color:var(--muted);margin:2px 0 0}.tc-classhead__side{align-items:center;gap:8px;display:flex}.tc-gear{background:#fff;border:0;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 14px;font-size:20px;display:inline-flex;box-shadow:inset 0 0 0 1.5px #c9d3e0}.tc-gear span{font:600 15px var(--head)}.tc-gear.is-on{background:var(--navy);color:#fff;box-shadow:none}.tc-tabs{z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border-radius:18px;grid-template-columns:repeat(4,1fr);gap:4px;margin:12px -4px 0;padding:4px;display:grid;position:sticky;top:0;box-shadow:0 8px 20px -16px #10224699}.tc--admin .tc-tabs{grid-template-columns:repeat(2,1fr)}.tc-tabs button{min-height:48px;font:600 15.5px/1.15 var(--head);color:var(--muted);background:0 0;border:0;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:4px 6px;display:flex}.tc-tabs button.is-on{background:var(--navy);color:#fff}.tc-savebar{z-index:55;pointer-events:none;justify-content:flex-end;display:flex;position:fixed;top:92px;right:16px}.tc-savebar .tc-save{pointer-events:auto;box-shadow:0 6px 16px -8px #10224680}.tc-save{border-radius:999px;padding:4px 12px;font-size:13.5px;font-weight:600}.tc-save--ok{background:var(--green-soft);color:var(--green)}.tc-save--busy{color:var(--muted);background:#eef3f8}.tc-save--err{background:var(--red-soft);color:var(--red)}.tc-save--err button{background:var(--red);color:#fff;border:0;border-radius:999px;min-height:32px;margin-left:6px;padding:4px 12px}.tc-attbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tc-daypick{align-items:center;gap:4px;display:flex}.tc-daypick>button{background:#eef3f8;border:0;border-radius:12px;width:44px;height:44px;font-size:22px}.tc-daylabel{font:600 15px var(--head);color:var(--navy);margin-bottom:4px;display:block}.tc-daypick input{min-height:44px;font:600 16px var(--body);color:var(--ink);background:#fff;border:1.5px solid #c9d3e0;border-radius:12px;padding:6px 10px}.tc-attsum{flex-wrap:wrap;gap:6px;margin:12px 0 6px;display:flex}.tc-attlist{margin:0;padding:0;list-style:none}.tc-attlist li{border-top:1px solid var(--hair);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 0;display:grid}.tc-attlist .tc-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.tc-seg{background:#f1f3f7;border-radius:14px;gap:4px;padding:3px;display:inline-flex}.tc-seg button{min-width:52px;min-height:44px;font:600 15px/1 var(--head);color:var(--muted);background:0 0;border:0;border-radius:11px;padding:0 10px}.tc-seg button.is-on{color:#fff;box-shadow:0 4px 10px -6px #00000080}.tc-seg__P.is-on{background:#23a06a}.tc-seg__A.is-on{background:var(--red)}.tc-seg__L.is-on{background:var(--blue)}.tc-seg__T.is-on{background:#e08a00}.tc-seg__DONE.is-on{background:#23a06a}.tc-seg__LATE.is-on{background:#e08a00}.tc-seg__NONE.is-on{background:var(--red)}.tc-field .tc-seg--work{grid-template-columns:repeat(3,1fr);display:grid}.tc-seg--kind{grid-template-columns:1fr 1fr;display:grid}.tc-seg--kind button.is-on{background:var(--navy);color:#fff}.tc-attlist li.is-A .tc-name{color:var(--red)}.tc-gridbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tc-filter{gap:6px;max-width:100%;padding:2px;display:flex;overflow-x:auto}.tc-filter button{white-space:nowrap;background:#eef3f8;border:0;border-radius:999px;min-height:40px;padding:0 14px;font-weight:600}.tc-filter button.is-on{background:var(--navy);color:#fff}.tc-gridwrap{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);-webkit-overflow-scrolling:touch;max-height:calc(100vh - 230px);margin-top:8px;overflow:auto}.tc-grid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:14.5px}.tc-grid th,.tc-grid td{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);background:#fff}.tc-grid thead th{z-index:3;vertical-align:bottom;background:#f7f8fa;position:sticky;top:0}.tc-grid__name{z-index:2;text-align:left;min-width:150px;max-width:190px;position:sticky;left:0;box-shadow:4px 0 8px -6px #10224659}.tc-grid thead .tc-grid__name{z-index:4;font:600 14px var(--head);color:var(--muted);padding:8px 10px}.tc-namebtn{text-align:left;overflow-wrap:anywhere;background:0 0;border:0;align-items:center;width:100%;min-height:48px;padding:4px 8px;font-weight:600;line-height:1.2;display:flex}.tc-colhead{text-align:left;background:0 0;border:0;gap:2px;width:120px;min-height:64px;padding:6px 8px;display:grid}.tc-colhead b{font:600 14px/1.2 var(--head);color:var(--navy);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tc-colhead small{color:var(--muted);font-size:12px;line-height:1.25}.tc-colhead:hover b{text-decoration:underline}.tc-cell{width:120px;height:52px;position:relative;padding:0!important}.tc-cell input,.tc-tick{width:100%;height:52px;font:600 17px/1 var(--head);color:var(--ink);text-align:center;background:0 0;border:0;padding:0 40px 0 6px}.tc-cell input::placeholder{color:inherit;opacity:.9;font-size:14px}.tc-cell input:focus{outline-offset:-3px;background:#fff;outline:3px solid #3ea6ff}.tc-more{color:#8a94a6;white-space:nowrap;background:0 0;border:0;border-radius:8px;min-width:28px;height:40px;padding:0 3px;font-size:15px;font-weight:700;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.tc-more.has{height:26px;color:var(--blue);background:#fff;border-radius:999px;align-items:center;gap:1px;padding:0 6px;font-size:12.5px;display:inline-flex;box-shadow:inset 0 0 0 1px #c9dafa}.tc-more.has span{font-size:12px}.tc-cell.is-DONE{background:#effaf4}.tc-cell.is-DONE .tc-tick{color:var(--green)}.tc-cell.is-LATE{background:var(--amber-soft)}.tc-cell.is-LATE .tc-tick,.tc-cell.is-LATE input{color:var(--amber)}.tc-cell.is-NONE,.tc-cell.is-MISS{background:var(--red-soft)}.tc-cell.is-NONE .tc-tick,.tc-cell.is-MISS .tc-tick,.tc-cell.is-MISS input::placeholder,.tc-cell.is-NONE input::placeholder{color:var(--red)}.tc-cell.is-SENT{background:var(--blue-soft)}.tc-cell.is-AUTO{background:var(--teal-soft)}.tc-grid__sum{text-align:center;white-space:nowrap;min-width:70px;padding:0 8px;font-weight:600}.tc-grid__sum small{color:var(--muted);font-weight:400}.tc-legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex;margin-top:8px!important}.tc-legend span:before{content:"";vertical-align:-1px;background:#ddd;border-radius:4px;width:12px;height:12px;margin-right:5px;display:inline-block}.tc-legend .is-DONE:before{background:#cdeedb}.tc-legend .is-LATE:before{background:#ffe2a3}.tc-legend .is-MISS:before{background:#f8c9c6}.tc-legend .is-SENT:before{background:#c9dafa}.tc-legend .is-AUTO:before{background:#b5ece5}.tc-legend .is-info:before{display:none}.tc-more--demo{vertical-align:middle;display:inline-flex;position:static;transform:none}.tc-menu{gap:6px;display:grid}.tc-menu button{text-align:left;min-height:52px;font:600 16px var(--head);background:#f3f5f9;border:0;border-radius:14px;padding:0 16px}.tc-menu .tc-danger{color:var(--red);background:var(--red-soft)}.tc-colmode{margin:0;padding:0;list-style:none}.tc-colmode li{border-top:1px solid var(--hair);border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"name name""seg seg""score more";align-items:center;gap:6px 8px;padding:10px 6px;display:grid}.tc-colmode .tc-no{grid-area:name;place-self:start}.tc-colmode .tc-name{grid-area:name;min-height:30px;padding:3px 0 0 40px;font-weight:600}.tc-colmode .tc-name small{color:var(--teal-ink);font-weight:400;display:block}.tc-colmode .tc-seg{grid-area:seg;grid-template-columns:repeat(3,1fr);display:grid}.tc-colmode .tc-score{width:110px;min-height:46px;font:600 18px var(--head);text-align:center;border:1.5px solid #c9d3e0;border-radius:12px;grid-area:score;justify-self:start;padding:6px 10px}.tc-colmode li>.tc-btn{grid-area:more;justify-self:end}.tc-colmode li.is-MISS{background:#fff7f6}.tc-reqs{margin:8px 0 0;padding:0;list-style:none}.tc-reqs li{border-top:1px solid var(--hair);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.tc-reqs li>div{flex:200px}.tc-reqs small{color:var(--muted);display:block}.tc-stulist{margin:6px 0 0;padding:0;list-style:none}.tc-stulist li button{border:0;border-top:1px solid var(--hair);text-align:left;background:0 0;grid-template-columns:auto 1fr;gap:4px 6px;width:100%;min-height:56px;padding:10px 4px;display:grid}.tc-stulist .tc-name{font-weight:600}.tc-stulist .tc-flags{display:block}.tc-stats{color:var(--muted);flex-wrap:wrap;grid-column:2;gap:4px 14px;font-size:14px;display:flex}.tc-stats b{color:var(--ink)}.tc-stuhead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tc-cards4{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;display:grid}.tc-cards4>div{background:#f5f7fa;border-radius:14px;gap:2px;padding:12px 14px;display:grid}.tc-cards4 small{color:var(--muted);font-weight:600}.tc-cards4 b{font:600 26px/1.15 var(--head);color:var(--navy)}.tc-cards4 b small{font-size:15px}.tc-cards4 span{color:var(--muted);font-size:13px}.tc-cards4 .is-red{background:var(--red-soft)}.tc-cards4 .is-red b{color:var(--red)}.tc-worklist{margin:6px 0 0;padding:0;list-style:none}.tc-worklist li{background:#f7f8fa;border-left:5px solid #d5dbe5;border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:4px 12px;margin-top:6px;padding:10px 12px;display:grid}.tc-worklist li small{color:var(--muted);font-size:13px;display:block}.tc-worklist .tc-photos{grid-column:1/-1}.tc-worklist .tc-state{font-size:14px;font-weight:600}.tc-worklist .tc-score{font:600 18px var(--head);text-align:right;min-width:56px}.tc-worklist li.is-DONE,.tc-worklist li.is-AUTO{border-left-color:#23a06a}.tc-worklist li.is-LATE{border-left-color:#e08a00}.tc-worklist li.is-MISS,.tc-worklist li.is-NONE{border-left-color:var(--red);background:#fff6f5}.tc-worklist li.is-MISS .tc-state,.tc-worklist li.is-NONE .tc-state{color:var(--red)}.tc-worklist li.is-SENT{border-left-color:var(--blue)}.tc-worklist li.is-SENT .tc-state{color:var(--blue)}.tc-attdays{flex-wrap:wrap;gap:6px;display:flex}.tc-mine__head{text-align:left;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:0;display:flex}.tc-mine__head h3{margin:0;font-size:21px}.tc-mine__head small{color:var(--muted)}.tc-mine__chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tc-mine__chips>span{background:#eef3f8;border-radius:999px;padding:3px 12px;font-size:14px;font-weight:600}.tc-mine__chips .tc-red{background:var(--red-soft)}.tc-mine__chips .tc-ok{background:var(--green-soft)}.tc-pick{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:10px 0;padding:0;list-style:none;display:grid}.tc-pick button{text-align:left;background:#f3f5f9;border:0;border-radius:14px;align-items:center;gap:4px;width:100%;min-height:52px;padding:6px 10px;font-weight:600;display:flex}.tc-pick button small{color:var(--muted);margin-left:auto;font-size:12.5px;font-weight:400}.tc-pick button.is-on{background:var(--navy);color:#fff}.tc-pick button.is-on .tc-no{background:var(--gold)}.tc-sticky{background:#fff;padding:10px 0;position:sticky;bottom:76px}.tc-actions{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px;display:grid}.tc-action{text-align:left;background:#f3f5f9;border:0;border-radius:14px;grid-template-rows:auto auto;grid-template-columns:40px 1fr;align-items:center;column-gap:8px;min-height:64px;padding:10px 14px;text-decoration:none;display:grid;color:var(--navy)!important}.tc-action span{grid-row:1/3;font-size:26px}.tc-action b{font:600 16px var(--head)}.tc-action small{color:var(--muted)}.tc-bigcode{font:600 52px/1.1 var(--head);letter-spacing:.18em;color:var(--navy);margin:6px 0}.tc-preview{background:#f5f7fa;border-radius:14px;margin-top:10px;padding:12px}.tc-prevlist{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 12px;max-height:260px;margin:8px 0;padding:0;list-style:none;display:grid;overflow:auto}.tc-prevlist li{align-items:center;min-height:34px;display:flex}.tc-rosteredit{margin:12px 0 0;padding:0;list-style:none}.tc-rosteredit li{border-top:1px solid var(--hair);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 0;display:grid}.tc-rosteredit .tc-name{font-weight:600}.tc-settings code{background:#eef3f8;border-radius:6px;padding:1px 6px}.tc-table{border-collapse:collapse;width:100%;font-size:14.5px}.tc-table th{text-align:left;color:var(--muted);font:600 13.5px var(--head);background:#f7f8fa;padding:10px 12px}.tc-table td{border-top:1px solid var(--hair);vertical-align:middle;padding:10px 12px}.tc-table td small{color:var(--muted)}.tc-table__act{white-space:nowrap}.tc-table__act .tc-btn{margin:2px}.tc-photos__strip{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.tc-thumb{background:#e9edf3;border:0;border-radius:12px;place-items:center;width:72px;height:72px;padding:0;display:grid;position:relative;overflow:hidden}.tc-thumb img{object-fit:cover;width:100%;height:100%}.tc-thumb--add{color:var(--navy);background:#fff;gap:0;font-weight:600;box-shadow:inset 0 0 0 2px #c9d3e0}.tc-thumb--add span{font-size:22px}.tc-thumb small{font-size:12px}.tc-thumb--job i{background:var(--teal);height:6px;position:absolute;bottom:0;left:0}.tc-thumb--err{background:var(--red-soft);width:auto;min-width:150px;color:var(--red);flex-wrap:wrap;gap:4px;padding:6px;font-size:12px;display:flex}.tc-thumb--err button{background:#fff;border:0;border-radius:8px;min-height:32px;padding:4px 8px}.tc-viewer{z-index:70;touch-action:pan-y;background:#080e1cf0;place-items:center;display:grid;position:fixed;inset:0}.tc-viewer img{object-fit:contain;max-width:100vw;max-height:calc(100vh - 80px)}.tc-viewer__bar{color:#fff;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.tc-viewer__bar button{color:#fff;background:#ffffff29;border:0;border-radius:999px;min-height:44px;padding:0 18px;font-weight:600}.tc-viewer__nav{color:#fff;background:#0000008c;border:0;border-radius:14px;width:52px;height:72px;font-size:36px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 0 1px #ffffff40}.tc-viewer__nav--l{left:8px}.tc-viewer__nav--r{right:8px}.tc-empty{text-align:center;background:#fff;border-radius:18px;justify-items:center;gap:6px;margin-top:14px;padding:34px 16px;display:grid;box-shadow:0 10px 22px -18px #10224680}.tc-empty__icon{font-size:40px}.tc-empty b{font:600 19px var(--head);color:var(--navy)}.tc-empty p{color:var(--muted);max-width:440px}.tc-skel{gap:12px;margin-top:16px;display:grid}.tc-skel__row{background:linear-gradient(90deg,#ece9e1,#f7f5f0,#ece9e1) 0 0/200% 100%;border-radius:14px;height:54px;animation:1.2s infinite tc-shine}@keyframes tc-shine{to{background-position:-200% 0}}.tc-toasts{z-index:80;gap:8px;width:min(92vw,460px);display:grid;position:fixed;bottom:92px;left:50%;transform:translate(-50%)}.tc-toast{background:var(--navy);color:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-weight:600;display:flex;box-shadow:0 12px 30px -12px #00000080}.tc-toast--err{background:#8e1f17}.tc-toast button{background:var(--gold);color:var(--navy);border:0;border-radius:999px;min-height:36px;padding:0 14px;font-weight:600}.tc-modal{z-index:60;background:#0a142873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.tc-modal__box{background:#fff;border-radius:20px;width:min(100%,440px);padding:20px}.tc-modal__box p{color:var(--muted)}.tc-sheet{background:#fff;border-radius:22px;flex-direction:column;width:min(100%,560px);max-height:92vh;display:flex;overflow:hidden}.tc-sheet--wide{width:min(100%,860px)}.tc-sheet__head{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 10px 20px;display:flex}.tc-sheet__x{background:#f1f3f7;border:0;border-radius:12px;width:44px;height:44px;font-size:18px}.tc-sheet__body{padding:14px 20px 20px;overflow:auto}@media (max-width:359px){.tc-attlist li{grid-template-columns:auto 1fr}.tc-attlist .tc-seg{grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}}.tc--admin{min-height:100vh}.tc-table .tc-nowrap{white-space:nowrap}@media (max-width:760px){.tc{font-size:15px}.tc h1{font-size:23px}.tc-classhead h1{font-size:24px}.tc-wrap{padding:10px 12px 0}.tc-today__grid,.tc-steps3,.tc-actions{grid-template-columns:1fr}.tc-cards4{grid-template-columns:1fr 1fr}.tc-two,.tc-hero{grid-template-columns:1fr}.tc-tabs{margin:10px -6px 0}.tc-tabs button{flex-direction:column;gap:2px;min-height:56px;font-size:13.5px}.tc-tabs button span{font-size:18px}.tc-panel{border-radius:16px;padding:14px 12px}.tc-attlist li{gap:6px}.tc-attlist .tc-name{font-size:14px;line-height:1.25}.tc-attlist .tc-no{min-width:26px;height:26px;margin-right:0;font-size:13px}.tc-attlist .tc-seg{gap:2px;padding:2px}.tc-attlist .tc-seg button{min-width:44px;padding:0 4px;font-size:14px}.tc-savebar{top:72px;right:10px}.tc-attbar .tc-btn--big{width:100%}.tc-gridwrap{max-height:calc(100vh - 210px)}.tc-grid__name{min-width:118px;max-width:128px}.tc-namebtn{padding:4px 6px;font-size:13px;line-height:1.2}.tc-namebtn .tc-no{border-radius:6px;min-width:22px;height:22px;margin-right:5px;font-size:12px}.tc-namebtn{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-top:8px;display:-webkit-box;overflow:hidden}.tc-hint--long{display:none}.tc-colhead,.tc-cell{width:96px}.tc-worklist li{grid-template-columns:1fr auto}.tc-worklist .tc-state{grid-area:2/1}.tc-modal--sheet{align-items:end;padding:0}.tc-modal--sheet .tc-sheet{border-radius:22px 22px 0 0;width:100%;max-height:94vh}.tc-classhead__side{justify-content:space-between;width:100%}.tc-table thead{display:none}.tc-table,.tc-table tbody,.tc-table tr,.tc-table td{width:100%;display:block}.tc-table tr{border-top:1px solid var(--hair);padding:8px 12px}.tc-table td{border:0;padding:3px 0}.tc-table td[data-label]:before{content:attr(data-label) " · ";color:var(--muted);font-size:13px}.tc-bigcode{font-size:42px}}.tc-checkin__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;margin-bottom:8px;display:flex}.tc-checkin__top .tc-checkin__label{margin-bottom:0}.tc-soundtgl{min-height:40px;color:var(--navy);background:#fff;border:1.5px solid #9adbd2;border-radius:999px;align-items:center;gap:6px;padding:2px 12px;font-size:14px;font-weight:600;display:inline-flex}.tc-soundtgl small{color:var(--muted);background:#eceae4;border-radius:999px;padding:0 8px;font-size:12px;font-weight:600}.tc-soundtgl.is-on small{background:var(--teal-soft);color:var(--teal-ink)}.tc-rate{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.tc-rate__pct{font-variant-numeric:tabular-nums}.tc-rate--risk .tc-rate__pct{color:var(--red)}.tc-rchip{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-block}.tc-rchip--ok{background:var(--green-soft);color:var(--green)}.tc-rchip--near{color:#6b4e00;background:#fff0b3}.tc-rchip--risk{background:var(--red-soft);color:var(--red)}.tc-rate__letter{white-space:nowrap}.tc-ttable__pct{min-width:230px}.tc-mgrid .tc-mgrid__rate{white-space:normal;min-width:110px;padding:2px 6px}.tc-mgrid .tc-mgrid__rate .tc-rate{justify-content:center}.tc-rulenote{color:var(--muted);margin:8px 2px 0;font-size:13px}.tc-mgrid--print .tc-mgrid__rate{width:74px;min-width:0;padding:0 2px}.tc-mgrid--print .tc-rate{gap:0 3px}.tc-mgrid--print .tc-rchip{white-space:normal;padding:0 4px;font-size:8px;line-height:1.3}.tc.tc-letter{z-index:1000;background:#fff;min-height:0;padding:0;position:fixed;inset:0;overflow:auto}.tc-letter__sheet{max-width:720px;font-size:15px;line-height:1.8}.tc-letter__head{border-bottom:2px solid #000;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding-bottom:6px;display:flex}.tc-letter__head b{font:600 18px var(--head)}.tc-letter .tc-letter__subj{margin-top:18px}.tc-letter__body{text-indent:2.5em}.tc-letter__table{max-width:460px;margin:10px 0 10px 2.5em;font-size:14px}.tc-letter__table th{width:160px}.tc-letter__sign{text-align:center;width:fit-content;margin:34px 0 0 auto}@media print{html.tc-letter-printing body>:not(.tc-letter){display:none!important}html.tc-letter-printing .tc.tc-letter{position:static;overflow:visible}.tc-letter__sheet{font-size:14.5px}.tc-rchip,.tc-letter__table th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.tc-print{color:#000;background:#fff}.tc-print__bar{background:#f4f2ec;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.tc-sheet-a4{max-width:1050px;margin:0 auto;padding:18px;font-size:13px}.tc-print:not(.tc-print--land) .tc-sheet-a4{max-width:760px}.tc-print__head{border-bottom:2px solid #000;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding-bottom:6px;display:flex}.tc-print__head b{font:600 18px var(--head)}.tc-sheet-a4 h2{color:#000;margin:10px 0 8px;font-size:17px}.tc-ptable{border-collapse:collapse;width:100%;font-size:12px}.tc-ptable th,.tc-ptable td{text-align:center;border:1px solid #555;padding:3px 4px}.tc-ptable .l{text-align:left;white-space:nowrap}.tc-ptable th.v{vertical-align:bottom;height:110px;padding:2px}.tc-ptable th.v span{writing-mode:vertical-rl;white-space:nowrap;max-height:104px;font-weight:600;overflow:hidden;transform:rotate(180deg)}.tc-ptable td.miss,.tc-ptable tr.miss td{background:#fbe3e1}.tc-ptable--kv th{text-align:left;background:#f2f2f2;width:120px}.tc-ptable--kv td{text-align:left}.tc-ptable+.tc-ptable{margin-top:10px}.tc-pthumbs{gap:4px;margin-top:4px;display:flex}.tc-pthumbs img{object-fit:cover;border:1px solid #999;width:70px;height:70px}.tc-pnote{color:#333;font-size:11px}.tc-sign{margin-top:28px;font-size:13px}@media print{.sk-top,.sk-tabbar,.sk-foot,.kt-footer,.tc-print__bar,.tc-toasts,a[aria-label=กลับหน้าเรียน],.sk-student-switch{display:none!important}html,html body,.tc{background:#fff!important;min-height:0!important;padding:0!important}body:before,body:after{content:none!important;display:none!important}.tc{min-height:0!important}.tc-sheet-a4{padding:0;max-width:none!important}.tc-sheet-a4--break{break-after:page}.tc-ptable td.miss,.tc-ptable tr.miss td{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.tc{--r3-green:#1e9e62;--r3-orange:#e37a00;--r3-ease:cubic-bezier(.2,.8,.2,1)}.tc-modal,.tc-toasts{--navy:#13284a;--teal:#1fc7b6;--teal-ink:#0b7f74;--teal-soft:#ddf6f2;--gold:#ffc93c;--page:#f4f2ec;--card:#fff;--ink:#15284b;--muted:#5e6b80;--hair:#e6e1d6;--red:#c0352b;--red-soft:#fdecec;--amber:#b26a00;--amber-soft:#fff3d6;--blue:#1d5fd1;--blue-soft:#e6eefc;--green-soft:#e3f6ec;--green:#1b7a43;--r3-ease:cubic-bezier(.2,.8,.2,1);--head:Kanit, "IBM Plex Sans Thai Looped", "Leelawadee UI", Tahoma, sans-serif;--body:"IBM Plex Sans Thai Looped", "Leelawadee UI", Tahoma, sans-serif}.tc-modal__box h3{font-family:var(--head);color:var(--navy);line-height:1.4}.tc-btn,.tc-arrive__tap,.tc-arrive__side,.tc-filter button,.tc-counter{transition:transform .12s var(--r3-ease), box-shadow .12s var(--r3-ease), background-color .12s var(--r3-ease)}.tc-btn:active:not(:disabled),.tc-arrive__tap:active:not(:disabled),.tc-arrive__side:active{transform:scale(.97)}.tc-attswitch{margin:12px 0 0}.tc-panel{scroll-margin-top:84px}.tc-chip--teal{background:var(--teal-soft);color:var(--teal-ink);margin-left:8px;font-size:13px;font-weight:600}.tc-sid{color:var(--navy);letter-spacing:.03em;vertical-align:1px;background:#f1f3f7;border-radius:8px;margin-left:8px;padding:1px 8px;font:600 12.5px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;display:inline-block}.tc-time{color:var(--muted);font-size:12.5px;font-weight:600;display:block}.tc-field--code,.tc-field--time{max-width:200px}.tc-field--time input{font:600 20px/1.4 var(--head)}.tc-morning__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tc-morning__head h2{margin:0}.tc-counters{grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0 4px;display:grid}.tc-counter{text-align:center;background:#f5f7fa;border-radius:14px;justify-items:center;gap:0;padding:10px 4px 8px;display:grid}.tc-counter b{font:600 28px/1.25 var(--head);color:var(--navy);font-variant-numeric:tabular-nums}.tc-counter span{color:var(--muted);font-size:13.5px;font-weight:600;line-height:1.4}.tc-counter--in{background:#e3f6ec}.tc-counter--in b{color:var(--r3-green)}.tc-counter--T{background:var(--amber-soft)}.tc-counter--T b{color:var(--r3-orange)}.tc-counter--none{box-shadow:inset 0 0 0 2px var(--gold);background:#fff}.tc-counter--none b{color:var(--navy)}.tc-counter--L{background:var(--blue-soft)}.tc-counter--L b{color:var(--blue)}.tc-counter--A{background:var(--red-soft)}.tc-counter--A b{color:var(--red)}.tc-checkwrap{margin-top:14px}.tc-checkin{background:linear-gradient(#f3fbfa,#eaf6f4);border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1.5px #bfe9e3}.tc-checkin__label{font:600 16px/1.4 var(--head);color:var(--navy);margin-bottom:8px;display:block}.tc-checkin__row{grid-template-columns:1fr auto auto;align-items:stretch;gap:8px;display:grid}.tc-checkin__input{min-width:0;min-height:60px;color:var(--navy);font:600 28px/1.4 var(--head);letter-spacing:.06em;background:#fff;border:2px solid #9adbd2;border-radius:16px;padding:6px 16px;transition:border-color .12s,box-shadow .12s}.tc-checkin__input::placeholder{color:#a9b6c6;letter-spacing:0;font-size:20px;font-weight:400}.tc-checkin__input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 4px #1fc7b638}.tc-checkin__go{border-radius:16px;min-height:60px;padding:0 22px;font-size:18px}.tc-checkin__cam{border-radius:16px;min-height:60px}.tc-checkin .tc-hint{margin:8px 2px 0;font-size:13px}@keyframes tcPop{0%{opacity:.4;transform:scale(.96)}to{opacity:1;transform:none}}.tc-flash{color:#fff;animation:tcPop .16s var(--r3-ease);border-radius:18px;gap:2px;margin-top:10px;padding:14px 18px;scroll-margin:90px 0 120px;display:grid;box-shadow:0 14px 26px -18px #102246cc}.tc-flash b{font:600 24px/1.4 var(--head);overflow-wrap:anywhere}.tc-flash span{opacity:.95;font-size:16.5px;font-weight:600;line-height:1.45}.tc-flash--ok{background:linear-gradient(135deg,#22b26e,#158a54)}.tc-flash--late{background:linear-gradient(135deg,#f59a1b,#d96e00)}.tc-flash--dup{color:var(--navy);background:#fff;box-shadow:inset 0 0 0 2px #c9d3e0}.tc-flash--bad,.tc-flash--err{background:linear-gradient(135deg,#e04a40,#b92c22)}.tc-hist{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.tc-hist li{background:#f7f8fa;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:4px 6px 4px 14px;font-size:14.5px;line-height:1.4;display:flex;box-shadow:inset 4px 0 #c9d3e0}.tc-hist li>span{overflow-wrap:anywhere;min-width:0}.tc-hist li.is-ok{box-shadow:inset 4px 0 0 var(--r3-green)}.tc-hist li.is-late{box-shadow:inset 4px 0 0 var(--r3-orange)}.tc-hist li.is-bad,.tc-hist li.is-err{box-shadow:inset 4px 0 0 var(--red);color:#7a1c14}.tc-hist li.is-undone{opacity:.6}.tc-morning__sec{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:22px 0 8px;display:flex}.tc-morning__sec span{font:600 15px/1.4 var(--body);color:var(--muted)}.tc-morning__sec small{font:400 13.5px/1.4 var(--body);color:var(--muted)}.tc-arrive,.tc-arrived{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tc-arrive li{grid-template-columns:1fr 64px 64px;gap:6px;display:grid}.tc-arrive__tap{text-align:left;background:#fff;border:0;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:66px;padding:8px 14px 8px 10px;display:grid;box-shadow:inset 0 0 0 1.5px #dce3ec,0 6px 14px -12px #10224673}.tc-arrive__tap:hover{box-shadow:inset 0 0 0 2px var(--teal), 0 8px 16px -12px #10224680}.tc-arrive__tap .tc-no{border-radius:11px;min-width:36px;height:36px;margin:0;font-size:16px}.tc-arrive__tap .tc-name{font:600 19px/1.4 var(--head);color:var(--navy);overflow-wrap:anywhere;min-width:0}.tc-arrive__tap .tc-name small{color:var(--muted);letter-spacing:.04em;font:600 12.5px/1.4 ui-monospace,Consolas,monospace;display:block}.tc-arrive__ok{color:var(--r3-green);font:600 15px/1.4 var(--head);white-space:nowrap;background:#e3f6ec;border-radius:999px;padding:6px 12px}.tc-arrive__side{font:600 15px/1.4 var(--head);border:0;border-radius:14px}.tc-arrive__side.is-L{background:var(--blue-soft);color:var(--blue)}.tc-arrive__side.is-A{background:var(--red-soft);color:var(--red)}.tc-morning__end{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.tc-arrived li{background:#f7f8fa;border-radius:14px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;min-height:52px;padding:4px 6px 4px 8px;display:grid}.tc-arrived .tc-no{margin:0}.tc-arrived .tc-name{overflow-wrap:anywhere;min-width:0;font-weight:600;line-height:1.4}.tc-arrived .tc-chip{font-variant-numeric:tabular-nums;font-weight:600}.tc-editmark{grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0;display:grid}.tc-editmark button{min-height:56px;font:600 18px/1.4 var(--head);color:var(--navy);background:#f1f3f7;border:0;border-radius:14px}.tc-editmark button:last-child{grid-column:1/-1;font-size:16px}.tc-editmark button.is-on{color:#fff}.tc-editmark .tc-seg__X.is-on{background:var(--navy)}.tc-scan{z-index:120;color:#fff;background:#050b16;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.tc-scan--loading{font:600 18px/1.5 var(--head);place-items:center}.tc-scan__bar{padding:max(10px, env(safe-area-inset-top)) 14px 10px;font:600 18px/1.4 var(--head);background:#050b16d9;justify-content:space-between;align-items:center;gap:10px;display:flex}.tc-scan__x{color:#fff;min-height:44px;font:600 16px/1 var(--head);background:#ffffff24;border:0;border-radius:999px;padding:0 16px}.tc-scan__view{min-height:0;position:relative;overflow:hidden}.tc-scan__view video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tc-scan__frame{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.tc-scan__frame i{aspect-ratio:1.75;--c:var(--teal);--l:38px;--t:5px;border-radius:22px;width:min(82vw,520px);transition:box-shadow .16s;display:block;position:relative;box-shadow:0 0 0 9999px #050b1685;background-color:#0000!important;background:linear-gradient(var(--c), var(--c)) left top / var(--l) var(--t), linear-gradient(var(--c), var(--c)) left top / var(--t) var(--l), linear-gradient(var(--c), var(--c)) right top / var(--l) var(--t), linear-gradient(var(--c), var(--c)) right top / var(--t) var(--l), linear-gradient(var(--c), var(--c)) left bottom / var(--l) var(--t), linear-gradient(var(--c), var(--c)) left bottom / var(--t) var(--l), linear-gradient(var(--c), var(--c)) right bottom / var(--l) var(--t), linear-gradient(var(--c), var(--c)) right bottom / var(--t) var(--l)!important;background-repeat:no-repeat!important}.tc-scan__frame i:after{content:"";background:linear-gradient(90deg,#0000,#ff5a5a,#0000);border-radius:2px;height:2px;animation:1.6s ease-in-out infinite alternate tcScanLine;position:absolute;top:50%;left:8%;right:8%;box-shadow:0 0 12px #ff5a5a}@keyframes tcScanLine{0%{transform:translateY(-38px)}to{transform:translateY(38px)}}.tc-scan__view.is-hit .tc-scan__frame i{--c:#3be08f;box-shadow:0 0 0 9999px #0a50308c}.tc-scan__view.is-hit .tc-scan__frame i:after{opacity:0}.tc-scan__msg{text-align:center;background:#050b16bf;border-radius:14px;width:min(92vw,520px);margin:0;padding:10px 14px;line-height:1.5;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.tc-scan__tools{padding:10px 14px max(12px, env(safe-area-inset-bottom));background:#050b16d9;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.tc-scan__tools .tc-btn--ghost{background:#ffffff1f;box-shadow:inset 0 0 0 1.5px #ffffff4d;color:#fff!important}.tc-scan__tools .tc-btn--ghost.is-on{background:var(--gold);color:#3a2a00!important}.tc-scan__hint{text-align:center;color:#c9d6e6;flex-basis:100%;font-size:14px;line-height:1.45}.tc-scan__flash{left:50%;top:calc(64px + env(safe-area-inset-top));pointer-events:none;width:min(92vw,560px);position:absolute;transform:translate(-50%)}.tc-scan__flash .tc-flash{margin:0}.tc-scan__denied{width:min(92vw,520px);color:var(--ink);text-align:left;background:#fff;border-radius:22px;place-self:center;padding:22px}.tc-scan__denied h3{margin:6px 0 10px;font-size:20px;line-height:1.4}.tc-scan__denied ul{margin:0 0 10px;padding-left:20px;font-size:14.5px;line-height:1.55}.tc-scan__denied li{margin:4px 0}.tc-scan__denied .tc-btn{width:100%;margin-top:8px}.tc-scan__icon{font-size:34px;line-height:1.3}.tc-kioskcta{transition:transform .12s var(--r3-ease);background:linear-gradient(135deg,#13284a,#1f3e6e);border-radius:18px;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;column-gap:14px;margin-top:14px;padding:14px 18px;text-decoration:none;display:grid;box-shadow:0 14px 26px -18px #102246e6;color:#fff!important}.tc-kioskcta:active{transform:scale(.99)}.tc-kioskcta span{grid-row:1/3;font-size:32px;line-height:1.2}.tc-kioskcta b{font:600 18px/1.4 var(--head)}.tc-kioskcta small{color:#bfd0e8;font-size:13.5px;line-height:1.4}.tc-kioskcta i{color:var(--teal);grid-area:1/3/3;font-size:28px;font-style:normal}.tc-kiosk{max-width:980px;margin:0 auto;padding:16px}.tc-kiosk__top{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.tc-kiosk__top h1{flex:auto;font-size:26px;line-height:1.35}.tc-kiosk__top h1 small{font:400 15px/1.4 var(--body);color:var(--muted);display:block}.tc-kiosk__clock{font:600 34px/1.2 var(--head);color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:.02em}.tc-counters--kiosk .tc-counter b{font-size:34px}.tc-kiosk .tc-checkin{padding:18px}.tc-kiosk .tc-checkin__input{min-height:72px;font-size:34px}.tc-kiosk .tc-checkin__go,.tc-kiosk .tc-checkin__cam{min-height:72px;font-size:19px}.tc-kiosk .tc-flash{padding:18px 22px}.tc-kiosk .tc-flash b{font-size:30px}.tc-kiosk .tc-flash span{font-size:19px}.tc-kiosk__classes{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.tc-kiosk__classes li{background:#fff;border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 14px;line-height:1.45;display:flex;box-shadow:0 8px 18px -16px #10224699}.tc-kiosk__classes b{font:600 17px/1.4 var(--head);color:var(--navy)}.tc-kiosk__classes small{color:var(--muted);flex-basis:100%}.tc-kiosk.is-full{z-index:100;background:var(--page);max-width:none;padding:max(16px, env(safe-area-inset-top)) max(20px, 4vw) 24px;position:fixed;inset:0;overflow:auto}.tc-kiosk.is-full .tc-checkin__input{min-height:84px;font-size:40px}.tc-kiosk.is-full .tc-flash b{font-size:36px}.tc-kiosk:-webkit-full-screen{background:var(--page);overflow:auto}.tc-kiosk:fullscreen{background:var(--page);overflow:auto}.tc-bar{width:100%;display:block}.tc-qr{display:block}.tc-card{color:#10203c;break-inside:avoid;background:#fff;border-radius:3.4mm;grid-template-rows:auto 1fr auto;width:85.6mm;height:54mm;padding:0 0 2.4mm;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 .3mm #c7ced9}.tc-card__head{color:#fff;background:linear-gradient(90deg,#13284a,#1d4e7a 70%,#1fc7b6);justify-content:space-between;align-items:center;gap:2mm;padding:1.6mm 3.2mm;display:flex}.tc-card__head b{font:600 3.4mm/1.4 var(--head);white-space:nowrap}.tc-card__head span{text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:2.7mm;line-height:1.4;overflow:hidden}.tc-card__body{grid-template-columns:1fr 15mm;align-items:center;gap:2mm;min-height:0;padding:1.4mm 3.2mm 0;display:grid}.tc-card__who small{color:#4a5a72;font-size:2.7mm;line-height:1.4;display:block}.tc-card__who strong{font:600 4.6mm/1.4 var(--head);overflow-wrap:anywhere;display:block}.tc-card__body .tc-qr{width:15mm;height:15mm}.tc-card__code{justify-items:center;padding:0 5mm;display:grid}.tc-card__code .tc-bar{height:11mm}.tc-card__code span{letter-spacing:.12em;font:600 2.9mm/1.3 ui-monospace,Consolas,monospace}.tc-cardsheet{grid-template-columns:repeat(2,85.6mm);grid-auto-rows:54mm;justify-content:center;gap:4mm 6mm;padding:6mm 0;display:grid}.tc-cardsheet .tc-card{outline-offset:1.2mm;outline:.25mm dashed #9aa6b8}.tc-print--cards{padding-bottom:20px}.tc-print--cards>.tc-note{margin:12px 16px}.tc-mycard{max-width:520px;margin:0 auto;padding:12px 16px 20px}.tc-mycard__card{background:#fff;border-radius:26px;justify-items:center;gap:6px;margin-top:6px;padding:0 0 22px;display:grid;overflow:hidden;box-shadow:0 22px 40px -26px #102246e6,inset 0 0 0 1px #e2e7ef}.tc-mycard__head{color:#fff;background:linear-gradient(110deg,#13284a,#1d4e7a 65%,#1fc7b6);justify-content:space-between;align-items:center;gap:10px;width:100%;padding:14px 20px;display:flex;position:relative;overflow:hidden}.tc-mycard__head:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff38,#0000 70%);border-radius:50%;width:180px;height:180px;position:absolute;top:-60px;right:-40px}.tc-mycard__head small{opacity:.8;letter-spacing:.02em;font-size:12px;line-height:1.4;display:block}.tc-mycard__head b{font:600 18px/1.4 var(--head)}.tc-mycard__head span{z-index:1;text-align:right;font-size:13.5px;line-height:1.45;position:relative}.tc-mycard__who{text-align:center;justify-items:center;padding:12px 18px 4px;display:grid}.tc-mycard__who strong{font:600 26px/1.4 var(--head);color:var(--navy)}.tc-mycard__who small{color:var(--muted);font-size:15px;line-height:1.4}.tc-mycard__bar{width:calc(100% - 36px);height:96px;margin-top:6px}.tc-mycard__code{letter-spacing:.22em;color:var(--navy);font:600 22px/1.3 ui-monospace,Consolas,monospace}.tc-mycard__qr{width:150px;height:150px;margin-top:4px}.tc-mycard__hint{text-align:center;margin-top:14px;line-height:1.6}.tc-mycard__hint small{color:var(--muted)}.tc-row--center{justify-content:center}.tc-attsum2{scroll-margin-top:84px}.tc-attsum2__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.tc-attsum2__head h2{margin:0}.tc-monthpick{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;display:flex}.tc-monthpick>button{width:44px;height:44px;color:var(--navy);background:#eef3f8;border:0;border-radius:12px;font-size:22px}.tc-monthpick select{min-height:44px;font:600 16px/1.4 var(--head);color:var(--navy);background:#fff;border:1.5px solid #c9d3e0;border-radius:12px;padding:4px 12px}.tc-monthpick--sm{justify-content:space-between}.tc-monthpick--sm b{font:600 17px/1.4 var(--head);color:var(--navy)}.tc-actions--row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.tc-mgrid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13.5px}.tc-mgrid th,.tc-mgrid td{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);text-align:center;font-variant-numeric:tabular-nums;background:#fff;min-width:28px;height:36px;padding:0}.tc-mgrid thead th{z-index:2;height:46px;font:600 13px/1.25 var(--head);color:var(--navy);background:#f7f8fa;position:sticky;top:0}.tc-mgrid thead th small{font:400 11px/1.3 var(--body);color:var(--muted);display:block}.tc-mgrid .tc-mgrid__name{z-index:1;text-align:left;white-space:nowrap;text-overflow:ellipsis;min-width:150px;max-width:190px;box-shadow:1px 0 0 var(--hair);padding:4px 10px 4px 8px;font-weight:600;line-height:1.35;position:sticky;left:0;overflow:hidden}.tc-mgrid thead .tc-mgrid__name{z-index:3}.tc-mgrid .tc-mgrid__name .tc-no{border-radius:7px;min-width:24px;height:24px;margin-right:6px;font-size:12px}.tc-mgrid .is-off{color:#a0a8b5;background:repeating-linear-gradient(135deg,#f1f2f4 0 4px,#e9ebef 4px 8px);min-width:16px}.tc-mgrid thead th.is-off{background:#eceef2}.tc-mgrid td.is-P{color:var(--r3-green);font-weight:700}.tc-mgrid td.is-T{color:var(--r3-orange);background:#fff6e3;font-weight:700}.tc-mgrid td.is-L{color:var(--blue);background:#eef3fd;font-weight:700}.tc-mgrid td.is-A{color:var(--red);background:#fdecec;font-weight:700}.tc-mgrid .tc-mgrid__t{background:#fafbfc;min-width:40px;padding:0 4px;font-weight:600}.tc-mgrid .is-red{color:var(--red)}.tc-mgrid tfoot th,.tc-mgrid tfoot td{color:var(--navy);background:#f3f6f9;font-weight:600}.tc-attlegend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;font-size:13.5px;line-height:1.45;display:flex}.tc-attlegend span{align-items:center;gap:4px;display:inline-flex}.tc-attlegend .is-P{color:var(--r3-green);font-weight:600}.tc-attlegend .is-T{color:var(--r3-orange);font-weight:600}.tc-attlegend .is-L{color:var(--blue);font-weight:600}.tc-attlegend .is-A{color:var(--red);font-weight:600}.tc-attlegend .is-off:before{content:"";background:repeating-linear-gradient(135deg,#f1f2f4 0 3px,#e2e5ea 3px 6px);border-radius:4px;width:14px;height:14px}.tc-ttable{border-collapse:separate;border-spacing:0;min-width:100%;font-size:14.5px}.tc-ttable th,.tc-ttable td{border-bottom:1px solid var(--hair);text-align:center;font-variant-numeric:tabular-nums;background:#fff;padding:8px 10px;line-height:1.4}.tc-ttable thead th{font:600 14px/1.4 var(--head);color:var(--navy);background:#f7f8fa;position:sticky;top:0}.tc-ttable .l{text-align:left;white-space:nowrap;font-weight:600}.tc-ttable .is-red{color:var(--red);font-weight:600}.tc-ttable__pct{min-width:150px;text-align:left!important}.tc-ttable__pct b{margin-left:8px}.tc-pbar{vertical-align:middle;background:#edf0f4;border-radius:99px;width:80px;height:8px;display:inline-block;overflow:hidden}.tc-pbar i{background:linear-gradient(90deg,#2fc184,#1e9e62);border-radius:99px;height:100%;display:block}.tc-pbar i.is-low{background:linear-gradient(90deg,#f07167,#c0352b)}.tc-invite{box-shadow:inset 4px 0 0 var(--gold), 0 10px 22px -18px #10224680;animation:tcPop .16s var(--r3-ease);grid-template-columns:52px 1fr;align-items:start;gap:14px;display:grid}.tc-invite__icon{background:var(--amber-soft);border-radius:16px;place-items:center;width:52px;height:52px;font-size:26px;line-height:1;display:grid}.tc-invite h3{margin:2px 0 4px;font-size:18.5px;line-height:1.45}.tc-invite .tc-row{margin-top:8px}@media (max-width:760px){.tc-invite{grid-template-columns:44px 1fr;gap:10px}.tc-invite__icon{border-radius:13px;width:44px;height:44px;font-size:22px}.tc-invite .tc-btn{flex:auto}}.tc-mine__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.tc-today-arr{font:600 17px/1.4 var(--head);color:var(--navy);animation:tcPop .16s var(--r3-ease);background:#f1f3f7;border-radius:999px;align-items:center;gap:8px;margin:0;padding:8px 16px 8px 12px;display:inline-flex}.tc-today-arr.is-P{color:#11713f;background:#e3f6ec}.tc-today-arr.is-T{background:var(--amber-soft);color:#8f5200}.tc-today-arr.is-L{background:var(--blue-soft);color:var(--blue)}.tc-today-arr.is-A{background:var(--red-soft);color:var(--red)}.tc-cal{max-width:460px}.tc-cal__grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px;display:grid}.tc-cal__wd{text-align:center;font:600 12.5px/1.6 var(--head);color:var(--muted)}.tc-cal__d{min-height:52px;box-shadow:inset 0 0 0 1px var(--hair);background:#fff;border-radius:10px;align-content:start;justify-items:center;gap:0;padding:3px 2px;line-height:1.3;display:grid;position:relative}.tc-cal__d small{color:var(--muted);font-size:11.5px}.tc-cal__d b{font:700 16px/1.3 var(--head)}.tc-cal__d i{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px;font-style:normal}.tc-cal__d.is-off{box-shadow:none;background:repeating-linear-gradient(135deg,#f4f5f7 0 4px,#eceef1 4px 8px)}.tc-cal__d.is-P b{color:var(--r3-green)}.tc-cal__d.is-T{background:#fff6e3}.tc-cal__d.is-T b{color:var(--r3-orange)}.tc-cal__d.is-L{background:#eef3fd}.tc-cal__d.is-L b{color:var(--blue)}.tc-cal__d.is-A{background:#fdecec}.tc-cal__d.is-A b{color:var(--red)}.tc-cal__d.is-today{box-shadow:inset 0 0 0 2px var(--teal)}.tc-cal__d.is-future{background:#fbfbfc;box-shadow:inset 0 0 0 1px #eef0f3}.tc-cal__d.is-future small{color:#b4bcc8}.tc-attdays--recent{margin-top:10px}@media (max-width:760px){.tc-counters{gap:5px}.tc-counter{border-radius:12px;padding:8px 2px 6px}.tc-counter b{font-size:23px}.tc-counter span{font-size:12px}.tc-checkin{padding:12px}.tc-checkin__row{grid-template-columns:1fr auto 56px;gap:6px}.tc-checkin__camtext{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.tc-checkin__cam span[aria-hidden]{font-size:24px}.tc-checkin__go{padding:0 16px}.tc-checkin__input{min-height:56px;font-size:24px}.tc-checkin__go{min-height:56px}.tc-checkin__cam{min-height:56px;padding:0}.tc-kiosk .tc-checkin__row{grid-template-columns:1fr auto}.tc-kiosk .tc-checkin__cam{grid-column:1/-1;padding:0 16px}.tc-kiosk .tc-checkin__camtext{clip:auto;width:auto;height:auto;margin-left:6px;position:static;overflow:visible}.tc-flash b{font-size:21px}.tc-flash span{font-size:15.5px}.tc-arrive li{grid-template-columns:1fr 50px 50px;gap:5px}.tc-arrive__tap{gap:8px;min-height:62px;padding:6px 10px 6px 8px}.tc-arrive__tap .tc-name{font-size:17px}.tc-arrive__ok{place-items:center;width:34px;height:34px;padding:0;font-size:0;display:grid}.tc-arrive__ok:before{content:"✓";font-size:18px;line-height:1}.tc-checkin .tc-hint{font-size:12.5px}.tc-morning__end{grid-template-columns:1fr}.tc-arrived li{grid-template-columns:auto 1fr auto}.tc-arrived li .tc-btn{grid-area:1/3/3}.tc-arrived li .tc-chip{grid-column:2;justify-self:start}.tc-kiosk{padding:10px 12px}.tc-kiosk__top h1{font-size:22px}.tc-kiosk__clock{font-size:26px}.tc-kiosk .tc-checkin__input{min-height:62px;font-size:28px}.tc-kiosk .tc-checkin__go,.tc-kiosk .tc-checkin__cam{min-height:60px}.tc-kiosk .tc-flash b{font-size:24px}.tc-kiosk .tc-flash span{font-size:16px}.tc-counters--kiosk .tc-counter b{font-size:26px}.tc-kiosk.is-full .tc-checkin__input{min-height:70px;font-size:32px}.tc-mgrid .tc-mgrid__name{min-width:118px;max-width:132px;font-size:13px}.tc-mycard{padding:8px 12px 16px}.tc-mycard__who strong{font-size:23px}.tc-scan__frame i{width:84vw}}@media (min-width:900px){.tc-arrive,.tc-arrived{grid-template-columns:1fr 1fr}.tc-morning__end{max-width:720px;margin-left:auto;margin-right:auto}}@media (prefers-reduced-motion:reduce){.tc-flash,.tc-today-arr,.tc-scan__frame i:after{animation:none}}.tc-print--month .tc-sheet-a4 h2 small{font:400 12.5px var(--body);color:#333;margin-left:8px}.tc-mgrid--print{width:100%;font-size:10.5px}.tc-mgrid--print th,.tc-mgrid--print td{border-color:currentColor #555 #555 currentColor;border-top-style:none;border-top-width:0;border-left-style:none;border-left-width:0;min-width:0;height:19px}.tc-mgrid--print{border-top:1px solid #555;border-left:1px solid #555}.tc-mgrid--print thead th{color:#000;background:#eee;height:30px;font-size:10px;position:static}.tc-mgrid--print thead th small{color:#333;font-size:8.5px}.tc-mgrid--print .tc-mgrid__name{width:150px;min-width:0;max-width:none;box-shadow:none;color:#000;padding:1px 4px;font-size:10.5px;position:static}.tc-mgrid--print .tc-mgrid__name .tc-no{background:0 0;border-radius:0;min-width:0;height:auto;margin-right:4px;font-size:10px}.tc-mgrid--print .tc-mgrid__t{background:#fafafa;width:26px;min-width:0}.tc-mgrid--print .is-off{background:#e4e4e4;min-width:0}.tc-mgrid--print td.is-T,.tc-mgrid--print td.is-L,.tc-mgrid--print td.is-A{background:#f3f3f3}.tc-signrow{grid-template-columns:1fr 1fr;gap:24px;margin-top:26px;font-size:12.5px;line-height:2;display:grid}.tc-signrow span{color:#333}@media print{.tc-noprint{display:none!important}.tc-mgrid--print th,.tc-mgrid--print td,.tc-mgrid--print .is-off,.tc-card__head,.tc-cardsheet .tc-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tc-print--month .tc-sheet-a4{padding:0}.tc-cardsheet{break-after:page;align-content:start;gap:2mm 6mm;height:281mm;padding:0}.tc-print--cards .tc-print__bar+.tc-cardsheet,.tc-print--cards .tc-cardsheet:first-of-type{margin-top:0}.tc-cardsheet:last-child{break-after:auto}.tc-print--cards .tc-note{display:none}}
