:root{--color-bg:#fafaf8;--color-primary:#2e7d32;--color-danger:#c62828;--color-text:#1a1a1a;--color-muted:#666;--radius:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}button{cursor:pointer;border-radius:var(--radius);border:none;padding:14px;font-size:1rem}input,textarea,select{border:1px solid #ccc;border-radius:10px;width:100%;margin:6px 0 14px;padding:12px;font-size:1rem}.app-loading{justify-content:center;align-items:center;height:100vh;display:flex}.login-screen{text-align:center;max-width:360px;margin:15vh auto;padding:24px}.login-screen h1{margin-bottom:4px}.login-error{color:var(--color-danger)}.employee-home{text-align:center;max-width:420px;margin:0 auto;padding:24px 20px}.employee-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.9rem;display:flex}.logout-link{color:var(--color-muted);background:0 0;padding:4px;text-decoration:underline}.employee-date{text-transform:capitalize;color:var(--color-muted);margin-bottom:20px}.employee-status{margin-bottom:24px;font-size:1.1rem;font-weight:700}.status-working{color:var(--color-primary)}.status-out{color:var(--color-danger)}.clock-button-wrapper{margin-bottom:20px}.clock-button{color:#fff;width:100%;height:90px;font-size:1.6rem;font-weight:700}.clock-button--in{background:var(--color-primary)}.clock-button--out{background:var(--color-danger)}.clock-feedback{white-space:pre-line;margin-top:10px}.clock-feedback--ok{color:var(--color-primary)}.clock-feedback--error{color:var(--color-danger)}.new-request-button{color:#fff;background:#1565c0;width:100%;height:56px;margin-bottom:24px;font-weight:700}.secondary-links{justify-content:space-around;display:flex}.secondary-links button{color:#1565c0;background:0 0;padding:4px;font-size:.9rem}.sub-screen{max-width:420px;margin:0 auto;padding:20px}.sub-screen-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.sub-screen-header button{background:0 0;padding:4px}.modal-overlay{z-index:50;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.request-modal,.employee-form-modal{border-radius:var(--radius);background:#fff;width:100%;max-width:380px;max-height:90vh;padding:24px;overflow-y:auto}.request-type-button{text-align:left;background:#f0f0f0;width:100%;margin-bottom:10px}.request-cancel{width:100%;color:var(--color-muted);background:0 0}.request-submit{background:var(--color-primary);color:#fff;width:100%;font-weight:700}.request-error,.form-error{color:var(--color-danger)}table{border-collapse:collapse;width:100%;margin-top:12px}th,td{text-align:left;border-bottom:1px solid #eee;padding:8px}.row-anomaly{background:#fff3e0}.admin-home{max-width:960px;margin:0 auto;padding:24px}.admin-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.admin-tabs{gap:8px;margin-bottom:24px;display:flex}.admin-tabs button{background:#eee}.admin-tabs button.active{background:var(--color-primary);color:#fff}.admin-dashboard section{margin-bottom:32px}.working-badge{background:#e8f5e9;border-radius:20px;margin:4px;padding:6px 12px;display:inline-block}.request-card,.incident-card,.my-request-card{background:#fff;border:1px solid #eee;border-radius:10px;margin-bottom:10px;padding:14px}.request-actions{gap:8px;margin-top:10px;display:flex}.request-actions button:first-child{background:var(--color-primary);color:#fff}.request-actions button:last-child{background:var(--color-danger);color:#fff}.panel-header{margin-bottom:16px}.calendar-nav{text-transform:capitalize;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:var(--color-muted);font-size:.8rem;font-weight:700}.calendar-cell{aspect-ratio:1;border:1px solid #eee;border-radius:6px;padding:4px;font-size:.8rem}.calendar-cell.empty{border:none}.calendar-dots{flex-wrap:wrap;gap:2px;margin-top:4px;display:flex}.calendar-dot{border-radius:50%;width:6px;height:6px}
