.attendance{max-width:1100px;margin:0 auto}.attendance h1{margin:0 0 6px;font-size:24px}.attendance .attendance-tabs,.attendance .attendance-actions{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.attendance .attendance-punch{border:1px solid var(--line,#ddd);background:var(--card,#fff);border-radius:12px;padding:24px}.attendance .attendance-punch button{min-width:140px;min-height:52px;font-size:17px}.attendance .attendance-status{margin:12px 0;font-size:22px}.attendance .attendance-filters{flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0;display:flex}.attendance .attendance-filters label,.attendance .attendance-settings label{flex-direction:column;gap:6px;display:flex}.attendance .attendance-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:700px;display:grid}.attendance .attendance-settings .wide{grid-column:1/-1}.attendance .attendance-settings input{width:100%;min-width:0}.attendance .attendance-scroll{overflow-x:auto}.attendance table{width:100%}.attendance th,.attendance td{white-space:nowrap;text-align:left;padding:12px}.attendance .attendance-note{color:#716334;background:#fff9e9;border-radius:8px;padding:12px}@media (width<=600px){.attendance .attendance-settings{grid-template-columns:1fr}.attendance .attendance-punch{padding:16px}.attendance .attendance-actions{flex-direction:column}.attendance .attendance-actions button{width:100%;min-width:0}.attendance .attendance-tabs button{flex:auto}.attendance .attendance-filters label{flex:140px}.attendance .attendance-filters input,.attendance .attendance-filters select{width:100%;min-width:0}}:root{--ink:#1f2328;--muted:#6a737d;--line:#d9dee3;--card:#fff;--bg:#f5f6f8;--accent:#6b4fbb;--err:#b42318;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font-family:system-ui,-apple-system,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;font-size:16px;line-height:1.5}button,input,select{font:inherit}button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-height:44px;padding:10px 16px}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}input,select{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:44px;padding:10px 12px}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:14px}.err{color:var(--err);background:#fef3f2;border:1px solid #fecdca;border-radius:8px;margin:12px 0;padding:10px 12px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;max-width:420px;padding:24px}.login{flex-direction:column;gap:14px;display:flex}.login label{flex-direction:column;gap:6px;display:flex}.login h2{margin:0}.topbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar .brand{margin-right:auto;font-weight:700}.main{padding:16px}table{border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid var(--line)}tr.absent td{color:var(--err)}
