:root{font-family:Arial,Helvetica,sans-serif;color:#171717;background:#f3f4f6;--red:#c8102e;--dark:#171717;--border:#d7d9dd}
*{box-sizing:border-box}body{margin:0}a{color:inherit}.topbar,.mobile-header{min-height:68px;background:#151515;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:24px;box-shadow:0 2px 8px #0003}.topbar nav{display:flex;gap:18px}.topbar nav a,.topbar>a,.mobile-header a{text-decoration:none}.brand{font-size:28px;font-weight:800;letter-spacing:.04em}.brand span{color:var(--red)}.container{max-width:1280px;margin:34px auto;padding:0 22px}.narrow{max-width:900px}.cards,.modules{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.cards article,.module,.panel,.login-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 18px #00000012}.cards strong{font-size:38px;display:block}.cards span{color:#555}.module{text-decoration:none}.module h3{margin-top:0;border-left:5px solid #aaa;padding-left:10px}.module.active h3{border-color:var(--red)}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#171717,#333)}.login-card{width:min(430px,92vw)}label{display:block;font-weight:700}input,select,textarea{width:100%;padding:12px;margin-top:7px;border:1px solid #bbb;border-radius:7px;background:#fff}textarea{min-height:110px}button,.button{background:var(--red);color:#fff;border:0;padding:11px 18px;border-radius:7px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.secondary{background:#444}.small{padding:7px 10px;font-size:13px}.inline{display:inline}.alert{background:#ffe8eb;color:#8b0017;padding:12px;border-radius:7px}.notice{background:#fff4cf;border-left:5px solid #d49a00;padding:14px;margin:18px 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid #ddd;vertical-align:top}th{white-space:nowrap}.badge{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge-open{background:#fff0ba}.badge-closed{background:#dcecff}.badge-approved{background:#d9f3df}.warning-row{background:#fffaf0}.actions{white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:end;gap:10px}.filter{display:grid;grid-template-columns:2fr 1fr 1fr auto auto auto;gap:14px;align-items:end}.check{display:flex;gap:10px;align-items:center;font-weight:700}.check input{width:auto;margin:0}.reset-form{display:flex;gap:7px}.reset-form input{margin:0;min-width:180px}.mobile-header{display:none}.time-shell{max-width:820px;margin:0 auto;padding:24px}.time-hero{display:flex;justify-content:space-between;align-items:center;gap:20px}.time-hero h1{margin-bottom:4px}.status{padding:10px 16px;border-radius:999px;font-weight:800}.status-working{background:#d8f4df;color:#075c20}.status-break{background:#fff0bb;color:#745600}.status-finished{background:#dcecff;color:#164a7e}.status-not_started{background:#e5e7eb}.clock-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.clock-summary article{background:#fff;padding:18px;border-radius:10px;text-align:center;box-shadow:0 3px 12px #0001}.clock-summary span{display:block;color:#666}.clock-summary strong{font-size:26px}.punch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:20px}.punch-grid form,.punch{width:100%}.punch{min-height:86px;font-size:20px}.punch:disabled{background:#aeb1b6;cursor:not-allowed}.punch-work_start{background:#14833b}.punch-break_start{background:#d68d00}.punch-break_end{background:#1367a8}.punch-work_end{background:#b20b25}.flag-form{display:grid;gap:14px}.event-list>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eee}.report-page{max-width:1100px;margin:25px auto;background:#fff;padding:30px}.report-actions{text-align:right;margin-bottom:20px}.report-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--red);padding-bottom:18px;margin-bottom:25px}.report-header h1{margin:0}.report-table tfoot{font-size:17px}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:80px}.signatures div{border-top:1px solid #333;padding-top:8px}.userbox{white-space:nowrap}
@media(max-width:850px){.topbar{flex-wrap:wrap;padding:14px 18px}.topbar nav{order:3;width:100%;overflow:auto}.userbox{display:none}.mobile-header{display:flex}.time-shell{padding:16px}.time-hero{align-items:flex-start}.clock-summary{grid-template-columns:repeat(2,1fr)}.punch-grid{grid-template-columns:1fr}.filter{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.container{padding:0 12px}.panel{padding:16px}}
@media print{body{background:#fff}.no-print,.topbar,.mobile-header{display:none!important}.report-page{margin:0;max-width:none;padding:0;box-shadow:none}@page{size:A4 landscape;margin:12mm}}

.time-topbar{
  min-height:68px;
  position:sticky;
  top:0;
  z-index:100;
  background:#151515;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 4%;
  box-shadow:0 2px 10px #0004
}
.brand-link{text-decoration:none;color:#fff;white-space:nowrap}
.time-nav{display:flex;align-items:center;gap:10px}
.time-nav-link,.time-nav-button{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border-radius:7px;
  color:#fff;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap
}
.time-nav-link{background:#333}
.time-nav-link:hover{background:#454545}
.time-nav-button{background:#c8102e;border:0;cursor:pointer}
.time-nav-button:hover{background:#a90d27}

@media(max-width:650px){
  .time-topbar{
    min-height:auto;
    align-items:stretch;
    flex-direction:column;
    padding:12px 14px;
    gap:10px
  }
  .time-topbar .brand{align-self:flex-start}
  .time-nav{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
    gap:8px
  }
  .time-nav-link,.time-nav-button{
    width:100%;
    min-height:46px;
    padding:8px 6px;
    font-size:14px;
    text-align:center
  }
  .time-nav form{display:block;width:100%}
}
