:root {
    --repe-slate:#263640;
    --repe-blue:#466981;
    --repe-teal:#2E7D78;
    --repe-soft:#DCE7EC;
    --repe-bg:#F5F7F8;
    --repe-surface:#FFFFFF;
    --repe-text:#1D272D;
    --repe-muted:#68757D;
    --repe-success:#47765A;
    --repe-warning:#C28A32;
    --repe-error:#B65353;
    --repe-line:#D9E1E5;
    --shadow:0 4px 18px rgba(38,54,64,.07);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--repe-bg);color:var(--repe-text)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:var(--repe-slate);color:#fff;padding:22px 14px;z-index:30}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark,.auth-logo{display:grid;place-items:center;background:var(--repe-teal);color:#fff;font-weight:800;border-radius:10px;width:42px;height:42px}.brand strong{display:block;font-size:20px}.brand small{display:block;font-size:11px;opacity:.7;margin-top:2px}
.nav{display:flex;flex-direction:column;gap:4px}.nav a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:8px;color:rgba(255,255,255,.8);font-size:14px}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12);color:#fff}.nav-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px;opacity:.55;margin:16px 10px 5px}
.main-column{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--repe-line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;align-items:baseline;gap:12px}.topbar-title strong{font-size:18px}.topbar-title span{font-size:12px;color:var(--repe-muted)}.topbar-actions{display:flex;align-items:center;gap:12px}.user-chip{display:flex;flex-direction:column;padding:7px 10px;border-radius:8px;background:#F0F4F6}.user-chip span{font-size:12px;font-weight:700}.user-chip small{font-size:9px;color:var(--repe-muted)}
.page{max-width:1500px;padding:28px;margin:auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header h1{margin:0;font-size:26px;color:var(--repe-slate)}.page-header p{margin:5px 0 0;color:var(--repe-muted);font-size:13px}
.card,.table-card,.stat-card{background:#fff;border:1px solid var(--repe-line);border-radius:10px;box-shadow:var(--shadow)}.card{padding:20px}.section-card{margin-top:18px}.section-card h2{margin-bottom:8px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stat-card{padding:18px}.stat-card span{display:block;color:var(--repe-muted);font-size:12px}.stat-card strong{display:block;margin-top:8px;color:var(--repe-slate);font-size:30px}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.action-tile{padding:16px;border:1px solid var(--repe-line);border-radius:9px;background:#FBFDFD}.action-tile b{display:block;color:var(--repe-slate)}.action-tile span{display:block;color:var(--repe-muted);font-size:12px;margin-top:5px}
.button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;min-height:40px}.button.primary{background:var(--repe-blue);color:#fff}.button.secondary{background:#EDF2F4;color:var(--repe-slate);border:1px solid var(--repe-line)}.button.full{width:100%}.text-button,.link-button{border:0;background:transparent;color:var(--repe-blue);font-size:12px;font-weight:700;padding:6px}.icon-button{border:0;background:transparent;font-size:22px}.table-link{color:var(--repe-blue);font-weight:700;font-size:12px}
.field-label{display:block;font-size:12px;font-weight:700;color:var(--repe-slate);margin:0 0 6px}.input{width:100%;min-height:42px;padding:10px 11px;border-radius:8px;border:1px solid #BBC8CE;background:#fff;color:var(--repe-text);outline:none}.input:focus{border-color:var(--repe-blue);box-shadow:0 0 0 3px rgba(70,105,129,.12)}.pin-input{letter-spacing:.3em;font-size:20px}
.form-card{max-width:900px}.form-card.narrow{max-width:560px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.table-card{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th,.data-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--repe-line);font-size:12px;vertical-align:middle}.data-table th{background:#F1F5F6;color:var(--repe-slate);text-transform:uppercase;letter-spacing:.03em;font-size:10px}.data-table tr:last-child td{border-bottom:0}.empty{text-align:center!important;color:var(--repe-muted);padding:28px!important}.actions-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}
.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#EAF0F2;color:var(--repe-slate);font-size:10px;font-weight:800}.status-chip.success{background:#E5EFE8;color:var(--repe-success)}.status-chip.warning{background:#F5EAD5;color:#8A621F}
.alert{border-radius:8px;padding:12px 14px;margin-bottom:16px;font-size:13px}.alert.success{background:#E5EFE8;border:1px solid #C6DDCC;color:#315A40}.alert.error{background:#F7E8E8;border:1px solid #E8C2C2;color:#8A3939}.alert.warning{background:#F7EDDB;border:1px solid #E9D3A8;color:#745119}.temporary-pin{font-size:28px;font-weight:800;letter-spacing:.16em;margin:8px 0;color:var(--repe-slate)}.notice{padding:12px;border-left:3px solid var(--repe-blue);background:#F2F6F8;border-radius:0 8px 8px 0;color:var(--repe-muted);font-size:13px}
.filter-bar{display:flex;gap:10px;margin-bottom:14px}.filter-bar .input{max-width:240px}
.guest-body{background:linear-gradient(150deg,#F5F7F8 0%,#EAF0F2 100%);min-height:100vh}.guest-toolbar{height:54px;display:flex;justify-content:flex-end;align-items:center;padding:0 20px}.guest-container{min-height:calc(100vh - 54px);display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,420px);background:#fff;border:1px solid var(--repe-line);border-radius:12px;padding:30px;box-shadow:0 16px 45px rgba(38,54,64,.12)}.auth-card.compact{text-align:center}.auth-brand{text-align:center;margin-bottom:24px}.auth-logo{margin:0 auto 10px;width:52px;height:52px;font-size:24px}.auth-brand h1{margin:0;color:var(--repe-slate);font-size:32px}.auth-brand p{margin:4px 0 0;color:var(--repe-muted)}.auth-card .field-label{margin-top:14px}.auth-card .button{margin-top:18px}.auth-link{display:block;text-align:center;color:var(--repe-blue);font-size:12px;font-weight:700;margin-top:16px}
.offline-banner{position:fixed;left:0;right:0;top:0;z-index:100;background:#8A621F;color:#fff;padding:8px 14px;font-size:12px;text-align:center}.offline-banner strong{margin-right:8px}
.mobile-only{display:none}
@media(max-width:900px){
 .app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;width:240px;transition:left .2s}.sidebar.open{left:0}.mobile-only{display:block}
 .topbar{padding:0 12px}.topbar-title span,.user-chip small{display:none}.topbar-actions{gap:5px}.user-chip{display:none}
 .page{padding:18px 14px}.stats-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}
 .page-header{align-items:flex-start}.page-header h1{font-size:22px}.filter-bar{flex-direction:column}.filter-bar .input{max-width:none}
}
@media(max-width:520px){
 .auth-card{padding:24px 18px;border-radius:10px}.page-header{flex-direction:column}.page-header .button{width:100%}.form-actions .button{flex:1}
}


/* ===== REPE V3 · TIME ENTRY ===== */
.time-entry-header{align-items:flex-start}
.save-cluster{display:flex;align-items:center;gap:10px}
.save-indicator{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:6px 9px;border-radius:999px;background:#EAF0F2;color:var(--repe-slate)}
.save-indicator.saved{background:#E5EFE8;color:var(--repe-success)}
.save-indicator.saving{background:#E8EEF5;color:var(--repe-blue)}
.save-indicator.error{background:#F7E8E8;color:var(--repe-error)}
.save-indicator.offline{background:#F5EAD5;color:#8A621F}
.employee-picker-card{padding:16px;margin-bottom:14px}
.employee-picker-grid{display:grid;grid-template-columns:minmax(260px,520px) 1fr;gap:18px;align-items:end}
.employee-meta{display:flex;flex-direction:column;padding:0 0 4px}
.employee-meta span{font-weight:800;color:var(--repe-slate)}
.employee-meta small{margin-top:3px;color:var(--repe-muted)}
.time-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.summary-card{background:#fff;border:1px solid var(--repe-line);border-radius:10px;padding:15px 17px;box-shadow:var(--shadow)}
.summary-card span{display:block;font-size:11px;color:var(--repe-muted);font-weight:700}
.summary-card strong{display:inline-block;font-size:28px;color:var(--repe-slate);margin-top:5px}
.summary-card small{font-size:10px;color:var(--repe-muted);margin-left:4px}
.summary-card.overtime strong{color:var(--repe-warning)}
.overtime-warning{margin-bottom:14px}
.time-entry-actions{display:flex;justify-content:flex-end;margin:12px 0}
.time-grid-scroll{overflow:auto}
.time-grid{min-width:1180px;table-layout:fixed}
.time-grid .project-col{width:190px}
.time-grid th:not(.project-col){width:125px;text-align:center}
.time-grid td{height:96px}
.project-cell strong{display:block;color:var(--repe-slate)}
.project-cell span{display:block;margin-top:4px;color:var(--repe-muted);font-size:11px}
.paused-label{display:inline-block;margin-top:7px;color:#8A621F;background:#F5EAD5;border-radius:999px;padding:3px 6px}
.day-cell{position:relative;padding:8px!important}
.day-periods{display:flex;flex-direction:column;gap:5px}
.period-pill{width:100%;border:1px solid #C7D2D7;background:#F8FBFC;border-radius:8px;padding:7px;text-align:left;color:var(--repe-text);font-size:10px}
.period-pill:hover{border-color:var(--repe-blue);background:#F1F6F8}
.period-pill.readonly{cursor:default}
.period-pill span{display:block}
.period-pill strong{display:block;margin-top:3px;color:var(--repe-slate)}
.period-ot{display:inline-block!important;margin-top:4px;color:#8A621F!important;font-size:9px;font-weight:800}
.cell-add{border:0;background:#EDF2F4;color:var(--repe-blue);border-radius:7px;width:28px;height:28px;margin-top:6px;font-weight:800}
.cell-add.text{width:auto;height:auto;padding:5px 7px;font-size:10px}
.project-total{font-size:16px!important;font-weight:800;text-align:center!important;color:var(--repe-slate)}
.mobile-time-entry{display:none}
.mobile-project-card{background:#fff;border:1px solid var(--repe-line);border-radius:10px;overflow:hidden;margin-bottom:12px;box-shadow:var(--shadow)}
.mobile-project-head{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;background:#F1F5F6}
.mobile-project-head strong{font-size:13px;color:var(--repe-slate)}
.mobile-project-head small{display:block;color:var(--repe-muted);margin-top:3px}
.mobile-project-head>span{font-weight:800;color:var(--repe-slate)}
.mobile-project-body{padding:0 14px 12px}
.mobile-day{padding:12px 0;border-bottom:1px solid var(--repe-line)}
.mobile-day-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.mobile-day-title>strong{font-size:11px;color:var(--repe-slate)}
.mobile-day .period-pill{margin-bottom:5px}
.mobile-project-total{padding-top:12px;display:flex;justify-content:space-between;color:var(--repe-muted);font-size:11px}
.mobile-project-total strong{font-size:14px;color:var(--repe-slate)}
.muted-small{color:var(--repe-muted);font-size:11px}
.break-card{margin-top:15px}
.section-heading h2{margin:0;color:var(--repe-slate);font-size:18px}
.section-heading p{margin:4px 0 14px;color:var(--repe-muted);font-size:11px}
.break-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.break-item label{display:block;font-weight:800;font-size:10px;color:var(--repe-slate);margin-bottom:5px}
.break-item .input{min-height:38px;padding:8px;font-size:11px}
.admin-note-item{display:flex;flex-direction:column;gap:5px}
.repe-dialog{width:min(92vw,650px);border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px rgba(38,54,64,.24);color:var(--repe-text)}
.repe-dialog::backdrop{background:rgba(20,30,36,.45)}
.repe-dialog form{padding:20px}
.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}
.dialog-header h2{margin:0;color:var(--repe-slate)}
.dialog-header p{margin:4px 0 0;color:var(--repe-muted);font-size:11px}
.dialog-actions{display:flex;gap:8px;align-items:center;margin-top:18px}
.dialog-spacer{flex:1}
.button.danger{background:#F7E8E8;color:var(--repe-error);border:1px solid #E6C3C3}
.toast{position:fixed;right:20px;bottom:20px;z-index:1000;background:var(--repe-slate);color:#fff;border-radius:8px;padding:11px 14px;box-shadow:0 12px 30px rgba(0,0,0,.18);font-size:12px;max-width:360px}
.toast.error{background:var(--repe-error)}
.toast.success{background:var(--repe-success)}
@media(max-width:1050px){.break-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){
 .desktop-time-entry{display:none}.mobile-time-entry{display:block}
 .employee-picker-grid{grid-template-columns:1fr}.employee-meta{padding-top:4px}
 .time-summary-grid{grid-template-columns:repeat(3,1fr);gap:7px}
 .summary-card{padding:12px 9px}.summary-card strong{font-size:19px}.summary-card span{font-size:9px}.summary-card small{display:none}
 .save-cluster{width:100%;justify-content:space-between}
 .time-entry-actions .button{width:100%}
 .break-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .repe-dialog{width:calc(100vw - 20px);max-height:90vh;overflow:auto}
 .dialog-actions{flex-wrap:wrap}.dialog-spacer{display:none}.dialog-actions .button{flex:1}
}
@media(max-width:420px){
 .break-grid{grid-template-columns:1fr}
 .time-summary-grid{gap:5px}
 .summary-card strong{font-size:17px}
}


/* ===== REPE V4 · REPORTS / HISTORY / FINANCIAL ===== */
.week-navigation{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.button.compact{min-height:32px;padding:6px 9px;font-size:11px}
.report-filter-card{margin-bottom:14px}
.report-filter-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,260px) auto;gap:12px;align-items:end}
.history-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:10px;align-items:end}
.financial-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;align-items:end}
.filter-submit{display:flex;align-items:end}
.report-summary-header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}
.report-summary-header strong{display:block;color:var(--repe-slate)}
.report-summary-header span{display:block;color:var(--repe-muted);font-size:11px;margin-top:4px}
.report-project-section{margin:12px 0}
.report-section-heading{display:flex;justify-content:space-between;align-items:center}
.report-section-heading strong{font-size:18px;color:var(--repe-slate)}
.table-card.flat{box-shadow:none;border-radius:8px}
.project-report-table{min-width:1250px}
.financial-table{min-width:1500px}
.report-export-card{margin-top:14px}
.signature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.financial-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.financial-total strong{color:var(--repe-teal)}
.offline-library-link{display:inline-flex;margin-top:10px;color:var(--repe-blue);font-size:11px;font-weight:700}
@media(max-width:1000px){
 .history-filter-grid,.financial-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .signature-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
 .report-filter-grid,.history-filter-grid,.financial-filter-grid{grid-template-columns:1fr}
 .report-summary-header{flex-direction:column;align-items:flex-start}
 .financial-summary-grid{grid-template-columns:1fr}
}


/* ===== REPE V5 · PRODUCTION / WEEKLY CLOSE / ANNUAL BACKUP ===== */
.weekly-transition-banner{
 position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:1500;
 display:grid;grid-template-columns:auto auto auto;align-items:center;gap:12px;
 max-width:calc(100vw - 28px);padding:10px 14px;background:#263640;color:#fff;
 border-radius:10px;box-shadow:0 12px 35px rgba(0,0,0,.22);font-size:11px
}
.weekly-transition-banner[hidden]{display:none}
.weekly-transition-banner strong{font-size:11px}
.weekly-transition-banner span{font-size:17px;font-variant-numeric:tabular-nums;font-weight:800}
.weekly-transition-banner small{opacity:.65}
.weekly-transition-banner.critical{background:#7B3A31}
.maintenance-login{text-align:center;padding:10px 0 18px}
.maintenance-login h2{margin:0 0 6px;color:var(--repe-slate)}
.maintenance-login p{margin:0 0 12px;color:var(--repe-muted)}
.maintenance-count{font-size:35px;font-weight:800;color:var(--repe-blue);font-variant-numeric:tabular-nums;margin:10px 0}
.modal-overlay{position:fixed;inset:0;background:rgba(21,31,37,.55);display:grid;place-items:center;padding:18px;z-index:1600}
.modal-card{width:min(560px,100%);background:white;border-radius:12px;padding:22px;box-shadow:0 25px 75px rgba(0,0,0,.25)}
.modal-card h2{color:var(--repe-slate);margin:12px 0 7px}
.modal-card p{color:var(--repe-muted);line-height:1.5}
.modal-card .button{margin-right:6px}
.status-chip.success{background:#E5EFE8;color:var(--repe-success)}
.status-chip.danger{background:#F7E8E8;color:var(--repe-error)}
.annual-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.annual-step{position:relative;padding-top:20px}
.step-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--repe-slate);color:#fff;font-weight:800;font-size:12px}
.annual-step h2{margin:10px 0 6px;color:var(--repe-slate)}
.annual-step h3{font-size:12px;color:var(--repe-slate);margin:16px 0 7px}
.annual-step p{font-size:11px;color:var(--repe-muted);line-height:1.5}
.status-detail{padding:10px;border-radius:8px;background:#E5EFE8;color:var(--repe-success);font-weight:700;font-size:11px}
.processing-box{padding:12px;background:#EEF3F5;border-radius:8px}
.backup-meta{display:grid;grid-template-columns:80px 1fr;gap:7px;margin:10px 0 14px;font-size:11px}
.backup-meta dt{color:var(--repe-muted);font-weight:700}
.backup-meta dd{margin:0;overflow-wrap:anywhere}
.backup-meta code,.hash-help code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}
.hash-help{margin:14px 0;padding:10px;background:#F5F7F8;border:1px solid var(--repe-line);border-radius:8px}
.hash-help code{display:block;margin:6px 0;white-space:normal;overflow-wrap:anywhere}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.check-row{display:flex;gap:9px;align-items:flex-start;padding:9px 0;font-size:11px}
.check-row input{margin-top:3px}
.scope-list{margin:8px 0 12px;padding-left:18px;font-size:11px;line-height:1.7}
.preserved-note{padding:9px;background:#EAF0F2;border-radius:8px;color:var(--repe-slate)!important}
.project-cleanup-option{border-top:1px solid var(--repe-line)}
.confirmation-phrase{display:inline-block;background:#263640;color:#fff;border-radius:6px;padding:6px 9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;margin-bottom:7px}
.cleanup-summary{max-height:250px;overflow:auto;background:#F5F7F8;border:1px solid var(--repe-line);padding:10px;border-radius:8px;font-size:9px}
.danger-zone{border-color:#E6C3C3}
@media(max-width:800px){
 .annual-step-grid{grid-template-columns:1fr}
 .weekly-transition-banner{grid-template-columns:1fr auto;gap:4px 10px}
 .weekly-transition-banner small{grid-column:1/-1}
}
