:root{--bg:#f5f5f3;--panel:#ffffff;--panel-2:#fafaf8;--line:#e6e4df;--line-2:#d8d5ce;--ink:#1d1d1b;--ink-2:#57544e;--ink-3:#8a867e;--brand:#c2410c;--brand-ink:#ffffff;--brand-soft:#fdf0e8;--ok:#157f4a;--ok-soft:#e6f4ec;--warn:#a16207;--warn-soft:#fbf3df;--bad:#b42318;--bad-soft:#fdecea;--info:#2557a7;--info-soft:#e9f0fb;--side:#1f1d1a;--side-ink:#e9e6df;--side-ink-2:#a39e94;--c1:#c2410c;--c2:#2557a7;--c3:#157f4a;--c4:#7c3aed;--c5:#a16207;--c6:#0e7490;--c7:#be185d;--r:8px;--h:32px;--fs:13px;--pad:14px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#151412;--panel:#1e1d1a;--panel-2:#23221f;--line:#33312c;--line-2:#403d37;--ink:#edeae4;--ink-2:#b9b4aa;--ink-3:#8a857b;--brand:#f97316;--brand-soft:#3a2416;--ok:#4ade80;--ok-soft:#173323;--warn:#fbbf24;--warn-soft:#362b12;--bad:#f87171;--bad-soft:#3b1a18;--info:#7aa7f0;--info-soft:#18263d;--side:#0f0e0d;color-scheme:dark}}:root[data-theme="dark"]{--bg:#151412;--panel:#1e1d1a;--panel-2:#23221f;--line:#33312c;--line-2:#403d37;--ink:#edeae4;--ink-2:#b9b4aa;--ink-3:#8a857b;--brand:#f97316;--brand-soft:#3a2416;--ok:#4ade80;--ok-soft:#173323;--warn:#fbbf24;--warn-soft:#362b12;--bad:#f87171;--bad-soft:#3b1a18;--info:#7aa7f0;--info-soft:#18263d;--side:#0f0e0d;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font:var(--fs)/1.45 -apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;-webkit-font-smoothing:antialiased}button,select,input{font:inherit;color:inherit}.num,td.n,th.n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.app{display:grid;grid-template-columns:196px 1fr;min-height:100vh}.side{background:var(--side);color:var(--side-ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 10px}.brand{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:2px 6px 16px}.brand b{display:block;font-size:14px}.brand small{color:var(--side-ink-2);font-size:11px;display:block}.logo{width:160px;height:auto;display:block;flex:none}nav{display:flex;flex-direction:column;gap:2px}nav a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:7px;color:var(--side-ink-2);text-decoration:none;position:relative}nav a:hover{background:#ffffff10;color:var(--side-ink)}nav a.on{background:#ffffff1a;color:#fff}nav a .n{margin-left:auto;font-size:11px;color:var(--side-ink-2)}nav a .badge{margin-left:auto;background:var(--brand);color:#fff;border-radius:9px;padding:0 6px;font-size:11px;line-height:18px}nav svg{width:16px;height:16px;flex:none}.side-foot{margin-top:auto;padding:8px 6px 0;display:flex;flex-direction:column;gap:8px}.side-foot small{color:var(--side-ink-2);font-size:11px}.who{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--side-ink);font-size:12px}.who form{margin:0}.who .btn{color:var(--side-ink-2)}.side .btn.ghost{color:var(--side-ink-2);border-color:#ffffff22}.body{min-width:0;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.top h1{font-size:16px;margin:0;margin-right:auto;font-weight:650}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.month{display:flex;gap:4px}select,input[type=search]{height:var(--h);border:1px solid var(--line-2);background:var(--panel);border-radius:7px;padding:0 8px}input[type=search]{width:180px}main{padding:14px 18px 28px;outline:none}.btn{height:var(--h);padding:0 12px;border-radius:7px;border:1px solid var(--line-2);background:var(--panel);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{border-color:var(--ink-3)}.btn.pri{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.pri:hover{filter:brightness(1.06)}.btn.ok{color:var(--ok)}.btn.bad{color:var(--bad)}.btn.ghost{background:transparent}.btn.icon{width:var(--h);padding:0;justify-content:center;font-size:16px}.btn.sm{height:26px;padding:0 9px;font-size:12px}.btn[disabled]{opacity:.45;cursor:not-allowed}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:7px;overflow:hidden;background:var(--panel);height:var(--h)}.seg button{border:0;background:none;padding:0 11px;cursor:pointer;color:var(--ink-2)}.seg button + button{border-left:1px solid var(--line)}.seg button.on{background:var(--ink);color:var(--panel)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{height:26px;border-radius:13px;padding:0 10px;border:1px solid var(--line-2);background:var(--panel);cursor:pointer;font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;gap:5px}.chip.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}.chip b{font-weight:600}.grid{display:grid;gap:12px}.kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-bottom:12px}.kpis.k6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;min-height:74px;cursor:default}.kpi[data-go]{cursor:pointer}.kpi[data-go]:hover{border-color:var(--line-2)}.kpi small{color:var(--ink-3);font-size:12px;display:block}.kpi b{font-size:clamp(16px,1.45vw,20px);white-space:nowrap;font-weight:650;display:block;margin-top:2px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi em{font-style:normal;font-size:11.5px;color:var(--ink-3)}.kpi.alert b{color:var(--bad)}.up{color:var(--ok)}.down{color:var(--bad)}.cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;margin-bottom:12px}.cols.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);min-width:0;display:flex;flex-direction:column}.card + .card{margin-top:0}.card-h{display:flex;align-items:center;gap:8px;padding:10px var(--pad);border-bottom:1px solid var(--line);min-height:46px;flex-wrap:wrap}.card-h h2{font-size:13.5px;margin:0;font-weight:650}.card-h .sub{color:var(--ink-3);font-size:12px}.card-h .end{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.card-b{padding:12px var(--pad)}.card-b.flush{padding:0}.mb{margin-bottom:12px}.muted{color:var(--ink-3)}.small{font-size:12px}.tw{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse}th,td{padding:0 10px;height:34px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-weight:550;color:var(--ink-3);font-size:12px;background:var(--panel-2);position:sticky;top:0;z-index:1;height:32px}th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:var(--ink)}th .arr{font-size:10px;margin-left:3px}tbody tr:hover{background:var(--panel-2)}tr[data-row]{cursor:pointer}td.wrap{white-space:normal;min-width:220px;line-height:1.35;padding:6px 10px}tfoot td{font-weight:600;background:var(--panel-2)}.pager{display:flex;align-items:center;gap:8px;padding:8px var(--pad);color:var(--ink-3);font-size:12px;border-top:1px solid var(--line)}.pager .end{margin-left:auto;display:flex;gap:4px}.tsearch{display:flex;align-items:center;gap:10px;padding:8px var(--pad);color:var(--ink-3);font-size:12px;border-bottom:1px solid var(--line)}.tsearch input[type=search]{width:240px}.empty{padding:26px;text-align:center;color:var(--ink-3)}.tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:10px;font-size:11.5px;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}.tag.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.tag.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.tag.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.tag.info{background:var(--info-soft);color:var(--info);border-color:transparent}.tag.brand{background:var(--brand-soft);color:var(--brand);border-color:transparent}.todo{list-style:none;margin:0;padding:0}.todo li{display:flex;gap:10px;align-items:center;padding:0 var(--pad);height:40px;border-bottom:1px solid var(--line);cursor:pointer}.todo li:hover{background:var(--panel-2)}.todo li:last-child{border-bottom:0}.dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--info)}.dot.block{background:var(--bad)}.dot.warn{background:var(--warn)}.dot.ok{background:var(--ok)}.todo .go{margin-left:auto;color:var(--ink-3)}.steps{display:grid;grid-template-columns:repeat(7,1fr);gap:0;counter-reset:s}.step{position:relative;padding:0 6px;text-align:center;font-size:12px;color:var(--ink-3)}.step i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;margin:0 auto 4px;border:2px solid var(--line-2);background:var(--panel);font-style:normal;font-size:12px;position:relative;z-index:1}.step::before{content:"";position:absolute;top:12px;left:-50%;right:50%;height:2px;background:var(--line-2)}.step:first-child::before{display:none}.step.done i{background:var(--ok);border-color:var(--ok);color:#fff}.step.done::before,.step.cur::before{background:var(--ok)}.step.cur i{border-color:var(--brand);color:var(--brand)}.step.cur{color:var(--ink);font-weight:600}.step span{display:block;font-size:10.5px;color:var(--ink-3);font-weight:400;min-height:14px}.gate{margin:10px 0 0;padding:8px 12px;border-radius:7px;background:var(--bad-soft);color:var(--bad);font-size:12.5px}.gate.ok{background:var(--ok-soft);color:var(--ok)}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chart{width:100%;height:210px;display:block}.chart text{fill:var(--ink-3);font-size:10px}.chart .bar{fill:var(--c2);opacity:.8;cursor:pointer}.chart .bar:hover,.chart .bar.on{opacity:1;fill:var(--brand)}.chart .line{fill:none;stroke:var(--brand);stroke-width:2}.chart .grid{stroke:var(--line)}.legend{display:flex;gap:14px;font-size:12px;color:var(--ink-3)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.matrix{border-collapse:separate;border-spacing:0}.matrix th,.matrix td{padding:0;height:40px;min-width:34px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.matrix th.rl,.matrix td.rl{position:sticky;left:0;z-index:2;background:var(--panel);text-align:left;padding:0 10px;min-width:96px;font-weight:550;color:var(--ink)}.matrix th{font-size:11px;line-height:1.15}.matrix th.we{color:var(--brand)}.matrix th.hol,.matrix td.hol{background:repeating-linear-gradient(135deg,var(--panel-2),var(--panel-2) 4px,transparent 4px,transparent 8px)}.matrix td.c{cursor:pointer;font-variant-numeric:tabular-nums;position:relative;font-size:12px}.matrix td.c:hover{outline:2px solid var(--ink);outline-offset:-2px}.matrix td.c.l1{background:color-mix(in srgb,var(--info) 10%,transparent)}.matrix td.c.l2{background:color-mix(in srgb,var(--info) 22%,transparent)}.matrix td.c.gap{background:var(--bad-soft);color:var(--bad);font-weight:650}.matrix td.c small{display:block;font-size:9.5px;color:var(--ink-3);line-height:1}.matrix td.c.gap small{color:var(--bad)}.tl{position:relative;height:104px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);margin:8px 0}.tl .ax{position:absolute;bottom:2px;font-size:10px;color:var(--ink-3);transform:translateX(-50%)}.tl .gl{position:absolute;top:0;bottom:16px;width:1px;background:var(--line)}.tl .bk{position:absolute;height:18px;border-radius:4px;font-size:10.5px;color:#fff;padding:0 5px;line-height:18px;overflow:hidden;white-space:nowrap;border:0}.tl .plan{top:8px;background:var(--ink-3)}.tl .act{top:32px;background:var(--ok)}.tl .lv{top:56px;background:var(--c4)}.tl .ot{top:56px;background:var(--brand)}.tl .lab{position:absolute;left:6px;font-size:10px;color:var(--ink-3)}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week button{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 4px;cursor:pointer;font-size:11.5px;min-height:52px}.week button.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.week button b{display:block;font-size:12px}.scrim{position:fixed;inset:0;background:#0006;z-index:20}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,100vw);background:var(--panel);z-index:21;box-shadow:-8px 0 28px #0003;overflow:auto;overscroll-behavior:contain}.drawer .dh{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;gap:10px;align-items:center;z-index:2}.drawer .dh h3{margin:0;font-size:15px}.drawer .dh .end{margin-left:auto;display:flex;gap:6px}.drawer .db{padding:14px 16px 30px}.drawer h4{margin:16px 0 6px;font-size:12.5px;color:var(--ink-2)}.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kv div{background:var(--panel-2);border-radius:7px;padding:7px 10px}.kv small{display:block;color:var(--ink-3);font-size:11px}.kv b{font-weight:600;font-variant-numeric:tabular-nums}.lines td{height:auto;padding:6px 8px;vertical-align:top}.lines td.basis{color:var(--ink-3);font-size:11.5px;white-space:normal}.note{padding:8px 10px;border-radius:7px;font-size:12.5px;margin:6px 0}.note.bad{background:var(--bad-soft);color:var(--bad)}.note.warn{background:var(--warn-soft);color:var(--warn)}.note.info{background:var(--info-soft);color:var(--info)}.evs{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}.evs li{padding:4px 0 8px 14px;position:relative}.evs li::before{content:"";position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid var(--ink-3)}.evs li.hire::before{border-color:var(--ok)}.evs li.leave::before{border-color:var(--bad)}.evs li.salary::before{border-color:var(--info)}.evs li.transfer::before{border-color:var(--brand)}.evs small{color:var(--ink-3)}.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--panel);padding:9px 16px;border-radius:8px;z-index:40;font-size:13px;max-width:90vw}.toast.bad{background:var(--bad);color:#fff}.skel{height:300px;border-radius:var(--r);background:linear-gradient(90deg,var(--panel) 0,var(--panel-2) 50%,var(--panel) 100%);background-size:200% 100%;animation:sk 1.1s infinite}@keyframes sk{to{background-position:-200% 0}}@media (max-width:1280px){.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis.k6{grid-template-columns:repeat(3,minmax(0,1fr))}}.cols.wide{grid-template-columns:minmax(0,2.4fr) minmax(0,1fr)}@media (max-width:1360px){.cols.even,.cols.wide{grid-template-columns:minmax(0,1fr)}}@media (max-width:960px){.cols,.cols.even{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.app{grid-template-columns:1fr}.side{position:sticky;top:0;z-index:6;height:auto;flex-direction:row;align-items:center;padding:6px 8px;gap:6px;overflow-x:auto}.brand{padding:0 4px}.brand .logo{width:90px}.brand div,.side-foot{display:none}nav{flex-direction:row;gap:2px}nav a{height:32px;padding:0 8px;font-size:12px;white-space:nowrap}nav a .n,nav a svg{display:none}.top{position:static;padding:10px 16px}.top h1{width:100%}main{padding:12px 16px 24px}.kpis,.kpis.k6,.kpis.k5{grid-template-columns:repeat(2,minmax(0,1fr))}.kv{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(4,1fr);row-gap:10px}.step::before{display:none}input[type=search]{width:130px}.tsearch input[type=search]{flex:1;min-width:0}}[hidden]{display:none !important}.imp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.imp-grid .card{margin:0;display:flex;flex-direction:column}.imp-grid .card-b{display:flex;flex-direction:column;flex:1}.imp-i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-size:12px;margin-right:8px;vertical-align:-1px}.imp-d{margin:0 0 12px;line-height:1.6;flex:1}.imp-a{display:flex;gap:8px}.imp-a .btn{flex:1;justify-content:center}.clip{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}@media (max-width:1360px){.imp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.imp-grid{grid-template-columns:1fr}.clip{max-width:140px}}a.btn{text-decoration:none;color:inherit}.ck-set{display:flex;flex-direction:column;gap:10px}.ck-set label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.ck-set input[type=number]{width:80px;height:var(--h);border:1px solid var(--line-2);border-radius:7px;background:var(--panel);color:var(--ink);padding:0 8px}.ck-set select{max-width:60%}.ck-set.wk input{width:220px;height:var(--h);border:1px solid var(--line-2);border-radius:7px;background:var(--panel);color:var(--ink);padding:0 8px}.clock-emp select{height:28px;border:1px solid var(--line-2);border-radius:6px;background:var(--panel);color:var(--ink)}.form{display:flex;flex-direction:column;gap:10px}.form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink-2)}.form input,.form textarea{border:1px solid var(--line-2);border-radius:7px;background:var(--panel);color:var(--ink);padding:7px 9px;font:inherit}.form .row{display:flex;gap:8px;justify-content:flex-end}.clock-emp{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form .wide-btn{width:100%;margin-top:8px;justify-content:center}.rep .rep-btns{flex-wrap:wrap;gap:8px;margin:10px 0}.rep-link{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 12px}.rep-link h4{margin:0 0 6px}.rep-link textarea{width:100%;font-size:13px;background:var(--bg);color:var(--ink);border:1px solid var(--line-2);border-radius:8px;padding:8px;resize:vertical}.rep-row{border-top:1px solid var(--line);padding:10px 0}.rep-row .rep-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rep-row .rep-kv{margin:8px 0}.rep-row .rep-kv code{font-size:12px;word-break:break-all}.site-n{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.rep-sec{border-top:1px solid var(--line);padding-top:10px;margin-top:6px}.rep-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;font-size:13px}.rep-line>span:not(.tag){flex:1;min-width:180px}.rep-line>.tag{flex:none}.rep-log{margin-top:6px}.rep-row .note.warn{margin:8px 0 0}.ip-dup{color:var(--bad);font-weight:600}.ip-dup-note{margin:10px 14px}.gmap{font-size:12px;white-space:nowrap}.gmap-row{align-items:center;flex-wrap:wrap;gap:8px}.gps2{border:1px dashed var(--line-2);border-radius:10px;padding:10px 12px}.gps2 .note{margin:6px 0 0;line-height:1.8}.sc h4{margin:4px 0 8px}.sc .ck-set.wk{margin-top:4px}.sc-row{display:grid;grid-template-columns:70px 1fr 2fr auto;gap:8px;margin-bottom:8px}.sc-row input{height:34px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 10px;font:inherit;min-width:0}.ck-set.wk select{height:34px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 8px;font:inherit;max-width:100%}@media (max-width:640px){.sc-row{grid-template-columns:60px 1fr auto}.sc-row [data-sc=slots]{grid-column:1/3}}body.is-test::before{content:"測試站・資料都是假的";position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:1000;background:#c0392b;color:#fff;font-size:12px;font-weight:700;padding:3px 14px;border-radius:8px 8px 0 0;pointer-events:none}body.is-test .side{box-shadow:inset 4px 0 0 #c0392b}.test-card{border-color:#c0392b}.test .row{align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}.test-sum{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}.test tr.bad-row td{background:var(--bad-soft,#fde8e8)}.test-wm{position:fixed;inset:-60vh -60vw;z-index:9999;pointer-events:none;display:flex;align-items:center;justify-content:center;transform:rotate(-24deg);overflow:hidden}.test-wm::before{content:"TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站\A TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站 TEST測試站";white-space:pre;font-size:56px;font-weight:900;line-height:2.4;letter-spacing:.04em;color:rgba(46,160,90,.16);text-align:center}@media (prefers-color-scheme:dark){.test-wm::before{color:rgba(120,220,150,.14)}}.sched-help{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sched-help h4{margin:0 0 8px}.sched-help table{width:100%;font-size:13px}.sched-help td{padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}.sched-help ul{margin:6px 0;padding-left:18px;line-height:1.8}.sched-help .note{margin-top:6px}select.smode{height:30px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 6px;font:inherit}@media (max-width:900px){.sched-help{grid-template-columns:1fr}}.st-table{width:100%;font-size:13px}.st-table th{white-space:nowrap}.st-table td{vertical-align:middle;padding:6px 6px}.st-table input,.st-table select{height:32px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 8px;font:inherit;width:100%;min-width:0}.st-table [data-st=code]{width:64px}.st-table [data-st=name]{min-width:110px}.st-table [data-st=note]{min-width:160px}.st-week{white-space:nowrap}.st-week label{display:inline-flex;flex-direction:column;align-items:center;font-size:11px;color:var(--ink-2);margin-right:3px}.st-week select{width:52px;padding:0 2px;height:30px}.st-row.st-new td{background:var(--info-soft)}.st .row{gap:8px;margin:10px 0}.tpl h4{margin:14px 0 8px}.tpl table{width:100%;font-size:13px}.tpl td,.tpl th{padding:6px;border-top:1px solid var(--line);vertical-align:top;text-align:left}.tpl .warn-t{color:var(--bad);font-size:12px;margin-top:2px}.tpl ul{padding-left:18px;margin:6px 0;line-height:1.8}.st-table [data-st=kind],.st-table [data-st=hours]{min-width:118px}.st-table [data-st=name]{min-width:120px}.sched-help.one{grid-template-columns:1fr}.sched-help>*{min-width:0}.sched-help td{word-break:break-word}nav .nav-group{font-size:11px;color:var(--side-ink-2);opacity:.75;padding:10px 10px 2px;letter-spacing:.06em}nav .nav-sep{height:1px;background:#ffffff14;margin:6px 8px}.subtabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line);overflow-x:auto}.subtabs a{padding:9px 16px;color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:600}.subtabs a:hover{color:var(--ink)}.subtabs a.on{color:var(--ink);border-bottom-color:var(--brand)}.st-season{margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;white-space:normal}.st-season .chip{font-size:11px}.ses{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px}.ses-h{display:flex;gap:6px;margin-bottom:8px}.ses-h input{flex:1;height:32px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 8px;font:inherit}.ses-m{display:grid;grid-template-columns:repeat(6,1fr);gap:4px 8px;margin-bottom:8px;font-size:12px}.ses-m label{display:flex;gap:4px;align-items:center;white-space:nowrap}.ses .st-week select{width:52px;height:30px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 2px;font:inherit}.form .ses-m label{flex-direction:row;align-items:center;gap:4px;margin:0;font-size:12px}.form .ses-m input{width:auto;height:auto;margin:0}.btn.danger-t{color:var(--bad);margin-right:auto}.dsp-law{display:grid;gap:6px}.dsp-law>div{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:13px;border-top:1px solid var(--line);padding-top:6px}.dsp-law>div:first-child{border-top:0}.dsp-sel{display:inline-flex;gap:6px}.dsp-sel select,.dsp-bar select{height:30px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);padding:0 6px;font:inherit}.dsp-bar{gap:8px;align-items:center;margin-bottom:10px}.dsp-sum{margin-bottom:10px}@media (max-width:640px){.dsp-law>div{grid-template-columns:1fr}}.dsp-lawbox{padding:12px 16px;margin-bottom:14px}.dsp-lawbox summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;list-style:revert}.dsp-lawbox .dsp-law{margin-top:10px}.ytime{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}.ytime input[type=range]{flex:1;min-width:180px}.ytime b{font-variant-numeric:tabular-nums;font-size:18px}.ymap{width:100%;height:auto;max-height:360px;color:var(--ink,#222)}.ybrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;padding:12px}.ybr{border:1px solid var(--line,#ddd);border-radius:10px;padding:10px 12px;cursor:pointer;background:var(--bg-2,transparent)}.ybr:hover,.ybr:focus{outline:2px solid var(--brand,#c2410c);outline-offset:-1px}.ybr-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ybr-n{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:13px;margin-bottom:4px}.ybr-n .w{color:var(--warn,#b45309)}.ybr-n .x{color:var(--bad,#c2410c);font-weight:600}.ybr-n .i{color:var(--info,#1d4ed8)}.yev li{align-items:baseline}.ytabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 12px}.ysteps{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:12px}.ysteps span{padding:1px 6px;border-radius:9px;border:1px solid var(--line,#ddd);color:var(--ink-3,#888)}.ysteps span.done{background:#15803d;color:#fff;border-color:#15803d}.ysteps span.done::before{content:'✓ '}.ysteps span.cur{background:#ea580c;border-color:#ea580c;color:#fff;font-weight:600}.ysteps span.no{background:#b91c1c;color:#fff;border-color:#b91c1c}.ysteps span.no::before{content:'✕ '}.ysteps i{font-style:normal;color:var(--ink-3,#999)}.ygrid td{vertical-align:top;min-width:120px}.ycls{border:1px solid var(--line,#ddd);border-left:3px solid var(--ok,#15803d);border-radius:6px;padding:4px 6px;margin:0 0 6px;font-size:12.5px;line-height:1.4}.ycls.warn{border-left-color:var(--warn,#b45309);background:#fffbeb}.ycls.bad{border-left-color:var(--bad,#c2410c);background:#fef2f2}.ycls.cross{border-style:dashed}.yflow{border:1px solid var(--line,#ddd);border-radius:8px;margin:0 0 10px;padding:8px 12px}.yflow legend input{font-weight:600}#y-as{display:block;margin-top:4px;width:100%}@media (prefers-color-scheme:dark){.ycls.warn{background:#3a2a0a}.ycls.bad{background:#3a1212}}.yev li{display:block;line-height:1.5;padding:7px 12px}.yev li .dot{display:inline-block;margin-right:4px}.ytabs{gap:6px}.ytabs button{border:1px solid var(--line,#ccc);background:transparent;color:inherit;border-radius:16px;padding:4px 12px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.ytabs button.on{background:var(--brand,#c2410c);border-color:var(--brand,#c2410c);color:#fff}td.actions{white-space:nowrap}td.actions .btn{margin:2px 0}.ysteps{flex-wrap:nowrap;white-space:nowrap}.yleave td{vertical-align:top}.ymap-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;padding:6px 12px 12px}.ymap-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}.yregs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:12px}.yreg{border:1px solid var(--line,#444);border-radius:10px;padding:8px 10px}.yreg:first-child{grid-column:span 2}.yreg h4{margin:0 0 8px;font-size:13px}.ynodes{display:flex;flex-wrap:wrap;gap:10px 6px}.ynode{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:inherit;cursor:pointer;padding:2px 4px;min-width:58px}.ydot{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:#fff;font-weight:700;font-size:15px;line-height:1;border:2px solid rgba(255,255,255,.75)}.ydot small{font-size:11px;font-weight:600;opacity:.9}.ynode:hover .ydot,.ynode:focus .ydot{outline:3px solid var(--brand,#c2410c);outline-offset:1px}.yname{font-size:12px;font-weight:600;white-space:nowrap}@media (max-width:600px){.yreg:first-child{grid-column:auto}}.yhc{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;padding:4px}.yhc div{border:1px solid var(--line,#444);border-radius:8px;padding:6px;text-align:center}.yhc small{display:block;color:var(--ink-3,#999);font-size:11px}.yhc b{font-size:16px}.ypq{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;padding:12px}.ypq label{display:flex;flex-direction:column;font-size:12px;gap:3px}.ypq input,.ypq select{min-width:120px}.card.folded>.card-b{display:none}.card.folded>.card-h{border-bottom:0}.fold-btn{margin-left:6px;white-space:nowrap}body{background:var(--bg)}.ck{max-width:460px;margin:0 auto;padding:16px 16px 40px}.ck-h{display:flex;align-items:center;justify-content:space-between;background:var(--side);border-radius:12px;padding:12px 14px;margin-bottom:14px}.ck-h img{height:30px;width:auto}.ck-h small{color:var(--side-ink-2);font-size:12px}.ck-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}.ck-who{font-size:15px;font-weight:650}.ck-time{font-size:46px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:6px 0 0;line-height:1.1}.ck-date{color:var(--ink-2);font-size:13px}.ck-net{display:flex;gap:8px;align-items:center;font-size:13px;margin-top:10px;color:var(--ink-2)}.ck-net i{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none}.ck-net.ok i{background:var(--ok)}.ck-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.ck-btns button{height:68px;border-radius:12px;border:0;font-size:18px;font-weight:650;cursor:pointer;color:#fff}.ck-btns .in{background:var(--brand)}.ck-btns .out{background:#2f6f5e}.ck-btns button:disabled{opacity:.5}.ck-msg{margin-top:12px;font-size:14px;line-height:1.6;padding:10px 12px;border-radius:10px;background:var(--info-soft);color:var(--ink)}.ck-msg.warn{background:var(--warn-soft,#fff4de)}.ck-msg.bad{background:var(--bad-soft,#fde8e8)}.ck-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:14px}.ck-row:first-of-type{border-top:0}.ck-row b{font-variant-numeric:tabular-nums}.ck-sh{font-size:13px;color:var(--ink-2);margin:4px 0 0}.ck h3{margin:0 0 8px;font-size:14px}.ck-help{font-size:13px;line-height:1.7;color:var(--ink-2)}.ck-help ol{padding-left:20px;margin:6px 0}.ck form input{width:100%;height:46px;font-size:17px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);color:var(--ink);padding:0 12px;margin:6px 0 10px}.ck form .btn{width:100%;height:46px;justify-content:center;font-size:16px}.ck .err{color:var(--bad);font-size:13px;margin:4px 0 8px}.ck .lo{background:none;border:0;color:var(--side-ink-2);font-size:12px;cursor:pointer;padding:4px}.ck-rep select,.ck-rep input{display:block;width:100%;height:46px;font-size:16px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);color:var(--ink);padding:0 12px;margin:10px 0 0}.ck-btns.one{grid-template-columns:1fr}.ck-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 12px}.ck-tabs button{height:48px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2,var(--bg));color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;padding:0 2px}.ck-tabs button.on{background:var(--brand,#c2410c);border-color:var(--brand,#c2410c);color:#fff}.ck-bal{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--line)}.ck-bal b{font-size:20px}.ck-bal small{grid-column:1/-1;color:var(--ink-3);font-size:12px}.ck-bar{grid-column:1/-1;height:6px;border-radius:3px;background:rgba(127,127,127,.28);overflow:hidden}.ck-bar i{display:block;height:100%;background:#16a34a}.ck-pay{border-bottom:1px solid var(--line);padding:10px 0}.ck-pay summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none}.ck-pay summary::-webkit-details-marker{display:none}.ck-pay .ln{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}.ck-pay .ln small{color:var(--ink-3)}.ck-pay .neg{color:var(--bad)}.ck-test{background:#c0392b;color:#fff;text-align:center;font-size:13px;font-weight:700;padding:6px}