/* Default values — overridden by :root injection from EJS views */
:root {
    --color-primary: #2767A8;
    --color-accent:  #f27c21;
}

body {
    padding: 0;
    margin: 0;
    font: 10px "Verdana", Helvetica, Arial, sans-serif;
    background-color: #F5F5F5;
    box-sizing: border-box;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    font-size: 10pt;
}

a:hover {
    opacity: 0.7;
}

h1 {
    color: var(--color-primary);
    font-size: 24pt;
    margin: 0 0 10px 0;
    padding: 0 0 8px 0;
    border-bottom: 2px solid var(--color-primary);
}

h2 {
    color: var(--color-primary);
    font-size: 18pt;
    margin: 0 0 10px 0;
    padding: 0 0 8px 0;
    border-bottom: 2px solid var(--color-primary);
}

h3 {
    color: var(--color-primary);
    font-size: 12pt;
    margin: 0 0 4px 0;
    padding: 0 0 4px 0;
    border-bottom: 1px solid var(--color-primary);
}

input {
    outline: none;
}

/* ── Login ─────────────────────────────────────────────────── */

.login {
    box-sizing: border-box;
    font-size: 10pt;
    width: 350px;
    margin: 50px auto;
    text-align: center;
}

/* ── Top bar ────────────────────────────────────────────────── */

.topbar {
    display: none;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 10px;
    background: var(--color-primary);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

/* ── Inputs ─────────────────────────────────────────────────── */

.input {
    margin: 0 2px;
    padding: 5px 6px;
    width: 250px;
    font-size: 11pt;
    font-family: Verdana;
    border-radius: 3px;
    border: 1px solid #AAAAAA;
    outline: none;
    background: #FFFFFF;
    color: #333333;
}

.input:focus {
    border-color: var(--color-primary);
}

/* ── Buttons — base ─────────────────────────────────────────── */

.button,
.greenbutton,
.redbutton,
.bluebutton {
    margin: 0 2px;
    padding: 5px 8px;
    color: #FFFFFF;
    font-size: 11pt;
    font-family: Verdana;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: filter 0.15s;
}

.button,
.greenbutton,
.redbutton,
.bluebutton {
    width: 120px;
}

/* ── Button variants ────────────────────────────────────────── */

.button         { background: var(--color-accent); }
.greenbutton    { background: #43A047; }
.redbutton      { background: #E53935; }
.bluebutton     { background: #1E88E5; }

.button:hover,
.greenbutton:hover,
.redbutton:hover,
.bluebutton:hover {
    filter: brightness(0.85);
}

/* ── User / logout area ─────────────────────────────────────── */

.logout {
    float: right;
    margin-left: 30px;
    display: flex;
    align-items: center;
}

.logout .user-info {
    margin-right: 15px;
    font-size: 14px;
    font-weight: bold;
    color: #FFF;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.logout .user-info .role {
    font-size: 10px;
    font-weight: normal;
    opacity: 0.85;
}

.logout input {
    width: 80px;
}

/* ── Month/year navigation ──────────────────────────────────── */

.monthyear {
    float: right;
    margin-left: 5px;
}

.monthyear input  { width: 60px; }
.monthyear select { width: 120px; }

/* ── Main content area ──────────────────────────────────────── */

.content {
    display: none;
    box-sizing: border-box;
    margin-top: 60px;
    padding: 10px;
}

.content_print {
    box-sizing: border-box;
    padding: 5px;
}

/* ── Calendar tables ────────────────────────────────────────── */

.tbcalendar {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
    border: 1px solid var(--color-primary);
}

.tbcalendar td {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 1px;
    border: 1px dotted var(--color-primary);
    text-align: center;
}

.tbpcalendar {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
    border: 2px solid var(--color-primary);
}

.tbpcalendar td {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 1px;
    border: 1px dotted var(--color-primary);
    text-align: center;
}

.tday   { font-size: 10pt; font-weight: bold; }
.thours { font-size: 10pt; font-weight: bold; }
.tminutes { font-size: 7pt; }

.bg-sab { background-color: #FFF3CD; }
.bg-dom { background-color: #FDDEDE; }

/* ── Customers print table ──────────────────────────────────── */

.dtbcustomers {
    width: 500px;
    margin: 10px auto;
    page-break-before: always;
    text-align: center;
}

.tbcustomers {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
}

.tbcustomers th {
    height: 18px;
    margin: 0;
    padding: 3px;
    border: 1px dotted var(--color-primary);
    text-align: left;
    font-size: 10pt;
}

.tbcustomers td {
    height: 18px;
    margin: 0;
    padding: 3px;
    border: 1px dotted var(--color-primary);
    text-align: left;
    font-size: 8pt;
}

/* ── Calendar column separators ────────────────────────────── */

.tdhours  { border-left: 1px solid var(--color-primary) !important; }
.tdphours { border-left: 2px solid var(--color-primary) !important; }

/* ── Generic dotted table ───────────────────────────────────── */

.tbdotted {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
}

.tbdotted th,
.tbdotted td {
    height: 22px;
    margin: 0;
    padding: 3px;
    border: 1px dotted var(--color-primary);
    text-align: left;
    font-size: 10pt;
}

/* ── Customer row selection ─────────────────────────────────── */

.rcustomer:hover {
    cursor: pointer;
    background-color: #16BE59;
    color: white;
    font-weight: bold;
}

.rcustomerselected {
    background-color: #E53935;
    color: white;
    font-weight: bold;
}

/* ── Misc ───────────────────────────────────────────────────── */

.msglongcontent { font-size: 9pt; }

.dover {
    padding: 10px;
    font-size: 10pt;
}

.checkbox { margin-left: 12px; }

.ts {
    text-align: right;
    font-size: 10pt;
}
