/* ClockWork module inside CRS Ops Board. Namespaced to avoid affecting existing app styles. */
.timeClockPanel{overflow:auto;min-height:0}.timeClockWrap{min-height:100%}.tc-shell{display:grid;gap:12px}.tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.tc-title{font-size:22px;font-weight:1000}.tc-sub{color:var(--muted);font-size:12px;font-weight:800}.tc-tabs{display:flex;gap:8px;flex-wrap:wrap}.tc-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-weight:1000;cursor:pointer}.tc-tab.active{background:var(--ink);color:#fff}.tc-grid{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:12px;align-items:start}.tc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow);padding:14px}.tc-industrial{background:#0F1923;color:#E8EDF2;border-color:#2E4058;border-radius:0;box-shadow:none}.tc-industrial .muted,.tc-industrial .tc-sub{color:rgba(232,237,242,.68)}.tc-brand{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#F59E0B;font-weight:1000;letter-spacing:.16em;font-size:12px}.tc-clock{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(46px,12vw,76px);line-height:1;font-weight:1000;letter-spacing:-.06em;text-align:center;padding:22px 6px 8px}.tc-date{text-align:center;color:rgba(232,237,242,.7);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase;font-size:12px;padding-bottom:14px}.tc-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.tc-status-box{background:#152331;border:1px solid #2E4058;padding:12px;min-height:84px}.tc-status-box span{display:block;font-size:11px;color:rgba(232,237,242,.62);font-weight:1000;letter-spacing:.12em;text-transform:uppercase}.tc-status-box strong{display:block;margin-top:7px;font-size:16px}.tc-status-box em{display:block;margin-top:6px;color:#F59E0B;font-style:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.tc-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:#8b98a5}.tc-dot.in{background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.65);animation:tcPulse 1.6s infinite}.tc-dot.out{background:#EF4444}@keyframes tcPulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.65)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}.tc-good{color:#10B981!important}.tc-bad{color:#EF4444!important}.tc-amber{color:#F59E0B!important}.tc-gps{width:100%;min-height:48px;margin-top:10px;background:#152331;border:1px solid #2E4058;color:#E8EDF2;font-weight:1000;cursor:pointer;border-radius:0}.tc-gps.on{color:#10B981}.tc-gps.off{color:#EF4444}.tc-reminder{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:10px;border:1px solid #F59E0B;background:rgba(245,158,11,.16);color:#E8EDF2}.tc-big-btn{width:100%;margin-top:12px;min-height:86px;border:0;border-radius:0;color:#04130c;background:#10B981;font-size:20px;font-weight:1000;text-transform:uppercase;cursor:pointer}.tc-big-btn.out{background:#EF4444;color:#260303}.tc-big-btn:disabled{opacity:.5;cursor:not-allowed}.tc-big-btn.punch{animation:tcPunch .22s ease-out}@keyframes tcPunch{0%{transform:scale(1)}50%{transform:scale(.96)}100%{transform:scale(1)}}.tc-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.tc-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:1000;cursor:pointer}.tc-btn.gold{background:var(--gold);border-color:rgba(140,105,38,.5);color:#fff}.tc-btn.dark{background:#152331;color:#E8EDF2;border-color:#2E4058;border-radius:0}.tc-btn.danger{background:rgba(220,60,60,.10);border-color:rgba(220,60,60,.35);color:rgba(160,40,40,1)}.tc-btn.sm{padding:7px 9px;font-size:12px}.tc-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r2);background:#fff}.tc-table{width:100%;border-collapse:collapse;min-width:740px}.tc-table th,.tc-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tc-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:rgba(31,42,51,.04)}.tc-table tr.clickable{cursor:pointer}.tc-table tr.clickable:hover td{background:rgba(202,162,75,.10)}.tc-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tc-stat strong{display:block;font-size:30px;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.tc-stat span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:1000}.tc-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.tc-toolbar label{margin-top:0}.tc-toolbar input,.tc-toolbar select{min-width:150px}.tc-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}.tc-shift-list{display:grid;gap:8px;margin-top:10px}.tc-shift{display:flex;justify-content:space-between;gap:10px;padding:10px;border:1px solid #2E4058;background:#152331;color:#E8EDF2}.tc-badge{display:inline-block;font-size:11px;font-weight:1000;padding:2px 6px;border:1px solid var(--line);border-radius:999px}.tc-badge.auto{border-color:#F59E0B;color:#F59E0B}.tc-badge.ok{border-color:#10B981;color:#10B981}.tc-badge.muted{color:var(--muted)}.tc-pay-employee{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;margin-bottom:12px;background:#fff}.tc-pay-employee h3{margin:0;padding:12px;background:rgba(31,42,51,.04);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.tc-rfid-list{display:grid;gap:8px;margin:10px 0}.tc-rfid-row{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.tc-qr-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tc-qr-row img{width:180px;height:180px;background:#fff;padding:8px;border:1px solid var(--line)}.tc-modal{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:18px}.tc-modal-panel{width:min(100%,520px);max-height:90vh;overflow:auto;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow);padding:14px}.tc-modal-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.tc-modal-head h2{margin:0}.tc-scanner{width:240px;height:240px;margin:12px auto;position:relative;background:#000;overflow:hidden}.tc-scanner video{width:100%;height:100%;object-fit:cover}.tc-scanner:after{content:"";position:absolute;inset:14px;border:3px solid #F59E0B;pointer-events:none}.tc-edit-box{border:1px solid var(--line);border-radius:var(--r2);padding:12px;background:rgba(31,42,51,.03);margin-bottom:12px}@media(max-width:980px){.tc-grid{grid-template-columns:1fr}.tc-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-form-grid{grid-template-columns:1fr}.tc-status-grid,.tc-actions{grid-template-columns:1fr}}@media print{body *{visibility:hidden!important}.tc-print-area,.tc-print-area *{visibility:visible!important}.tc-print-area{position:absolute!important;left:0;top:0}}
.tc-check{display:flex;align-items:center;gap:8px;font-weight:900;margin:0 0 10px;color:var(--ink)}.tc-check input{width:auto}
.tc-muted{color:var(--muted)!important}.tc-access-list{display:grid;gap:8px;margin:10px 0}.tc-access-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.tc-access-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tc-btn:disabled{opacity:.55;cursor:not-allowed}.tc-industrial .tc-muted{color:rgba(232,237,242,.55)!important}@media(max-width:640px){.tc-access-row{align-items:flex-start;flex-direction:column}.tc-access-actions{justify-content:flex-start}}
