:root {
    --bg: #eef2f5;
    --surface: #ffffff;
    --surface-soft: #f7f9fb;
    --text: #273746;
    --muted: #748291;
    --border: #d7e0e7;
    --border-strong: #bccad5;
    --primary: #3d7187;
    --primary-dark: #2f5e72;
    --danger: #b94b4b;
    --success: #3a7a5a;
    --warning: #9b6b20;
    --shadow: 0 8px 28px rgba(29, 49, 66, .12);
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: Inter, Arial, Helvetica, sans-serif; font-size: 14px; }
a { color: var(--primary-dark); text-decoration: none; }
a:hover { text-decoration: none; }
button, input, select { font: inherit; }

.topbar { height: 54px; display: flex; align-items: stretch; background: #2e4756; color: #fff; padding: 0 22px; box-shadow: 0 2px 8px rgba(0,0,0,.16); position: sticky; top: 0; z-index: 5000; }
.brand { display: flex; align-items: center; min-width: 150px; padding-right: 24px; color: #fff; font-weight: 700; font-size: 18px; letter-spacing: .2px; }
.brand:hover { color: #fff; }
.main-menu { display: flex; align-items: stretch; gap: 2px; }
.menu-link { display: flex; align-items: center; border: 0; background: transparent; color: #eaf1f4; padding: 0 16px; cursor: pointer; white-space: nowrap; }
.menu-link:hover, .menu-link.active, .menu-dropdown:hover > .menu-link { color: #fff; background: rgba(255,255,255,.1); }
.menu-button { height: 100%; }
.caret { margin-left: 6px; font-size: 11px; }
.menu-dropdown { position: relative; }
.dropdown-panel { position: absolute; top: 100%; left: 0; min-width: 180px; display: none; background: #fff; border: 1px solid var(--border); border-radius: 0 0 6px 6px; box-shadow: var(--shadow); overflow: hidden; }
.menu-dropdown:hover .dropdown-panel, .menu-dropdown.open .dropdown-panel { display: block; }
.dropdown-panel a { display: block; padding: 11px 14px; color: var(--text); }
.dropdown-panel a:hover, .dropdown-panel a.active { background: var(--surface-soft); color: var(--primary-dark); font-weight: 700; }
.dropdown-right { left: auto; right: 0; }
.account-menu { margin-left: auto; display:flex; align-items:stretch; }
.account-menu.menu-dropdown:hover > .dropdown-panel { display:none; }
.account-menu.menu-dropdown.open > .dropdown-panel { display:block; }
.topbar-comment-alert-wrap { position:relative; align-self:center; display:inline-flex; }
.topbar-comment-preview { position:absolute; z-index:1200; top:calc(100% + 8px); right:0; width:min(560px, 92vw); max-height:min(650px, 78vh); overflow:hidden; border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:0 18px 42px rgba(16,24,40,.22); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-5px); transition:opacity .12s ease, transform .12s ease, visibility .12s; }
.topbar-comment-alert-wrap.is-open .topbar-comment-preview { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.topbar-comment-preview-title { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:12px 14px 10px; border-bottom:1px solid var(--border); color:var(--text); background:#f8fafb; }
.topbar-comment-preview-title > span { font-size:13px; font-weight:800; }
.topbar-comment-preview-title small { color:var(--muted); font-size:10px; font-weight:500; text-align:right; }
.topbar-comment-preview-list { max-height:min(590px, 70vh); overflow:auto; }
.topbar-comment-preview-item { display:grid; gap:7px; padding:12px 14px; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; background:#fff; }
.topbar-comment-preview-item:last-child { border-bottom:0; }
.topbar-comment-preview-item:hover, .topbar-comment-preview-item:focus-visible { background:#fff9e5; outline:none; }
.topbar-comment-preview-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.topbar-comment-preview-head > span { display:grid; gap:2px; min-width:0; }
.topbar-comment-preview-head strong { font-size:13px; overflow-wrap:anywhere; }
.topbar-comment-preview-head small, .topbar-comment-preview-head time { color:var(--muted); font-size:10px; white-space:nowrap; }
.topbar-comment-preview-context { color:#4b5f6d; font-size:11px; overflow-wrap:anywhere; }
.topbar-comment-preview-author { width:max-content; max-width:100%; padding:2px 6px; border-radius:999px; background:#eef3f6; color:#425563; font-size:10px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topbar-comment-preview-message { font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.topbar-comment-alert { align-self:center; display:inline-flex; align-items:center; justify-content:center; gap:2px; min-width:30px; height:30px; margin-right:2px; padding:0 6px; border:1px solid #e0b33a; border-radius:7px; background:#fff4bf; color:#6d4d00; font-size:15px; line-height:1; box-shadow:0 0 0 2px rgba(255,216,96,.12); animation:topbarCommentBlink 1.15s ease-in-out infinite; }
.topbar-comment-alert:hover { background:#ffe998; color:#5d4100; }
.topbar-comment-count { font-size:10px; font-weight:800; line-height:1; }
@keyframes topbarCommentBlink { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.38; transform:scale(.94); } }
@media (prefers-reduced-motion: reduce) { .topbar-comment-alert { animation:none; } }
.menu-toggle { display: none; color: #fff; background: transparent; border: 0; font-size: 22px; }

.page-shell { padding: 20px 24px 36px; width: 100%; }
.login-shell { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 22px; background: linear-gradient(135deg, #e7edf1 0%, #f6f8fa 100%); }
.page-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 14px; padding: 0 0 10px; border-bottom: 1px solid var(--border); }
.page-header h1 { font-size: 24px; margin: 0; line-height: 1.25; font-weight: 650; }
.page-header p { margin: 4px 0 0; color: var(--muted); }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 7px; box-shadow: 0 2px 8px rgba(28, 49, 66, .05); padding: 18px; }
.narrow-panel, .form-panel { max-width: 620px; }
.table-panel { padding: 0; overflow: auto; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; border: 1px solid var(--border-strong); border-radius: 5px; background: #fff; color: var(--text); padding: 6px 13px; cursor: pointer; transition: background .12s, border-color .12s; }
.btn:hover { background: #f1f5f7; border-color: #aebdc8; }
.btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.btn-danger { background: #fff; color: var(--danger); border-color: #dcb7b7; }
.btn-danger:hover { background: #fff1f1; }
.btn-small { min-height: 28px; padding: 4px 9px; font-size: 12px; }
.btn-block { width: 100%; }
.icon-btn { width: 32px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border-strong); background: #fff; border-radius: 5px; cursor: pointer; color: #405764; }
.icon-btn:hover { background: #edf4f7; border-color: #9fb6c4; }

input, select { width: 100%; min-height: 34px; border: 1px solid var(--border-strong); border-radius: 5px; background: #fff; color: var(--text); padding: 6px 9px; outline: none; }
input:focus, select:focus { border-color: #719bad; box-shadow: 0 0 0 3px rgba(61,113,135,.12); }
label { display: block; color: #40515e; font-size: 13px; font-weight: 600; }
label input, label select { margin-top: 5px; font-weight: 400; }
.stack-form { display: grid; gap: 15px; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 5px; }
.check-line { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.check-line input { width: auto; min-height: auto; margin: 0; }
.muted { color: var(--muted); font-weight: 400; }

.login-card { width: 390px; max-width: 100%; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 30px; }
.login-brand { color: var(--primary); font-size: 14px; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; }
.login-card h1 { margin: 8px 0 2px; font-size: 28px; }
.login-card .muted { margin: 0 0 22px; }
.alert { padding: 11px 13px; margin: 0 0 14px; border-radius: 5px; border: 1px solid var(--border); background: #f8fafb; }
.alert-error { color: #8f3030; background: #fff0f0; border-color: #e2bdbd; }
.alert-success { color: #266044; background: #eef8f2; border-color: #bcdac8; }
.alert-info { color: #2e596c; background: #eef6f9; border-color: #bed4de; }

.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.data-table th { background: #f2f6f8; color: #455966; font-size: 12px; text-transform: uppercase; letter-spacing: .25px; }
.data-table tr:last-child td { border-bottom: 0; }
.actions-col { width: 180px; }
.row-actions { text-align: right; white-space: nowrap; }
.row-actions > .btn,
.row-actions > form,
.row-actions > .muted { margin-left: 6px; vertical-align: middle; }
.row-actions > :first-child { margin-left: 0; }
.row-actions form { display: inline-flex; margin-top: 0; margin-bottom: 0; }
.row-actions .muted { display: inline-flex; min-height: 28px; align-items: center; padding: 0 4px; }
.row-actions .btn[disabled] { opacity: .48; cursor: not-allowed; }
.badge { display: inline-block; border: 1px solid #cbd6dd; background: #f5f8fa; border-radius: 999px; padding: 3px 8px; font-size: 11px; }
.status { display: inline-block; font-size: 12px; font-weight: 700; }
.status-active { color: var(--success); }
.status-inactive { color: var(--muted); }

.schedule-page { --scale: var(--table-scale, 1); width: 100%; }
.schedule-titlebar { margin-bottom: 10px; }
.schedule-title-actions { display: flex; align-items: center; gap: 10px; min-width: 0; }
.schedule-title-actions h1 { margin: 0; }
.schedule-table-actions { display: flex; justify-content: flex-start; align-items: center; margin: 6px 0 6px; }
.schedule-add-row-btn { width: 38px; min-width: 38px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; }
.schedule-add-row-btn span { font-size: 24px; line-height: 1; font-weight: 500; transform: translateY(-1px); }
.header-actions { display: flex; gap: 6px; }
.schedule-controls { overflow: hidden; max-height: 320px; opacity: 1; transition: max-height .2s, opacity .16s, margin .2s; }
.schedule-page.controls-collapsed .schedule-controls { max-height: 0; opacity: 0; pointer-events: none; }
.toolbar-row { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; background: #f7f9fb; border: 1px solid var(--border); border-radius: 6px; padding: 10px; }
.toolbar-row label { min-width: 130px; }
.toolbar-row .period-form { display: flex; align-items: flex-end; gap: 6px; }
.toolbar-row .period-form label { width: 160px; }
.grow-field { flex: 1 1 240px; }
.save-schedule-btn { min-width: 86px; }
.kpi-row { display: flex; gap: 9px; flex-wrap: wrap; align-items: stretch; margin: 9px 0; }
.kpi { min-width: 135px; background: #fff; border: 1px solid var(--border); border-left: 4px solid #6f9eb1; border-radius: 5px; padding: 8px 10px; }
.kpi span { display: block; font-size: 10px; text-transform: uppercase; color: var(--muted); letter-spacing: .35px; }
.kpi strong { display: block; margin-top: 2px; font-size: 18px; }
.schedule-note { margin-left: auto; display: flex; align-items: center; color: var(--muted); font-size: 12px; padding: 0 4px; }
.panel-toggle { height: 24px; position: relative; border-top: 1px solid var(--border); margin-top: 4px; }
.panel-toggle button { position: absolute; left: 50%; top: -1px; transform: translateX(-50%); min-width: 112px; height: 24px; border: 1px solid var(--border-strong); border-top: 0; border-radius: 0 0 14px 14px; background: #f5f8fa; color: #496675; cursor: pointer; font-size: 10px; font-weight: 700; text-transform: uppercase; }

.schedule-table-wrap { width: 100%; overflow: auto; background: #fff; border: 1px solid var(--border); border-radius: 6px; box-shadow: 0 2px 8px rgba(28,49,66,.05); max-height: calc(100vh - 185px); }
.schedule-table { border-collapse: separate; border-spacing: 0; min-width: max-content; font-size: calc(11px * var(--scale)); color: #2f3d47; }
.schedule-table th, .schedule-table td { border-right: 1px solid #dde5eb; border-bottom: 1px solid #dde5eb; padding: 0; text-align: center; height: calc(29px * var(--scale)); min-width: calc(27px * var(--scale)); }
.schedule-table th { position: sticky; top: 0; z-index: 8; background: #edf3f6; font-weight: 700; }
.schedule-table thead tr:nth-child(2) th { top: calc(29px * var(--scale)); }
.schedule-table .month-header { height: calc(29px * var(--scale)); background: #e8f0f4; letter-spacing: .2px; }
.day-head span { display: block; line-height: 1.05; }
.day-head small { display: block; font-size: .78em; color: #70808b; line-height: 1.05; }
.day-head.weekend { background: #f6e4e2; color: #8b413d; }
.day-head.holiday { box-shadow: inset 0 -3px 0 #c67269; }
.day-head.shortened { box-shadow: inset 0 -3px 0 #c49a44; }
.day-head.today, .schedule-cell.today, .total-day.today { box-shadow: inset 0 0 0 2px #d3a72b !important; }
.sticky-code { position: sticky !important; left: 0; min-width: calc(60px * var(--scale)) !important; max-width: calc(60px * var(--scale)); z-index: 7; background: #f9fbfc !important; }
.sticky-name { position: sticky !important; left: calc(60px * var(--scale)); min-width: calc(190px * var(--scale)) !important; max-width: calc(190px * var(--scale)); z-index: 7; background: #f9fbfc !important; text-align: left !important; padding: 0 calc(7px * var(--scale)) !important; }
thead .sticky-code, thead .sticky-name { z-index: 12; background: #e8f0f4 !important; }
.employee-row:nth-child(even) td { background-color: #fbfcfd; }
.employee-row:hover td { background-color: #fff8df; }
.employee-row:hover .sticky-code, .employee-row:hover .sticky-name { background-color: #fff8df !important; }
.employee-name-button { width: 100%; border: 0; background: transparent; text-align: left; padding: 0; color: #314f60; cursor: default; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-cell { cursor: text; font-weight: 650; min-width: calc(27px * var(--scale)); }
.schedule-cell span { display: block; min-width: calc(27px * var(--scale)); }
.schedule-cell input { width: calc(27px * var(--scale)); min-width: 0; height: calc(28px * var(--scale)); min-height: 0; border: 2px solid #5f8ca0; border-radius: 0; padding: 0; text-align: center; background: #fff; font-size: inherit; }
.cell-weekend { background: #fbeeed !important; color: #8a413c; }
.cell-vacation { background: #e4f4e8 !important; color: #25673c; }
.cell-sick { background: #fff0dc !important; color: #8c5912; }
.cell-off { color: #8b98a1; }
.summary-column { min-width: calc(54px * var(--scale)) !important; background: #f4f8fa !important; font-weight: 700; }
.total-overtime.positive, .total-all-overtime.positive { background: #fff0d8 !important; color: #9b5e05; }
.total-row td { position: sticky; bottom: 0; z-index: 6; background: #e8f0f4 !important; font-weight: 800; }
.total-row .sticky-code, .total-row .sticky-name { z-index: 9; }
.total-day { color: #38576a; }
.empty-state { padding: 30px; text-align: center; color: var(--muted); }

.schedule-page.hide-workDays .col-workDays,
.schedule-page.hide-hours .col-hours,
.schedule-page.hide-holidayHours .col-holidayHours,
.schedule-page.hide-norm .col-norm,
.schedule-page.hide-diff .col-diff,
.schedule-page.hide-overtime .col-overtime,
.schedule-page.hide-k .col-k { display: none !important; }

.modal { display: none; position: fixed; inset: 0; z-index: 10000; background: rgba(24, 38, 48, .48); align-items: center; justify-content: center; padding: 18px; }
.modal.open { display: flex; }
.modal-dialog { width: 700px; max-width: 96vw; max-height: 90vh; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border-strong); border-radius: 8px; box-shadow: 0 20px 55px rgba(0,0,0,.28); overflow: hidden; }
.modal-small { width: 440px; }
.modal-wide { width: min(1400px, calc(100vw - 36px)); }
.modal-header, .modal-footer { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 12px 15px; background: #f5f8fa; border-bottom: 1px solid var(--border); }
.modal-header h2 { margin: 0; font-size: 18px; }
.modal-close { margin-left: auto; }
button.modal-close { border: 0; background: transparent; font-size: 24px; line-height: 1; color: #5e6e79; cursor: pointer; }
.modal-body { overflow: auto; padding: 15px; }
.modal-footer { justify-content: flex-end; border-top: 1px solid var(--border); border-bottom: 0; }
.modal-footer .modal-close.btn { margin-left: 0; font-size: 14px; border: 1px solid var(--border-strong); background: #fff; }
.modal-status { margin-right: auto; color: var(--muted); }
.history-table-wrap { overflow: auto; max-height: 58vh; border: 1px solid var(--border); border-radius: 5px; margin-bottom: 10px; }
.history-filters { display: flex; gap: 8px; margin-bottom: 10px; }
.history-filters input { flex: 1; }
.history-filters select { width: 220px; }
.history-table { font-size: 12px; min-width: 1000px; }
.history-table th { position: sticky; top: 0; z-index: 2; }

.toast-container { position: fixed; top: 72px; left: 50%; transform: translateX(-50%); z-index: 20000; display: grid; gap: 8px; width: min(520px, calc(100vw - 28px)); pointer-events: none; }
.toast { background: #fff; border: 1px solid var(--border-strong); border-left: 5px solid var(--primary); border-radius: 6px; box-shadow: var(--shadow); padding: 12px 14px; pointer-events: auto; }
.toast.success { border-left-color: var(--success); }
.toast.error { border-left-color: var(--danger); }
.toast.fade { opacity: 0; transform: translateY(-6px); transition: opacity .2s, transform .2s; }

@media (max-width: 900px) {
    .topbar { padding: 0 12px; }
    .menu-toggle { display: block; margin-left: auto; }
    .main-menu { display: none; position: absolute; left: 0; right: 0; top: 54px; background: #2e4756; flex-direction: column; }
    .main-menu.open { display: flex; }
    .main-menu .menu-link { min-height: 44px; }
    .account-menu { margin-left: 4px; }
    .page-shell { padding: 14px 10px 28px; }
    .toolbar-row { align-items: stretch; }
    .toolbar-row label, .toolbar-row .period-form, .toolbar-row .period-form label { width: 100%; }
    .toolbar-row .period-form { align-items: flex-end; }
    .schedule-note { width: 100%; margin-left: 0; }
    .schedule-table-wrap { max-height: calc(100vh - 150px); }
    .history-filters { flex-direction: column; }
    .history-filters select { width: 100%; }
}



.field-help { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.45; }
.empty-table-cell { padding: 28px !important; text-align: center !important; color: var(--muted); }
button:disabled, .btn:disabled { opacity: .5; cursor: not-allowed; }

.info-panel { max-width: 920px; margin-top: 14px; color: #526571; background: #f7fafb; }

/* Roles */
.role-page-header { max-width: 1040px; }
.role-form-panel {
    width: min(1040px, 100%);
    max-width: none;
    padding: 22px;
}
.role-form { gap: 18px; }
.role-name-field > span,
.role-search-field > span {
    display: block;
    margin-bottom: 7px;
    color: #40515e;
    font-size: 13px;
    font-weight: 700;
}
.role-name-field input { min-height: 40px; font-size: 14px; }

.role-section {
    display: grid;
    gap: 12px;
}
.role-section-heading,
.role-picker-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.role-section-heading h2,
.role-picker-heading h2 {
    margin: 0;
    color: var(--text);
    font-size: 15px;
    line-height: 1.3;
}

.role-section-heading-compact {
    padding: 8px 2px 10px;
    margin-top: 4px;
    border-bottom: 1px solid #edf2f5;
}
.role-section-heading-compact h2 {
    font-size: 14px;
}
.role-section-heading-compact p {
    font-size: 11px;
}

.role-picker + .role-section .role-section-heading-compact,
.role-section + .role-section .role-section-heading-compact {
    margin-top: 10px;
}

.role-section-heading-compact + .role-scope-grid {
    margin-top: 2px;
}
.role-section-heading p,
.role-picker-heading p {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
}

.role-scope-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.scope-option {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: start;
    gap: 11px;
    min-height: 84px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fbfcfd;
    box-shadow: 0 1px 2px rgba(28, 49, 66, .03);
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s, transform .15s;
}
.scope-option:hover {
    border-color: #adc1cc;
    background: #f8fbfc;
    transform: translateY(-1px);
}
.scope-option.is-selected {
    border-color: #6f9aaa;
    background: #f0f6f8;
    box-shadow: 0 0 0 3px rgba(61, 113, 135, .09);
}
.scope-option > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
.scope-option-radio {
    position: relative;
    display: block;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border: 2px solid #aab9c3;
    border-radius: 50%;
    background: #fff;
}
.scope-option.is-selected .scope-option-radio { border-color: var(--primary); }
.scope-option.is-selected .scope-option-radio::after {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: var(--primary);
}
.scope-option-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.scope-option-copy strong {
    color: var(--text);
    font-size: 13px;
    line-height: 1.35;
}
.scope-option-copy small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
}
.scope-option-tag {
    align-self: start;
    white-space: nowrap;
    border: 1px solid #d5e0e6;
    border-radius: 999px;
    background: #fff;
    color: #60727f;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .15px;
}
.scope-option.is-selected .scope-option-tag {
    border-color: #b7d0da;
    background: #e7f1f5;
    color: #3b687b;
}

.role-employee-picker {
    display: grid;
    gap: 13px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #f7fafb;
}
.role-employee-picker[hidden] { display: none !important; }
.role-selected-count {
    flex: 0 0 auto;
    min-width: 92px;
    border: 1px solid #cbdbe2;
    border-radius: 999px;
    background: #fff;
    color: #60727f;
    padding: 4px 9px;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
}
.role-selected-count strong {
    color: var(--primary-dark);
    font-size: 13px;
}
.role-picker-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    align-items: end;
    gap: 10px;
}
.role-search-field { margin: 0; }
.role-search-box { position: relative; display: block; }
.role-search-box input {
    min-height: 38px;
    padding-left: 36px;
    background: #fff;
}
.role-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    z-index: 1;
    transform: translateY(-50%);
    color: #718490;
    font-size: 18px;
    line-height: 1;
    pointer-events: none;
}
.role-picker-actions {
    display: flex;
    gap: 7px;
    padding-bottom: 1px;
}
.role-picker-actions .btn { white-space: nowrap; }

.role-employee-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    max-height: 320px;
    overflow: auto;
    padding: 1px 4px 1px 1px;
    background: transparent;
    scrollbar-gutter: stable;
}
.role-employee-item {
    position: relative;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.role-employee-item:hover {
    border-color: #aec1cc;
    background: #fbfdfe;
}
.role-employee-item.is-selected {
    border-color: #7da3b3;
    background: #f1f7f9;
    box-shadow: inset 3px 0 0 var(--primary);
}
.role-employee-item[hidden] { display: none !important; }
.role-employee-item > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
.employee-checkmark {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
    border: 1.5px solid #a7b7c1;
    border-radius: 4px;
    background: #fff;
}
.role-employee-item.is-selected .employee-checkmark {
    border-color: var(--primary);
    background: var(--primary);
}
.role-employee-item.is-selected .employee-checkmark::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.role-employee-main {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.role-employee-main strong {
    overflow: hidden;
    color: var(--text);
    font-size: 13px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.role-employee-main small {
    overflow: hidden;
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.role-employee-object {
    max-width: 135px;
    overflow: hidden;
    border: 1px solid #d7e1e6;
    border-radius: 999px;
    background: #f6f9fa;
    color: #60727f;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.role-no-results,
.role-employee-list .empty-state {
    grid-column: 1 / -1;
    padding: 22px 14px;
    border: 1px dashed var(--border-strong);
    border-radius: 7px;
    background: #fff;
    color: var(--muted);
    text-align: center;
}

.role-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}
.role-active-toggle {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
}
.role-active-toggle > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}
.role-active-control {
    position: relative;
    width: 38px;
    height: 22px;
    border-radius: 999px;
    background: #b9c5cc;
    transition: background .15s;
}
.role-active-control::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
    transition: transform .15s;
}
.role-active-toggle > input:checked + .role-active-control { background: var(--success); }
.role-active-toggle > input:checked + .role-active-control::after { transform: translateX(16px); }
.role-active-toggle > span:last-child {
    display: grid;
    gap: 2px;
}
.role-active-toggle strong { color: var(--text); font-size: 13px; }
.role-active-toggle small { color: var(--muted); font-size: 11px; font-weight: 400; }
.role-form-actions { margin: 0; }

.access-admin-note,
.access-scope-note {
    padding: 10px 12px;
    border: 1px solid #cadce4;
    border-radius: 5px;
    background: #f1f7f9;
    color: #476472;
    line-height: 1.45;
}
.access-scope-note { margin: 0 0 10px; font-size: 12px; }

@media (max-width: 820px) {
    .role-scope-grid,
    .role-employee-list { grid-template-columns: 1fr; }
    .role-picker-toolbar { grid-template-columns: 1fr; }
    .role-picker-actions { padding: 0; }
}

@media (max-width: 600px) {
    .role-form-panel { padding: 15px; }
    .scope-option { grid-template-columns: 22px minmax(0, 1fr); min-height: 0; padding: 13px; }
    .scope-option-tag { grid-column: 2; justify-self: start; }
    .role-picker-heading { align-items: center; }
    .role-picker-toolbar { gap: 8px; }
    .role-picker-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .role-picker-actions .btn { width: 100%; padding-left: 8px; padding-right: 8px; }
    .role-employee-item { grid-template-columns: 20px minmax(0, 1fr); }
    .role-employee-object { grid-column: 2; justify-self: start; max-width: 100%; }
    .role-form-footer { align-items: stretch; flex-direction: column; }
    .role-form-actions { width: 100%; }
    .role-form-actions .btn { flex: 1; }
}

/* Project → Object → Employee hierarchy */
textarea { width: 100%; min-height: 90px; resize: vertical; border: 1px solid var(--border-strong); border-radius: 5px; background: #fff; color: var(--text); padding: 8px 9px; outline: none; font: inherit; }
textarea:focus { border-color: #719bad; box-shadow: 0 0 0 3px rgba(61,113,135,.12); }
.form-grid { display: grid; gap: 14px; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid .full-width { grid-column: 1 / -1; }
.project-form-panel, .object-form-panel { width: min(1080px, 100%); max-width: none; }
.project-import-panel { margin: 0 0 14px; background: #f7fafb; }
.project-import-panel[hidden] { display: none !important; }
.project-import-form { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(240px, 360px) auto; align-items: end; gap: 14px; }
.project-import-form strong { display: block; margin-bottom: 4px; }
.project-import-form p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.projects-table td:nth-child(2) strong, .projects-table td:nth-child(2) small { display: block; }
.projects-table td:nth-child(2) small, .date-stack small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.date-stack { display: grid; }
.switch-field { display: grid; align-content: start; gap: 7px; }
.switch-line { min-height: 34px; display: flex; align-items: center; gap: 8px; }
.switch-line input { width: auto; min-height: auto; margin: 0; }
.form-field { color: #40515e; font-size: 13px; font-weight: 600; }
.form-field-label { display: block; }

/* v1.0.110: compact searchable Project dropdown in Object form */
.project-dropdown { position: relative; display: block; margin-top: 5px; }
.project-dropdown-trigger {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: center;
    width: 100%;
    min-height: 34px;
    padding: 6px 4px 6px 9px;
    border: 1px solid var(--border-strong);
    border-radius: 5px;
    background: #fff;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.project-dropdown-trigger > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-dropdown-trigger i { display: grid; place-items: center; color: #5f7481; font-style: normal; font-size: 16px; transition: transform .14s; }
.project-dropdown-trigger:hover { border-color: #9fb5c1; background: #fbfdfe; }
.project-dropdown-trigger:focus-visible,
.project-dropdown.is-open .project-dropdown-trigger { border-color: #719bad; box-shadow: 0 0 0 3px rgba(61,113,135,.12); outline: none; }
.project-dropdown.is-open .project-dropdown-trigger i { transform: rotate(180deg); }
.project-dropdown-panel {
    position: absolute;
    z-index: 160;
    top: calc(100% + 5px);
    left: 0;
    width: min(520px, calc(100vw - 28px));
    max-width: 520px;
    padding: 7px;
    border: 1px solid var(--border-strong);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(24,38,48,.2);
}
.project-dropdown-panel[hidden] { display: none !important; }
.project-dropdown-panel.opens-up { top: auto; bottom: calc(100% + 5px); box-shadow: 0 -14px 34px rgba(24,38,48,.2); }
.project-dropdown-search { position: relative; display: block; margin-bottom: 6px; }
.project-dropdown-search input { min-height: 34px; margin: 0; padding-left: 32px; }
.project-dropdown-search i { position: absolute; z-index: 1; left: 11px; top: 50%; transform: translateY(-50%); color: #718490; font-style: normal; pointer-events: none; }
.project-dropdown-options { display: block; max-height: 290px; overflow: auto; padding: 1px; overscroll-behavior: contain; scrollbar-gutter: stable; }
.project-dropdown-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22px;
    align-items: center;
    width: 100%;
    min-height: 42px;
    padding: 7px 9px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.project-dropdown-option:hover,
.project-dropdown-option:focus-visible { background: #edf4f7; outline: none; }
.project-dropdown-option.is-selected { background: #e7f0f4; }
.project-dropdown-option.is-selected::after { content: '✓'; justify-self: center; color: var(--primary); font-size: 14px; font-weight: 800; }
.project-dropdown-option > span { display: grid; min-width: 0; }
.project-dropdown-option strong,
.project-dropdown-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-dropdown-option strong { font-size: 13px; }
.project-dropdown-option small { margin-top: 2px; color: var(--muted); font-size: 11px; font-weight: 500; }
.project-dropdown-option[hidden] { display: none !important; }
.project-dropdown-empty { display: block; padding: 18px 10px; color: var(--muted); font-size: 12px; text-align: center; }
.project-dropdown-empty[hidden] { display: none !important; }
@media (max-width: 600px) {
    .project-dropdown-panel { width: min(430px, calc(100vw - 28px)); }
}

.object-employee-picker { display: grid; gap: 13px; padding: 16px; border: 1px solid var(--border); border-radius: 9px; background: #f7fafb; }
.role-employee-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 430px; overflow: auto; padding: 1px 4px 1px 1px; scrollbar-gutter: stable; }
.employee-choice { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 60px; padding: 10px 11px; border: 1px solid var(--border); border-radius: 7px; background: #fff; cursor: pointer; transition: border-color .12s, background .12s, box-shadow .12s; }
.employee-choice:hover { border-color: #aec1cc; background: #fbfdfe; }
.employee-choice.is-selected { border-color: #7da3b3; background: #f1f7f9; box-shadow: inset 3px 0 0 var(--primary); }
.employee-choice[hidden] { display: none !important; }
.employee-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.employee-choice-check { display: flex; align-items: center; justify-content: center; width: 19px; height: 19px; border: 1.5px solid #a7b7c1; border-radius: 4px; background: #fff; color: transparent; font-size: 12px; }
.employee-choice.is-selected .employee-choice-check { border-color: var(--primary); background: var(--primary); color: #fff; }
.employee-choice-copy { display: grid; gap: 3px; min-width: 0; }
.employee-choice-copy strong, .employee-choice-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.employee-choice-copy strong { color: var(--text); font-size: 13px; }
.employee-choice-copy small { color: var(--muted); font-size: 11px; font-weight: 500; }
.employee-choice-meta { white-space: nowrap; border: 1px solid #d7e1e6; border-radius: 999px; background: #f6f9fa; color: #60727f; padding: 3px 8px; font-size: 10px; font-weight: 700; }
.empty-state.compact { padding: 18px; }
.role-search-box i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #718490; font-style: normal; pointer-events: none; }

/* Work schedule hierarchy columns */
.sticky-project {
    position: sticky !important;
    left: calc(60px * var(--scale));
    width: var(--project-column-width, calc(72px * var(--scale)));
    min-width: var(--project-column-width, calc(72px * var(--scale))) !important;
    max-width: var(--project-column-width, calc(72px * var(--scale)));
    z-index: 7;
    background: #f4f8fa !important;
    text-align: left !important;
    padding: 0 calc(6px * var(--scale)) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sticky-project strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sticky-object {
    position: sticky !important;
    left: calc(60px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))));
    width: var(--object-column-width, calc(120px * var(--scale)));
    min-width: var(--object-column-width, calc(120px * var(--scale))) !important;
    max-width: var(--object-column-width, calc(120px * var(--scale)));
    z-index: 7;
    background: #f7fafb !important;
    text-align: left !important;
    padding: 0 calc(6px * var(--scale)) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sticky-company {
    position: sticky !important;
    left: calc(60px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))));
    width: var(--company-column-width, calc(88px * var(--scale)));
    min-width: var(--company-column-width, calc(88px * var(--scale))) !important;
    max-width: var(--company-column-width, calc(88px * var(--scale)));
    z-index: 7;
    background: #f8fafb !important;
    text-align: left !important;
    padding: 0 calc(6px * var(--scale)) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.schedule-table .sticky-name {
    left: calc(60px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))) + var(--company-column-width, calc(88px * var(--scale))));
}
thead .sticky-project, thead .sticky-object, thead .sticky-company { z-index: 12; background: #e8f0f4 !important; }
.employee-row:hover .sticky-code, .employee-row:hover .sticky-project, .employee-row:hover .sticky-object, .employee-row:hover .sticky-company, .employee-row:hover .sticky-name { background-color: #fff8df !important; }
.total-row .sticky-project, .total-row .sticky-object, .total-row .sticky-company { z-index: 9; }
.schedule-group-row td { height: auto; padding: 6px 10px; background: #e3edf2 !important; color: #355767; font-weight: 800; text-align: left; }
.schedule-group-row.object-group td { background: #eef4f7 !important; color: #496675; }
.schedule-group-row td strong { margin-right: 10px; }
.schedule-group-row td span { color: #6b7f8a; font-size: .92em; font-weight: 650; }

@media (max-width: 820px) {
    .form-grid.two-columns, .project-import-form, .role-employee-grid { grid-template-columns: 1fr; }
    .project-import-form .btn { justify-self: start; }
}

@media (max-width: 600px) {
    .employee-choice { grid-template-columns: 22px minmax(0, 1fr); }
    .employee-choice-meta { grid-column: 2; justify-self: start; }
}

.object-project-filter { display: flex; align-items: flex-end; gap: 10px; margin: 0 0 14px; padding: 12px 14px; }
.object-project-filter label { width: min(460px, 100%); }
.objects-table td:first-child strong, .objects-table td:first-child small { display: block; }
.objects-table td:first-child small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.projects-table .actions-col { width: 250px; }
.roles-table .actions-col { width: 245px; }
@media (max-width: 700px) { .object-project-filter { align-items: stretch; flex-direction: column; } }

/* V4 payroll view */
.v4-view-column,
.v4-view-label { display: none; }

.schedule-page[data-view-mode="v4"] .classic-view-column,
.schedule-page[data-view-mode="v4"] .classic-view-label { display: none !important; }
.schedule-page[data-view-mode="v4"] .v4-view-column { display: table-cell !important; }
.schedule-page[data-view-mode="v4"] .v4-view-label { display: inline; }
.schedule-page[data-view-mode="v4"] .col-hours { display: table-cell !important; }

.sticky-manager {
    position: sticky !important;
    width: var(--manager-column-width, calc(72px * var(--scale)));
    min-width: var(--manager-column-width, calc(72px * var(--scale))) !important;
    max-width: var(--manager-column-width, calc(72px * var(--scale)));
    z-index: 7;
    background: #f5f9fa !important;
    text-align: left !important;
    padding: 0 calc(6px * var(--scale)) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
thead .sticky-manager { z-index: 12; background: #e8f0f4 !important; }
.employee-row:hover .sticky-manager { background-color: #fff8df !important; }
.total-row .sticky-manager { z-index: 9; }

.schedule-page[data-view-mode="v4"] .sticky-project { left: 0; }
.schedule-page[data-view-mode="v4"] .sticky-object { left: var(--project-column-width, calc(72px * var(--scale))); }
.schedule-page[data-view-mode="v4"] .sticky-company { left: calc(var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale)))); }
.schedule-page[data-view-mode="v4"] .sticky-manager { left: calc(var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))) + var(--company-column-width, calc(88px * var(--scale)))); }
.schedule-page[data-view-mode="v4"] .sticky-name { left: calc(var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))) + var(--company-column-width, calc(88px * var(--scale))) + var(--manager-column-width, calc(72px * var(--scale)))); }

.schedule-page[data-view-mode="v4"] .col-hours { min-width: calc(50px * var(--scale)) !important; max-width: calc(50px * var(--scale)); }
.v4-rate-column { min-width: calc(62px * var(--scale)) !important; max-width: calc(62px * var(--scale)); }
.v4-month-total-column { min-width: calc(70px * var(--scale)) !important; max-width: calc(70px * var(--scale)); }
.v4-advance-column { min-width: calc(60px * var(--scale)) !important; max-width: calc(60px * var(--scale)); }
.v4-additional-pay-column { min-width: calc(72px * var(--scale)) !important; max-width: calc(72px * var(--scale)); }
.v4-payable-column { min-width: calc(74px * var(--scale)) !important; max-width: calc(74px * var(--scale)); }
.total-payable { font-weight: 800; }
.total-all-payable { font-weight: 900; }
.v4-materials-column { min-width: calc(64px * var(--scale)) !important; max-width: calc(64px * var(--scale)); }
.v4-info-column { min-width: calc(180px * var(--scale)) !important; max-width: calc(180px * var(--scale)); }
.v4-short-header {
    cursor: help;
    font-weight: 800;
}
.v4-editable-column { padding: calc(2px * var(--scale)) !important; background: #fff !important; }
.v4-free-input {
    width: 100%;
    min-width: 0;
    height: calc(25px * var(--scale));
    min-height: 0;
    border: 1px solid transparent;
    border-radius: 3px;
    background: transparent;
    padding: 0 calc(5px * var(--scale));
    font-size: inherit;
}
.v4-number-input { text-align: right; padding-left: calc(2px * var(--scale)); padding-right: calc(3px * var(--scale)); }
.v4-number-input { -moz-appearance: textfield; appearance: textfield; }
.v4-number-input::-webkit-inner-spin-button,
.v4-number-input::-webkit-outer-spin-button { -webkit-appearance: none; appearance: none; margin: 0; }
.v4-free-input:hover { border-color: #cbd9e0; background: #fff; }
.v4-free-input:focus { border-color: #719bad; background: #fff; box-shadow: inset 0 0 0 1px #719bad; }
.schedule-page[data-view-mode="v4"] .schedule-group-row { display: none; }

/* Project-scoped roles and project quick filter */
.permission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.permission-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface-soft); }
.permission-copy { display: grid; gap: 4px; min-width: 0; }
.permission-copy strong { color: var(--text); font-size: 14px; }
.permission-copy small { color: var(--muted); font-size: 11px; line-height: 1.35; font-weight: 400; }
.permission-switches { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.permission-check { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; margin: 0; padding: 5px 8px; border: 1px solid var(--border); border-radius: 5px; background: #fff; font-size: 11px; font-weight: 650; cursor: pointer; }
.permission-check input { width: auto; min-height: auto; margin: 0; }
.role-picker { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 8px; background: #fbfcfd; }
.role-picker[hidden] { display: none !important; }
.role-project-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 320px; overflow: auto; padding: 1px 4px 1px 1px; scrollbar-gutter: stable; }
.role-project-item { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 52px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 7px; background: #fff; cursor: pointer; transition: border-color .12s, background .12s, box-shadow .12s; }
.role-project-item:hover { border-color: #adc0cb; box-shadow: 0 2px 7px rgba(30, 54, 68, .06); }
.role-project-item.is-selected { border-color: #7da2b3; background: #f0f7fa; box-shadow: inset 3px 0 0 var(--primary); }
.role-project-item[hidden] { display: none !important; }
.role-project-item > input { position: absolute; opacity: 0; pointer-events: none; }
.role-project-item.is-selected .employee-checkmark { background: var(--primary); border-color: var(--primary); }
.role-project-item.is-selected .employee-checkmark::after { content: ''; display: block; width: 5px; height: 9px; margin: 2px 0 0 5px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.role-project-main { display: grid; min-width: 0; gap: 3px; }
.role-project-main strong { overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.role-project-main small { overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.permission-summary { max-width: 360px; color: #526673; font-size: 11px; line-height: 1.45; }
.setup-required { display: block; margin-top: 3px; color: var(--warning); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .2px; }
.project-quick-filter { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(150px, 210px) auto auto; align-items: end; gap: 12px; margin-bottom: 14px; padding: 12px 14px; }
.project-filter-input { position: relative; display: block; }
.project-filter-input > span { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.project-filter-input input { padding-left: 33px; }
.project-filter-result { align-self: center; min-width: 100px; color: var(--muted); font-size: 12px; text-align: right; }
.project-filter-result strong { color: var(--text); font-size: 15px; }
.readonly-badge { display: inline-flex; align-items: center; min-height: 34px; padding: 5px 11px; border: 1px solid #c9d5dc; border-radius: 5px; background: #f2f6f8; color: #5b6e79; font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .25px; }
.schedule-readonly .schedule-cell { cursor: default; }
.schedule-readonly .v4-free-input:disabled { opacity: 1; background: #f6f8f9; color: #52616b; cursor: default; }

@media (max-width: 850px) {
    .permission-grid, .role-project-list { grid-template-columns: 1fr; }
    .project-quick-filter { grid-template-columns: 1fr; align-items: stretch; }
    .project-filter-result { text-align: left; }
}

@media (max-width: 520px) {
    .permission-card { align-items: stretch; flex-direction: column; }
    .permission-switches { width: 100%; }
    .permission-check { flex: 1; justify-content: center; }
}

.profile-access-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.profile-access-summary > span {
    display: grid;
    gap: 4px;
    padding: 13px 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface-soft, #f7f9fb);
}
.profile-access-summary small { color: var(--muted); }
.profile-access-summary strong { overflow-wrap: anywhere; }
@media (max-width: 720px) {
    .profile-access-summary { grid-template-columns: 1fr; }
}

/* Employee directory and employee cards */
textarea {
    width: 100%;
    min-height: 74px;
    border: 1px solid var(--border-strong);
    border-radius: 5px;
    background: #fff;
    color: var(--text);
    padding: 8px 9px;
    outline: none;
    resize: vertical;
    font: inherit;
}
textarea:focus { border-color: #719bad; box-shadow: 0 0 0 3px rgba(61,113,135,.12); }
label textarea { margin-top: 5px; font-weight: 400; }
.employee-list-panel { padding: 14px; }
.employee-list-toolbar { display: flex; align-items: end; gap: 14px; margin-bottom: 12px; }
.employee-list-count { flex: 0 0 auto; color: var(--muted); padding: 0 4px 9px; white-space: nowrap; }
.employee-list-count strong { color: var(--primary-dark); }
.employee-directory-wrap { max-height: calc(100vh - 205px); border: 1px solid var(--border); border-radius: 6px; overflow: auto; }
.employee-directory-table { min-width: 1050px; }
.employee-directory-table th { position: sticky; top: 0; z-index: 2; }
.employee-directory-table td { max-width: 260px; }
.employee-objects-cell { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-subline { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.mono-value { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }
.employee-card-header { max-width: 1180px; margin-left: auto; margin-right: auto; }
.employee-card-form { display: grid; gap: 14px; max-width: 1180px; margin: 0 auto; }
.employee-card-section { padding: 20px; }
.section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.section-title h2 { margin: 0; font-size: 17px; }
.section-title p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.employee-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px 15px; }
.employee-form-grid .span-2 { grid-column: span 2; }
.switch-line { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; white-space: nowrap; }
.switch-line input { width: 17px; height: 17px; min-height: auto; margin: 0; }
.employee-contract-list { display: grid; gap: 10px; }
.employee-contract-card { border: 1px solid var(--border); border-radius: 10px; background: #f9fbfc; overflow: hidden; }
.employee-contract-card[open] { border-color: #b7cbd4; box-shadow: 0 7px 18px rgba(40, 75, 91, .08); }
.employee-contract-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #eef4f6; cursor: pointer; list-style: none; user-select: none; }
.employee-contract-head::-webkit-details-marker { display: none; }
.employee-contract-card[open] .employee-contract-head { border-bottom: 1px solid var(--border); background: #e9f1f4; }
.contract-summary-main { min-width: 0; }
.employee-contract-head strong { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.employee-contract-head small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.contract-summary-side { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 10px; }
.contract-status-badge { display: inline-flex; align-items: center; min-height: 25px; border-radius: 999px; padding: 3px 9px; font-size: 11px; font-weight: 800; letter-spacing: .01em; }
.contract-status-badge.is-active { background: #dff3e8; color: #17663d; }
.contract-status-badge.is-inactive { background: #f3e5e3; color: #9a3f36; }
.contract-expand-icon { width: 9px; height: 9px; border-right: 2px solid #637782; border-bottom: 2px solid #637782; transform: rotate(45deg) translateY(-2px); transition: transform .16s ease; }
.employee-contract-card[open] .contract-expand-icon { transform: rotate(225deg) translate(-2px, -1px); }
.employee-contract-body { background: #f9fbfc; }
.contract-edit-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px 0; }
.contract-main-grid { padding: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.manager-picker { padding: 0 14px 14px; }
.manager-picker-title { display: block; margin-bottom: 7px; color: #40515e; font-size: 12px; font-weight: 700; }
.manager-chip-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.manager-chip { position: relative; cursor: pointer; }
.manager-chip input { position: absolute; opacity: 0; pointer-events: none; }
.manager-chip span { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 31px; border: 1px solid var(--border-strong); border-radius: 999px; background: #fff; color: #526571; padding: 5px 11px; font-size: 12px; font-weight: 700; transition: .12s; }
.manager-chip:hover span { border-color: #91aebc; background: #f5f9fa; }
.manager-chip.is-selected span { border-color: var(--primary); background: #e7f1f5; color: var(--primary-dark); box-shadow: inset 0 0 0 1px var(--primary); }

.employee-telegram-card { min-height: 92px; border: 1px solid var(--border); border-radius: 8px; background: #f8fbfc; padding: 11px 12px; align-self: stretch; }
.employee-telegram-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.employee-telegram-head strong { display: block; font-size: 13px; }
.employee-telegram-head small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; font-weight: 400; }
.employee-telegram-status { display: inline-flex; align-items: center; min-height: 22px; border-radius: 999px; background: #eef2f4; color: #65757e; padding: 2px 8px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.employee-telegram-status.is-connected { background: #dff3e8; color: #17663d; }
.employee-telegram-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.employee-telegram-account { margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--primary-dark); }
.employee-telegram-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.employee-telegram-link-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; margin-top: 8px; }
.employee-telegram-link-row input { min-width: 0; font-size: 11px; }

.employee-card-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 4px 0 12px; }
.danger-zone { max-width: 1180px; margin: 0 auto; display: flex; justify-content: flex-end; padding-top: 4px; border-top: 1px solid #e2c7c7; }
.employee-card-form input:disabled,
.employee-card-form select:disabled,
.employee-card-form textarea:disabled { opacity: 1; background: #f3f6f7; color: #52616b; cursor: default; }

@media (max-width: 980px) {
    .employee-form-grid, .contract-main-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .employee-directory-wrap { max-height: none; }
}
@media (max-width: 620px) {
    .employee-list-toolbar, .section-title, .employee-contract-head { align-items: stretch; flex-direction: column; }
    .employee-form-grid, .contract-main-grid { grid-template-columns: 1fr; }
    .employee-form-grid .span-2 { grid-column: span 1; }
    .contract-edit-toolbar { justify-content: space-between; }
    .employee-card-section { padding: 14px; }
}

/* v1.0.16: current payroll view totals */
.schedule-page[data-view-mode="v4"] .col-norm,
.schedule-page[data-view-mode="v4"] .col-overtime {
    display: table-cell !important;
    min-width: calc(52px * var(--scale)) !important;
    max-width: calc(52px * var(--scale));
}

/* Standalone History page */
.history-page-header { align-items: flex-end; }
.history-page-panel { padding: 14px; }
.history-page-filters {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}
.history-page-filters label { min-width: 150px; }
.history-page-filters .grow-field { min-width: 260px; flex: 1; }
.history-result-summary { margin: 4px 0 10px; color: var(--muted); font-size: 13px; }
.history-page-table-wrap {
    overflow: auto;
    max-height: calc(100vh - 260px);
    border: 1px solid var(--border);
    border-radius: 6px;
}
.history-page-table { min-width: 1500px; font-size: 12px; }
.history-page-table th { position: sticky; top: 0; z-index: 2; }
.history-page-table td { vertical-align: top; }
.history-date-cell { white-space: nowrap; }
.history-action { white-space: nowrap; font-weight: 700; color: #405d6d; }
.history-value-cell { min-width: 100px; max-width: 220px; white-space: pre-wrap; overflow-wrap: anywhere; }
.history-details-cell { min-width: 260px; white-space: normal; }

@media (max-width: 900px) {
    .history-page-filters { align-items: stretch; flex-direction: column; }
    .history-page-filters label,
    .history-page-filters .grow-field { width: 100%; min-width: 0; }
    .history-page-table-wrap { max-height: calc(100vh - 320px); }
}

/* v1.0.18: company filter, Estonian work calendar and personal table columns */
.calendar-events {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 9px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fafcfd;
}
.calendar-events-title {
    margin-right: 3px;
    color: #536a78;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .35px;
    text-transform: uppercase;
}
.calendar-event {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 25px;
    border: 1px solid;
    border-radius: 999px;
    padding: 3px 9px 3px 6px;
    font-size: 11px;
    font-weight: 650;
}
.calendar-event b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 39px;
    min-height: 19px;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    font-size: 10px;
}
.calendar-event-holiday { border-color: #e0b4af; background: #fff0ee; color: #8b413d; }
.calendar-event-shortened { border-color: #ddc589; background: #fff8e7; color: #7b5b17; }
.schedule-info-events { margin-top: -3px; }
.schedule-info-event { color: #3f5664; }
.schedule-info-event b { min-width: 24px; }
.schedule-info-leave { border-color: #aecfbd; background: #eef9f2; color: #356348; }
.schedule-info-sickness { border-color: #d7c19f; background: #fff7e9; color: #75552a; }
.day-head.holiday {
    background: #f6d9d6 !important;
    color: #823a36;
    box-shadow: inset 0 -3px 0 #bc5e56;
}
.day-head.holiday small { color: #8b413d; font-weight: 800; }
.day-head.shortened:not(.holiday) { background: #fff3d5 !important; }
.schedule-cell.holiday-cell, .total-day.holiday-cell { box-shadow: inset 0 0 0 1px rgba(188,94,86,.18); }
.schedule-cell.shortened-cell:not(.holiday-cell), .total-day.shortened-cell:not(.holiday-cell) { box-shadow: inset 0 2px 0 rgba(196,154,68,.42); }

.modal-settings { width: min(620px, 96vw); }
.settings-intro { margin: 0 0 15px; }
.settings-section + .settings-section { margin-top: 18px; }
.settings-section-title {
    margin-bottom: 8px;
    color: #40515e;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .35px;
    text-transform: uppercase;
}
.column-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.column-setting-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 58px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
    padding: 8px 10px;
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.column-setting-card:hover { border-color: #a8bcc7; background: #fbfdfe; }
.column-setting-card.is-selected { border-color: #7da3b3; background: #f1f7f9; box-shadow: inset 3px 0 0 var(--primary); }
.column-setting-card > input { position: absolute; opacity: 0; pointer-events: none; }
.column-setting-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid #cbd8df;
    border-radius: 7px;
    background: #f7fafb;
    color: #5d7280;
    font-size: 14px;
    font-weight: 850;
}
.column-setting-card.is-selected .column-setting-code { border-color: var(--primary); background: var(--primary); color: #fff; }
.column-setting-copy { display: grid; gap: 2px; min-width: 0; }
.column-setting-copy strong { overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.column-setting-copy small { color: var(--muted); font-size: 11px; font-weight: 500; }
.table-scale-setting { border-top: 1px solid var(--border); padding-top: 16px; }
.table-scale-setting label { display: grid; grid-template-columns: 62px minmax(0, 1fr); align-items: center; gap: 12px; }
.table-scale-setting input { margin: 0; }

/* These rules must follow the V4 display rules above. */
.schedule-page.hide-hours .col-hours,
.schedule-page.hide-norm .col-norm,
.schedule-page.hide-overtime .col-overtime,
.schedule-page.hide-rate .col-rate,
.schedule-page.hide-monthTotal .col-monthTotal,
.schedule-page.hide-advance .col-advance,
.schedule-page.hide-additionalPay .col-additionalPay,
.schedule-page.hide-payable .col-payable,
.schedule-page.hide-materials .col-materials,
.schedule-page.hide-info .col-info { display: none !important; }

@media (max-width: 620px) {
    .column-settings-grid { grid-template-columns: 1fr; }
    .calendar-events { align-items: stretch; flex-direction: column; }
    .calendar-event { border-radius: 6px; }
}


/* v1.0.20: inactive-contract visibility */
.employee-row.employee-no-active-contract .sticky-name { background: #fff0e6 !important; box-shadow: inset 3px 0 0 #d96b32; }
.employee-row.employee-no-active-contract .employee-name-button { color: #9b3e20; font-weight: 800; }
.employee-contract-warning { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; margin-left: 6px; border-radius: 50%; background: #d96b32; color: #fff; font-size: 11px; font-weight: 900; line-height: 1; vertical-align: 1px; }

/* v1.0.23: compact schedule filters and unassigned active employees */
.schedule-filter-row {
    display: grid;
    grid-template-columns: minmax(165px, 185px) minmax(220px, 290px) minmax(46px, 72px) minmax(46px, 72px) repeat(3, minmax(92px, .72fr)) auto;
    align-items: end;
    gap: 6px;
    padding: 7px 8px;
}
.schedule-filter-row > label,
.schedule-filter-row > .period-form {
    width: auto;
    min-width: 0;
}
.schedule-filter-row .period-form {
    display: grid;
    grid-template-columns: minmax(105px, 1fr) auto;
    align-items: end;
    gap: 3px;
}
.schedule-filter-row .period-form label { width: auto; min-width: 0; }
.schedule-filter-row label { min-width: 0; font-size: 11px; line-height: 1.05; }
.schedule-filter-row label input,
.schedule-filter-row label select { min-width: 0; min-height: 31px; margin-top: 3px; padding: 4px 7px; font-size: 12px; }
.schedule-filter-row .btn { min-height: 31px; padding: 4px 10px; font-size: 12px; }
.schedule-filter-row .save-schedule-btn { min-width: 70px; }
.schedule-table .hierarchy-unassigned { color: #8a969e; font-style: italic; font-weight: 500; }
.schedule-table .hierarchy-unassigned strong { color: #7c8992; font-weight: 650; }

@media (max-width: 900px) {
    .schedule-filter-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: end;
    }
    .schedule-filter-row > label,
    .schedule-filter-row > .period-form,
    .schedule-filter-row .period-form label { width: auto; min-width: 0; }
    .schedule-filter-row .grow-field { grid-column: span 2; }
}
@media (max-width: 620px) {
    .schedule-filter-row { grid-template-columns: 1fr; }
    .schedule-filter-row .grow-field { grid-column: auto; }
}


/* v1.0.26: compact employee card from Work Schedule */
.employee-name-label {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    color: #314f60;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.employee-card-trigger {
    display: flex;
    align-items: center;
    gap: 4px;
    border-radius: 5px;
    cursor: pointer;
    transition: color .12s, background .12s, box-shadow .12s;
}
.employee-card-trigger > span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.employee-card-trigger:hover,
.employee-card-trigger:focus-visible {
    background: #eaf3f6;
    color: var(--primary-dark);
    box-shadow: 0 0 0 3px #eaf3f6;
    outline: none;
}
.employee-row.employee-no-active-contract .employee-name-label { color: #9b3e20; font-weight: 800; }
.employee-quick-card-dialog { width: min(560px, 96vw); }
.employee-quick-card-header { align-items: flex-start; }
.employee-quick-card-header > div { min-width: 0; }
.employee-quick-card-header h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.employee-quick-card-header p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.employee-quick-card-body { display: grid; gap: 13px; padding: 16px; }
.quick-card-loading,
.quick-card-empty,
.quick-card-error { padding: 22px 14px; border: 1px dashed var(--border-strong); border-radius: 8px; color: var(--muted); text-align: center; }
.quick-card-error { border-color: #e3b6ad; background: #fff5f2; color: #a3422b; }
.quick-card-status-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.quick-card-status,
.quick-card-period,
.quick-contract-head span { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.quick-card-status.is-active,
.quick-contract-card.is-active .quick-contract-head span { background: #e7f5ec; color: #267044; }
.quick-card-status.is-inactive,
.quick-contract-card.is-inactive .quick-contract-head span { background: #f1f3f4; color: #6c7880; }
.quick-card-period { border: 1px solid var(--border); background: #f7fafb; color: #60727f; }
.quick-card-meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.quick-card-meta-item { display: grid; gap: 2px; min-width: 0; padding: 9px 10px; border: 1px solid var(--border); border-radius: 7px; background: #f8fafb; }
.quick-card-meta-item span { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .03em; }
.quick-card-meta-item strong { overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.quick-card-warning { padding: 10px 12px; border-left: 3px solid #d96b32; border-radius: 5px; background: #fff0e6; color: #8d3d22; font-size: 12px; font-weight: 700; }
.quick-contract-list { display: grid; gap: 8px; }
.quick-contract-card { display: grid; gap: 5px; padding: 11px 12px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.quick-contract-card.is-active { border-color: #bdd8c7; box-shadow: inset 3px 0 0 #4b9a68; }
.quick-contract-card.is-inactive { background: #f8fafb; }
.quick-contract-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.quick-contract-head strong { min-width: 0; overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.quick-contract-card p { margin: 0; color: #526774; font-size: 11px; line-height: 1.45; }
.quick-contract-card small { color: var(--muted); font-size: 10px; }
.quick-card-more { color: var(--muted); font-size: 11px; text-align: center; }
.employee-quick-card-footer .btn-primary.is-disabled { pointer-events: none; opacity: .5; }

@media (max-width: 520px) {
    .quick-card-meta-grid { grid-template-columns: 1fr; }
    .quick-card-status-row { align-items: flex-start; flex-direction: column; }
    .quick-contract-head { align-items: flex-start; flex-direction: column; }
}

/* v1.0.28 autosave and unsaved-change protection */
.save-schedule-btn.is-dirty {
    background: #fff8e7;
    border-color: #d8ad4f;
    color: #725317;
}
.save-schedule-btn.is-saving {
    background: #eaf3f7;
    border-color: #8fb2c1;
    color: #365765;
}
.save-schedule-btn.is-saved {
    background: #e9f7ef;
    border-color: #8fc5a2;
    color: #27633b;
}
.save-schedule-btn.is-error {
    background: #fff0f0;
    border-color: #d79a9a;
    color: #8b2f2f;
}
.unsaved-changes-modal { z-index: 30000; }
.unsaved-changes-dialog { width: min(470px, calc(100vw - 30px)); }
.unsaved-changes-body {
    padding: 28px 28px 22px;
    text-align: center;
    overflow: visible;
}
.unsaved-changes-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 14px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff4d8;
    border: 1px solid #e3c675;
    color: #805e12;
    font-size: 28px;
    font-weight: 800;
}
.unsaved-changes-body h2 {
    margin: 0 0 8px;
    font-size: 21px;
}
.unsaved-changes-body p {
    margin: 0 auto;
    max-width: 370px;
    color: var(--muted);
    line-height: 1.5;
}
.unsaved-changes-actions {
    justify-content: center;
    gap: 10px;
    padding: 14px 18px 16px;
}
.unsaved-changes-actions .btn { min-width: 145px; }
@media (max-width: 520px) {
    .unsaved-changes-actions { flex-direction: column-reverse; }
    .unsaved-changes-actions .btn { width: 100%; }
}

/* v1.0.29 — sortable tables */
th.table-sort-header {
    cursor: pointer;
    user-select: none;
    padding-right: 20px;
    transition: background-color .15s ease, color .15s ease;
}
.data-table th.table-sort-header { position: relative; }
th.table-sort-header::after {
    content: "↕";
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    color: #71828d;
    font-size: 11px;
    line-height: 1;
    opacity: .32;
}
th.table-sort-header:hover,
th.table-sort-header:focus-visible {
    background-color: #e6eef2;
    color: #263c49;
    outline: none;
}
th.table-sort-header:hover::after,
th.table-sort-header:focus-visible::after { opacity: .75; }
th.table-sort-header[aria-sort="ascending"]::after {
    content: "▲";
    opacity: 1;
    color: #1d596d;
}
th.table-sort-header[aria-sort="descending"]::after {
    content: "▼";
    opacity: 1;
    color: #1d596d;
}
.schedule-table th.table-sort-header {
    padding-right: calc(10px * var(--scale));
}
.schedule-table th.table-sort-header::after {
    right: calc(2px * var(--scale));
    top: calc(3px * var(--scale));
    transform: none;
    font-size: calc(7px * var(--scale));
    opacity: 0;
}
.schedule-table th.table-sort-header:hover::after,
.schedule-table th.table-sort-header:focus-visible::after,
.schedule-table th.table-sort-header[aria-sort="ascending"]::after,
.schedule-table th.table-sort-header[aria-sort="descending"]::after { opacity: 1; }
.schedule-table .day-head.table-sort-header { padding-right: calc(5px * var(--scale)); }


/* v1.0.36 project deletion permission and final action */
.permission-check-danger { border-color: #e5c5c5; color: #8e3030; background: #fffafa; }
.permission-check-danger:has(input:checked) { border-color: #c77676; background: #fff1f1; }
.btn-project-delete { font-weight: 750; }


/* v1.0.37 — consistent table action cells */
.data-table tbody tr:hover td { background-color: #fbfdfe; }
.data-table td.row-actions { border-left: 1px solid #edf1f4; }
.data-table th.actions-col { border-left: 1px solid #dfe7ec; }
.roles-table .btn-role-delete { font-weight: 700; }

/* v1.0.44: Objects quick search */
.object-quick-filter {
    display: grid;
    grid-template-columns: minmax(250px, 1.35fr) minmax(220px, 1fr) minmax(120px, 160px) auto auto;
    align-items: end;
    gap: 10px;
    margin: 0 0 14px;
    padding: 12px 14px;
}
.object-quick-filter label { min-width: 0; }
.object-quick-filter input,
.object-quick-filter select { width: 100%; }
.object-filter-clear { align-self: end; white-space: nowrap; }
.directory-filter-reset { align-self: end; white-space: nowrap; }

@media (max-width: 1050px) {
    .object-quick-filter { grid-template-columns: minmax(240px, 1fr) minmax(210px, 1fr) minmax(120px, 150px) auto; }
    .object-filter-clear, .directory-filter-reset { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 760px) {
    .object-quick-filter { grid-template-columns: 1fr; align-items: stretch; }
    .object-filter-clear, .directory-filter-reset { grid-column: auto; }
    .object-quick-filter .project-filter-result { text-align: left; }
}

/* Direct user access */
.is-disabled-section {
    opacity: .58;
    pointer-events: none;
}


/* v1.0.49 — manual Work Schedule rows */
.schedule-empty-state { display: grid; gap: 6px; }
.schedule-empty-state strong { color: var(--text); font-size: 14px; }
.schedule-empty-state span { font-size: 12px; }
.schedule-add-dialog { width: min(680px, calc(100vw - 30px)); }
.schedule-add-dialog .modal-header { align-items: flex-start; }
.schedule-add-dialog .modal-header > div { min-width: 0; }
.schedule-add-subtitle { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.schedule-add-body { min-height: 0; padding-top: 14px; }
.schedule-add-loading { padding: 52px 16px; color: var(--muted); text-align: center; }
.schedule-add-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 2px 0 0; }
.schedule-add-field { min-width: 0; }
.schedule-add-field > span,
.schedule-add-field > label { display: block; margin-bottom: 6px; color: #40515e; font-size: 12px; font-weight: 750; }
.schedule-add-field input,
.schedule-add-field select { width: 100%; }
.schedule-add-status { min-height: 0; margin-top: 10px; color: var(--muted); font-size: 12px; }
.schedule-add-status[hidden] { display: none; }
.schedule-add-status.is-info { color: #667883; }
.schedule-add-status.is-error { color: var(--danger); font-weight: 700; }
.schedule-add-status.is-success { color: var(--success); font-weight: 700; }
.schedule-add-dialog form { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.schedule-add-dialog form .modal-body { flex: 1 1 auto; }

@media (max-width: 720px) {
    .schedule-add-fields { grid-template-columns: 1fr; }
    .schedule-add-row-btn { width: 38px; min-width: 38px; padding: 0; }
}

/* v1.0.50 — remove a manually added Work Schedule row */
.schedule-employee-cell-content { display: flex; align-items: center; gap: calc(5px * var(--scale)); min-width: 0; width: 100%; }
.schedule-employee-name-wrap { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.schedule-employee-name-wrap .employee-name-label { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-remove-member-btn {
    flex: 0 0 auto;
    width: calc(21px * var(--scale));
    height: calc(21px * var(--scale));
    min-width: 18px;
    min-height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 50%;
    background: transparent;
    color: #9b5b5b;
    font-size: calc(17px * var(--scale));
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
.schedule-remove-member-btn:hover,
.schedule-remove-member-btn:focus-visible { border-color: #e1b4b4; background: #fff1f1; color: #b42323; outline: none; }
.schedule-remove-member-btn:disabled { opacity: .45; cursor: wait; }
.schedule-remove-member-btn.is-removing { transform: scale(.9); }

/* v1.0.52: searchable selections inside Add employee to Work Schedule */
.schedule-add-fields { align-items: start; }
.schedule-add-field:has(.schedule-combobox.is-open) { position: relative; z-index: 30; }
.schedule-combobox { position: relative; width: 100%; }
.schedule-combobox-input { width: 100%; padding-right: 38px !important; cursor: text; }
.schedule-combobox-input:disabled { cursor: not-allowed; }
.schedule-combobox-toggle {
    position: absolute;
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: 34px;
    border: 0;
    border-left: 1px solid var(--border);
    border-radius: 0 5px 5px 0;
    background: #f5f8fa;
    color: #526471;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
}
.schedule-combobox-toggle:hover:not(:disabled) { background: #eaf0f4; color: #1e303c; }
.schedule-combobox-toggle:disabled { cursor: not-allowed; opacity: .55; }
.schedule-combobox.is-open .schedule-combobox-input { border-color: #6e93ab; box-shadow: 0 0 0 2px rgba(74, 120, 150, .14); }
.schedule-combobox.is-open .schedule-combobox-toggle { border-color: #6e93ab; background: #eaf0f4; }
.schedule-combobox-menu {
    position: absolute;
    z-index: 50;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 245px;
    overflow: auto;
    padding: 4px;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(24, 38, 48, .18);
}
.schedule-combobox-option {
    display: block;
    width: 100%;
    padding: 8px 9px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #263946;
    font: inherit;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
}
.schedule-combobox-option:hover,
.schedule-combobox-option.is-active { background: #eaf2f7; }
.schedule-combobox-option.is-selected { font-weight: 750; }
.schedule-combobox-option.is-selected::after { content: '✓'; float: right; margin-left: 8px; }
.schedule-combobox-empty { padding: 11px 9px; color: var(--muted); font-size: 12px; }
.schedule-combobox.is-disabled .schedule-combobox-input { background: #f3f5f6; }


/* v1.0.53: dropdowns escape the modal and use the available viewport */
.schedule-combobox-menu {
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.schedule-combobox-menu.is-floating {
    position: fixed;
    z-index: 10150;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    max-height: none;
}
.schedule-combobox-menu.is-floating.opens-up {
    box-shadow: 0 -12px 28px rgba(24, 38, 48, .18);
}
.schedule-combobox-option {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* v1.0.55: adding/removing a Work Schedule row is an immediate autosave action */
.schedule-page.is-structural-saving .schedule-table-wrap,
.schedule-page.is-structural-saving .schedule-table-actions {
    pointer-events: none;
}
.schedule-page.is-structural-saving .schedule-table-wrap {
    opacity: .82;
}

/* v1.0.56: Employee choices follow manager access, independently of Project/Object */

/* v1.0.57: compact manager access block and manager delegation */
.manager-access-card {
    margin: 0 14px 14px;
    overflow: hidden;
    border: 1px solid #c8d8df;
    border-radius: 10px;
    background: #fff;
}
.manager-access-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border-bottom: 1px solid #dbe5e9;
    background: #f2f7f9;
}
.manager-access-head strong { display: block; color: #263d49; font-size: 13px; }
.manager-access-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.manager-access-state {
    flex: 0 0 auto;
    min-height: 19px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}
.manager-access-state.is-saving { color: #6a7580; }
.manager-access-state.is-saved { color: #1f7045; }
.manager-access-state.is-error { max-width: 280px; color: #aa3f36; white-space: normal; text-align: right; }
.manager-access-row {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding: 11px 14px;
}
.manager-access-row + .manager-access-row { border-top: 1px solid #edf2f4; }
.manager-access-row.is-additional { background: #fbfcfd; }
.manager-access-label { padding-top: 6px; color: #445965; font-size: 12px; font-weight: 750; }
.manager-access-pills,
.manager-access-options { min-width: 0; }
.manager-access-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.manager-access-pill {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    border: 1px solid #b8ccd5;
    border-radius: 999px;
    padding: 4px 10px;
    background: #edf5f8;
    color: #285066;
    font-size: 12px;
    font-weight: 750;
}
.manager-access-empty { display: inline-flex; align-items: center; min-height: 29px; color: #80909a; font-size: 12px; }
.manager-access-empty[hidden],
.manager-chip[hidden] { display: none !important; }
.manager-access-options .manager-chip-grid { gap: 6px; }
.manager-access-options .manager-chip span { min-width: 42px; min-height: 29px; padding: 4px 10px; }
.manager-access-options .manager-chip input:disabled + span { opacity: .58; cursor: not-allowed; }
.manager-access-help { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; }

@media (max-width: 620px) {
    .manager-access-head { flex-direction: column; }
    .manager-access-state.is-error { max-width: none; text-align: left; }
    .manager-access-row { grid-template-columns: 1fr; gap: 6px; }
    .manager-access-label { padding-top: 0; }
}
.manager-access-card.is-saving .manager-chip-grid { pointer-events: none; opacity: .72; }


/* v1.0.58 — per-user directory filters and sorting */
.employee-list-toolbar .directory-filter-reset { margin-bottom: 1px; }
.directory-filter-reset:disabled { opacity: .6; cursor: wait; }
@media (max-width: 850px) {
    .project-quick-filter .directory-filter-reset { justify-self: start; }
}
@media (max-width: 700px) {
    .employee-list-toolbar .directory-filter-reset { align-self: flex-start; }
}


.employee-status-filter {
    flex: 0 0 150px;
    min-width: 150px;
}
.employee-status-filter select {
    width: 100%;
}
@media (max-width: 900px) {
    .employee-status-filter {
        flex: 1 1 180px;
        min-width: 0;
    }
}

/* v1.0.74: per-manager Work Schedule period closing */
.schedule-table-actions { gap: 7px; }
.schedule-close-period-btn {
    width: 38px;
    min-width: 38px;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: #d2b06d;
    background: #fff8e8;
    color: #765519;
    border-radius: 6px;
}
.schedule-close-period-btn:hover { border-color: #bd9340; background: #fff3d5; }
.schedule-close-period-btn span { font-size: 16px; line-height: 1; }
.schedule-close-period-btn.is-closing { opacity: .65; }
.schedule-period-action-note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 11px;
    border: 1px solid #d8c28f;
    border-radius: 6px;
    background: #fff8e8;
    color: #73571f;
    font-size: 11px;
    font-weight: 750;
}
.schedule-period-closed-badge { border-color: #d8c28f; background: #fff8e8; color: #73571f; }
.schedule-period-status-event { border-color: #d8c28f; background: #fff8e8; color: #73571f; }
.schedule-period-reopen-btn {
    min-height: 21px;
    margin: -1px -5px -1px 2px;
    padding: 1px 7px;
    border: 1px solid #c9aa65;
    border-radius: 999px;
    background: #fff;
    color: #684c13;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.schedule-period-reopen-btn:hover { background: #fff1ca; }
.schedule-period-reopen-btn:disabled { opacity: .6; cursor: wait; }

/* v1.0.77: optional Work Schedule Project/Object assignment */
.schedule-table .hierarchy-needs-selection {
    background: #fff7d8 !important;
    color: #735d18;
    font-style: normal;
    text-align: center;
}
.schedule-table thead .hierarchy-needs-selection,
.schedule-table .total-row .hierarchy-needs-selection { background: inherit !important; }
.schedule-hierarchy-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    min-width: 25px;
    height: 25px;
    margin: 0 auto;
    padding: 0;
    border: 1px solid #d1ad37;
    border-radius: 5px;
    background: #fffdf3;
    color: #795e0d;
    font: 700 18px/1 inherit;
    cursor: pointer;
    transition: background .12s, border-color .12s, transform .12s;
}
.schedule-hierarchy-add-btn:hover {
    border-color: #a98212;
    background: #fff3b8;
    transform: translateY(-1px);
}
.schedule-hierarchy-add-btn:focus-visible {
    outline: 2px solid rgba(169, 130, 18, .28);
    outline-offset: 2px;
}
.schedule-add-field-employee { grid-column: 1 / -1; }
.schedule-add-field {
    padding: 10px;
    border: 1px solid #dce5ea;
    border-radius: 8px;
    background: #fbfdfe;
}
.schedule-add-field-employee {
    padding: 12px;
    border-color: #cfdde5;
    background: #f8fbfc;
}
.required-mark { color: var(--danger); }
.schedule-hierarchy-dialog { width: min(620px, calc(100vw - 30px)); }
.schedule-hierarchy-dialog .modal-body { min-height: 115px; overflow: visible; }
.schedule-hierarchy-dialog form { overflow: visible; }

@media (max-width: 720px) {
    .schedule-add-field-employee { grid-column: auto; }
}


/* v1.0.80: refined Add employee modal visual redesign */
.modal#scheduleAddModal {
    background: rgba(33, 46, 61, .34);
    backdrop-filter: blur(6px);
}
.schedule-add-dialog {
    width: min(760px, calc(100vw - 40px));
    border: 1px solid #dde6ee;
    border-radius: 22px;
    box-shadow: 0 28px 70px rgba(27, 43, 60, .20);
    overflow: hidden;
}
.schedule-add-dialog .modal-header,
.schedule-add-dialog .modal-footer {
    background: #fff;
    border: 0;
}
.schedule-add-dialog .modal-header {
    padding: 30px 28px 14px;
}
.schedule-add-dialog .modal-header h2 {
    font-size: 28px;
    line-height: 1.14;
    letter-spacing: -.02em;
    color: #173253;
}
.schedule-add-subtitle {
    margin: 8px 0 0;
    color: #5f7691;
    font-size: 14px;
    font-weight: 600;
}
.schedule-add-dialog .modal-close {
    margin-left: auto;
}
.schedule-add-dialog button.modal-close {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9e2ea;
    border-radius: 999px;
    background: #f5f8fb;
    color: #38506d;
    font-size: 26px;
    transition: background .12s, border-color .12s, transform .12s;
}
.schedule-add-dialog button.modal-close:hover {
    background: #edf3f8;
    border-color: #c7d5e1;
    transform: translateY(-1px);
}
.schedule-add-dialog form .modal-body {
    padding: 4px 28px 10px;
    background: #fff;
}
.schedule-add-fields {
    gap: 16px;
    padding: 0;
}
.schedule-add-panel {
    padding: 18px 18px 16px;
    border: 1px solid #dbe5ef;
    border-radius: 18px;
    background: linear-gradient(180deg, #f8fbfe 0%, #f4f8fc 100%);
}
.schedule-add-field-employee.schedule-add-panel {
    padding: 20px 20px 18px;
}
.schedule-add-field > span,
.schedule-add-field > label {
    margin-bottom: 10px;
    color: #173253;
    font-size: 13px;
    font-weight: 800;
}
.schedule-combobox-input {
    min-height: 54px;
    border: 1px solid #c8d6e3;
    border-radius: 14px;
    background-color: #fff;
    padding-right: 52px !important;
    color: #22384a;
    font-size: 14px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
.schedule-combobox-input::placeholder {
    color: #6e839a;
    opacity: 1;
}
.schedule-combobox-input--employee,
.schedule-combobox-input--project,
.schedule-combobox-input--object {
    padding-left: 48px !important;
    background-repeat: no-repeat;
    background-position: 16px center;
    background-size: 20px 20px;
}
.schedule-combobox-input--employee {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23556f8c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 17a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4'/%3E%3Ccircle cx='10' cy='7' r='3'/%3E%3C/svg%3E");
}
.schedule-combobox-input--project {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23556f8c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5.5' width='15' height='11' rx='2'/%3E%3Cpath d='M7 5.5V4a1.5 1.5 0 0 1 1.5-1.5h3A1.5 1.5 0 0 1 13 4v1.5'/%3E%3Cpath d='M2.5 9.5h15'/%3E%3C/svg%3E");
}
.schedule-combobox-input--object {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23556f8c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10 2 7 4v8l-7 4-7-4V6l7-4Z'/%3E%3Cpath d='m3 6 7 4 7-4'/%3E%3Cpath d='M10 10v8'/%3E%3C/svg%3E");
}
.schedule-combobox-toggle {
    width: 44px;
    right: 5px;
    top: 5px;
    bottom: 5px;
    border-left: 1px solid #e0e7ee;
    border-radius: 0 11px 11px 0;
    background: #fff;
    color: #556b81;
}
.schedule-combobox-toggle:hover:not(:disabled) {
    background: #f4f7fa;
}
.schedule-combobox.is-open .schedule-combobox-input {
    border-color: #3d72ff;
    box-shadow: 0 0 0 3px rgba(61, 114, 255, .14);
}
.schedule-combobox.is-open .schedule-combobox-toggle {
    border-color: #cfdcf0;
    background: #f8fbff;
}
.schedule-add-status {
    margin-top: 12px;
    font-size: 12px;
}
.schedule-add-dialog .modal-footer {
    padding: 18px 28px 26px;
    border-top: 1px solid #e6edf3;
}
.schedule-add-dialog .modal-footer .btn {
    min-width: 138px;
    min-height: 48px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 700;
}
.schedule-add-dialog .modal-footer .modal-close.btn {
    border-color: #c9d5e1;
    background: #fff;
    color: #405a72;
}
.schedule-add-dialog .modal-footer .modal-close.btn:hover {
    background: #f7fafc;
}
.schedule-add-dialog .modal-footer .btn-primary {
    background: linear-gradient(180deg, #4b82ff 0%, #2f6df6 100%);
    border-color: #2f6df6;
    box-shadow: 0 8px 18px rgba(47, 109, 246, .22);
}
.schedule-add-dialog .modal-footer .btn-primary:hover {
    background: linear-gradient(180deg, #4079fc 0%, #2662ea 100%);
    border-color: #2662ea;
}
@media (max-width: 720px) {
    .schedule-add-dialog {
        width: min(96vw, 96vw);
        border-radius: 18px;
    }
    .schedule-add-dialog .modal-header,
    .schedule-add-dialog form .modal-body,
    .schedule-add-dialog .modal-footer {
        padding-left: 18px;
        padding-right: 18px;
    }
    .schedule-add-dialog .modal-header h2 { font-size: 24px; }
    .schedule-add-fields { gap: 12px; }
    .schedule-add-panel,
    .schedule-add-field-employee.schedule-add-panel { padding: 14px; border-radius: 14px; }
    .schedule-add-dialog .modal-footer .btn { min-width: 120px; }
}


/* v1.0.81: inline blank Work Schedule row */
.schedule-page.has-schedule-draft {
    --project-column-width: calc(46px * var(--scale)) !important;
    --object-column-width: calc(150px * var(--scale)) !important;
    --company-column-width: calc(92px * var(--scale)) !important;
    --manager-column-width: calc(50px * var(--scale)) !important;
}
.schedule-draft-row {
    position: relative;
    z-index: 8;
}
.schedule-draft-row > td {
    height: calc(48px * var(--scale));
    border-top: 1px solid #9fc1d2 !important;
    border-bottom: 1px solid #9fc1d2 !important;
    background: #f2f8fb !important;
}
.schedule-draft-row .sticky-code,
.schedule-draft-row .sticky-project,
.schedule-draft-row .sticky-object,
.schedule-draft-row .sticky-company,
.schedule-draft-row .sticky-manager,
.schedule-draft-row .sticky-name {
    background: #f2f8fb !important;
}
.schedule-draft-row .sticky-project.hierarchy-needs-selection,
.schedule-draft-row .sticky-object.hierarchy-needs-selection,
.schedule-draft-row .sticky-company.hierarchy-needs-selection {
    background: #fff7d8 !important;
}
.schedule-draft-code,
.schedule-draft-company,
.schedule-draft-manager {
    overflow: hidden;
    color: #526a78;
    font-size: calc(10px * var(--scale));
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.schedule-draft-select-cell,
.schedule-draft-employee-cell {
    padding: calc(4px * var(--scale)) !important;
}
.schedule-inline-combobox {
    min-width: 0;
    width: 100%;
}
.schedule-inline-combobox-input {
    width: 100%;
    min-width: 0;
    min-height: calc(34px * var(--scale));
    height: calc(34px * var(--scale));
    padding: 0 calc(30px * var(--scale)) 0 calc(8px * var(--scale)) !important;
    border: 1px solid #a9c4d2;
    border-radius: calc(6px * var(--scale));
    background: #fff;
    color: #203946;
    font-size: calc(10px * var(--scale));
    font-weight: 650;
    text-overflow: ellipsis;
}
.schedule-inline-combobox-input::placeholder {
    color: #718792;
    opacity: 1;
}
.schedule-inline-combobox .schedule-combobox-toggle {
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: calc(27px * var(--scale));
    border-radius: 0 calc(5px * var(--scale)) calc(5px * var(--scale)) 0;
    font-size: calc(14px * var(--scale));
}
.schedule-inline-combobox.is-open .schedule-inline-combobox-input {
    border-color: #4f8aa7;
    box-shadow: 0 0 0 2px rgba(79, 138, 167, .16);
}
.schedule-draft-employee-content {
    display: flex;
    align-items: center;
    gap: calc(5px * var(--scale));
    width: 100%;
    min-width: 0;
}
.schedule-draft-employee-content .schedule-inline-combobox {
    flex: 1 1 auto;
}
.schedule-draft-cancel-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(25px * var(--scale));
    min-width: calc(25px * var(--scale));
    height: calc(25px * var(--scale));
    padding: 0;
    border: 1px solid #d8aaaa;
    border-radius: 50%;
    background: #fff7f7;
    color: #9c4040;
    font-size: calc(16px * var(--scale));
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}
.schedule-draft-cancel-btn:hover {
    border-color: #c97878;
    background: #ffeded;
}
.schedule-draft-cancel-btn:disabled {
    opacity: .5;
    cursor: wait;
}
.schedule-draft-rest {
    position: relative;
    min-width: calc(120px * var(--scale));
    padding: 0 calc(10px * var(--scale)) !important;
    background:
        repeating-linear-gradient(135deg, rgba(102, 151, 174, .035) 0, rgba(102, 151, 174, .035) 8px, transparent 8px, transparent 16px),
        #f7fbfd !important;
    text-align: left !important;
}
.schedule-draft-status {
    display: inline-flex;
    align-items: center;
    min-height: calc(24px * var(--scale));
    padding: 0 calc(8px * var(--scale));
    border-radius: 999px;
    color: #56707e;
    font-size: calc(10px * var(--scale));
    font-weight: 750;
}
.schedule-draft-status[hidden] { display: none; }
.schedule-draft-status.is-saving {
    background: #edf4f7;
    color: #536b77;
}
.schedule-draft-status.is-success {
    background: #e8f6ee;
    color: #287047;
}
.schedule-draft-status.is-error {
    background: #fff0ef;
    color: #a33d36;
}
.schedule-draft-row.is-saving {
    opacity: .82;
}
.schedule-draft-row.is-saving .schedule-inline-combobox,
.schedule-draft-row.is-saving .schedule-draft-cancel-btn {
    pointer-events: none;
}

/* v1.0.82: per-user visible columns for Projects, Objects and Employees */
.directory-column-settings-open {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.directory-column-settings-open span {
    font-size: 14px;
    line-height: 1;
}
.directory-column-settings-dialog {
    width: min(600px, calc(100vw - 32px));
}
.directory-column-settings-dialog .modal-header {
    align-items: flex-start;
}
.directory-column-settings-dialog .modal-header > div {
    min-width: 0;
}
.directory-column-settings-subtitle {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
}
.directory-column-settings-dialog .modal-body {
    padding: 16px;
}
.directory-column-settings-status {
    min-height: 18px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 12px;
}
.directory-column-settings-status.is-error {
    color: var(--danger);
    font-weight: 700;
}
.directory-column-settings-dialog .directory-columns-show-all {
    margin-right: auto;
}
.data-table [data-column-key][hidden] {
    display: none !important;
}
@media (max-width: 620px) {
    .directory-column-settings-dialog .modal-footer {
        flex-wrap: wrap;
    }
    .directory-column-settings-dialog .directory-columns-show-all {
        width: 100%;
        margin-right: 0;
    }
}

/* v1.0.84: identical visual blocks for administrators and other users */
.user-directory-sections {
    display: grid;
    gap: 18px;
}
.user-directory-section {
    overflow: hidden;
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(28, 49, 66, .05);
}
.user-directory-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 15px;
    border-bottom: 1px solid var(--border);
    background: #f6f9fb;
}
.user-directory-section-heading h2 {
    margin: 0;
    color: var(--text);
    font-size: 16px;
    line-height: 1.3;
}
.user-directory-section-heading p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 12px;
}
.user-directory-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 26px;
    padding: 0 9px;
    border: 1px solid #c9d7df;
    border-radius: 999px;
    background: #fff;
    color: #526875;
    font-size: 12px;
    font-weight: 750;
}
.user-directory-panel {
    margin: 0;
    overflow-x: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.user-directory-table {
    min-width: 920px;
}
.user-directory-table .empty-table-cell {
    padding: 30px 16px;
    color: var(--muted);
    text-align: center;
}
@media (max-width: 700px) {
    .user-directory-sections { gap: 15px; }
    .user-directory-section-heading { align-items: flex-start; padding: 12px; }
}


/* v1.0.85: identical column grid in both User directory tables */
.user-directory-table {
    width: 100%;
    min-width: 1080px;
    table-layout: fixed;
}
.user-directory-table col.user-col-code { width: 9%; }
.user-directory-table col.user-col-name { width: 12%; }
.user-directory-table col.user-col-email { width: 24%; }
.user-directory-table col.user-col-access { width: 24%; }
.user-directory-table col.user-col-permissions { width: 9%; }
.user-directory-table col.user-col-status { width: 9%; }
.user-directory-table col.user-col-actions { width: 13%; }
.user-directory-table th,
.user-directory-table td {
    min-width: 0;
}
.user-directory-table td:nth-child(2),
.user-directory-table td:nth-child(3),
.user-directory-table td:nth-child(4) {
    overflow-wrap: anywhere;
}
.user-directory-table td:nth-child(4) .badge {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}
.user-directory-table td.row-actions {
    white-space: nowrap;
}


/* v1.0.86: copy a user's previous Work Schedule period */
.schedule-copy-period-btn {
    width: 38px;
    min-width: 38px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-color: #a9bfcc;
    background: #f5fafc;
    color: #335f73;
    border-radius: 6px;
}
.schedule-copy-period-btn:hover { border-color: #759baa; background: #eaf4f7; color: #244e62; }
.schedule-copy-period-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.schedule-copy-period-btn:disabled { opacity: .55; cursor: wait; }
.schedule-copy-dialog { width: min(470px, calc(100vw - 30px)); }
.schedule-copy-dialog .modal-body { display: grid; gap: 12px; overflow: visible; }
.schedule-copy-source-field { display: grid; gap: 7px; color: #40515e; font-size: 12px; font-weight: 750; }
.schedule-copy-source-field select { width: 100%; min-height: 39px; }
.schedule-copy-note { padding: 10px 11px; border: 1px solid #dce7ec; border-radius: 7px; background: #f7fafb; color: #667883; font-size: 11px; line-height: 1.45; }


/* v1.0.87: selectable parts when copying a Work Schedule period */
.schedule-copy-selection {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}
.schedule-copy-selection legend {
    grid-column: 1 / -1;
    margin-bottom: 1px;
    color: #40515e;
    font-size: 12px;
    font-weight: 750;
}
.schedule-copy-choice {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-height: 58px;
    margin: 0;
    padding: 10px 11px;
    border: 1px solid #d7e2e8;
    border-radius: 8px;
    background: #fbfcfd;
    cursor: pointer;
}
.schedule-copy-choice:hover { border-color: #b7cad4; background: #f7fafb; }
.schedule-copy-choice.is-primary { grid-column: 1 / -1; min-height: 54px; background: #f3f8fa; }
.schedule-copy-choice input { width: auto; min-height: auto; margin: 2px 0 0; }
.schedule-copy-choice span { display: grid; gap: 2px; min-width: 0; }
.schedule-copy-choice strong { color: #2b4350; font-size: 12px; }
.schedule-copy-choice small { color: #71828c; font-size: 10px; font-weight: 400; line-height: 1.35; }
.schedule-copy-choice:has(input:disabled) { opacity: .48; cursor: not-allowed; background: #f5f6f7; }
@media (max-width: 480px) {
    .schedule-copy-selection { grid-template-columns: 1fr; }
    .schedule-copy-choice.is-primary { grid-column: auto; }
}

/* v1.0.88: closed-period visibility and Excel report action */
.schedule-period-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 21px;
    margin: -1px -4px -1px 3px;
    padding: 1px 7px;
    border: 1px solid #8fae94;
    border-radius: 999px;
    background: #f4fbf5;
    color: #2d6840;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .2px;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}
.schedule-period-export-btn span {
    font-size: 12px;
    line-height: 1;
}
.schedule-period-export-btn:hover,
.schedule-period-export-btn:focus-visible {
    border-color: #63906c;
    background: #e8f6eb;
    color: #245b35;
    outline: none;
}


/* v1.0.90: keep period close action on the right side */
.schedule-close-period-btn,
.schedule-period-action-note {
    margin-left: auto;
}


/* v1.0.91: administrator multi-user period closing */
.schedule-admin-close-dialog { width: min(620px, calc(100vw - 30px)); }
.schedule-admin-close-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    color: #526673;
    font-size: 12px;
}
.schedule-admin-close-toolbar > div { display: flex; gap: 7px; flex: 0 0 auto; }
.schedule-admin-close-toolbar .btn { min-height: 30px; padding: 4px 9px; font-size: 11px; }
.schedule-admin-close-list {
    display: grid;
    gap: 7px;
    max-height: 390px;
    overflow: auto;
    padding-right: 4px;
    scrollbar-gutter: stable;
}
.schedule-admin-close-user {
    position: relative;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 9px 11px;
    border: 1px solid #d5e0e6;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.schedule-admin-close-user:hover { border-color: #aebfca; background: #fbfdfe; }
.schedule-admin-close-user.is-selected { border-color: #7da3b3; background: #f1f7f9; box-shadow: inset 3px 0 0 var(--primary); }
.schedule-admin-close-user.is-closed { background: #f5f7f8; color: #86939b; cursor: default; }
.schedule-admin-close-user > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.schedule-admin-close-user.is-selected .employee-checkmark { border-color: var(--primary); background: var(--primary); }
.schedule-admin-close-user.is-selected .employee-checkmark::after { content: ''; position: absolute; left: 5px; top: 2px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.schedule-admin-close-user-copy { display: grid; gap: 2px; min-width: 0; }
.schedule-admin-close-user-copy strong { color: #263946; font-size: 13px; }
.schedule-admin-close-user-copy small { overflow: hidden; color: #788892; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-admin-close-state { border: 1px solid #d6e0e5; border-radius: 999px; padding: 3px 8px; background: #f7fafb; color: #61737f; font-size: 10px; font-weight: 750; white-space: nowrap; }
.schedule-admin-close-user.is-closed .schedule-admin-close-state { border-color: #d8c28f; background: #fff8e8; color: #73571f; }
@media (max-width: 620px) {
    .schedule-admin-close-toolbar { align-items: stretch; flex-direction: column; }
    .schedule-admin-close-toolbar > div { justify-content: flex-end; }
}


/* Calendar -------------------------------------------------------------- */
body.tc-modal-open { overflow: hidden; }
.calendar-page { width: 100%; }
.calendar-page-header { align-items: flex-start; }
.tc-layout { display: flex; gap: 18px; align-items: flex-start; min-width: 0; }
.tc-sidebar { width: 330px; min-width: 300px; display: grid; gap: 14px; }
.tc-calendar-wrap { flex: 1 1 auto; min-width: 620px; align-self: stretch; }
.tc-calendar-sticky { position: sticky; top: 66px; z-index: 20; background: var(--bg); padding-bottom: 1px; }
.tc-create-panel, .tc-unscheduled-panel { padding: 0; overflow: hidden; }
.tc-panel-heading { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; background: #f2f6f8; border-bottom: 1px solid var(--border); color: #455966; }
.tc-create-form { padding: 14px; }
.tc-create-form textarea, .tc-modal textarea, .calendar-page textarea { width: 100%; border: 1px solid var(--border-strong); border-radius: 5px; padding: 8px 9px; resize: vertical; color: var(--text); font: inherit; }
.tc-create-form textarea:focus, .tc-modal textarea:focus { border-color: #719bad; box-shadow: 0 0 0 3px rgba(61,113,135,.12); outline: none; }
.required { color: var(--danger); }
.tc-unscheduled-drop { min-height: 260px; max-height: calc(100vh - 260px); overflow: auto; padding: 10px; background: #fbfcfd; border: 1px dashed transparent; }
.tc-unscheduled-drop.tc-drop-active, .tc-day.tc-drop-active { outline: 2px dashed #6f8797; outline-offset: -4px; background: #edf4f7 !important; }
.tc-empty { color: var(--muted); font-style: italic; padding: 9px; text-align: center; }
.tc-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.tc-toolbar-title { flex: 1 1 auto; text-align: center; font-size: 20px; font-weight: 700; color: #405764; }
.tc-toolbar-actions { display: flex; align-items: center; gap: 7px; }
.tc-calendar { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; box-shadow: 0 2px 8px rgba(28,49,66,.05); }
.tc-calendar th { height: 36px; text-align: center; background: #eef3f6; color: #455966; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: 12px; text-transform: uppercase; letter-spacing: .25px; }
.tc-calendar th:last-child { border-right: 0; }
.tc-day, .tc-day-empty { height: 126px; vertical-align: top; padding: 6px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: #fff; }
.tc-calendar tbody tr:last-child .tc-day, .tc-calendar tbody tr:last-child .tc-day-empty { border-bottom: 0; }
.tc-calendar tbody td:last-child { border-right: 0; }
.tc-day-empty { background: #f6f8fa; }
.tc-day.tc-weekend { background: #f7f8f9; }
.tc-day.tc-today { background: var(--tc-today-color, #f4edcf); box-shadow: inset 0 0 0 2px rgba(114,97,36,.25); }
.tc-day-number { margin-bottom: 5px; color: #586a76; font-weight: 700; font-size: 12px; }
.tc-day-tasks { min-height: 88px; }
.tc-calendar-day-view .tc-day { height: 520px; }
.tc-calendar-day-view .tc-day-tasks { min-height: 470px; }
.tc-calendar-week-view .tc-day { height: 360px; }
.tc-calendar-week-view .tc-day-tasks { min-height: 310px; }
.tc-calendar.tc-card-layout-compact .tc-day-tasks { max-height: 96px; overflow-y: auto; overflow-x: hidden; padding-right: 2px; }
.tc-card-layout-compact.tc-calendar-day-view .tc-day-tasks { max-height: 468px; }
.tc-card-layout-compact.tc-calendar-week-view .tc-day-tasks { max-height: 308px; }
.tc-task { position: relative; border: 1px solid #c9d7e0; border-left: 4px solid var(--tc-open-task-color, #6f8797); border-radius: 5px; background: #f7fafb; padding: 7px; margin-bottom: 6px; cursor: move; word-break: break-word; box-shadow: 0 1px 2px rgba(39,55,70,.06); }
.tc-task:hover { background: #f1f6f8; }
.tc-task.tc-task-completed { border-left-color: var(--tc-completed-task-color, #79937e); background: #f5f9f5; cursor: default; }
.tc-task.tc-dragging { opacity: .45; }
.tc-task-object { display: flex; align-items: center; gap: 5px; min-width: 0; font-size: 12px; font-weight: 700; color: #405764; }
.tc-task-object > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-task-desc { margin-top: 4px; color: #334651; font-size: 12px; line-height: 1.35; white-space: pre-wrap; }
.tc-task-meta { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.tc-task-actions { display: flex; align-items: center; gap: 5px; margin-top: 7px; }
.tc-task-edit { margin-left: auto; border: 0; background: transparent; color: #607783; font-size: 15px; cursor: pointer; padding: 1px 3px; }
.tc-task-edit:hover { color: var(--primary); }
.tc-task-delete { border: 0; background: transparent; color: #8a989f; font-size: 18px; line-height: 1; cursor: pointer; padding: 0 3px; }
.tc-task-delete:hover { color: var(--danger); }
.tc-task-done { min-height: 24px; padding: 1px 7px; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-task { min-height: 30px; max-height: 30px; overflow: hidden; margin-bottom: 4px; padding: 4px 68px 4px 6px; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-task-desc, .tc-calendar.tc-card-layout-compact .tc-day .tc-task-meta { display: none; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-task-actions { position: absolute; top: 3px; right: 4px; margin: 0; gap: 2px; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-status-badge { display: none; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-task-done { width: 24px; min-width: 24px; padding: 0; }
.tc-priority-badge { display: inline-block; min-width: 55px; border: 1px solid #cbd6dd; border-radius: 3px; padding: 1px 5px; font-size: 9px; line-height: 1.35; text-align: center; text-transform: uppercase; letter-spacing: .2px; white-space: nowrap; font-weight: 700; }
.tc-priority-low { background: #f0f2f3; border-color: #d9dfe3; color: #64747e; }
.tc-priority-normal { background: #eaf3f6; border-color: #c4d8e0; color: #3f687a; }
.tc-priority-critical { background: #f8e9e9; border-color: #e6c5c5; color: #924646; }
.tc-status-badge { display: inline-block; padding: 2px 6px; border: 1px solid #c7d8ca; border-radius: 3px; background: #eef6ef; color: #46704e; font-size: 10px; font-weight: 700; }
.tc-task-preview { position: fixed; z-index: 12000; width: 330px; max-width: calc(100vw - 28px); padding: 12px; background: #fff; border: 1px solid var(--border-strong); border-radius: 7px; box-shadow: 0 12px 32px rgba(29,49,66,.22); pointer-events: none; }
.tc-task-preview strong { display: block; margin-bottom: 7px; color: #405764; }
.tc-task-preview-desc { margin-top: 8px; white-space: pre-wrap; line-height: 1.4; }
.tc-task-preview-meta { margin-top: 9px; color: var(--muted); white-space: pre-line; font-size: 11px; line-height: 1.45; }
/* v1.0.99: full-page Calendar History and icon-only technical act action. */
.tc-history-backdrop { padding: 0; }
.tc-history-modal {
    width: 100vw;
    height: 100vh;
    max-width: none;
    max-height: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.tc-history-modal-header { min-height: 58px; padding: 10px 16px; }
.tc-history-modal-header > div { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.tc-history-modal-header .muted { font-size: 11px; white-space: nowrap; }
.tc-history-modal-body { display: flex; flex-direction: column; min-height: 0; padding: 0; overflow: hidden; background: #f7f9fb; }
.tc-history-filter {
    display: grid;
    grid-template-columns: 140px 140px minmax(240px, 1fr) 86px auto;
    align-items: end;
    gap: 8px;
    flex: 0 0 auto;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    background: #fff;
}
.tc-history-filter label { min-width: 0; margin: 0; }
.tc-history-actions { display: flex; justify-content: flex-end; gap: 7px; }
.tc-history-table-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 10px 12px 12px; }
.tc-history-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border: 1px solid var(--border);
    border-radius: 6px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: #fff;
    font-size: 10.5px;
}
.tc-history-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 8px 6px;
    background: #eef3f6;
    color: #4b606d;
    white-space: normal;
    line-height: 1.15;
    font-size: 9.5px;
    letter-spacing: .15px;
}
.tc-history-table td {
    padding: 8px 6px;
    vertical-align: top;
    white-space: pre-wrap;
    line-height: 1.3;
    overflow-wrap: anywhere;
    border-bottom: 1px solid #e6ecef;
}
.tc-history-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.tc-history-table tbody tr:hover td { background: #f5f9fb; }
.tc-history-table tbody tr:last-child td { border-bottom: 0; }
.tc-history-table .tc-history-col-completed { width: 8%; }
.tc-history-table .tc-history-col-scheduled { width: 6.5%; }
.tc-history-table .tc-history-col-object { width: 10%; }
.tc-history-table .tc-history-col-priority { width: 5%; }
.tc-history-table .tc-history-col-problem { width: 14.5%; }
.tc-history-table .tc-history-col-spent { width: 5.5%; }
.tc-history-table .tc-history-col-work { width: 15%; }
.tc-history-table .tc-history-col-parts { width: 10%; }
.tc-history-table .tc-history-col-user { width: 6.5%; }
.tc-history-table .tc-history-col-actions { width: 5.5%; }
.tc-history-date-cell, .tc-history-time-cell { color: #40545f; font-weight: 650; }
.tc-history-object-cell { color: #334955; font-weight: 700; }
.tc-history-user-cell { color: #536874; }
.tc-history-copy { color: #344955; }
.tc-history-priority-cell { text-align: center; }
.tc-history-priority-cell .tc-priority-badge { min-width: 0; max-width: 100%; padding-left: 3px; padding-right: 3px; white-space: normal; }
.tc-history-row-actions { text-align: center; white-space: nowrap !important; }
.tc-action-icon {
    width: 23px;
    min-width: 23px;
    height: 23px;
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 3px;
    padding: 2px;
    background: transparent;
    color: #607783;
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
    vertical-align: middle;
}
.tc-action-icon:hover { background: #edf3f6; color: var(--primary); }
.tc-action-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tc-task-act { flex: 0 0 23px; }
.tc-history-row-actions .tc-action-icon,
.tc-history-row-actions .tc-task-edit { margin: 0 1px; vertical-align: middle; }
.tc-history-row-actions .tc-task-edit { width: 23px; min-width: 23px; height: 23px; min-height: 23px; display: inline-flex; align-items: center; justify-content: center; padding: 1px 3px; }
.tc-history-edit { margin-left: 0; font-size: 15px; }
.tc-calendar.tc-card-layout-compact .tc-day .tc-task.tc-task-completed { padding-right: 82px; }
.tc-modal-backdrop { position: fixed; inset: 0; z-index: 11000; display: flex; align-items: center; justify-content: center; padding: 18px; background: rgba(24,38,48,.5); }
.tc-modal-backdrop[hidden] { display: none; }
.tc-modal { width: 620px; max-width: 96vw; max-height: 92vh; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border-strong); border-radius: 8px; box-shadow: 0 20px 55px rgba(0,0,0,.28); overflow: hidden; }
.tc-settings-modal { width: 680px; }
.tc-modal-header, .tc-modal-footer { display: flex; align-items: center; gap: 8px; padding: 12px 15px; background: #f5f8fa; border-bottom: 1px solid var(--border); }
.tc-modal-header h2 { margin: 0; font-size: 18px; }
.tc-modal-close { margin-left: auto; border: 0; background: transparent; color: #60717b; font-size: 25px; line-height: 1; cursor: pointer; }
.tc-modal-body { overflow: auto; padding: 15px; }
.tc-modal-footer { justify-content: flex-end; border-top: 1px solid var(--border); border-bottom: 0; }
.tc-color-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.tc-color-grid input[type="color"] { padding: 3px; height: 40px; }
.calendar-page .check-row { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.calendar-page .check-row input { width: auto; min-height: auto; margin: 0; }
.tc-loading { opacity: .62; pointer-events: none; }

@media (max-width: 1050px) {
    .tc-layout { display: block; }
    .tc-sidebar { width: 100%; grid-template-columns: minmax(280px, 360px) minmax(320px, 1fr); margin-bottom: 14px; }
    .tc-unscheduled-drop { max-height: 420px; }
    .tc-calendar-wrap { min-width: 0; overflow: auto; }
    .tc-calendar-sticky { position: static; }
}
@media (max-width: 720px) {
    .tc-sidebar { grid-template-columns: 1fr; min-width: 0; }
    .tc-toolbar { flex-wrap: wrap; }
    .tc-toolbar-title { order: -1; flex-basis: 100%; }
    .tc-toolbar-actions { margin-left: auto; flex-wrap: wrap; }
    .tc-calendar { min-width: 760px; }
    .tc-history-modal { width: 100vw; height: 100vh; }
    .tc-history-filter { grid-template-columns: 1fr 1fr; }
    .tc-history-filter label:nth-child(3), .tc-history-actions { grid-column: 1 / -1; }
    .tc-history-table-wrap { padding: 9px; }
    .tc-history-table, .tc-history-table tbody, .tc-history-table tr, .tc-history-table td { display: block; width: 100%; }
    .tc-history-table colgroup, .tc-history-table thead { display: none; }
    .tc-history-table tr { margin-bottom: 9px; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: #fff; }
    .tc-history-table td { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px; border-bottom: 1px solid #e7ecef; }
    .tc-history-table td::before { content: attr(data-label); color: #7b8992; font-size: 9px; font-weight: 750; letter-spacing: .25px; text-transform: uppercase; }
    .tc-history-table td:last-child { border-bottom: 0; }
    .tc-history-row-actions { text-align: left; }
    .tc-color-grid { grid-template-columns: 1fr; }
}



/* v1.0.100: real full-page Calendar History. Kept after generic modal rules on purpose. */
.tc-modal-backdrop.tc-history-backdrop {
    align-items: stretch;
    justify-content: stretch;
    padding: 10px;
}
.tc-modal.tc-history-modal {
    flex: 1 1 auto;
    width: calc(100vw - 20px);
    height: calc(100vh - 20px);
    max-width: none;
    max-height: none;
    border-radius: 7px;
    box-shadow: 0 16px 46px rgba(17, 33, 44, .26);
}
.tc-history-modal-header {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 8px 14px;
}
.tc-history-modal-header > div {
    display: flex;
    align-items: baseline;
    gap: 9px;
    min-width: 0;
}
.tc-history-modal-header h2 { font-size: 16px; }
.tc-history-modal-header .muted { font-size: 10px; white-space: nowrap; }
.tc-history-modal-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #f7f9fb;
}
.tc-history-filter {
    display: grid;
    grid-template-columns: 120px 120px minmax(160px, 1fr) 72px auto;
    align-items: end;
    gap: 8px;
    flex: 0 0 auto;
    padding: 9px 12px;
    border-bottom: 1px solid var(--border);
    background: #fff;
}
.tc-history-filter label { min-width: 0; margin: 0; }
.tc-history-filter input,
.tc-history-filter select { min-width: 0; }
.tc-history-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; white-space: nowrap; }
.tc-history-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 12px 12px;
}
.tc-history-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border: 1px solid var(--border);
    border-radius: 6px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: #fff;
    font-size: 11px;
}
.tc-history-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 8px 9px;
    background: #eef3f6;
    color: #4b606d;
    font-size: 9.5px;
    letter-spacing: .28px;
    line-height: 1.2;
    white-space: nowrap;
}
.tc-history-table td {
    padding: 9px;
    vertical-align: top;
    border-bottom: 1px solid #e5ebee;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}
.tc-history-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.tc-history-table tbody tr:hover td { background: #f5f9fb; }
.tc-history-table tbody tr:last-child td { border-bottom: 0; }
.tc-history-table .tc-history-col-dates { width: 13%; }
.tc-history-table .tc-history-col-object { width: 15%; }
.tc-history-table .tc-history-col-problem { width: 21%; }
.tc-history-table .tc-history-col-result { width: 28%; }
.tc-history-table .tc-history-col-people { width: 18%; }
.tc-history-table .tc-history-col-actions { width: 5%; }
.tc-history-object {
    display: block;
    margin-bottom: 7px;
    color: #334955;
    font-size: 12px;
    line-height: 1.3;
}
.tc-history-copy { color: #344955; white-space: pre-wrap; line-height: 1.42; }
.tc-history-line {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 6px;
    margin-top: 5px;
}
.tc-history-line:first-child { margin-top: 0; }
.tc-history-line > span {
    color: #84919a;
    font-size: 8.5px;
    font-weight: 750;
    letter-spacing: .2px;
    line-height: 1.35;
    text-transform: uppercase;
}
.tc-history-line > div,
.tc-history-line > strong {
    min-width: 0;
    color: #40545f;
    font-size: 10.5px;
    font-weight: 600;
    white-space: pre-wrap;
}
.tc-history-line-wide { grid-template-columns: 58px minmax(0, 1fr); }
.tc-history-row-actions { text-align: center; white-space: nowrap !important; }
.tc-history-row-actions .tc-task-edit,
.tc-history-row-actions .tc-task-act { margin: 0 1px; vertical-align: top; }
.tc-history-edit { width: 23px; min-width: 23px; height: 23px; min-height: 23px; display: inline-flex; align-items: center; justify-content: center; margin-left: 0; padding: 1px 3px; }
.tc-task-act {
    width: 23px;
    min-width: 23px;
    height: 23px;
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 23px;
    border: 0;
    border-radius: 0;
    padding: 2px 3px;
    background: transparent;
    color: #607783;
    text-decoration: none;
    line-height: 1;
}
.tc-task-act:hover { background: transparent; color: var(--primary); }
.tc-task-act svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tc-history-modal > .tc-modal-footer { flex: 0 0 auto; min-height: 42px; padding: 7px 12px; }

@media (max-width: 980px) {
    .tc-history-filter { grid-template-columns: 112px 112px minmax(180px, 1fr) 70px; }
    .tc-history-actions { grid-column: 1 / -1; }
    .tc-history-table .tc-history-col-dates { width: 14%; }
    .tc-history-table .tc-history-col-object { width: 15%; }
    .tc-history-table .tc-history-col-problem { width: 20%; }
    .tc-history-table .tc-history-col-result { width: 27%; }
    .tc-history-table .tc-history-col-people { width: 18%; }
    .tc-history-table .tc-history-col-actions { width: 6%; }
}

@media (max-width: 720px) {
    .tc-modal-backdrop.tc-history-backdrop { padding: 0; }
    .tc-modal.tc-history-modal { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
    .tc-history-filter { grid-template-columns: 1fr 1fr; }
    .tc-history-filter label:nth-child(3),
    .tc-history-actions { grid-column: 1 / -1; }
    .tc-history-table-wrap { padding: 8px; }
    .tc-history-table,
    .tc-history-table tbody,
    .tc-history-table tr,
    .tc-history-table td { display: block; width: 100%; }
    .tc-history-table colgroup,
    .tc-history-table thead { display: none; }
    .tc-history-table tr { margin-bottom: 8px; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: #fff; }
    .tc-history-table td { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 8px; border-bottom: 1px solid #e7ecef; }
    .tc-history-table td::before { content: attr(data-label); color: #7b8992; font-size: 8.5px; font-weight: 750; letter-spacing: .2px; text-transform: uppercase; }
    .tc-history-table td:last-child { border-bottom: 0; }
    .tc-history-row-actions { text-align: left; }
}

/* v1.0.101: original PAK Monitoring History layout inside the current modal. */
.tc-modal-backdrop.tc-history-backdrop {
    align-items: stretch;
    justify-content: stretch;
    padding: 10px;
}
.tc-modal.tc-history-modal {
    flex: 1 1 auto;
    width: calc(100vw - 20px);
    height: calc(100vh - 20px);
    max-width: none;
    max-height: none;
    border-radius: 7px;
    box-shadow: 0 16px 46px rgba(17, 33, 44, .26);
}
.tc-history-modal-header {
    flex: 0 0 auto;
    min-height: 52px;
    padding: 10px 15px;
}
.tc-history-modal-header > div {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
}
.tc-history-modal-header h2 { font-size: 18px; }
.tc-history-modal-header .muted { font-size: 11px; white-space: nowrap; }
.tc-history-modal-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 14px;
    overflow: hidden;
    background: #fff;
}
.tc-history-filter {
    display: flex;
    align-items: flex-end;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0;
    margin-bottom: 12px;
    border: 0;
    background: transparent;
}
.tc-history-filter label {
    display: grid;
    gap: 5px;
    min-width: 0;
    margin: 0;
}
.tc-history-filter label:nth-child(1),
.tc-history-filter label:nth-child(2) { width: 160px; }
.tc-history-filter label:nth-child(3) { min-width: 260px; flex: 1 1 320px; }
.tc-history-filter label:nth-child(4) { width: 110px; }
.tc-history-actions {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 8px;
    padding: 0;
    white-space: nowrap;
}
.tc-history-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
}
.tc-history-table {
    display: table;
    width: 100%;
    min-width: 1280px;
    table-layout: auto;
    border: 0;
    border-radius: 0;
    border-collapse: collapse;
    border-spacing: 0;
    overflow: visible;
    background: #fff;
    font-size: 12px;
}
.tc-history-table thead { display: table-header-group; }
.tc-history-table tbody { display: table-row-group; }
.tc-history-table tr { display: table-row; width: auto; margin: 0; border: 0; border-radius: 0; background: transparent; }
.tc-history-table th,
.tc-history-table td {
    display: table-cell;
    width: auto;
    vertical-align: top;
    border-right: 1px solid #e3e9ec;
    border-bottom: 1px solid #e3e9ec;
    text-align: left;
}
.tc-history-table th:last-child,
.tc-history-table td:last-child { border-right: 0; }
.tc-history-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 8px 9px;
    background: #eef3f6;
    color: #455966;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: .15px;
    white-space: nowrap;
}
.tc-history-table td {
    padding: 7px 9px;
    color: #344955;
    font-size: 11px;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: break-word;
}
.tc-history-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.tc-history-table tbody tr:hover td { background: #f5f9fb; }
.tc-history-table tbody tr:last-child td { border-bottom: 0; }
.tc-history-table td::before { content: none !important; display: none !important; }
.tc-history-date-cell,
.tc-history-time-cell { white-space: nowrap !important; color: #40545f; font-weight: 650; }
.tc-history-object-cell { min-width: 150px; max-width: 250px; color: #334955; font-weight: 700; }
.tc-history-priority-cell { width: 78px; min-width: 78px; text-align: center !important; }
.tc-history-priority-cell .tc-priority-badge { margin: 0; }
.tc-history-description { min-width: 220px; max-width: 520px; white-space: normal !important; word-break: break-word; }
.tc-history-small-text { min-width: 180px; max-width: 280px; white-space: pre-wrap !important; word-break: break-word; }
.tc-history-user-cell { min-width: 105px; color: #536874; }
.tc-history-row-actions { width: 66px !important; min-width: 66px; text-align: center !important; white-space: nowrap !important; }
.tc-history-row-actions .tc-task-edit,
.tc-history-row-actions .tc-task-act { margin: 0 1px; vertical-align: middle; }
.tc-history-edit { width: 23px; min-width: 23px; height: 23px; min-height: 23px; display: inline-flex; align-items: center; justify-content: center; margin-left: 0; padding: 1px 3px; }
.tc-action-icon,
.tc-task-act {
    width: 23px;
    min-width: 23px;
    height: 23px;
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 23px;
    border: 0;
    border-radius: 3px;
    padding: 2px;
    background: transparent;
    color: #607783;
    text-decoration: none;
    line-height: 1;
}
.tc-action-icon:hover,
.tc-task-act:hover { background: #edf3f6; color: var(--primary); }
.tc-action-icon svg,
.tc-task-act svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tc-history-modal > .tc-modal-footer { flex: 0 0 auto; min-height: 46px; padding: 9px 14px; }

@media (max-width: 720px) {
    .tc-modal-backdrop.tc-history-backdrop { padding: 0; }
    .tc-modal.tc-history-modal { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
    .tc-history-modal-body { padding: 10px; }
    .tc-history-filter { display: flex; }
    .tc-history-filter label:nth-child(1),
    .tc-history-filter label:nth-child(2) { width: calc(50% - 5px); }
    .tc-history-filter label:nth-child(3) { min-width: 100%; flex-basis: 100%; }
    .tc-history-filter label:nth-child(4) { width: 100px; }
    .tc-history-actions { flex: 1 1 auto; justify-content: flex-end; }
    .tc-history-table,
    .tc-history-table tbody,
    .tc-history-table thead,
    .tc-history-table tr,
    .tc-history-table th,
    .tc-history-table td { display: revert; }
    .tc-history-table { display: table; width: 100%; min-width: 1280px; }
    .tc-history-table thead { display: table-header-group; }
    .tc-history-table tbody { display: table-row-group; }
    .tc-history-table tr { display: table-row; }
    .tc-history-table th,
    .tc-history-table td { display: table-cell; }
}
/* v1.0.101 table sizing: keep the original 12 columns visible on a normal desktop. */
.tc-history-table { min-width: 1120px; }
.tc-history-object-cell { min-width: 0; max-width: 220px; }
.tc-history-description { min-width: 0; max-width: 420px; }
.tc-history-small-text { min-width: 0; max-width: 250px; }
.tc-history-user-cell { min-width: 0; }
.tc-history-row-actions { width: 54px !important; min-width: 54px; }
@media (max-width: 720px) {
    .tc-history-table { min-width: 1120px; }
}

/* v1.0.102: clear checkbox state for Active account and Administrator */
.scope-option > input[type="checkbox"]:checked + .employee-checkmark {
    border-color: var(--primary);
    background: var(--primary);
}
.scope-option > input[type="checkbox"]:checked + .employee-checkmark::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.scope-option > input[type="checkbox"]:focus-visible + .employee-checkmark {
    outline: 3px solid rgba(61, 113, 135, .18);
    outline-offset: 2px;
}
.scope-option > input[type="checkbox"]:disabled + .employee-checkmark {
    opacity: .7;
}

.role-company-select{display:grid;gap:6px;max-width:520px;margin-top:14px;font-weight:700}.role-company-select select{width:100%}

/* v1.0.106 — multi-Company scope controls */
.scope-option.is-disabled-option {
    opacity: .58;
    cursor: not-allowed;
    transform: none;
}
.scope-option.is-disabled-option:hover {
    border-color: var(--border);
    background: #fbfcfd;
    transform: none;
}

.role-company-picker{margin-top:14px}.role-company-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.role-company-picker-toolbar>div:first-child{display:grid;gap:2px}.role-company-picker-toolbar small{color:var(--muted);font-weight:500}.role-company-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:240px}.role-company-item .role-project-main{min-width:0}@media(max-width:900px){.role-company-list{grid-template-columns:1fr}}

/* v1.0.108 — compact Company permission selector */
.role-company-section { gap: 10px; }
.company-scope-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 260px);
    align-items: stretch;
    gap: 10px;
}
.company-scope-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 4px;
    border: 1px solid #d5e0e6;
    border-radius: 10px;
    background: #f3f6f8;
}
.company-scope-choice {
    position: relative;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 7px 10px;
    border: 1px solid transparent;
    border-radius: 7px;
    cursor: pointer;
    transition: background .14s, border-color .14s, box-shadow .14s;
}
.company-scope-choice:hover { background: rgba(255,255,255,.72); }
.company-scope-choice.is-selected {
    border-color: #b9cdd6;
    background: #fff;
    box-shadow: 0 1px 4px rgba(31, 57, 72, .09);
}
.company-scope-choice > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.company-scope-choice > span:last-child { display: grid; min-width: 0; gap: 1px; }
.company-scope-choice strong { color: var(--text); font-size: 12px; line-height: 1.25; }
.company-scope-choice small { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.company-scope-dot {
    position: relative;
    width: 16px;
    height: 16px;
    border: 2px solid #aab9c3;
    border-radius: 50%;
    background: #fff;
}
.company-scope-choice.is-selected .company-scope-dot { border-color: var(--primary); }
.company-scope-choice.is-selected .company-scope-dot::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--primary);
}
.company-scope-choice.is-disabled-option { opacity: .52; cursor: not-allowed; }
.company-scope-choice.is-disabled-option:hover { background: transparent; }
.company-scope-summary {
    display: grid;
    align-content: center;
    gap: 2px;
    min-width: 0;
    padding: 7px 11px;
    border: 1px solid #d8e3e8;
    border-radius: 9px;
    background: #f8fbfc;
}
.company-scope-summary span { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .35px; text-transform: uppercase; }
.company-scope-summary strong { overflow: hidden; color: var(--primary-dark); font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.role-company-picker {
    gap: 8px;
    margin-top: 0;
    padding: 9px;
    border-color: #d8e3e8;
    border-radius: 9px;
    background: #f8fafb;
}
.role-company-picker-toolbar {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    align-items: center;
    gap: 8px;
}
.role-company-search { position: relative; margin: 0; }
.role-company-search .role-search-icon { left: 10px; font-size: 16px; }
.role-company-search input {
    width: 100%;
    min-height: 34px;
    padding: 6px 10px 6px 31px;
    border-radius: 7px;
    background: #fff;
    font-size: 12px;
}
.role-company-count {
    min-width: 76px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}
.role-company-count strong { color: var(--primary-dark); font-size: 13px; }
.role-company-actions { display: flex; gap: 5px; }
.role-company-actions .btn-small { min-height: 32px; padding: 5px 9px; font-size: 10px; }
.role-company-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    max-height: 190px;
}
.role-company-item {
    min-height: 38px;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 6px;
    box-shadow: none;
}
.role-company-item:hover { box-shadow: none; }
.role-company-item.is-selected { box-shadow: inset 2px 0 0 var(--primary); }
.role-company-item .employee-checkmark { width: 17px; height: 17px; }
.role-company-item .role-project-main { min-width: 0; gap: 0; }
.role-company-item .role-project-main strong { font-size: 11px; }
@media (max-width: 1050px) {
    .role-company-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .company-scope-control { grid-template-columns: 1fr; }
    .company-scope-summary { min-height: 42px; }
    .role-company-picker-toolbar { grid-template-columns: 1fr auto; }
    .role-company-actions { grid-column: 1 / -1; }
    .role-company-actions .btn-small { flex: 1 1 0; }
    .role-company-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .company-scope-switch { grid-template-columns: 1fr; }
    .role-company-list { grid-template-columns: 1fr; }
}

/* v1.0.109 — floating multi-company dropdown */
.role-company-section { position: relative; overflow: visible; }
.company-scope-control {
    grid-template-columns: minmax(0, 1fr) minmax(190px, 250px);
    align-items: center;
    gap: 8px;
}
.company-scope-choice {
    min-height: 42px;
    padding: 5px 8px;
}
.company-scope-choice strong { font-size: 11px; }
.company-scope-choice small { font-size: 9px; }
.company-picker-dropdown {
    position: relative;
    min-width: 0;
}
.company-picker-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 42px;
    padding: 6px 10px;
    border: 1px solid #d5e0e6;
    border-radius: 9px;
    background: #fff;
    color: var(--text);
    cursor: pointer;
    text-align: left;
    transition: border-color .14s, box-shadow .14s, background .14s;
}
.company-picker-trigger:hover:not(:disabled) {
    border-color: #9fb8c4;
    background: #fbfdfe;
}
.company-picker-trigger:focus-visible {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(65, 123, 145, .14);
}
.company-picker-trigger:disabled {
    cursor: default;
    opacity: .72;
    background: #f6f8f9;
}
.company-picker-trigger-copy {
    display: grid;
    min-width: 0;
    gap: 1px;
}
.company-picker-trigger-copy small {
    color: var(--muted);
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .35px;
    line-height: 1.1;
    text-transform: uppercase;
}
.company-picker-trigger-copy strong {
    overflow: hidden;
    color: var(--primary-dark);
    font-size: 11px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.company-picker-trigger-arrow {
    flex: 0 0 auto;
    color: #66808d;
    font-size: 12px;
    transition: transform .14s;
}
.company-picker-dropdown.is-open .company-picker-trigger {
    border-color: #7fa5b6;
    box-shadow: 0 0 0 3px rgba(65, 123, 145, .11);
}
.company-picker-dropdown.is-open .company-picker-trigger-arrow { transform: rotate(180deg); }
.role-company-picker.company-picker-popover {
    position: absolute;
    z-index: 120;
    top: calc(100% + 7px);
    right: 0;
    width: min(620px, calc(100vw - 40px));
    margin: 0;
    padding: 10px;
    border-color: #c8d8df;
    background: #fff;
    box-shadow: 0 14px 34px rgba(26, 49, 62, .18), 0 3px 8px rgba(26, 49, 62, .08);
}
.role-company-picker.company-picker-popover::before {
    content: '';
    position: absolute;
    top: -6px;
    right: 18px;
    width: 10px;
    height: 10px;
    border-left: 1px solid #c8d8df;
    border-top: 1px solid #c8d8df;
    background: #fff;
    transform: rotate(45deg);
}
.role-company-picker.company-picker-popover .role-company-list { max-height: 220px; }
@media (max-width: 760px) {
    .company-scope-control { grid-template-columns: 1fr; }
    .role-company-picker.company-picker-popover {
        right: auto;
        left: 0;
        width: min(100%, calc(100vw - 40px));
    }
    .role-company-picker.company-picker-popover::before { right: auto; left: 18px; }
}

/* v1.0.111: System → Notifications email configuration */
.notification-page-header { align-items: flex-start; }
.notification-settings-form { width: min(1320px, 100%); }
.notification-block { padding: 0; overflow: visible; }
.notification-block-heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 13px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, #fff 0%, #fbfcfd 100%);
    border-radius: 7px 7px 0 0;
}

.notification-block-heading[data-notification-block-toggle] {
    cursor: pointer;
    user-select: none;
    transition: background-color .16s ease;
}
.notification-block-heading[data-notification-block-toggle]:hover { background: #f8fafb; }
.notification-block-heading[data-notification-block-toggle]:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}
.notification-block-chevron {
    width: 10px;
    height: 10px;
    margin-left: 2px;
    border-right: 2px solid #788994;
    border-bottom: 2px solid #788994;
    transform: rotate(45deg);
    transition: transform .18s ease;
    flex: 0 0 auto;
}
.notification-block.is-expanded .notification-block-chevron { transform: rotate(225deg); }
.notification-block:not(.is-expanded) .notification-block-heading { border-bottom: 0; border-radius: 7px; }
.notification-block-content[hidden] { display: none !important; }
.notification-block-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid #c8d8e0;
    border-radius: 10px;
    background: #edf5f8;
    color: var(--primary-dark);
    font-size: 19px;
}
.notification-block-copy { min-width: 0; }
.notification-block-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.notification-block-title-row h2 { margin: 0; font-size: 18px; font-weight: 700; }
.notification-block-copy p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.mail-status-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border: 1px solid #d2dce2; border-radius: 999px; background: #f5f7f9; color: #6c7a84; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .35px; }
.mail-status-badge.is-configured { border-color: #b8d7c6; background: #edf8f1; color: #347055; }
.notification-updated { min-width: 130px; color: var(--muted); font-size: 10px; line-height: 1.35; text-align: right; }
.notification-updated strong { display: block; color: #40515e; font-size: 12px; }
.notification-updated small { display: block; margin-top: 1px; }
.notification-general-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 15px 18px; border-bottom: 1px solid var(--border); background: #f8fafb; }
.mail-protocol-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 16px 18px 18px; }
.mail-protocol-card { display: grid; grid-template-rows: auto 1fr auto; min-width: 0; border: 1px solid var(--border); border-radius: 8px; background: #fbfcfd; overflow: hidden; transition: border-color .14s, box-shadow .14s, background .14s; }
.mail-protocol-card.is-enabled { border-color: #aec6d1; background: #fff; box-shadow: 0 4px 14px rgba(37,66,82,.07); }
.mail-protocol-card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 67px; padding: 12px 14px; border-bottom: 1px solid var(--border); background: #f6f8fa; }
.mail-protocol-card.is-enabled .mail-protocol-card-header { background: #f3f8fa; }
.mail-protocol-title-line { display: flex; align-items: center; gap: 8px; }
.mail-protocol-title-line h3 { margin: 0; font-size: 15px; letter-spacing: .25px; }
.mail-protocol-card-header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.protocol-state { display: inline-flex; align-items: center; min-height: 20px; padding: 1px 7px; border-radius: 999px; background: #e9edf0; color: #74818a; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; }
.mail-protocol-card.is-enabled .protocol-state { background: #dfeef3; color: #346b80; }
.compact-switch { position: relative; display: inline-flex; width: 38px; height: 22px; flex: 0 0 auto; cursor: pointer; }
.compact-switch input { position: absolute; opacity: 0; pointer-events: none; }
.compact-switch span { width: 38px; height: 22px; border-radius: 999px; background: #bbc5cb; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); transition: background .15s; }
.compact-switch span::after { content: ''; display: block; width: 18px; height: 18px; margin: 2px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .15s; }
.compact-switch input:checked + span { background: var(--primary); }
.compact-switch input:checked + span::after { transform: translateX(16px); }
.compact-switch input:focus-visible + span { box-shadow: 0 0 0 3px rgba(61,113,135,.18); }
.mail-protocol-body { display: grid; align-content: start; gap: 13px; padding: 14px; opacity: .68; transition: opacity .14s; }
.mail-protocol-card.is-enabled .mail-protocol-body { opacity: 1; }
.mail-server-row { display: grid; grid-template-columns: minmax(160px, 1fr) 82px 120px; gap: 9px; }
.mail-login-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.password-input-wrap { position: relative; display: block; margin-top: 5px; }
.password-input-wrap input { margin-top: 0; padding-right: 36px; }
.password-visibility { position: absolute; right: 3px; top: 3px; display: grid; place-items: center; width: 29px; height: 28px; border: 0; border-radius: 4px; background: transparent; color: #73838d; cursor: pointer; font-size: 13px; }
.password-visibility:hover, .password-visibility.is-visible { background: #edf3f6; color: var(--primary-dark); }
.mail-options-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; min-height: 27px; }
.mail-options-row .check-line { color: #5c6c76; font-size: 11px; }
.clear-secret-check { color: #98604b !important; }
.mail-imap-options { display: grid; grid-template-columns: minmax(150px, .65fr) minmax(240px, 1.35fr); align-items: end; gap: 10px; }
.mail-protocol-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 9px 14px; border-top: 1px solid var(--border); background: #f8fafb; }
.protocol-ready { color: var(--muted); font-size: 11px; }
.protocol-ready.is-ready { color: var(--success); font-weight: 700; }
.notification-block-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 18px; border-top: 1px solid var(--border); background: #f8fafb; border-radius: 0 0 7px 7px; }
.notification-block-footer p { margin: 0; color: var(--muted); font-size: 11px; }
.notification-footer-actions { display: flex; gap: 8px; flex: 0 0 auto; }

@media (max-width: 1080px) {
    .mail-protocol-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .notification-general-grid { grid-template-columns: 1fr; }
    .mail-server-row { grid-template-columns: minmax(0, 1fr) 85px; }
    .mail-security-field { grid-column: 1 / -1; }
    .mail-login-grid, .mail-imap-options { grid-template-columns: 1fr; }
    .notification-block-heading { grid-template-columns: 38px minmax(0, 1fr) auto; }
    .notification-block-icon { width: 38px; height: 38px; }
    .notification-updated { grid-column: 2; min-width: 0; text-align: left; }
    .notification-block-chevron { grid-column: 3; grid-row: 1; }
    .notification-block-footer { align-items: stretch; flex-direction: column; }
    .notification-footer-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
}
@media (max-width: 480px) {
    .mail-protocol-grid, .notification-general-grid { padding-left: 12px; padding-right: 12px; }
    .mail-server-row { grid-template-columns: 1fr; }
    .mail-security-field { grid-column: auto; }
    .mail-protocol-actions { align-items: stretch; flex-direction: column; }
    .mail-protocol-actions .btn { width: 100%; }
    .notification-footer-actions { grid-template-columns: 1fr; }
}

/* v1.0.113 — compact collapsible panels inside User form */
.user-settings-form-panel {
    padding: 12px;
    background: #f5f8fa;
}
.user-settings-form {
    gap: 9px;
}
.user-access-settings {
    display: grid;
    gap: 9px;
}
.user-settings-panel {
    position: relative;
    overflow: visible;
    border: 1px solid #d5e0e6;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(28, 49, 66, .035);
}
.user-settings-panel-toggle {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(130px, auto) 12px;
    align-items: center;
    gap: 13px;
    width: 100%;
    min-height: 54px;
    padding: 9px 12px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfd 100%);
    color: var(--text);
    cursor: pointer;
    text-align: left;
    user-select: none;
    transition: background .14s, box-shadow .14s;
}
.user-settings-panel-toggle:hover {
    background: #f8fbfc;
}
.user-settings-panel-toggle:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--primary), 0 0 0 3px rgba(65, 123, 145, .12);
}
.user-settings-panel.is-expanded > .user-settings-panel-toggle {
    border-radius: 9px 9px 0 0;
    border-bottom: 1px solid #e2eaee;
    background: #fbfdfe;
}
.user-settings-panel-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}
.user-settings-panel-copy strong {
    color: #263b48;
    font-size: 14px;
    line-height: 1.25;
}
.user-settings-panel-copy small {
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.user-settings-panel-summary {
    justify-self: end;
    max-width: 310px;
    overflow: hidden;
    padding: 4px 8px;
    border: 1px solid #d8e3e8;
    border-radius: 999px;
    background: #f5f9fa;
    color: #4f6a78;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.user-settings-panel-chevron {
    width: 8px;
    height: 8px;
    border-right: 2px solid #718691;
    border-bottom: 2px solid #718691;
    transform: rotate(45deg);
    transition: transform .16s ease;
}
.user-settings-panel.is-expanded > .user-settings-panel-toggle .user-settings-panel-chevron {
    transform: rotate(225deg);
}
.user-settings-panel-body {
    display: grid;
    gap: 10px;
    padding: 11px 12px 12px;
}
.user-settings-panel-body[hidden] {
    display: none !important;
}
.role-login-grid {
    gap: 9px 12px;
}
.role-login-grid label {
    font-size: 12px;
}
.role-login-grid input {
    min-height: 36px;
    margin-top: 5px;
}
.role-login-grid .field-help {
    margin-top: 4px;
    font-size: 10px;
}
.role-scope-grid-compact {
    gap: 7px;
}
.scope-option.scope-option-compact {
    grid-template-columns: 19px minmax(0, 1fr) auto;
    gap: 8px;
    min-height: 48px;
    padding: 7px 9px;
    border-radius: 7px;
    box-shadow: none;
    transform: none;
}
.scope-option.scope-option-compact:hover {
    transform: none;
}
.scope-option.scope-option-compact .scope-option-radio {
    width: 17px;
    height: 17px;
}
.scope-option.scope-option-compact.is-selected .scope-option-radio::after {
    inset: 3px;
}
.scope-option.scope-option-compact .employee-checkmark {
    width: 17px;
    height: 17px;
}
.scope-option.scope-option-compact .scope-option-copy {
    gap: 1px;
}
.scope-option.scope-option-compact .scope-option-copy strong {
    font-size: 11px;
}
.scope-option.scope-option-compact .scope-option-copy small {
    font-size: 9px;
    line-height: 1.3;
}
.scope-option.scope-option-compact .scope-option-tag {
    padding: 2px 6px;
    font-size: 8px;
}
.permission-grid-compact {
    gap: 7px;
}
.permission-card.permission-card-compact {
    min-height: 50px;
    gap: 8px;
    padding: 7px 8px;
    border-radius: 6px;
}
.permission-card-compact .permission-copy {
    gap: 2px;
}
.permission-card-compact .permission-copy strong {
    font-size: 12px;
}
.permission-card-compact .permission-copy small {
    font-size: 9px;
    line-height: 1.3;
}
.permission-card-compact .permission-switches {
    gap: 5px;
}
.permission-card-compact .permission-check {
    min-height: 28px;
    padding: 4px 6px;
    font-size: 9px;
}
.role-picker-compact {
    gap: 8px;
    padding: 9px;
    border-radius: 7px;
}
.role-picker-compact .role-picker-heading h2 {
    font-size: 12px;
}
.role-picker-compact .role-picker-heading p {
    font-size: 9px;
}
.role-picker-compact .role-selected-count {
    min-width: 78px;
    padding: 3px 7px;
    font-size: 9px;
}
.role-picker-compact .role-selected-count strong {
    font-size: 11px;
}
.role-picker-compact .role-picker-toolbar {
    gap: 7px;
}
.role-picker-compact .role-search-field > span:first-child {
    margin-bottom: 4px;
    font-size: 10px;
}
.role-picker-compact .role-search-box input {
    min-height: 34px;
    font-size: 11px;
}
.role-picker-compact .role-picker-actions .btn {
    min-height: 34px;
    padding: 6px 9px;
    font-size: 10px;
}
.role-picker-compact .role-project-list,
.role-picker-compact .role-employee-list {
    gap: 6px;
    max-height: 280px;
}
.role-picker-compact .role-project-item,
.role-picker-compact .role-employee-item {
    min-height: 44px;
    gap: 8px;
    padding: 6px 8px;
}
.role-picker-compact .role-project-main strong,
.role-picker-compact .role-employee-main strong {
    font-size: 11px;
}
.role-picker-compact .role-project-main small,
.role-picker-compact .role-employee-main small {
    font-size: 9px;
}
.role-picker-compact .role-employee-object {
    font-size: 8px;
}
.user-settings-form-footer {
    margin-top: 2px;
    padding: 11px 2px 0;
}
.user-settings-form-footer .access-admin-note {
    padding: 7px 9px;
    font-size: 10px;
}
.user-access-settings.is-disabled-section .user-settings-panel-summary {
    opacity: .72;
}
@media (max-width: 760px) {
    .user-settings-panel-toggle {
        grid-template-columns: minmax(0, 1fr) 12px;
        gap: 9px;
    }
    .user-settings-panel-summary {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
        max-width: 100%;
    }
    .user-settings-panel-chevron {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
    .user-settings-panel-copy small {
        white-space: normal;
    }
}
@media (max-width: 600px) {
    .user-settings-form-panel { padding: 8px; }
    .user-settings-panel-toggle { min-height: 50px; padding: 8px 9px; }
    .user-settings-panel-body { padding: 9px; }
    .scope-option.scope-option-compact {
        grid-template-columns: 19px minmax(0, 1fr);
    }
    .scope-option.scope-option-compact .scope-option-tag {
        grid-column: 2;
        justify-self: start;
    }
}

/* v1.0.114 — Work Schedule period completed email notification */
.notification-rule-form { margin-top: 12px; }
.notification-rule-block .notification-block-heading { min-height: 72px; }
.notification-rule-icon { background: #f2f5f6; border-color: #d2dadd; color: #71808a; font-weight: 800; }
.notification-rule-block.is-rule-active .notification-rule-icon { background: #edf8f1; border-color: #b8d7c6; color: #347055; }
.notification-rule-toggle-wrap { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 98px; }
.notification-rule-state-label { color: #7a8790; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .35px; }
.notification-rule-block.is-rule-active .notification-rule-state-label { color: #347055; }
.notification-rule-body { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 12px; padding: 14px 18px 16px; background: #fbfcfd; }
.notification-rule-logic,
.notification-rule-recipients,
.notification-rule-message { min-width: 0; padding: 13px 14px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.notification-rule-message { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; }
.notification-rule-section-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.notification-rule-section-title h3 { margin: 0; color: #334650; font-size: 14px; }
.notification-rule-logic ul { display: grid; gap: 6px; margin: 10px 0 0; padding-left: 18px; color: #64747e; font-size: 11px; line-height: 1.45; }
.notification-rule-recipients > p { margin: 5px 0 11px; color: var(--muted); font-size: 11px; }
.notification-template-help { margin: -2px 0 1px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.notification-template-help code { padding: 1px 4px; border-radius: 4px; background: #f1f4f5; color: #53656f; font-size: 10px; }
.template-token-help { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; }
.notification-rule-message label { margin: 0; }
.notification-rule-message input, .notification-rule-message textarea { margin-top: 5px; }
.notification-rule-message textarea { min-height: 118px; resize: vertical; line-height: 1.45; }
.rule-channel-state,
.recipient-count { display: inline-flex; align-items: center; min-height: 20px; padding: 1px 7px; border-radius: 999px; background: #eef1f3; color: #76848d; font-size: 9px; font-weight: 800; letter-spacing: .25px; }
.rule-channel-state.is-ready { background: #edf8f1; color: #347055; }
.notification-recipient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.notification-recipient-grid input { margin-top: 5px; }
.notification-rule-footer { min-height: 54px; }

@media (max-width: 900px) {
    .notification-rule-body { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .notification-rule-block .notification-block-heading { grid-template-columns: 38px minmax(0, 1fr) auto auto; }
    .notification-rule-block .notification-rule-toggle-wrap { grid-column: 2 / 4; grid-row: 2; justify-self: start; }
    .notification-rule-block .notification-block-chevron { grid-column: 4; grid-row: 1; }
}
@media (max-width: 520px) {
    .notification-rule-body { padding-left: 12px; padding-right: 12px; }
    .notification-recipient-grid { grid-template-columns: 1fr; }
}

/* v1.0.115 — editable period-close email subject and body */

/* v1.0.116 — optional completed-period Excel attachment */
.notification-attachment-option {
    display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin-top: 2px !important;
    padding: 7px 10px; border: 1px solid var(--border); border-radius: 7px; background: #f8fafb;
    color: #4f606a; font-size: 11px; font-weight: 700; cursor: pointer;
}
.notification-attachment-option input { width: 15px; height: 15px; margin: 0; accent-color: #3d765c; cursor: pointer; }
.notification-attachment-option span { line-height: 1.2; }

/* v1.0.117 — compact Employee / Contract notification status selectors */
.notification-status-rule-logic { display: flex; flex-direction: column; gap: 10px; }
.notification-trigger-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 2px; }
.notification-trigger-group { padding: 9px 10px; border: 1px solid var(--border); border-radius: 7px; background: #f8fafb; }
.notification-trigger-group > strong { display: block; margin-bottom: 7px; color: #465963; font-size: 11px; }
.notification-trigger-options { display: flex; flex-wrap: wrap; gap: 7px; }
.notification-trigger-check { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; margin: 0; padding: 5px 9px; border: 1px solid #d6dee2; border-radius: 6px; background: #fff; color: #445660; font-size: 11px; cursor: pointer; }
.notification-trigger-check:hover { background: #f6f9fa; border-color: #c7d2d8; }
.notification-trigger-check input { width: 14px; height: 14px; margin: 0; accent-color: #3d765c; cursor: pointer; }
.notification-status-rule-notes { margin-top: 0 !important; }
@media (max-width: 760px) {
    .notification-trigger-grid { grid-template-columns: 1fr; }
}

/* v1.0.120 — administrator-only System Monitoring (strictly scoped) */
.monitoring-page { display: grid; gap: 14px; }
.monitoring-page .monitoring-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.monitoring-page .monitoring-header h1 { margin: 2px 0 4px; font-size: 25px; color: #2f414b; }
.monitoring-page .monitoring-header p { margin: 0; color: var(--muted); font-size: 12px; }
.monitoring-page .page-kicker { color: #71818b; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .55px; }
.monitoring-page .monitoring-actions { display: flex; align-items: center; gap: 8px; }
.monitoring-page .monitoring-auto-refresh { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; margin: 0; padding: 0 10px; border: 1px solid var(--border); border-radius: 7px; background: #fff; color: #60717b; font-size: 10px; }
.monitoring-page .monitoring-auto-refresh input { width: 14px; height: 14px; margin: 0; accent-color: #3d765c; }
.monitoring-page .monitoring-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.monitoring-page .monitor-card,
.monitoring-page .monitor-panel { border: 1px solid var(--border); border-radius: 9px; background: #fff; box-shadow: 0 1px 2px rgba(34,52,62,.03); }
.monitoring-page .monitor-card { min-height: 108px; padding: 13px 14px; display: flex; flex-direction: column; gap: 7px; }
.monitoring-page .monitor-card small { color: #7a8992; font-size: 10px; font-weight: 700; }
.monitoring-page .monitor-card strong { color: #31454f; font-size: 22px; line-height: 1; }
.monitoring-page .monitor-card > span,
.monitoring-page .monitor-card div > span { color: #7d8b94; font-size: 9px; }
.monitoring-page .monitor-status-card { flex-direction: row; align-items: center; gap: 11px; }
.monitoring-page .monitor-status-card > div { display: flex; flex-direction: column; gap: 7px; }
.monitoring-page .monitor-icon { display: grid !important; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: #edf8f1; color: #2f7a53 !important; font-size: 18px !important; font-weight: 900; }
.monitoring-page .monitor-progress { width: 100%; height: 5px; overflow: hidden; border-radius: 999px; background: #edf1f3; }
.monitoring-page .monitor-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: #4d7f67; transition: width .25s ease; }
.monitoring-page .monitoring-chart-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.monitoring-page .monitor-panel { min-width: 0; padding: 13px 14px; }
.monitoring-page .monitor-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.monitoring-page .monitor-panel-head h2 { margin: 0; color: #344954; font-size: 13px; }
.monitoring-page .monitor-panel-head span { color: #8a979f; font-size: 9px; }
.monitoring-page .mini-chart { position: relative; height: 125px; overflow: hidden; border-radius: 6px; background: linear-gradient(to bottom, #fafcfc, #f5f8f9); border: 1px solid #eef2f3; }
.monitoring-page .mini-chart svg { width: 100%; height: 100%; }
.monitoring-page .mini-chart polyline { stroke: #4e7e68; stroke-width: 1.6; }
.monitoring-page .mini-chart-value { position: absolute; top: 8px; right: 9px; padding: 2px 6px; border-radius: 999px; background: rgba(255,255,255,.88); color: #5a6c75; font-size: 9px; font-weight: 800; }
.monitoring-page .monitoring-details-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.monitoring-page .monitor-panel.compact { min-height: 166px; }
.monitoring-page .monitor-dl { display: grid; gap: 7px; margin: 0; }
.monitoring-page .monitor-dl > div,
.monitoring-page .service-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 1px solid #f0f3f4; }
.monitoring-page .monitor-dl > div:last-child,
.monitoring-page .service-list > div:last-child { border-bottom: 0; }
.monitoring-page .monitor-dl dt,
.monitoring-page .service-list div { color: #6d7e87; font-size: 10px; }
.monitoring-page .monitor-dl dd { margin: 0; color: #344954; font-size: 10px; font-weight: 800; text-align: right; }
.monitoring-page .service-list { display: grid; gap: 7px; }
.monitoring-page .service-list span,
.monitoring-page [data-status] { padding: 2px 6px; border-radius: 999px; background: #f3f5f6; color: #7b8991; font-size: 8px; font-weight: 800; }
.monitoring-page .service-list span.is-ok,
.monitoring-page [data-status].is-ok { background: #edf8f1; color: #347055; }
.monitoring-page .service-list span.is-bad,
.monitoring-page [data-status].is-bad { background: #fff0f0; color: #a35353; }
.monitoring-page .disk-big { display: grid; gap: 11px; align-content: center; min-height: 102px; }
.monitoring-page .disk-big strong { font-size: 25px; color: #31454f; }
.monitoring-page .disk-big span { color: #7d8b94; font-size: 10px; }
.monitoring-page .monitor-processes table { width: 100%; border-collapse: collapse; }
.monitoring-page .monitor-processes th,
.monitoring-page .monitor-processes td { padding: 7px 8px; border-bottom: 1px solid #eef2f3; text-align: left; font-size: 10px; }
.monitoring-page .monitor-processes th { color: #7a8992; font-size: 9px; text-transform: uppercase; letter-spacing: .35px; }
.monitoring-page .monitor-processes td { color: #445862; }
@media (max-width: 1180px) {
    .monitoring-page .monitoring-summary-grid { grid-template-columns: repeat(3, 1fr); }
    .monitoring-page .monitoring-details-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 800px) {
    .monitoring-page .monitoring-chart-grid { grid-template-columns: 1fr; }
    .monitoring-page .monitoring-header { flex-direction: column; }
}
@media (max-width: 620px) {
    .monitoring-page .monitoring-summary-grid,
    .monitoring-page .monitoring-details-grid { grid-template-columns: 1fr; }
    .monitoring-page .monitoring-actions { width: 100%; justify-content: space-between; }
}

/* Calendar task workflow v1.0.122 */
.calendar-page .calendar-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.calendar-page .tc-layout-compact-sidebar{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}
.calendar-page .tc-task-workflow-modal{width:min(980px,calc(100vw - 36px));max-height:92vh;overflow:hidden;display:flex;flex-direction:column}
.calendar-page .tc-workflow-body{overflow:auto;padding:12px 16px 18px}
.calendar-page .tc-form-section{border:1px solid var(--border,#d7dde2);border-radius:9px;margin-bottom:10px;background:var(--panel,#fff);overflow:hidden}
.calendar-page .tc-form-section-head{width:100%;border:0;background:transparent;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;color:inherit}
.calendar-page .tc-form-section-head strong{font-size:14px}.calendar-page .tc-form-section-head span{font-size:12px;color:var(--muted,#6b7280);font-weight:400}
.calendar-page .tc-form-section-body{display:none;padding:2px 13px 14px}.calendar-page .tc-form-section.is-open>.tc-form-section-body{display:block}.calendar-page .tc-form-section.is-open>.tc-form-section-head{border-bottom:1px solid var(--border,#e2e6ea);margin-bottom:12px}
.calendar-page .tc-form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-page .tc-form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-page .tc-grid-span-2{grid-column:1/-1}
.calendar-page .tc-executor-picker{margin-top:12px;border:1px solid var(--border,#d7dde2);border-radius:8px;overflow:hidden}.calendar-page .tc-executor-picker-head{padding:9px 11px;display:flex;justify-content:space-between;gap:12px;background:rgba(127,127,127,.05)}
.calendar-page .tc-executor-list{max-height:250px;overflow:auto;padding:5px 10px}.calendar-page .tc-executor-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:center;padding:5px 0;border-bottom:1px solid rgba(127,127,127,.12)}.calendar-page .tc-executor-row:last-child{border-bottom:0}.calendar-page .tc-executor-row label{margin:0}.calendar-page .tc-executor-row input[type=number]{height:32px}
.calendar-page .tc-conflict-warning{margin-top:10px}.calendar-page .tc-inline-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.calendar-page .tc-task-header-meta{font-size:12px;color:var(--muted,#6b7280);margin-top:3px}
.calendar-page .tc-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}.calendar-page .tc-detail-grid>div{display:flex;flex-direction:column;gap:2px}.calendar-page .tc-detail-grid span{font-size:11px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.03em}.calendar-page .tc-detail-grid strong{font-size:13px;font-weight:600}.calendar-page .tc-detail-description{white-space:pre-wrap;margin:14px 0;padding:10px;border-radius:7px;background:rgba(127,127,127,.06)}
.calendar-page .tc-detail-executors>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(127,127,127,.12)}.calendar-page .tc-detail-executors span{color:var(--muted,#6b7280);font-size:12px}.calendar-page .tc-detail-files{margin-top:10px}.calendar-page .tc-file-link{display:inline-block;margin:3px 5px 3px 0;padding:4px 7px;border:1px solid var(--border,#d7dde2);border-radius:6px;text-decoration:none;font-size:12px}
.calendar-page .tc-chat{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;margin-bottom:10px}.calendar-page .tc-chat-item{border:1px solid var(--border,#d7dde2);border-radius:8px;padding:8px 10px}.calendar-page .tc-chat-item>div{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted,#6b7280)}.calendar-page .tc-chat-item p{white-space:pre-wrap;margin:5px 0 0}.calendar-page .tc-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.calendar-page .tc-chat-form textarea{grid-column:1/-1}.calendar-page .tc-chat-form input[type=file]{min-width:0}
.calendar-page .tc-history-line{display:grid;grid-template-columns:130px 130px 100px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid rgba(127,127,127,.12);font-size:12px}.calendar-page .tc-history-line span{color:var(--muted,#6b7280)}.calendar-page .tc-history-line em{font-style:normal;font-weight:600}
.calendar-page .tc-completion-executor{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center;margin-top:6px}.calendar-page .tc-completion-executor input{margin:0}
.calendar-page .tc-status-badge{white-space:nowrap}.calendar-page .tc-priority-high{background:#f1c96a}.calendar-page .tc-priority-urgent,.calendar-page .tc-priority-critical{background:#d87575;color:#fff}
@media(max-width:850px){.calendar-page .tc-layout-compact-sidebar{grid-template-columns:1fr}.calendar-page .tc-form-grid-2,.calendar-page .tc-form-grid-3,.calendar-page .tc-detail-grid{grid-template-columns:1fr}.calendar-page .tc-grid-span-2{grid-column:auto}.calendar-page .tc-executor-row{grid-template-columns:1fr}.calendar-page .tc-chat-form{grid-template-columns:1fr}.calendar-page .tc-history-line{grid-template-columns:1fr}.calendar-page .calendar-page-header{align-items:flex-start;flex-direction:column}}

/* Calendar task create card — compact Trello-inspired layout */
.calendar-page .tc-create-task-modal{width:min(900px,calc(100vw - 34px));max-height:92vh;border-radius:10px}
.calendar-page .tc-create-task-header{padding:11px 14px;background:#f7f8f9}
.calendar-page .tc-create-task-heading{display:flex;align-items:flex-start;gap:10px;min-width:0}
.calendar-page .tc-create-task-heading h2{font-size:17px;line-height:1.25}
.calendar-page .tc-create-task-heading p{margin:2px 0 0;font-size:12px}
.calendar-page .tc-create-task-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:6px;background:#e8eef2;color:#466273;font-size:13px;flex:0 0 auto}
.calendar-page .tc-create-card-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;padding:14px;background:#f4f5f7}
.calendar-page .tc-create-main,.calendar-page .tc-create-sidebar{min-width:0}
.calendar-page .tc-create-block,.calendar-page .tc-create-side-card{background:#fff;border:1px solid #d9dee3;border-radius:8px;padding:12px;margin:0 0 10px;box-shadow:0 1px 1px rgba(18,38,63,.03)}
.calendar-page .tc-create-block:last-child,.calendar-page .tc-create-side-card:last-child{margin-bottom:0}
.calendar-page .tc-create-block-title,.calendar-page .tc-create-side-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px;font-size:12px;font-weight:700;color:#52616b;text-transform:uppercase;letter-spacing:.035em}
.calendar-page .tc-create-block-title small,.calendar-page .tc-create-executors-head small{font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted,#6b7280)}
.calendar-page .tc-create-label{display:block;margin:0 0 6px;font-size:12px;font-weight:700;color:#52616b}
.calendar-page .tc-create-title-input{min-height:76px!important;font-size:17px!important;line-height:1.35!important;font-weight:600;padding:10px 11px!important;border-color:#cfd6dc!important;background:#fff}
.calendar-page .tc-create-title-input::placeholder{font-weight:500;color:#96a0a8}
.calendar-page .tc-create-grid{gap:9px 10px}
.calendar-page .tc-create-grid label,.calendar-page .tc-create-side-card>label,.calendar-page .tc-create-date-row label{margin:0;font-size:12px;color:#53616a}
.calendar-page .tc-create-file-drop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:9px 10px;border:1px dashed #b8c2ca;border-radius:7px;background:#fafbfc;cursor:pointer}
.calendar-page .tc-create-file-drop input{width:auto;max-width:100%}
.calendar-page .tc-create-file-drop>span{font-weight:600;font-size:12px;color:#355f79}
.calendar-page .tc-create-file-drop>small{width:100%;color:var(--muted,#6b7280);font-size:11px}
.calendar-page .tc-create-sidebar{display:flex;flex-direction:column;gap:10px}
.calendar-page .tc-create-side-card{margin:0}
.calendar-page .tc-create-side-card select,.calendar-page .tc-create-side-card input{height:34px}
.calendar-page .tc-create-date-row{display:grid;grid-template-columns:1.25fr .9fr;gap:7px;margin:8px 0}
.calendar-page .tc-create-executors{margin-top:10px}
.calendar-page .tc-create-executors-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:5px;font-size:12px;font-weight:700;color:#53616a}
.calendar-page .tc-create-executor-list{max-height:178px;padding:3px 0;border:1px solid #e1e5e8;border-radius:6px;background:#fff}
.calendar-page .tc-create-executor-list .tc-executor-row{grid-template-columns:minmax(0,1fr) 56px;gap:5px;padding:4px 6px}
.calendar-page .tc-create-executor-list .check-row{min-width:0;display:flex;gap:5px;align-items:center;font-size:11px}
.calendar-page .tc-create-executor-list .check-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-page .tc-create-executor-list input[type=number]{width:56px;height:28px;padding:3px 5px;font-size:11px}
.calendar-page .tc-create-optional-section{margin:0;border-radius:8px;background:#fff}
.calendar-page .tc-create-optional-section .tc-form-section-head{padding:9px 11px}
.calendar-page .tc-create-optional-section .tc-form-section-body{padding:0 11px 11px}
.calendar-page .tc-create-task-footer{padding:9px 13px;background:#fff}
.calendar-page .tc-create-footer-note{margin-right:auto;font-size:11px}
.calendar-page .tc-create-task-modal label>input,.calendar-page .tc-create-task-modal label>select,.calendar-page .tc-create-task-modal label>textarea{margin-top:4px}
.calendar-page .tc-create-task-modal .tc-conflict-warning{margin:9px 0 0;font-size:11px;padding:7px 8px}
@media(max-width:760px){.calendar-page .tc-create-card-body{grid-template-columns:1fr}.calendar-page .tc-create-sidebar{display:grid;grid-template-columns:1fr}.calendar-page .tc-create-footer-note{display:none}.calendar-page .tc-create-task-modal{width:calc(100vw - 16px);max-height:96vh}}

/* Calendar create task searchable pickers */
.calendar-page .tc-search-select{position:relative;margin-top:4px}
.calendar-page .tc-search-select>select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.calendar-page .tc-search-select-input{width:100%;height:34px!important;margin:0!important;padding:6px 28px 6px 9px!important;border:1px solid var(--border-strong,#c7d0d7);border-radius:5px;background:#fff;color:var(--text);font:inherit;cursor:text}
.calendar-page .tc-search-select:after{content:'⌄';position:absolute;right:9px;top:7px;color:#6c7a84;pointer-events:none;font-size:14px}
.calendar-page .tc-search-select.is-open .tc-search-select-input{border-color:#719bad;box-shadow:0 0 0 3px rgba(61,113,135,.12);outline:none}
.calendar-page .tc-search-select-menu{position:absolute;z-index:12050;left:0;right:0;top:calc(100% + 3px);max-height:220px;overflow:auto;padding:4px;background:#fff;border:1px solid #cbd4da;border-radius:6px;box-shadow:0 8px 24px rgba(25,43,55,.18)}
.calendar-page .tc-search-select-menu[hidden]{display:none}
.calendar-page .tc-search-select-option{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:4px;color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.calendar-page .tc-search-select-option:hover,.calendar-page .tc-search-select-option.is-selected{background:#edf3f6}
.calendar-page .tc-search-select-empty{padding:8px;color:var(--muted,#6b7280);font-size:11px}
.calendar-page .tc-executor-search{padding:4px 0 5px}
.calendar-page .tc-executor-search input{width:100%;height:30px;padding:5px 8px;border:1px solid #d5dce1;border-radius:5px;font-size:11px;background:#fff}
.calendar-page .tc-executor-row[hidden]{display:none!important}


/* Calendar task creation layouts (v1 current, v2 Trello-like, v3 focus pane) */
.calendar-page .tc-task-create-style-settings{border:1px solid var(--border,#d9dee3);border-radius:8px;padding:10px;margin:0;background:#fafbfc}
.calendar-page .tc-task-create-style-settings legend{padding:0 5px;font-size:12px;font-weight:700;color:#53616a}
.calendar-page .tc-task-create-style-option{display:grid;grid-template-columns:auto 58px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:7px 8px;border-radius:7px;cursor:pointer;margin:2px 0}
.calendar-page .tc-task-create-style-option:hover{background:#eef2f5}
.calendar-page .tc-task-create-style-option>input{grid-row:1/3;margin:0}
.calendar-page .tc-task-create-style-option>strong{font-size:12px;line-height:1.2}
.calendar-page .tc-task-create-style-option>small{font-size:10px;color:var(--muted,#6b7280);line-height:1.25}
.calendar-page .tc-task-style-preview{grid-row:1/3;width:58px;height:35px;border:1px solid #cfd6dc;border-radius:5px;background:#fff;padding:4px;display:grid;gap:3px}
.calendar-page .tc-task-style-preview i{display:block;border-radius:2px;background:#c9d1d7}
.calendar-page .tc-task-style-preview-v1{grid-template-columns:1fr 16px;grid-template-rows:8px 1fr}.calendar-page .tc-task-style-preview-v1 i:first-child{grid-column:1/3}.calendar-page .tc-task-style-preview-v1 i:nth-child(2){background:#e3e7ea}
.calendar-page .tc-task-style-preview-v2{background:#f1f2f4;grid-template-columns:1fr 14px;grid-template-rows:8px 1fr}.calendar-page .tc-task-style-preview-v2 i:first-child{grid-column:1/3;background:#fff}.calendar-page .tc-task-style-preview-v2 i:nth-child(2){background:#fff}.calendar-page .tc-task-style-preview-v2 i:nth-child(3){background:#d7dce0}
.calendar-page .tc-task-style-preview-v3{grid-template-columns:1fr;grid-template-rows:7px 7px 1fr;padding:5px 7px}.calendar-page .tc-task-style-preview-v3 i{background:#d7dde2}.calendar-page .tc-task-style-preview-v3 i:last-child{width:72%;background:#eef1f3}

/* V2: Trello-like card composer. Functional fields are unchanged; only the workspace changes. */
.calendar-page .tc-create-task-modal.tc-create-layout-v2{width:min(920px,calc(100vw - 32px));border-radius:12px;background:#f1f2f4}
.calendar-page .tc-create-layout-v2 .tc-create-task-header{background:#f1f2f4;border-bottom:0;padding:14px 16px 5px}
.calendar-page .tc-create-layout-v2 .tc-create-task-icon{background:#dfe4e8;color:#44546f}
.calendar-page .tc-create-layout-v2 .tc-create-card-body{grid-template-columns:minmax(0,1fr) 225px;gap:18px;background:#f1f2f4;padding:10px 16px 16px}
.calendar-page .tc-create-layout-v2 .tc-create-block{background:transparent;border:0;box-shadow:none;padding:0;margin:0 0 18px}
.calendar-page .tc-create-layout-v2 .tc-create-description-block{background:#fff;border-radius:8px;padding:10px 12px;margin-bottom:14px;box-shadow:0 1px 0 rgba(9,30,66,.15)}
.calendar-page .tc-create-layout-v2 .tc-create-title-input{border:0!important;padding:3px 1px!important;min-height:68px!important;box-shadow:none!important;background:transparent;font-size:18px!important}
.calendar-page .tc-create-layout-v2 .tc-create-block-title{font-size:13px;color:#172b4d;text-transform:none;letter-spacing:0;margin:0 0 7px;padding-left:1px}
.calendar-page .tc-create-layout-v2 .tc-create-grid{background:#fff;border-radius:8px;padding:10px;box-shadow:0 1px 0 rgba(9,30,66,.15)}
.calendar-page .tc-create-layout-v2 .tc-create-file-drop{background:#fff;border-style:solid;box-shadow:0 1px 0 rgba(9,30,66,.12)}
.calendar-page .tc-create-layout-v2 .tc-create-sidebar{gap:8px}
.calendar-page .tc-create-layout-v2 .tc-create-side-card{border:0;background:transparent;box-shadow:none;padding:0}
.calendar-page .tc-create-layout-v2 .tc-create-side-title{font-size:12px;text-transform:none;letter-spacing:0;color:#44546f;margin-bottom:5px}
.calendar-page .tc-create-layout-v2 .tc-create-side-card>label,.calendar-page .tc-create-layout-v2 .tc-create-executors{background:#dfe4e8;border-radius:5px;padding:6px 7px;margin:0 0 6px;display:block;color:#172b4d}
.calendar-page .tc-create-layout-v2 .tc-create-side-card>label select,.calendar-page .tc-create-layout-v2 .tc-create-side-card>label input{background:#fff}
.calendar-page .tc-create-layout-v2 .tc-create-executor-list{max-height:148px;border-color:#c8d0d7}
.calendar-page .tc-create-layout-v2 .tc-create-optional-section{background:#fff;border:0;box-shadow:0 1px 0 rgba(9,30,66,.15)}
.calendar-page .tc-create-layout-v2 .tc-create-task-footer{background:#f1f2f4;border-top:1px solid #d7dce0}

/* V3: focused details-pane layout, inspired by compact task detail tools. */
.calendar-page .tc-create-task-modal.tc-create-layout-v3{width:min(780px,calc(100vw - 32px));border-radius:10px;background:#fff}
.calendar-page .tc-create-layout-v3 .tc-create-task-header{background:#fff;padding:13px 18px;border-bottom:1px solid #e7eaed}
.calendar-page .tc-create-layout-v3 .tc-create-task-icon{display:none}
.calendar-page .tc-create-layout-v3 .tc-create-task-heading p{display:none}
.calendar-page .tc-create-layout-v3 .tc-create-card-body{display:flex;flex-direction:column;gap:0;background:#fff;padding:14px 18px}
.calendar-page .tc-create-layout-v3 .tc-create-main{display:contents}
.calendar-page .tc-create-layout-v3 .tc-create-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px;order:2;margin-top:2px}
.calendar-page .tc-create-layout-v3 .tc-create-block,.calendar-page .tc-create-layout-v3 .tc-create-side-card{border:0;border-bottom:1px solid #edf0f2;border-radius:0;box-shadow:none;padding:10px 0;margin:0;background:#fff}
.calendar-page .tc-create-layout-v3 .tc-create-description-block{order:-2;padding-top:0}
.calendar-page .tc-create-layout-v3 .tc-create-title-input{min-height:62px!important;border:0!important;border-radius:0!important;padding:4px 0!important;box-shadow:none!important;background:transparent;font-size:19px!important;font-weight:600}
.calendar-page .tc-create-layout-v3 .tc-create-block-title,.calendar-page .tc-create-layout-v3 .tc-create-side-title{text-transform:none;letter-spacing:0;color:#68727d;font-size:11px;margin-bottom:7px}
.calendar-page .tc-create-layout-v3 .tc-create-grid{gap:7px 10px}
.calendar-page .tc-create-layout-v3 .tc-create-grid label,.calendar-page .tc-create-layout-v3 .tc-create-side-card>label,.calendar-page .tc-create-layout-v3 .tc-create-date-row label{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px}
.calendar-page .tc-create-layout-v3 .tc-create-grid label.tc-grid-span-2{grid-template-columns:92px minmax(0,1fr)}
.calendar-page .tc-create-layout-v3 .tc-create-task-modal label>input,.calendar-page .tc-create-layout-v3 .tc-create-task-modal label>select,.calendar-page .tc-create-layout-v3 .tc-create-task-modal label>textarea{margin-top:0}
.calendar-page .tc-create-layout-v3 .tc-create-file-drop{border:0;background:#f5f6f7;padding:8px 10px}
.calendar-page .tc-create-layout-v3 .tc-create-executors{margin-top:8px}
.calendar-page .tc-create-layout-v3 .tc-create-executor-list{max-height:150px}
.calendar-page .tc-create-layout-v3 .tc-create-optional-section{order:3;border:1px solid #e5e8eb;border-radius:7px;margin-top:12px;background:#fafbfc}
.calendar-page .tc-create-layout-v3 .tc-create-task-footer{background:#fff;border-top:1px solid #e7eaed}
@media(max-width:760px){.calendar-page .tc-create-layout-v2 .tc-create-card-body{grid-template-columns:1fr}.calendar-page .tc-create-layout-v3 .tc-create-sidebar{grid-template-columns:1fr}.calendar-page .tc-create-layout-v3 .tc-create-grid label,.calendar-page .tc-create-layout-v3 .tc-create-side-card>label,.calendar-page .tc-create-layout-v3 .tc-create-date-row label{grid-template-columns:1fr}}

/* Calendar create task v1.0.132 — genuinely different creation experiences */
.calendar-page .tc-create-v2-enhanced{width:min(760px,calc(100vw - 30px));background:#f1f2f4}
.calendar-page .tc-create-v2-enhanced .tc-create-task-header{background:#f1f2f4;border-bottom:0;padding:13px 16px 6px}
.calendar-page .tc-create-v2-enhanced .tc-create-task-heading p{display:none}
.calendar-page .tc-create-v2-enhanced .tc-create-card-body{display:block;background:#f1f2f4;padding:10px 16px 16px}
.calendar-page .tc-v2-composer{display:block}
.calendar-page .tc-v2-card-top{background:#fff;border-radius:10px;box-shadow:0 1px 0 rgba(9,30,66,.16);padding:14px}
.calendar-page .tc-create-v2-enhanced .tc-create-description-block{margin:0;padding:0;background:transparent;box-shadow:none;border:0}
.calendar-page .tc-create-v2-enhanced .tc-create-label{display:none}
.calendar-page .tc-create-v2-enhanced .tc-create-title-input{min-height:92px!important;border:0!important;box-shadow:none!important;padding:2px!important;font-size:20px!important;line-height:1.35!important;background:transparent}
.calendar-page .tc-v2-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid #ebedf0}
.calendar-page .tc-v2-action{border:0;border-radius:6px;background:#e9ebee;color:#172b4d;padding:7px 9px;min-width:118px;max-width:180px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.calendar-page .tc-v2-action:hover,.calendar-page .tc-v2-action.is-active{background:#dfe4e8}
.calendar-page .tc-v2-action>span{font-size:12px;font-weight:700}.calendar-page .tc-v2-action>small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5e6c84;max-width:160px}
.calendar-page .tc-v2-panels{margin-top:10px}
.calendar-page .tc-v2-panel{background:#fff;border-radius:10px;box-shadow:0 1px 0 rgba(9,30,66,.16);padding:13px 14px;max-height:48vh;overflow:auto}
.calendar-page .tc-create-v2-enhanced .tc-v2-panel>.tc-create-block,.calendar-page .tc-create-v2-enhanced .tc-v2-panel>.tc-create-side-card{margin:0;padding:0;border:0;box-shadow:none;background:transparent}
.calendar-page .tc-create-v2-enhanced .tc-v2-panel>.tc-form-section{margin:0;border:0;background:transparent}
.calendar-page .tc-create-v2-enhanced .tc-v2-panel>.tc-form-section>.tc-form-section-head{display:none}
.calendar-page .tc-create-v2-enhanced .tc-v2-panel>.tc-form-section>.tc-form-section-body{display:block!important;padding:0}
.calendar-page .tc-create-v2-enhanced .tc-create-grid{background:transparent;box-shadow:none;padding:0}
.calendar-page .tc-create-v2-enhanced .tc-create-side-card>label,.calendar-page .tc-create-v2-enhanced .tc-create-executors{background:transparent;padding:0;margin:0 0 10px}
.calendar-page .tc-create-v2-enhanced .tc-create-task-footer{background:#f1f2f4;border-top:1px solid #d7dce0}
.calendar-page .tc-create-v2-enhanced .tc-create-footer-note{display:none}

.calendar-page .tc-create-v3-enhanced{width:min(660px,calc(100vw - 28px));background:#fff}
.calendar-page .tc-create-v3-enhanced .tc-create-task-header{padding:14px 18px;border-bottom:1px solid #eceff1;background:#fff}
.calendar-page .tc-create-v3-enhanced .tc-create-task-heading p{display:none}.calendar-page .tc-create-v3-enhanced .tc-create-task-icon{display:none}
.calendar-page .tc-create-v3-enhanced .tc-create-card-body{display:block;background:#fff;padding:0}
.calendar-page .tc-v3-wizard{display:block}
.calendar-page .tc-v3-step-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:1px solid #e8ebee;background:#fafbfc;padding:0 18px}
.calendar-page .tc-v3-step-tab{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 8px 9px;display:flex;justify-content:center;align-items:center;gap:7px;color:#78838d;cursor:pointer}
.calendar-page .tc-v3-step-tab b{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e5e9ec;font-size:11px}.calendar-page .tc-v3-step-tab span{font-size:12px;font-weight:700}
.calendar-page .tc-v3-step-tab.is-active{color:#243746;border-bottom-color:#53778d}.calendar-page .tc-v3-step-tab.is-active b{background:#53778d;color:#fff}.calendar-page .tc-v3-step-tab.is-done b{background:#dce9df;color:#345b3d}
.calendar-page .tc-v3-stage{padding:16px 20px;max-height:58vh;overflow:auto}
.calendar-page .tc-v3-step-pane>.tc-create-block,.calendar-page .tc-v3-step-pane>.tc-create-side-card{border:0!important;border-bottom:1px solid #edf0f2!important;border-radius:0!important;box-shadow:none!important;padding:12px 0!important;margin:0!important;background:#fff!important}
.calendar-page .tc-v3-step-pane>.tc-create-block:first-child,.calendar-page .tc-v3-step-pane>.tc-create-side-card:first-child{padding-top:0!important}
.calendar-page .tc-create-v3-enhanced .tc-create-title-input{min-height:92px!important;font-size:19px!important;border:1px solid #d8dee3!important;border-radius:8px!important;padding:10px 11px!important}
.calendar-page .tc-create-v3-enhanced .tc-create-grid label,.calendar-page .tc-create-v3-enhanced .tc-create-side-card>label,.calendar-page .tc-create-v3-enhanced .tc-create-date-row label{display:block;grid-template-columns:none}
.calendar-page .tc-create-v3-enhanced .tc-v3-step-pane>.tc-form-section{border:0;margin:0;background:#fff}
.calendar-page .tc-create-v3-enhanced .tc-v3-step-pane>.tc-form-section>.tc-form-section-head{display:none}
.calendar-page .tc-create-v3-enhanced .tc-v3-step-pane>.tc-form-section>.tc-form-section-body{display:block!important;padding:10px 0 0}
.calendar-page .tc-v3-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 18px;border-top:1px solid #e8ebee;background:#fafbfc}
.calendar-page .tc-v3-controls [data-v3-counter]{font-size:11px;color:#6d7780}
.calendar-page .tc-create-v3-enhanced:not(.tc-v3-final-step) .tc-create-task-footer .btn-primary{display:none}
.calendar-page .tc-create-v3-enhanced .tc-create-footer-note{display:none}
@media(max-width:700px){.calendar-page .tc-v2-action{min-width:calc(50% - 4px);max-width:none;flex:1 1 calc(50% - 4px)}.calendar-page .tc-v3-step-nav{padding:0 8px}.calendar-page .tc-v3-step-tab span{font-size:11px}.calendar-page .tc-v3-stage{padding:13px}.calendar-page .tc-v3-controls{padding:10px 13px}}

/* v1.0.134: rows owned by users who closed the selected Work Schedule period are read-only for everyone, including administrators. */
.employee-row.schedule-row-period-closed td {
    opacity: .58;
}
.employee-row.schedule-row-period-closed:hover td,
.employee-row.schedule-row-period-closed:hover .sticky-code,
.employee-row.schedule-row-period-closed:hover .sticky-project,
.employee-row.schedule-row-period-closed:hover .sticky-object,
.employee-row.schedule-row-period-closed:hover .sticky-company,
.employee-row.schedule-row-period-closed:hover .sticky-manager,
.employee-row.schedule-row-period-closed:hover .sticky-name {
    background-color: inherit !important;
}
.employee-row.schedule-row-period-closed .schedule-cell,
.employee-row.schedule-row-period-closed .v4-free-input,
.employee-row.schedule-row-period-closed .schedule-hierarchy-add-btn,
.employee-row.schedule-row-period-closed .schedule-remove-member-btn {
    cursor: not-allowed;
}


/* Work Schedule row comments */
.schedule-info-cell { display:flex; align-items:center; gap:4px; min-width:0; }
.schedule-info-cell .v4-free-input { min-width:0; flex:1 1 auto; }
.schedule-comment-btn { flex:0 0 auto; position:relative; min-width:28px; height:28px; padding:0 6px; border:1px solid var(--border); border-radius:6px; background:#fff; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:2px; font-size:14px; line-height:1; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .12s ease, border-color .12s ease, background .12s ease; }
.employee-row:hover .schedule-comment-btn,
.schedule-info-cell:focus-within .schedule-comment-btn,
.schedule-comment-btn:focus-visible { opacity:1; visibility:visible; pointer-events:auto; }
.schedule-comment-btn:hover { border-color:var(--border-strong); background:#f7f8fa; }
.schedule-comment-btn.has-comments { font-weight:700; }
.schedule-comment-btn.has-unread { opacity:1; visibility:visible; pointer-events:auto; border-color:#d59b00; background:#fff6cf; color:#7a5600; box-shadow:0 0 0 2px rgba(213,155,0,.12); }
.schedule-comment-btn.has-unread .schedule-comment-count { color:#7a5600; font-weight:800; }
.schedule-comment-count { position:static; min-width:0; height:auto; padding:0; border-radius:0; background:transparent; color:var(--muted); font-size:10px; line-height:1; text-align:center; }
.employee-row.schedule-row-period-closed:hover .schedule-comment-btn,
.employee-row.schedule-row-period-closed .schedule-info-cell:focus-within .schedule-comment-btn { opacity:1; visibility:visible; pointer-events:auto; cursor:pointer; }
.schedule-comments-dialog { width:min(980px, 96vw); }
.schedule-comments-context { margin-top:3px; font-size:12px; color:var(--muted); }
.schedule-comments-body { display:grid; gap:14px; min-height:300px; }
.schedule-comments-row-context { border:1px solid #cbd6dd; border-radius:9px; background:#f8fafb; overflow:hidden; }
.schedule-comment-row-card { display:grid; gap:0; }
.schedule-comment-row-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:12px 14px 10px; border-bottom:1px solid var(--border); background:#fff; }
.schedule-comment-row-head > div { display:grid; gap:2px; min-width:0; }
.schedule-comment-row-head .row-kicker { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.schedule-comment-row-head strong { font-size:16px; overflow-wrap:anywhere; }
.schedule-comment-row-head small { color:var(--muted); font-size:11px; }
.schedule-comment-row-state { flex:0 0 auto; padding:3px 7px; border:1px solid var(--border); border-radius:999px; background:#f5f7f8; color:var(--muted); font-size:10px; font-weight:800; }
.schedule-comment-row-state.is-closed { border-color:#d8b86a; background:#fff8df; color:#755600; }
.schedule-comment-row-grid { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); border-bottom:1px solid var(--border); }
.schedule-comment-row-field { min-width:0; padding:9px 12px; border-right:1px solid var(--border); }
.schedule-comment-row-field:last-child { border-right:0; }
.schedule-comment-row-field span { display:block; margin-bottom:3px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.schedule-comment-row-field strong { display:block; font-size:11px; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.schedule-comment-row-summary { display:grid; grid-template-columns:repeat(10, minmax(70px,1fr)); border-bottom:1px solid var(--border); background:#fff; }
.schedule-comment-row-summary .schedule-comment-row-field { text-align:right; }
.schedule-comment-row-days-wrap { padding:9px 12px 10px; }
.schedule-comment-row-days-title { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; color:var(--muted); font-size:10px; font-weight:700; }
.schedule-comment-row-days { display:flex; gap:4px; overflow-x:auto; padding-bottom:3px; }
.schedule-comment-day { flex:0 0 36px; display:grid; gap:2px; justify-items:center; padding:5px 3px; border:1px solid var(--border); border-radius:5px; background:#fff; }
.schedule-comment-day span { color:var(--muted); font-size:9px; }
.schedule-comment-day strong { min-height:15px; font-size:10px; font-weight:800; }
.schedule-comment-day.is-empty { opacity:.58; background:#fafafa; }
.schedule-comment-row-additional { padding:9px 12px 11px; border-top:1px solid var(--border); background:#fff; }
.schedule-comment-row-additional span { display:block; margin-bottom:4px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.schedule-comment-row-additional div { font-size:11px; line-height:1.4; white-space:pre-wrap; overflow-wrap:anywhere; }
.schedule-comments-thread { display:flex; flex-direction:column; gap:9px; max-height:34vh; overflow:auto; padding-right:4px; }
.schedule-comment-item { border:1px solid var(--border); border-radius:7px; padding:9px 11px; background:#fff; }
.schedule-comment-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:5px; font-size:12px; }
.schedule-comment-meta span { color:var(--muted); font-size:11px; white-space:nowrap; }
.schedule-comment-message { line-height:1.4; overflow-wrap:anywhere; }
.schedule-comments-empty { padding:22px 12px; text-align:center; color:var(--muted); border:1px dashed var(--border); border-radius:7px; }
.schedule-comment-form { border-top:1px solid var(--border); padding-top:12px; display:grid; gap:8px; }
.schedule-comment-form textarea { width:100%; resize:vertical; min-height:72px; }
.schedule-comment-form-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.schedule-comment-form-actions .muted { font-size:11px; }
.schedule-comment-target-pulse { animation:scheduleCommentTargetPulse .9s ease-in-out 2; }
@keyframes scheduleCommentTargetPulse { 0%,100% { box-shadow:inset 0 0 0 0 rgba(213,155,0,0); } 50% { box-shadow:inset 0 0 0 2px rgba(213,155,0,.7); } }
@media (prefers-reduced-motion: reduce) { .schedule-comment-target-pulse { animation:none; } }

/* Report Builder */
.reports-page{max-width:1600px;margin:0 auto}.reports-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.reports-head h1{margin:0 0 4px}.reports-head p{margin:0;color:#667085}.reports-head-actions{display:flex;gap:8px;flex-wrap:wrap}.reports-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px}.reports-sidebar{background:#fff;border:1px solid #dfe3e8;border-radius:12px;padding:14px;height:max-content;position:sticky;top:74px}.reports-sidebar .field{display:grid;gap:6px}.reports-sidebar input,.report-config-grid select,.report-filter-grid input,.report-range-bar input{width:100%;box-sizing:border-box;border:1px solid #ccd3da;border-radius:7px;padding:8px;background:#fff}.reports-saved-title{font-weight:700;margin:18px 0 8px}.reports-saved{display:grid;gap:5px;margin-bottom:14px}.saved-report{display:grid;grid-template-columns:1fr 30px;border:1px solid #e2e6ea;border-radius:8px;overflow:hidden}.saved-report.active{border-color:#7a8ea0;box-shadow:0 0 0 1px #7a8ea0 inset}.saved-report>button{border:0;background:#fff;text-align:left;padding:8px;cursor:pointer}.saved-report>button:first-child{display:grid;gap:2px}.saved-report small{color:#8a929a;font-size:10px}.saved-report .saved-delete{text-align:center}.full{width:100%}.reports-main{min-width:0}.report-range-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#f7f8fa;border:1px solid #dfe3e8;border-radius:12px;padding:12px;margin-bottom:12px}.report-range-bar>div:first-child{margin-right:auto;display:grid}.report-range-bar small{color:#7a838c}.report-range-bar label{display:grid;gap:4px;font-size:12px}.report-compare-toggle{display:flex!important;align-items:center;gap:6px;padding-bottom:8px}.report-compare-toggle input{width:auto}.report-compare-range{display:flex;gap:10px}.report-blocks{display:grid;gap:14px}.report-block{background:#fff;border:1px solid #dfe3e8;border-radius:12px;overflow:hidden}.report-block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #eceff2}.report-block-title{border:0;background:transparent;font-size:16px;font-weight:700;min-width:260px}.report-block-actions{display:flex;gap:6px}.btn.tiny{padding:5px 9px;font-size:12px}.icon-btn{border:0;background:transparent;font-size:20px;cursor:pointer}.report-config-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;padding:12px}.report-config-grid label,.report-filter-grid label{display:grid;gap:4px;font-size:11px;color:#5e6872}.report-filter-wrap{padding:0 12px 12px}.report-filter-title{font-size:12px;font-weight:700;margin-bottom:7px}.report-filter-title small{font-weight:400;color:#89919a}.report-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px}.report-result{border-top:1px solid #eceff2;padding:12px;min-height:80px}.report-summary{font-size:11px;color:#7b848d;margin-bottom:6px}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th,.report-table td{border-bottom:1px solid #eceff2;padding:7px;text-align:left}.report-table th{background:#f7f8fa}.report-kpi{display:flex;align-items:baseline;gap:12px;padding:18px}.report-kpi strong{font-size:36px}.report-kpi span{color:#69737d}.report-kpi-compare{margin-left:auto;color:#69737d}.report-chart{display:grid;gap:7px}.report-chart-row{display:grid;grid-template-columns:minmax(110px,220px) 1fr;gap:8px;align-items:center}.report-chart-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.report-bars{display:grid;gap:2px}.report-bar{min-width:2px;height:20px;border-radius:4px;background:#6d8799;position:relative}.report-bar.compare{background:#b0bbc3}.report-bar span{position:absolute;left:6px;top:2px;font-size:10px;color:#fff;white-space:nowrap}.report-pie-layout{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:center}.report-pie{width:200px;height:200px;border-radius:50%;position:relative}.report-pie:after{content:"";position:absolute;inset:48px;background:#fff;border-radius:50%}.report-chart-list{display:grid;gap:5px}.report-chart-list>div{display:grid;grid-template-columns:12px 1fr auto;gap:7px;align-items:center;font-size:11px}.report-chart-list i{width:10px;height:10px;border-radius:3px}.report-empty{text-align:center;color:#8a929a;padding:40px}.muted{color:#89919a}.table-wrap{overflow:auto}
@media(max-width:1000px){.reports-layout{grid-template-columns:1fr}.reports-sidebar{position:static}.report-config-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.report-filter-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}}
.report-line-wrap{overflow:hidden}.report-line-svg{width:100%;height:260px;display:block}.report-line-svg .axis{stroke:#d9dee3;stroke-width:1}.report-line-svg .series{fill:none;stroke:#607d90;stroke-width:3;vector-effect:non-scaling-stroke}.report-line-svg .series.compare{stroke:#aeb8c0;stroke-dasharray:8 5}.report-line-labels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(70px,1fr);overflow:hidden;gap:6px;font-size:9px;color:#747e87}.report-line-labels span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Reports builder */
.reports-page{max-width:1680px;margin:0 auto;padding:4px 0 40px}.reports-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}.reports-head h1{margin:2px 0 4px}.reports-head p{margin:0;color:#6c737b}.reports-head-actions{display:flex;gap:8px}.reports-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px}.reports-sidebar{display:flex;flex-direction:column;gap:12px}.reports-panel,.report-builder-block,.report-result-card{background:#fff;border:1px solid #dfe3e7;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.reports-panel{padding:12px}.reports-panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.saved-report-list{display:flex;flex-direction:column;gap:5px}.saved-report-item{display:flex;gap:4px}.saved-report-item>button:first-child{flex:1;text-align:left;border:0;background:#f5f6f7;border-radius:7px;padding:8px 9px;cursor:pointer}.saved-report-item strong,.saved-report-item small{display:block}.saved-report-item small{color:#7a8087;margin-top:2px}.report-safety span{display:block;font-size:12px;color:#6c737b;margin-top:6px}.reports-workspace{min-width:0}.report-name-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.report-name-row>input{min-width:260px;max-width:430px}.report-status{font-size:13px;color:#727980}.report-status.is-ok{color:#2e7d32}.report-status.is-bad{color:#b3261e}.report-block-list{display:flex;flex-direction:column;gap:10px}.report-builder-block{padding:12px}.report-block-head{display:flex;gap:8px;margin-bottom:10px}.report-block-head input{font-weight:700;flex:1;border:0;border-bottom:1px solid #e5e7ea;border-radius:0;padding-left:2px}.report-fields{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}.report-fields label,.report-filter-grid label,.report-compare [data-compare-fields] label{font-size:11px;color:#66707a}.report-fields select,.report-fields input,.report-filter-grid input,.report-compare input{display:block;width:100%;margin-top:3px}.report-compare{display:flex;align-items:end;gap:14px;margin-top:9px}.report-compare>label{font-size:12px}.report-compare [data-compare-fields]{display:flex;gap:8px}.report-filters{margin-top:8px}.report-filters summary{cursor:pointer;font-size:12px;color:#53606b}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;margin-top:8px}.report-output{display:flex;flex-direction:column;gap:12px;margin-top:16px}.report-empty{padding:28px;text-align:center;color:#7a8087;border:1px dashed #d9dde1;border-radius:10px}.report-empty.small{padding:12px;font-size:12px}.report-result-card{padding:14px}.report-result-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.report-result-head h2{font-size:17px;margin:0}.report-result-head span{font-size:12px;color:#6f7780}.report-limit-note{background:#fff4d6;padding:4px 7px;border-radius:6px}.report-kpis{display:flex;gap:10px;flex-wrap:wrap}.report-kpi{min-width:170px;padding:18px;background:#f6f7f8;border-radius:9px}.report-kpi small,.report-kpi strong{display:block}.report-kpi strong{font-size:26px;margin-top:5px}.report-table{width:100%;border-collapse:collapse}.report-table th,.report-table td{padding:7px 9px;border-bottom:1px solid #eceff1;text-align:right}.report-table th:first-child,.report-table td:first-child{text-align:left}.report-chart{display:flex;flex-direction:column;gap:7px}.report-chart-row{display:grid;grid-template-columns:minmax(100px,220px) minmax(120px,1fr) 90px;gap:8px;align-items:center;font-size:12px}.report-chart-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-bar-track{height:16px;background:#f0f2f3;border-radius:4px;position:relative;overflow:hidden}.report-bar-track i,.report-bar-track b{display:block;position:absolute;left:0;height:7px;top:1px;background:#667b8c;border-radius:3px}.report-bar-track b{top:9px;background:#a0abb4}.report-pie-list{display:flex;flex-direction:column;gap:7px}.report-pie-list>div{display:grid;grid-template-columns:minmax(120px,220px) 1fr 80px;gap:8px;align-items:center;font-size:12px}.report-pie-track{height:9px;background:#f0f2f3;border-radius:5px;overflow:hidden}.report-pie-track i{display:block;height:100%;background:#667b8c}.icon-btn.danger{color:#9d3535}@media(max-width:1100px){.reports-grid{grid-template-columns:1fr}.reports-sidebar{display:grid;grid-template-columns:1fr 1fr}.report-fields{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media(max-width:700px){.reports-head{align-items:flex-start;flex-direction:column}.reports-sidebar{display:block}.reports-sidebar>*{margin-bottom:10px}.report-fields,.report-filter-grid{grid-template-columns:1fr 1fr}.report-name-row{flex-wrap:wrap}.report-name-row>input{min-width:0;flex:1}.report-chart-row{grid-template-columns:100px 1fr 70px}}
.report-line-wrap{overflow:hidden}.report-line-svg{width:100%;height:230px;background:#fafbfb;border:1px solid #eef0f1;border-radius:8px}.report-line-svg line{stroke:#d8dde1;stroke-width:1}.report-line-svg polyline{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.report-line-svg .primary{stroke:#667b8c}.report-line-svg .compare{stroke:#a0abb4;stroke-dasharray:6 5}.report-line-labels{display:flex;justify-content:space-between;gap:8px;margin-top:5px;color:#7a8087;font-size:10px}.report-line-labels span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px}.report-donut-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:center}.report-donut{width:210px;height:210px;border-radius:50%;position:relative}.report-donut>i{position:absolute;inset:48px;background:#fff;border-radius:50%}.report-pie-list>div{grid-template-columns:12px minmax(120px,1fr) 80px}.report-pie-list em{width:10px;height:10px;border-radius:50%;display:block}.report-pie-list strong{text-align:right}@media(max-width:700px){.report-donut-layout{grid-template-columns:1fr}.report-donut{margin:auto}}

/* Reports v1.0.142 — richer BI builder without auto-refresh */
:root{--chart-0:#5f7487;--chart-1:#8d6f66;--chart-2:#748c72;--chart-3:#8a7f9b;--chart-4:#9a8a62;--chart-5:#5f8587;--chart-6:#927184;--chart-7:#727d91}
.reports-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.report-query-cost{font-size:11px;color:#67727c;background:#f3f5f6;border:1px solid #e0e4e7;border-radius:999px;padding:5px 9px}.report-query-cost.is-high{font-weight:700}.report-query-cost.is-over{color:#9b3434;border-color:#d7aaaa;background:#fff4f4}.report-block-tools{display:flex;align-items:center;gap:8px}.report-block-cost{font-size:10px;color:#818890}.report-fields-main{grid-template-columns:repeat(4,minmax(135px,1fr))}.report-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 7px}.report-metrics{border-top:1px solid #edf0f2;margin-top:10px}.report-metric-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.55fr) 34px;gap:7px;margin:6px 0}.report-metric-row select{width:100%}.btn.tiny{min-height:28px;padding:4px 9px;font-size:11px}.report-compare-fields{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.report-compare-fields label{min-width:145px}.report-record-note{font-size:10px;color:#818890;margin-left:8px}.report-builder-help span{line-height:1.35}.report-builder-help b{color:#3f4b55}.report-table-wide th{white-space:nowrap}.report-table-wide td{font-variant-numeric:tabular-nums}.report-pivot th small{display:block;font-weight:400;color:#7f878e;margin-top:2px}.report-pivot tbody th{position:sticky;left:0;background:#fff;z-index:1;white-space:nowrap}.report-kpis.multi{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.report-kpi span{display:block;font-size:11px;color:#747d85;margin-top:5px}.report-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:11px;color:#667078}.report-legend span{display:flex;align-items:center;gap:5px}.report-legend i{width:10px;height:10px;border-radius:3px;background:var(--chart-0)}.report-legend span:nth-child(2) i{background:var(--chart-1)}.report-legend span:nth-child(3) i{background:var(--chart-2)}.report-legend span:nth-child(4) i{background:var(--chart-3)}.report-legend span:nth-child(5) i{background:var(--chart-4)}.report-legend span:nth-child(6) i{background:var(--chart-5)}.report-legend span:nth-child(7) i{background:var(--chart-6)}.report-legend span:nth-child(8) i{background:var(--chart-7)}.report-multi-bars{display:flex;flex-direction:column;gap:8px}.report-multi-row{display:grid;grid-template-columns:minmax(120px,220px) minmax(180px,1fr) 90px;gap:8px;align-items:center;font-size:12px}.report-multi-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-multi-track{display:flex;flex-direction:column;gap:2px;min-height:12px}.report-multi-track i{height:7px;display:block;border-radius:3px;width:var(--w);background:var(--chart-0)}.report-multi-track i:nth-child(2){background:var(--chart-1)}.report-multi-track i:nth-child(3){background:var(--chart-2)}.report-multi-track i:nth-child(4){background:var(--chart-3)}.report-multi-track i:nth-child(5){background:var(--chart-4)}.report-multi-track i:nth-child(6){background:var(--chart-5)}.report-multi-track i:nth-child(7){background:var(--chart-6)}.report-multi-track i:nth-child(8){background:var(--chart-7)}.report-series-svg .series-line{fill:none;stroke-width:2.4;vector-effect:non-scaling-stroke}.report-series-svg .s0{stroke:var(--chart-0);fill:var(--chart-0)}.report-series-svg .s1{stroke:var(--chart-1);fill:var(--chart-1)}.report-series-svg .s2{stroke:var(--chart-2);fill:var(--chart-2)}.report-series-svg .s3{stroke:var(--chart-3);fill:var(--chart-3)}.report-series-svg .s4{stroke:var(--chart-4);fill:var(--chart-4)}.report-series-svg .s5{stroke:var(--chart-5);fill:var(--chart-5)}.report-series-svg .s6{stroke:var(--chart-6);fill:var(--chart-6)}.report-series-svg .s7{stroke:var(--chart-7);fill:var(--chart-7)}.report-series-svg .series-area{opacity:.15;stroke:none}.report-series-svg .series-bar{stroke:none;opacity:.72}.report-stacked{display:flex;flex-direction:column;gap:8px}.report-stack-row{display:grid;grid-template-columns:minmax(120px,220px) 1fr 90px;gap:8px;align-items:center;font-size:12px}.report-stack-track{display:flex;height:17px;background:#f0f2f3;border-radius:4px;overflow:hidden}.report-stack-track i{height:100%;min-width:1px}.report-heatmap td{text-align:center;position:relative;background:color-mix(in srgb,var(--chart-0) calc(var(--heat)*80%),white)}.report-heatmap td span{position:relative;z-index:1}.report-scatter{width:100%;height:300px;background:#fafbfb;border:1px solid #eef0f1;border-radius:8px}.report-scatter line{stroke:#cfd5d9;stroke-width:1}.report-scatter circle{fill:var(--chart-0);opacity:.75}.report-axis-note{font-size:11px;color:#717980;margin-top:6px}.report-limit-note{display:inline-block}.report-donut{box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
@media(max-width:1180px){.report-fields-main{grid-template-columns:repeat(3,minmax(130px,1fr))}}@media(max-width:800px){.report-fields-main{grid-template-columns:repeat(2,minmax(130px,1fr))}.report-multi-row,.report-stack-row{grid-template-columns:100px 1fr 70px}}@media(max-width:560px){.report-fields-main{grid-template-columns:1fr}.report-metric-row{grid-template-columns:1fr 1fr 34px}.reports-head-actions{width:100%}}

/* Reports workspace v1.0.143 */
.reports-page-v2{max-width:1540px;margin:0 auto;padding:0 18px 28px}.reports-head-v2{margin-bottom:16px}.reports-head-v2 h1{margin:2px 0 0;font-size:28px;letter-spacing:-.035em}.reports-head-v2 .reports-head-actions{gap:7px}.reports-shell{display:grid;grid-template-columns:210px minmax(0,1fr);gap:16px;align-items:start}.reports-library{position:sticky;top:14px;background:#fff;border:1px solid #e3e7eb;border-radius:12px;padding:10px;box-shadow:0 1px 2px rgba(20,32,44,.035)}.reports-library-head{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px}.reports-library-head strong{font-size:12px;letter-spacing:.02em}.reports-library .saved-report-list{display:flex;flex-direction:column;gap:4px}.reports-library .saved-report-item{border:0;background:transparent;padding:0;display:grid;grid-template-columns:1fr 28px;gap:2px;align-items:center}.reports-library .saved-report-item>button:first-child{border:0;background:transparent;border-radius:8px;padding:8px;text-align:left;min-width:0}.reports-library .saved-report-item>button:first-child:hover{background:#f4f6f7}.reports-library .saved-report-item strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reports-library .saved-report-item small{font-size:9px;color:#8a9299;display:block;margin-top:2px}.reports-library .report-empty.small{border:0;padding:16px 8px;font-size:11px;background:#fafbfb}.reports-main{min-width:0}.report-toolbar-card{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e3e7eb;border-radius:12px;padding:9px 10px;margin-bottom:12px;box-shadow:0 1px 2px rgba(20,32,44,.035)}.report-toolbar-card>input{border:0;background:transparent;font-size:15px;font-weight:700;padding:6px 5px;min-width:180px;max-width:420px;flex:1;box-shadow:none}.report-toolbar-card>input:focus{outline:none}.report-toolbar-card .report-status{margin-left:auto}.report-block-list{gap:12px}.report-builder-block{background:#fff;border:1px solid #e3e7eb;border-radius:14px;padding:0;overflow:hidden;box-shadow:0 1px 2px rgba(20,32,44,.035)}.report-block-head-v2{min-height:54px;margin:0;padding:9px 12px;border-bottom:1px solid #edf0f2;align-items:center}.report-block-title-wrap{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.report-view-dot{width:8px;height:8px;border-radius:50%;background:#65798a;flex:0 0 auto}.report-block-head-v2 input[data-field="title"]{border:0;border-bottom:0;background:transparent;font-size:14px;font-weight:700;padding:6px 2px;min-width:0}.report-block-head-right{display:flex;align-items:center;gap:8px}.report-visual-inline{display:flex!important;align-items:center;gap:6px;font-size:10px!important;color:#78818a!important}.report-visual-inline select{margin:0!important;width:auto!important;min-width:120px;padding-top:5px;padding-bottom:5px}.report-builder-primary{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr) minmax(280px,1fr);gap:0}.report-card-section{padding:13px 14px 14px;border-right:1px solid #edf0f2;min-width:0}.report-card-section:last-child{border-right:0}.report-section-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#737e87;margin-bottom:9px}.report-section-title.with-action{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.report-compact-grid{display:grid;gap:8px}.report-compact-grid.cols-2{grid-template-columns:1fr 1fr}.report-compact-grid.cols-3{grid-template-columns:minmax(130px,1.2fr) 1fr 1fr}.report-compact-grid.cols-4{grid-template-columns:repeat(4,minmax(120px,1fr))}.report-compact-grid label,.report-advanced label{font-size:10px;color:#737e87}.report-compact-grid select,.report-compact-grid input,.report-advanced select,.report-advanced input{display:block;width:100%;margin-top:3px}.report-card-metrics .report-metric-row{grid-template-columns:minmax(120px,1fr) 92px 28px;margin:5px 0}.report-card-metrics .report-metric-row select{font-size:11px;padding-top:6px;padding-bottom:6px}.report-card-metrics .btn.tiny{min-height:24px;padding:2px 7px}.report-advanced{border-top:1px solid #edf0f2;background:#fbfcfc}.report-advanced>summary{list-style:none;cursor:pointer;padding:9px 14px;font-size:11px;font-weight:700;color:#606b74;display:flex;align-items:center;gap:7px}.report-advanced>summary::-webkit-details-marker{display:none}.report-advanced>summary:before{content:'›';font-size:16px;line-height:1;transform:rotate(0);transition:transform .15s}.report-advanced[open]>summary:before{transform:rotate(90deg)}.report-advanced-body{padding:4px 14px 14px}.report-compare-v2{margin-top:12px;padding-top:10px;border-top:1px solid #e8ecef;align-items:center}.report-toggle{display:flex!important;align-items:center;gap:7px;font-size:11px!important;color:#48545e!important;white-space:nowrap}.report-toggle input{width:auto!important;margin:0!important}.report-filters{border-top:1px solid #e8ecef;padding-top:8px}.report-filters>summary{font-weight:700}.report-filter-grid{grid-template-columns:repeat(4,minmax(130px,1fr))}.report-canvas{margin-top:14px;background:#fff;border:1px solid #e3e7eb;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(20,32,44,.035)}.report-canvas-head{height:42px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid #edf0f2}.report-canvas-head strong{font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:#717b84}.report-canvas .report-output{margin:0;padding:14px;min-height:170px}.report-canvas .report-empty{border:0;background:#fafbfb;min-height:136px;display:flex;align-items:center;justify-content:center}.report-result-card{border:1px solid #e8ecef;border-radius:10px;box-shadow:none}.report-query-cost[hidden]{display:none!important}
@media(max-width:1180px){.reports-shell{grid-template-columns:180px minmax(0,1fr)}.report-builder-primary{grid-template-columns:1fr 1fr}.report-card-metrics{grid-column:1/-1;border-top:1px solid #edf0f2}.report-card-layout{border-right:0}.report-compact-grid.cols-4{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:820px){.reports-shell{grid-template-columns:1fr}.reports-library{position:static}.reports-library .saved-report-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.report-builder-primary{grid-template-columns:1fr}.report-card-section{border-right:0;border-bottom:1px solid #edf0f2}.report-card-section:last-child{border-bottom:0}.report-card-metrics{grid-column:auto}.report-block-head-v2{align-items:flex-start}.report-block-head-right{flex-wrap:wrap;justify-content:flex-end}.report-compact-grid.cols-3,.report-compact-grid.cols-2{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.reports-page-v2{padding-left:8px;padding-right:8px}.reports-library .saved-report-list{grid-template-columns:1fr}.report-toolbar-card{flex-wrap:wrap}.report-toolbar-card>input{min-width:0;flex-basis:100%}.report-block-head-v2{flex-direction:column}.report-block-head-right{width:100%;justify-content:space-between}.report-compact-grid.cols-3,.report-compact-grid.cols-2,.report-compact-grid.cols-4,.report-filter-grid{grid-template-columns:1fr}.report-compare-fields{display:grid;grid-template-columns:1fr 1fr;width:100%}}

/* Reports semantic builder v3 */
.semantic-builder-block{background:#fff}
.semantic-layout-row{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);border-bottom:1px solid #edf0f2}
.semantic-layout-row .report-card-section{border-right:1px solid #edf0f2}
.semantic-layout-row .report-card-section:last-child{border-right:0}
.semantic-date-range{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.semantic-date-range label{font-size:10px;color:#737e87}
.semantic-date-range input{display:block;width:100%;margin-top:4px}
.semantic-values-card{border-right:0!important;padding:12px 14px 13px}
.semantic-value-list{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:7px}
.semantic-metric-row{display:grid!important;grid-template-columns:minmax(160px,1fr) 96px 30px!important;gap:6px!important;margin:0!important;padding:7px;background:#f7f9fa;border:1px solid #e8ecef;border-radius:9px;align-items:center}
.semantic-metric-row select{margin:0!important;background:#fff}
.semantic-fields-card select,.semantic-date-card input{background:#fff}
.semantic-builder-block .report-advanced{background:#fafbfc}
.semantic-builder-block .report-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}
.semantic-builder-block .report-block-head-v2{background:#fcfdfd}
.semantic-builder-block .report-visual-inline span{display:none}
.semantic-builder-block .report-visual-inline select{min-width:138px;font-weight:700;background:#fff}
.semantic-builder-block .report-section-title{color:#5e6972}
.semantic-builder-block .report-section-title.with-action{margin-bottom:8px}
.semantic-builder-block .report-card-section{padding:12px 14px}
.report-result-card .report-result-head span{max-width:900px;white-space:normal}
@media(max-width:1050px){.semantic-layout-row{grid-template-columns:1fr}.semantic-layout-row .report-card-section{border-right:0;border-bottom:1px solid #edf0f2}.semantic-value-list{grid-template-columns:1fr}}
@media(max-width:560px){.semantic-date-range{grid-template-columns:1fr}.semantic-builder-block .report-filter-grid{grid-template-columns:1fr}.semantic-metric-row{grid-template-columns:1fr 86px 30px!important}}

/* v1.0.147 — notification delivery history */
.notification-history-panel { width: min(1320px, 100%); margin-top: 12px; padding: 0; overflow: hidden; }
.notification-history-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 12px 18px; background: #fff; cursor: pointer; list-style: none; user-select: none; }
.notification-history-summary::-webkit-details-marker { display: none; }
.notification-history-summary-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.notification-history-summary h2 { margin: 0; font-size: 17px; color: #2f414b; }
.notification-history-count { flex: 0 0 auto; padding: 3px 7px; border-radius: 999px; background: #f1f5f6; color: #73828a; font-size: 10px; font-weight: 700; }
.notification-history-chevron { width: 8px; height: 8px; border-right: 1.5px solid #718089; border-bottom: 1.5px solid #718089; transform: rotate(45deg); transition: transform .16s ease; margin-right: 3px; }
.notification-history-panel[open] .notification-history-chevron { transform: rotate(225deg); margin-top: 5px; }
.notification-history-content { border-top: 1px solid var(--border); }
.notification-history-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 18px; background: #fff; }
.notification-history-toolbar .btn { min-height: 30px; padding: 5px 9px; font-size: 10px; }
.notification-history-note { padding: 9px 18px; border-bottom: 1px solid var(--border); background: #f8fafb; color: #65757e; font-size: 10px; line-height: 1.4; }
.notification-history-empty { padding: 24px 18px; color: var(--muted); font-size: 12px; text-align: center; }
.notification-history-table-wrap { max-height: 430px; overflow: auto; }
.notification-history-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.notification-history-table th { position: sticky; top: 0; z-index: 1; padding: 8px 10px; border-bottom: 1px solid var(--border); background: #f4f7f8; color: #5b6b74; font-size: 9px; text-align: left; text-transform: uppercase; letter-spacing: .3px; }
.notification-history-table td { padding: 9px 10px; border-bottom: 1px solid #e7ecee; vertical-align: top; color: #42535c; }
.notification-history-table tbody tr:last-child td { border-bottom: 0; }
.notification-history-table small { display: block; margin-top: 2px; color: #8a969d; font-size: 9px; }
.notification-history-time { width: 145px; white-space: nowrap; }
.notification-history-recipient { max-width: 230px; overflow-wrap: anywhere; }
.notification-history-result { min-width: 280px; }
.notification-history-result strong { display: block; margin-bottom: 2px; color: #344750; font-size: 10px; }
.notification-history-result span { display: block; color: #63727a; line-height: 1.35; }
.notification-history-status { display: inline-flex; align-items: center; min-width: 58px; justify-content: center; padding: 3px 7px; border: 1px solid #d5dde1; border-radius: 999px; background: #f5f7f8; color: #67757d; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .2px; }
.notification-history-status.is-sent, .notification-history-status.is-success { border-color: #bbd8c7; background: #eef8f2; color: #317052; }
.notification-history-status.is-failed { border-color: #ebc4c4; background: #fff1f1; color: #a34343; }
.notification-history-status.is-skipped { border-color: #ddd6bc; background: #fbf8eb; color: #7e7040; }
@media (max-width: 900px) {
    .notification-history-table { min-width: 820px; }
    .notification-history-summary { padding-left: 12px; padding-right: 12px; }
    .notification-history-toolbar { padding-left: 12px; padding-right: 12px; }
    .notification-history-note { padding-left: 12px; padding-right: 12px; }
}


/* v1.0.151: prevent Work Schedule entry after an inactive Contract end date. */
.schedule-cell.contract-ended-cell {
    cursor: not-allowed;
    background-image: repeating-linear-gradient(135deg, rgba(120,126,132,.07) 0, rgba(120,126,132,.07) 4px, transparent 4px, transparent 8px);
    color: #7b8288;
}
.schedule-cell.contract-ended-cell:hover {
    background-color: #f4f5f6;
}
.schedule-cell.contract-ended-cell[data-value=""] span {
    opacity: .55;
}

@media (max-width: 900px) {
  .schedule-comment-row-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .schedule-comment-row-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .schedule-comment-row-field { border-bottom:1px solid var(--border); }
  .topbar-comment-preview-title small { display:none; }
}

/* v1.0.154 — compact readable Schedule comment context */
.schedule-comments-dialog { width:min(860px, 96vw); }
.schedule-comments-body { gap:10px; min-height:0; }
.schedule-comments-row-context { border:1px solid #d5dde2; border-radius:9px; background:#fff; overflow:hidden; }
.schedule-comment-compact-card { background:#fff; color:#354650; }
.schedule-comment-compact-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px 8px; border-bottom:1px solid #e8edef; background:#fafcfc; }
.schedule-comment-compact-person { display:flex; align-items:baseline; gap:8px; min-width:0; }
.schedule-comment-compact-person strong { min-width:0; font-size:14px; line-height:1.2; overflow-wrap:anywhere; }
.schedule-comment-compact-person span { flex:0 0 auto; color:var(--muted); font-size:10px; }
.schedule-comment-row-state { padding:2px 6px; font-size:9px; }
.schedule-comment-compact-identity { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(90px,.65fr) minmax(70px,.55fr); gap:0; border-bottom:1px solid #e8edef; }
.schedule-comment-compact-stats,
.schedule-comment-compact-money { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; border-bottom:1px solid #e8edef; }
.schedule-comment-compact-money { background:#fbfcfc; }
.schedule-comment-compact-field { min-width:0; padding:6px 9px; border-right:1px solid #edf0f2; }
.schedule-comment-compact-field:last-child { border-right:0; }
.schedule-comment-compact-field span { display:block; margin-bottom:2px; color:#849099; font-size:8px; line-height:1.15; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.schedule-comment-compact-field strong { display:block; min-width:0; font-size:10.5px; line-height:1.25; font-weight:700; overflow-wrap:anywhere; }
.schedule-comment-compact-money .schedule-comment-compact-field { text-align:right; }
.schedule-comment-compact-field.is-payable strong { font-size:11.5px; color:#243b47; }
.schedule-comment-compact-days { display:flex; align-items:flex-start; gap:9px; padding:6px 9px; border-bottom:1px solid #edf0f2; background:#fcfdfd; }
.schedule-comment-compact-label { flex:0 0 auto; padding-top:4px; color:#849099; font-size:8px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.schedule-comment-compact-days > div { display:flex; flex-wrap:wrap; gap:4px; min-width:0; }
.schedule-comment-day-chip { display:inline-flex; align-items:center; gap:4px; min-height:22px; padding:2px 6px; border:1px solid #dfe5e8; border-radius:5px; background:#fff; font-size:9.5px; line-height:1; }
.schedule-comment-day-chip b { color:#87939a; font-size:8px; font-weight:800; }
.schedule-comment-day-chip strong { color:#344750; font-size:10px; }
.schedule-comment-compact-note { display:grid; grid-template-columns:82px 1fr; gap:8px; padding:7px 9px; background:#fff; }
.schedule-comment-compact-note > span { color:#849099; font-size:8px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.schedule-comment-compact-note > div { min-width:0; font-size:10.5px; line-height:1.35; overflow-wrap:anywhere; }
.schedule-comments-thread { gap:7px; max-height:42vh; padding-right:2px; }
.schedule-comment-item { padding:8px 10px; border-radius:7px; }
.schedule-comment-meta { margin-bottom:3px; font-size:11px; }
.schedule-comment-meta span { font-size:9.5px; }
.schedule-comment-message { font-size:12px; line-height:1.38; }
.schedule-comment-form { padding-top:9px; gap:6px; }
.schedule-comment-form textarea { min-height:54px; padding:8px 9px; }
.schedule-comment-form-actions .muted { display:none; }

@media (max-width: 760px) {
  .schedule-comments-dialog { width:min(96vw,680px); }
  .schedule-comment-compact-identity { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .schedule-comment-compact-identity .schedule-comment-compact-field:nth-child(odd) { border-right:1px solid #edf0f2; }
  .schedule-comment-compact-identity .schedule-comment-compact-field { border-bottom:1px solid #edf0f2; }
  .schedule-comment-compact-stats,
  .schedule-comment-compact-money { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .schedule-comment-compact-field { padding:6px 7px; }
}

/* v1.0.155 — comments: real Work Schedule row preview */
.schedule-comments-dialog { width:min(1500px, 98vw); }
.schedule-comments-body { gap:10px; }
.schedule-comments-row-context { border:0; border-radius:0; background:transparent; overflow:visible; }
.schedule-comment-row-preview { border:1px solid #cfd9de; border-radius:7px; background:#fff; overflow:hidden; box-shadow:0 1px 2px rgba(30,50,60,.04); }
.schedule-comment-row-preview.is-closed { opacity:.84; }
.schedule-comment-row-preview-bar { display:flex; align-items:center; gap:8px; min-height:30px; padding:5px 9px; border-bottom:1px solid #d8e0e4; background:#f7fafb; color:#344a55; }
.schedule-comment-row-preview-bar > span { color:#78878f; font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.schedule-comment-row-preview-bar > strong { min-width:0; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-comment-row-preview-bar > small { color:#849198; font-size:9px; }
.schedule-comment-row-preview-bar > em { margin-left:auto; padding:1px 5px; border:1px solid #dbc478; border-radius:999px; background:#fff8df; color:#775b00; font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }
.schedule-comment-row-preview-scroll { width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; }
.schedule-comment-row-preview-table { width:max-content; min-width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; color:#253b46; font-size:9px; line-height:1.05; }
.schedule-comment-row-preview-table th,
.schedule-comment-row-preview-table td { height:24px; padding:2px 5px; border-right:1px solid #dce3e6; border-bottom:1px solid #dce3e6; background:#fff; vertical-align:middle; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-comment-row-preview-table thead th { background:#eaf1f4; color:#30444f; font-weight:700; text-align:left; }
.schedule-comment-row-preview-table thead tr:last-child th { height:26px; padding:1px 2px; text-align:center; }
.schedule-comment-row-preview-table tbody tr:last-child td { border-bottom:0; }
.schedule-comment-row-preview-table th:last-child,
.schedule-comment-row-preview-table td:last-child { border-right:0; }
.schedule-comment-row-preview-table th.identity:nth-child(1), .schedule-comment-row-preview-table td.identity-1 { width:70px; min-width:70px; max-width:70px; }
.schedule-comment-row-preview-table th.identity:nth-child(2), .schedule-comment-row-preview-table td.identity-2 { width:110px; min-width:110px; max-width:110px; }
.schedule-comment-row-preview-table th.identity:nth-child(3), .schedule-comment-row-preview-table td.identity-3 { width:86px; min-width:86px; max-width:86px; }
.schedule-comment-row-preview-table th.identity:nth-child(4), .schedule-comment-row-preview-table td.identity-4 { width:72px; min-width:72px; max-width:72px; }
.schedule-comment-row-preview-table th.identity:nth-child(5), .schedule-comment-row-preview-table td.identity-5 { width:150px; min-width:150px; max-width:150px; }
.schedule-comment-row-preview-table th.month { text-align:center; font-size:9px; }
.schedule-comment-row-preview-table thead tr:last-child th { width:27px; min-width:27px; max-width:27px; }
.schedule-comment-row-preview-table thead tr:last-child th span { display:block; font-size:9px; font-weight:800; }
.schedule-comment-row-preview-table thead tr:last-child th small { display:block; margin-top:1px; color:#7d8c94; font-size:7px; font-weight:600; }
.schedule-comment-row-preview-table tbody td:not(.identity):not(.summary) { width:27px; min-width:27px; max-width:27px; padding-inline:1px; text-align:center; font-weight:700; }
.schedule-comment-row-preview-table th.summary,
.schedule-comment-row-preview-table td.summary { width:36px; min-width:36px; max-width:36px; text-align:center; font-weight:700; }
.schedule-comment-row-preview-table th.summary { text-align:center; }
.schedule-comment-row-preview-table th.summary[title="Additional pay"],
.schedule-comment-row-preview-table td.summary:nth-last-child(4) { width:42px; min-width:42px; max-width:42px; }
.schedule-comment-row-preview-table th.summary[title="Additional info"],
.schedule-comment-row-preview-table td.is-info { width:86px; min-width:86px; max-width:86px; text-align:left; }
.schedule-comment-row-preview-table td.is-payable { font-weight:900; background:#f7fafb; }
.schedule-comment-row-preview-table .is-weekend,
.schedule-comment-row-preview-table .is-holiday { background:#f9ecec; }
.schedule-comment-row-preview-table .is-today { box-shadow:inset 0 0 0 2px #c89b24; }
.schedule-comment-row-preview-table td.is-contract-ended { background:#f4f4f4; color:#9aa4aa; }
.schedule-comments-thread,
.schedule-comment-form { width:min(860px, 100%); margin-left:auto; margin-right:auto; }
.schedule-comments-thread { max-height:44vh; }

@media (max-width: 900px) {
  .schedule-comments-dialog { width:98vw; }
  .schedule-comment-row-preview-table th.identity:nth-child(5), .schedule-comment-row-preview-table td.identity-5 { width:120px; min-width:120px; max-width:120px; }
  .schedule-comment-row-preview-bar > span { display:none; }
}


.schedule-comments-modal .modal-dialog { width:min(96vw, 1520px); max-width:min(96vw, 1520px); }
.schedule-comments-modal .modal-body { padding:12px 14px 14px; overflow:auto; }
.schedule-comments-row-context { border:0; border-radius:0; background:transparent; overflow:visible; }
.schedule-comment-row-preview { border:1px solid #cfd9de; border-radius:7px; background:#fff; overflow:hidden; box-shadow:0 1px 2px rgba(30,50,60,.04); }
.schedule-comment-row-preview.is-closed { opacity:.9; }
.schedule-comment-row-preview-bar { display:flex; align-items:center; gap:8px; min-height:22px; padding:4px 8px; border-bottom:1px solid #d8e0e4; background:#f7fafb; color:#344a55; }
.schedule-comment-row-preview-bar > strong { min-width:0; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-comment-row-preview-bar > small { color:#849198; font-size:9px; }
.schedule-comment-row-preview-bar > em { margin-left:auto; padding:1px 5px; border:1px solid #dbc478; border-radius:999px; background:#fff8df; color:#775b00; font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }
.schedule-comment-row-preview-fit { --comment-preview-scale:1; width:100%; padding:6px 8px 8px; box-sizing:border-box; overflow:hidden; }
.schedule-comment-row-preview-fit > table { transform:scale(var(--comment-preview-scale)); transform-origin:top left; }
.schedule-comment-row-preview-table { width:max-content; border-collapse:separate; border-spacing:0; table-layout:fixed; color:#253b46; font-size:8px; line-height:1; }
.schedule-comment-row-preview-table th,
.schedule-comment-row-preview-table td { height:18px; padding:1px 3px; border-right:1px solid #dce3e6; border-bottom:1px solid #dce3e6; background:#fff; vertical-align:middle; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-comment-row-preview-table thead th { background:#eaf1f4; color:#30444f; font-weight:700; text-align:left; }
.schedule-comment-row-preview-table thead tr:last-child th { height:18px; padding:1px; text-align:center; }
.schedule-comment-row-preview-table tbody tr:last-child td { border-bottom:0; }
.schedule-comment-row-preview-table th:last-child,
.schedule-comment-row-preview-table td:last-child { border-right:0; }
.schedule-comment-row-preview-table th.identity:nth-child(1), .schedule-comment-row-preview-table td.identity-1 { width:48px; min-width:48px; max-width:48px; }
.schedule-comment-row-preview-table th.identity:nth-child(2), .schedule-comment-row-preview-table td.identity-2 { width:74px; min-width:74px; max-width:74px; }
.schedule-comment-row-preview-table th.identity:nth-child(3), .schedule-comment-row-preview-table td.identity-3 { width:48px; min-width:48px; max-width:48px; }
.schedule-comment-row-preview-table th.identity:nth-child(4), .schedule-comment-row-preview-table td.identity-4 { width:56px; min-width:56px; max-width:56px; }
.schedule-comment-row-preview-table th.identity:nth-child(5), .schedule-comment-row-preview-table td.identity-5 { width:108px; min-width:108px; max-width:108px; }
.schedule-comment-row-preview-table th.month { text-align:center; font-size:8px; }
.schedule-comment-row-preview-table thead tr:last-child th { width:18px; min-width:18px; max-width:18px; }
.schedule-comment-row-preview-table thead tr:last-child th span { display:block; font-size:8px; font-weight:800; }
.schedule-comment-row-preview-table thead tr:last-child th small { display:block; margin-top:1px; color:#7d8c94; font-size:6px; font-weight:600; }
.schedule-comment-row-preview-table tbody td:not(.identity):not(.summary) { width:18px; min-width:18px; max-width:18px; padding-inline:1px; text-align:center; font-weight:700; }
.schedule-comment-row-preview-table th.summary,
.schedule-comment-row-preview-table td.summary { width:22px; min-width:22px; max-width:22px; text-align:center; font-weight:700; }
.schedule-comment-row-preview-table th.summary[title="Additional pay"],
.schedule-comment-row-preview-table td.summary:nth-last-child(4) { width:26px; min-width:26px; max-width:26px; }
.schedule-comment-row-preview-table th.summary[title="Additional info"],
.schedule-comment-row-preview-table td.is-info { width:42px; min-width:42px; max-width:42px; text-align:left; }
.schedule-comment-row-preview-table td.is-payable { font-weight:900; background:#f7fafb; }
.schedule-comment-row-preview-table .is-weekend,
.schedule-comment-row-preview-table .is-holiday { background:#f9ecec; }
.schedule-comment-row-preview-table .is-today { box-shadow:inset 0 0 0 2px #c89b24; }
.schedule-comment-row-preview-table td.is-contract-ended { background:#f4f4f4; color:#9aa4aa; }
.schedule-comments-thread,
.schedule-comment-form { width:100%; margin-left:0; margin-right:0; }
.schedule-comments-thread { gap:8px; max-height:32vh; margin-top:10px; }
.schedule-comment-thread-item { padding:8px 10px; }
.schedule-comment-thread-meta { font-size:11px; }
.schedule-comment-thread-message { font-size:13px; line-height:1.35; }
.schedule-comment-form { padding-top:10px; gap:6px; }
.schedule-comment-form textarea { min-height:58px; }
@media (max-width: 1200px) {
  .schedule-comments-modal .modal-dialog { width:98vw; max-width:98vw; }
}

/* v1.0.157 — comments preview: readable full-width row, no transform scaling */
.schedule-comments-modal { padding:10px; }
.schedule-comments-modal .modal-dialog {
  width:calc(100vw - 20px);
  max-width:1600px;
  max-height:94vh;
}
.schedule-comments-modal .modal-header { padding:10px 14px; }
.schedule-comments-modal .modal-body { padding:10px 12px 12px; overflow:hidden; }
.schedule-comments-row-context { width:100%; min-width:0; }
.schedule-comment-row-preview {
  width:100%;
  border:1px solid #cfd9de;
  border-radius:6px;
  overflow:hidden;
  background:#fff;
}
.schedule-comment-row-preview-fit {
  width:100%;
  height:auto !important;
  padding:0;
  overflow:hidden;
}
.schedule-comment-row-preview-fit > table {
  transform:none !important;
  transform-origin:initial;
}
.schedule-comment-row-preview-table {
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  font-size:9.5px;
  line-height:1.05;
}
.schedule-comment-row-preview-table th,
.schedule-comment-row-preview-table td {
  box-sizing:border-box;
  height:26px;
  min-width:0 !important;
  max-width:none !important;
  padding:2px 3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedule-comment-row-preview-table thead tr:first-child th { height:22px; }
.schedule-comment-row-preview-table thead tr:last-child th { height:24px; padding:1px 0; }
.schedule-comment-row-preview-table tbody td { height:27px; }
.schedule-comment-row-preview-table th.identity:nth-child(1),
.schedule-comment-row-preview-table td.identity-1 { width:4% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(2),
.schedule-comment-row-preview-table td.identity-2 { width:5% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(3),
.schedule-comment-row-preview-table td.identity-3 { width:4.5% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(4),
.schedule-comment-row-preview-table td.identity-4 { width:4.5% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(5),
.schedule-comment-row-preview-table td.identity-5 { width:8% !important; }
.schedule-comment-row-preview-table th.month { width:52% !important; font-size:9px; }
.schedule-comment-row-preview-table thead tr:last-child th {
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
}
.schedule-comment-row-preview-table thead tr:last-child th span { font-size:9px; line-height:1; }
.schedule-comment-row-preview-table thead tr:last-child th small { margin-top:1px; font-size:7px; line-height:1; }
.schedule-comment-row-preview-table tbody td:not(.identity):not(.summary) {
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  padding:1px 0;
  font-size:9px;
}
.schedule-comment-row-preview-table th.summary,
.schedule-comment-row-preview-table td.summary {
  width:2.2% !important;
  min-width:0 !important;
  max-width:none !important;
  padding:1px;
  font-size:9px;
}
.schedule-comment-row-preview-table th.summary[title="Additional pay"],
.schedule-comment-row-preview-table td.summary:nth-last-child(4) { width:2.8% !important; }
.schedule-comment-row-preview-table th.summary[title="Additional info"],
.schedule-comment-row-preview-table td.is-info { width:3.4% !important; }
.schedule-comments-thread { margin-top:10px; max-height:38vh; overflow:auto; }
.schedule-comment-form { padding-top:8px; }
.schedule-comment-form textarea { min-height:54px; }

@media (max-width:1100px) {
  .schedule-comments-modal { padding:6px; }
  .schedule-comments-modal .modal-dialog { width:calc(100vw - 12px); max-width:calc(100vw - 12px); }
  .schedule-comments-modal .modal-body { padding:8px; }
  .schedule-comment-row-preview-table { font-size:8.5px; }
  .schedule-comment-row-preview-table thead tr:last-child th span,
  .schedule-comment-row-preview-table tbody td:not(.identity):not(.summary),
  .schedule-comment-row-preview-table th.summary,
  .schedule-comment-row-preview-table td.summary { font-size:8px; }
}

/* v1.0.158 — comments preview: compact identity columns, wider Additional info */
.schedule-comment-row-preview-table th.identity:nth-child(1),
.schedule-comment-row-preview-table td.identity-1 { width:2.5% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(2),
.schedule-comment-row-preview-table td.identity-2 { width:3% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(3),
.schedule-comment-row-preview-table td.identity-3 { width:3% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(4),
.schedule-comment-row-preview-table td.identity-4 { width:3% !important; }
.schedule-comment-row-preview-table th.identity:nth-child(5),
.schedule-comment-row-preview-table td.identity-5 { width:8% !important; }
.schedule-comment-row-preview-table th.summary[title="Additional info"],
.schedule-comment-row-preview-table td.is-info {
  width:9.9% !important;
  text-align:left;
  padding-left:4px;
  padding-right:4px;
}
.schedule-comment-row-preview-table td.is-info {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}


/* v1.0.159 — compact unread comment picker */
.topbar-comment-preview { width:min(500px, 92vw); }
.topbar-comment-preview-title { align-items:center; padding:9px 12px 8px; }
.topbar-comment-preview-title > span { font-size:12px; }
.topbar-comment-preview-title small { font-size:9px; }
.topbar-comment-preview-list { max-height:min(520px, 68vh); }
.topbar-comment-preview-item { gap:4px; padding:8px 12px 9px; }
.topbar-comment-preview-head { gap:12px; }
.topbar-comment-preview-head > span { gap:0; }
.topbar-comment-preview-head strong { font-size:12px; line-height:1.15; }
.topbar-comment-preview-head small, .topbar-comment-preview-head time { font-size:9px; line-height:1.2; }
.topbar-comment-preview-author { padding:1px 5px; font-size:9px; line-height:1.25; }
.topbar-comment-preview-message { font-size:11px; line-height:1.3; }

/* Reports v1.0.161 — compact setup, full results and Excel export */
.report-toolbar-card .report-status{margin-left:0}
.report-toolbar-card .report-add-view{margin-left:auto;white-space:nowrap}
.report-config-details{border-top:0;background:#fff}
.report-config-details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:9px 14px;border-top:1px solid #edf0f2;background:#fafbfc;color:#59656f;font-size:11px;font-weight:700;user-select:none}
.report-config-details>summary::-webkit-details-marker{display:none}
.report-config-details>summary:before{content:'›';font-size:16px;line-height:1;transition:transform .15s ease}
.report-config-details[open]>summary:before{transform:rotate(90deg)}
.report-config-details-body{border-top:1px solid #edf0f2}
.report-config-details:not([open])>summary{border-bottom:0}
.report-config-details .report-advanced{border-top:1px solid #edf0f2}
.report-canvas-head{justify-content:space-between;gap:12px}
.report-export-btn{min-height:28px;padding:4px 10px;font-size:11px;white-space:nowrap}
.report-export-btn:disabled{opacity:.55;cursor:wait}
@media(max-width:560px){.report-toolbar-card .report-status{order:3;flex-basis:100%}.report-toolbar-card .report-add-view{margin-left:auto}.report-config-details>summary{padding-left:11px;padding-right:11px}}


/* Reports v1.0.162 — click-to-sort result table */
.report-table-sortable .report-sortable-th{padding:0;vertical-align:middle}
.report-sort-btn{width:100%;min-height:30px;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:inherit;display:flex;align-items:center;justify-content:flex-end;gap:5px;padding:7px 9px;cursor:pointer;white-space:nowrap}
.report-table-sortable .report-sortable-th:first-child .report-sort-btn{justify-content:flex-start}
.report-sort-btn:hover{background:#eef2f4}
.report-sort-btn:focus-visible{outline:2px solid #6d8799;outline-offset:-2px}
.report-sort-btn i{width:9px;min-width:9px;height:12px;position:relative;opacity:.45}
.report-sort-btn i:before,.report-sort-btn i:after{content:'';position:absolute;left:2px;border-left:3px solid transparent;border-right:3px solid transparent}
.report-sort-btn i:before{top:1px;border-bottom:4px solid currentColor}
.report-sort-btn i:after{bottom:1px;border-top:4px solid currentColor}
.report-sortable-th[data-sort-state='asc'] .report-sort-btn i:before{opacity:1}
.report-sortable-th[data-sort-state='asc'] .report-sort-btn i:after{opacity:.18}
.report-sortable-th[data-sort-state='desc'] .report-sort-btn i:before{opacity:.18}
.report-sortable-th[data-sort-state='desc'] .report-sort-btn i:after{opacity:1}

/* Calendar V1 task composer refinements */
.calendar-page .tc-create-layout-v1 .tc-search-select[data-empty-label] .tc-search-select-input:placeholder-shown{color:#7b8790}
.calendar-page .tc-create-layout-v1 .tc-create-executors{position:relative;margin-top:10px}
.calendar-page .tc-create-layout-v1 .tc-create-executors-head{margin-bottom:7px}
.calendar-page .tc-executor-add{width:28px;height:28px;border:1px solid #b9c6ce;border-radius:6px;background:#fff;color:#355f79;font-size:20px;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0}
.calendar-page .tc-executor-add:hover{background:#eef4f7;border-color:#8ca9b8}
.calendar-page .tc-selected-executor-list{display:grid;gap:5px}
.calendar-page .tc-executor-empty{padding:6px 0;font-size:11px}
.calendar-page .tc-selected-executor-row{display:grid;grid-template-columns:minmax(0,1fr) 26px;gap:6px;align-items:center;padding:5px 6px;border:1px solid #e0e5e8;border-radius:6px;background:#fafbfc}
.calendar-page .tc-selected-executor-row[hidden]{display:none!important}
.calendar-page .tc-selected-executor-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#34434c}
.calendar-page .tc-selected-executor-row input[type=number]{width:58px;height:28px!important;margin:0!important;padding:3px 5px;font-size:11px}
.calendar-page .tc-executor-remove{width:26px;height:26px;border:0;border-radius:5px;background:transparent;color:#7c8790;font-size:17px;line-height:1;cursor:pointer;padding:0}
.calendar-page .tc-executor-remove:hover{background:#f0e6e6;color:#a04444}
.calendar-page .tc-executor-picker{position:absolute;z-index:12060;left:0;right:0;top:32px;padding:7px;background:#fff;border:1px solid #cbd4da;border-radius:7px;box-shadow:0 10px 28px rgba(25,43,55,.20)}
.calendar-page .tc-executor-picker[hidden]{display:none!important}
.calendar-page .tc-executor-picker>input{width:100%;height:32px!important;margin:0 0 6px!important;padding:5px 8px;border:1px solid #cbd4da;border-radius:5px;background:#fff;font-size:11px}
.calendar-page .tc-executor-picker-options{max-height:190px;overflow:auto}
.calendar-page .tc-executor-picker-option{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:4px;color:var(--text);font:inherit;font-size:11px;cursor:pointer}
.calendar-page .tc-executor-picker-option:hover{background:#edf3f6}
.calendar-page .tc-executor-picker-empty{padding:7px 8px;font-size:11px}
.calendar-page .tc-planning-reminders{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px;padding-top:9px;border-top:1px solid #e7ebee}
.calendar-page .tc-planning-subtitle{font-size:11px;font-weight:700;color:#53616a;text-transform:uppercase;letter-spacing:.03em}
.calendar-page .tc-planning-reminders label{margin:0;font-size:11px;color:#53616a}
.calendar-page .tc-planning-reminders select{height:31px!important;margin-top:3px!important;font-size:11px}
.calendar-page .tc-create-layout-v1 [data-search-empty]+.tc-search-select-input{color:var(--text)}
@media(max-width:760px){.calendar-page .tc-executor-picker{position:relative;top:auto;left:auto;right:auto;margin-top:6px}.calendar-page .tc-selected-executor-row{grid-template-columns:minmax(0,1fr) 30px}}


/* Calendar V1 task status placement + responsible picker */
.calendar-page .tc-create-status-strip{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:8px 14px;border-bottom:1px solid #dde3e7;background:#fff}
.calendar-page .tc-create-status-strip[hidden]{display:none!important}
.calendar-page .tc-create-status-caption{margin-right:auto;font-size:11px;font-weight:700;color:#77858e;text-transform:uppercase;letter-spacing:.04em}
.calendar-page .tc-create-status-control{display:flex!important;align-items:center;gap:7px;margin:0!important;font-size:11px!important;font-weight:600;color:#53616a}
.calendar-page .tc-create-status-control>span{white-space:nowrap}
.calendar-page .tc-create-status-control>select{width:145px;height:30px!important;margin:0!important;padding:4px 28px 4px 8px!important;font-size:11px}
.calendar-page .tc-create-layout-v1 [name="assignedUserId"]+.tc-search-select-input{cursor:text}
@media(max-width:760px){.calendar-page .tc-create-status-strip{padding:8px 10px}.calendar-page .tc-create-status-caption{display:none}.calendar-page .tc-create-status-control{width:100%;justify-content:space-between}.calendar-page .tc-create-status-control>select{width:min(190px,58vw)}}


/* Calendar V1 status + priority directly below description */
.calendar-page .tc-create-layout-v1 .tc-create-state-block{padding-top:10px;padding-bottom:10px;background:#fbfcfd}
.calendar-page .tc-create-layout-v1 .tc-create-state-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.calendar-page .tc-create-layout-v1 .tc-create-state-row label{margin:0;font-size:11px;font-weight:700;color:#53616a}
.calendar-page .tc-create-layout-v1 .tc-create-state-row select{height:32px!important;margin-top:4px!important;padding-top:4px!important;padding-bottom:4px!important;font-size:11px}
@media(max-width:640px){.calendar-page .tc-create-layout-v1 .tc-create-state-row{grid-template-columns:1fr}}

/* Reports V2 v1.0.167 — separate dashboard workspace */
.reports-v2-page{max-width:1600px;margin:0 auto;padding:0 18px 34px;color:#263845}
.reports-v2-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}
.reports-v2-title-row{display:flex;align-items:center;gap:8px}.reports-v2-title-row h1{margin:2px 0 0;font-size:28px;letter-spacing:-.035em}.reports-v2-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#edf4f8;color:#35667f;font-size:10px;font-weight:800}
.reports-v2-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.reports-v2-export{white-space:nowrap}
.reports-v2-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}.reports-v2-library{position:sticky;top:14px;background:#fff;border:1px solid #dde5e9;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(28,48,61,.04)}
.reports-v2-library-head{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;border-bottom:1px solid #edf1f3}.reports-v2-library-head strong{font-size:12px}.reports-v2-library-head span{min-width:22px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:10px;background:#f1f4f6;color:#6f7c84;font-size:9px;font-weight:700}
.reports-v2-search-wrap{padding:9px 10px 6px}.reports-v2-search-wrap input{width:100%;height:32px;padding:6px 9px;border:1px solid #dce3e7;border-radius:7px;background:#fafbfc;font-size:11px}
.reports-v2-library .saved-report-list{padding:2px 7px 9px;display:grid;gap:3px}.reports-v2-library .saved-report-item{display:grid;grid-template-columns:minmax(0,1fr) 26px;gap:2px}.reports-v2-library .saved-report-item>button:first-child{border:0;background:transparent;border-radius:7px;text-align:left;padding:7px 8px;min-width:0;cursor:pointer}.reports-v2-library .saved-report-item>button:first-child:hover{background:#f1f5f7}.reports-v2-library .saved-report-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.reports-v2-library .saved-report-item small{display:block;margin-top:2px;color:#89949b;font-size:8px}.reports-v2-library .icon-btn{font-size:16px}
.reports-v2-main{min-width:0}.reports-v2-namebar{display:flex;align-items:center;gap:10px;min-height:46px;margin-bottom:10px;padding:5px 10px;background:#fff;border:1px solid #dde5e9;border-radius:10px}.reports-v2-namebar input{min-width:0;flex:1;border:0;background:transparent;font-size:15px;font-weight:750;padding:6px 4px;box-shadow:none}.reports-v2-namebar input:focus{outline:none}.reports-v2-namebar .report-status{white-space:nowrap}
.reports-v2-builder{margin-bottom:13px;background:#fff;border:1px solid #dde5e9;border-radius:10px;overflow:hidden}.reports-v2-builder>summary{display:grid;grid-template-columns:18px auto minmax(0,1fr) 12px;align-items:center;gap:8px;min-height:42px;padding:0 12px;cursor:pointer;list-style:none;user-select:none}.reports-v2-builder>summary::-webkit-details-marker{display:none}.reports-v2-builder>summary strong{font-size:11px}.reports-v2-builder-hint{color:#8a959c;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reports-v2-builder-icon{width:14px;height:12px;position:relative;border-top:2px solid #667b88}.reports-v2-builder-icon:before,.reports-v2-builder-icon:after{content:'';position:absolute;left:2px;right:2px;border-top:2px solid #667b88}.reports-v2-builder-icon:before{top:3px}.reports-v2-builder-icon:after{top:8px;left:5px;right:5px}.reports-v2-builder-chevron{width:7px;height:7px;border-right:1.5px solid #788790;border-bottom:1.5px solid #788790;transform:rotate(45deg);transition:.15s}.reports-v2-builder[open] .reports-v2-builder-chevron{transform:rotate(225deg);margin-top:5px}.reports-v2-builder-body{border-top:1px solid #edf1f3;background:#f8fafb;padding:10px}.reports-v2-builder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding:0 2px}.reports-v2-builder-toolbar>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#697780}.reports-v2-block-list{display:grid;gap:9px}.reports-v2-block-list .report-builder-block{border-radius:9px;box-shadow:none;border-color:#dfe6ea}.reports-v2-block-head{min-height:44px!important;padding:6px 10px!important}.reports-v2-block-config{border-top:1px solid #edf0f2}.reports-v2-block-list .semantic-layout-row{grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr)}.reports-v2-block-list .semantic-value-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.reports-v2-block-list .report-card-section{padding:10px 11px}.reports-v2-block-list .report-advanced>summary{padding:8px 11px}
.reports-v2-dashboard{min-width:0}.reports-v2-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:12px}.reports-v2-kpi{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-height:86px;padding:12px 13px;background:#fff;border:1px solid #dde5e9;border-radius:10px;box-shadow:0 1px 3px rgba(28,48,61,.035)}.reports-v2-kpi-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#eef4f7;color:#4c7287;font-size:11px;font-weight:800}.reports-v2-kpi small,.reports-v2-kpi strong,.reports-v2-kpi span{display:block}.reports-v2-kpi small{font-size:9px;color:#6c7a83;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reports-v2-kpi strong{font-size:21px;line-height:1.05;font-variant-numeric:tabular-nums}.reports-v2-kpi span{font-size:9px;margin-top:5px}.reports-v2-kpi .is-up{color:#317451}.reports-v2-kpi .is-down{color:#a34e45}
.reports-v2-output{display:grid!important;gap:12px!important;margin:0!important}.reports-v2-empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#fff;border:1px dashed #d5dfe4;border-radius:11px;color:#839098;text-align:center}.reports-v2-empty strong{font-size:13px;color:#53636d}.reports-v2-empty span{font-size:10px}
.reports-v2-result-card{background:transparent;border:0}.reports-v2-result-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 2px 8px}.reports-v2-result-head h2{margin:0;font-size:15px}.reports-v2-result-head span{display:block;margin-top:2px;color:#7a878f;font-size:9px}.reports-v2-result-head small{color:#7a878f;font-size:9px;white-space:nowrap}.reports-v2-result-card [data-v2-result-body]{display:grid;gap:10px}.reports-v2-chart-card,.reports-v2-table-card,.reports-v2-visual-card{min-width:0;background:#fff;border:1px solid #dde5e9;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(28,48,61,.035)}.reports-v2-subhead{min-height:38px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid #edf1f3}.reports-v2-subhead strong{font-size:11px}.reports-v2-chart-card>[data-auto-chart],.reports-v2-visual-card{padding:12px}.reports-v2-chart-card .report-multi-bars{gap:6px}.reports-v2-chart-card .report-multi-row{grid-template-columns:minmax(105px,180px) minmax(150px,1fr) 80px;font-size:10px}.reports-v2-table-card .table-scroll{max-height:none}.reports-v2-table-card .report-table{font-size:10px}.reports-v2-table-card .report-table th,.reports-v2-table-card .report-table td{padding:7px 8px}.reports-v2-table-card .report-sort-btn{min-height:27px;padding:6px 8px;font-size:10px}.reports-v2-visual-card .report-kpi{background:#f7f9fa}
@media(max-width:1150px){.reports-v2-shell{grid-template-columns:185px minmax(0,1fr)}.reports-v2-block-list .semantic-layout-row{grid-template-columns:1fr}.reports-v2-block-list .semantic-layout-row .report-card-section{border-right:0;border-bottom:1px solid #edf0f2}}
@media(max-width:820px){.reports-v2-head{align-items:flex-start;flex-direction:column}.reports-v2-shell{grid-template-columns:1fr}.reports-v2-library{position:static}.reports-v2-library .saved-report-list{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-v2-actions{width:100%}.reports-v2-builder>summary{grid-template-columns:18px auto 1fr 12px}}
@media(max-width:560px){.reports-v2-page{padding-left:8px;padding-right:8px}.reports-v2-library .saved-report-list{grid-template-columns:1fr}.reports-v2-actions .btn{flex:1}.reports-v2-builder-hint{display:none}.reports-v2-builder>summary{grid-template-columns:18px 1fr 12px}.reports-v2-kpis{grid-template-columns:1fr 1fr}.reports-v2-block-list .semantic-value-list{grid-template-columns:1fr}.reports-v2-chart-card .report-multi-row{grid-template-columns:85px minmax(100px,1fr) 62px}.reports-v2-namebar{align-items:flex-start;flex-direction:column}.reports-v2-namebar input{width:100%}}

/* Reports V2 dashboard layout v4 */
.reports-v2-dashboard-page{max-width:1680px;padding:2px 18px 36px}
.reports-v2-dashboard-head{align-items:center;margin-bottom:14px;padding:2px 0 0}
.reports-v2-heading{min-width:240px}
.reports-v2-dashboard-head .page-kicker{font-size:10px;color:#7f8c94;margin-bottom:2px}
.reports-v2-dashboard-head .reports-v2-title-row h1{font-size:27px;line-height:1.05}
.reports-v2-current-report{display:flex;align-items:center;gap:8px;margin-top:5px;min-height:22px}
.reports-v2-current-report input{width:min(360px,52vw);height:22px;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:#65737c;font-size:11px;font-weight:650;box-shadow:none}
.reports-v2-current-report input:hover,.reports-v2-current-report input:focus{border-bottom-color:#cbd7dd;outline:0}
.reports-v2-current-report .report-status{font-size:9px}
.reports-v2-dashboard-actions{gap:8px}
.reports-v2-dashboard-actions .btn{min-width:82px;height:36px;border-radius:7px;font-size:11px;font-weight:700}
.reports-v2-dashboard-actions .reports-v2-run{min-width:96px}
.reports-v2-dashboard-actions .reports-v2-export{min-width:118px}
.reports-v2-dashboard-shell{grid-template-columns:210px minmax(0,1fr);gap:12px}
.reports-v2-dashboard-library{border-radius:9px;box-shadow:none;min-height:610px}
.reports-v2-dashboard-library .reports-v2-library-head{min-height:48px;padding:0 13px}
.reports-v2-dashboard-library .reports-v2-library-head strong{font-size:12px}
.reports-v2-dashboard-library .reports-v2-search-wrap{padding:9px 9px 7px}
.reports-v2-dashboard-library .reports-v2-search-wrap input{height:34px;background:#fff}
.reports-v2-dashboard-library .saved-report-list{padding:1px 7px 10px;gap:2px}
.reports-v2-dashboard-library .saved-report-item{border-radius:7px}
.reports-v2-dashboard-library .saved-report-item.is-active{background:#eef5fa}
.reports-v2-dashboard-library .saved-report-item.is-active>button:first-child strong{color:#2c6e94}
.reports-v2-dashboard-library .saved-report-item>button:first-child{padding:8px 8px}
.reports-v2-dashboard-library .saved-report-item>button:first-child strong{font-size:10.5px}
.reports-v2-dashboard-library .saved-report-item>button:first-child small{font-size:8px}
.reports-v2-dashboard-main{min-width:0}
.reports-v2-dashboard-builder{margin:0 0 12px;border-radius:8px;box-shadow:none}
.reports-v2-dashboard-builder>summary{min-height:40px;padding:0 12px;background:#fff}
.reports-v2-dashboard-builder>summary strong{font-size:11px}
.reports-v2-dashboard-builder .reports-v2-builder-hint{font-size:9px}
.reports-v2-dashboard-builder .reports-v2-builder-body{padding:9px}
.reports-v2-dashboard{min-width:0}
.reports-v2-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0 0 10px}
.reports-v2-kpi{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:9px;min-height:91px;padding:12px;background:#fff;border:1px solid #dde5e9;border-radius:8px;box-shadow:none}
.reports-v2-kpi-icon{width:34px;height:34px;border-radius:50%;background:#edf4f8;color:#397497;font-size:12px;font-weight:850}
.reports-v2-kpi-copy{min-width:0}
.reports-v2-kpi-copy small{font-size:9px;color:#697983;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reports-v2-kpi-copy strong{margin-top:3px;font-size:19px;letter-spacing:-.02em;color:#1d2b34}
.reports-v2-kpi-trend{display:flex!important;align-items:center;gap:5px;margin-top:8px!important;font-size:8.5px!important;color:#849198!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reports-v2-kpi-trend b{font-size:8.5px;font-weight:800}.reports-v2-kpi-trend em{font-style:normal;overflow:hidden;text-overflow:ellipsis}
.reports-v2-kpi-trend.is-up b{color:#2f8054}.reports-v2-kpi-trend.is-down b{color:#aa544a}
.reports-v2-output{gap:10px!important}
.reports-v2-dashboard-result{display:grid;gap:10px;min-width:0}
.reports-v2-chart-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:10px;min-width:0}
.reports-v2-dash-card{min-width:0;background:#fff;border:1px solid #dde5e9;border-radius:8px;overflow:hidden;box-shadow:none}
.reports-v2-dash-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:7px 12px;border-bottom:1px solid #edf1f3}
.reports-v2-dash-card-head>div{min-width:0}.reports-v2-dash-card-head strong{display:block;font-size:11px;color:#273a46}.reports-v2-dash-card-head small{display:block;margin-top:2px;color:#87949c;font-size:8.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reports-v2-dash-card-head>span{color:#8b979e;font-size:8.5px;white-space:nowrap}
.reports-v2-dash-chart-body{height:260px;padding:12px 12px 9px;overflow:hidden}
.reports-v2-dash-chart-body .report-line-wrap{height:100%;display:grid;grid-template-rows:minmax(0,1fr) 24px auto;min-height:0}
.reports-v2-dash-chart-body .report-line-svg{height:100%;min-height:170px}
.reports-v2-dash-chart-body .report-line-labels{font-size:8px;gap:2px;overflow:hidden}
.reports-v2-dash-chart-body .report-line-labels span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.reports-v2-dash-chart-body .report-legend{padding-top:4px;font-size:8px}
.reports-v2-dash-chart-body .report-multi-bars{height:100%;overflow:auto;padding-right:2px;align-content:center}
.reports-v2-dash-chart-body .report-multi-row{grid-template-columns:minmax(92px,140px) minmax(120px,1fr) 70px;gap:8px;min-height:34px;font-size:9px}
.reports-v2-dash-chart-body .report-multi-row>span{font-size:8.5px}
.reports-v2-dash-chart-body .report-multi-row strong{font-size:8.5px}
.reports-v2-dash-chart-body .report-legend{display:none}
.reports-v2-dash-table{min-width:0}
.reports-v2-table-head{min-height:43px}
.reports-v2-dash-table .table-scroll{max-height:none;border:0}
.reports-v2-dash-table .report-table{width:100%;font-size:9.5px;border-collapse:collapse}
.reports-v2-dash-table .report-table th,.reports-v2-dash-table .report-table td{padding:8px 9px;border-color:#e7ecef}
.reports-v2-dash-table .report-table thead th{background:#fbfcfd;color:#445761;font-size:9px;font-weight:760}
.reports-v2-dash-table .report-table tbody tr:hover td{background:#f8fbfc}
.reports-v2-dash-table .report-sort-btn{min-height:24px;padding:4px 2px;font-size:9px;font-weight:760}
.reports-v2-secondary-result{margin-top:2px}.reports-v2-secondary-body{padding:10px}.reports-v2-secondary-body .table-scroll{max-height:none}
.reports-v2-dashboard-empty{min-height:430px;background:#fff}

@media(max-width:1280px){
  .reports-v2-dashboard-shell{grid-template-columns:190px minmax(0,1fr)}
  .reports-v2-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .reports-v2-chart-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .reports-v2-dashboard-head{align-items:flex-start;flex-direction:column}
  .reports-v2-dashboard-actions{width:100%}
  .reports-v2-dashboard-shell{grid-template-columns:1fr}
  .reports-v2-dashboard-library{position:static;min-height:0}
  .reports-v2-dashboard-library .saved-report-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reports-v2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .reports-v2-dashboard-actions .btn{min-width:0;flex:1 1 46%}
  .reports-v2-current-report input{width:100%}
  .reports-v2-kpis{grid-template-columns:1fr}
  .reports-v2-dashboard-library .saved-report-list{grid-template-columns:1fr}
  .reports-v2-dash-chart-body{height:230px}
}
.reports-v2-dash-table .report-table tfoot td{background:#f4f7f9;font-weight:800;color:#273a46;border-top:1px solid #d9e2e7}
.reports-v2-dash-table .report-table tfoot .reports-v2-total-label{text-align:left}

/* Reports V2 neo dashboard — v1.0.169 */
.reports-v2-neo{
    --rv2-blue:#0b6ffb;
    --rv2-blue-2:#075fd9;
    --rv2-blue-soft:#eaf3ff;
    --rv2-text:#172230;
    --rv2-muted:#6d7a89;
    --rv2-border:#e2e8f0;
    --rv2-border-2:#d5dde7;
    --rv2-bg:#f7f9fc;
    --rv2-card:#fff;
    max-width:none!important;
    margin:-14px -18px -30px!important;
    padding:0 0 36px!important;
    color:var(--rv2-text)!important;
    background:var(--rv2-bg);
    min-height:calc(100vh - 70px);
}
.reports-v2-neo *{box-sizing:border-box}
.rv2-breadcrumb{height:54px;display:flex;align-items:center;gap:10px;padding:0 24px;border-bottom:1px solid var(--rv2-border);background:#fff;color:#8793a0;font-size:13.2px}
.rv2-breadcrumb i{font-style:normal;color:#aab4bf}.rv2-breadcrumb strong{color:#364352;font-weight:700}
.rv2-workspace{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:760px;background:#fff}
.rv2-library{position:relative;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--rv2-border);background:#fff;padding:0 12px 20px}
.rv2-library-title{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 4px;color:#1f2a38}.rv2-library-title strong{font-size:15.4px;font-weight:760}.rv2-library-title span{min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:#f0f4f8;color:#778493;font-size:11px;font-weight:800}
.rv2-search{position:relative;display:block;margin:0 0 10px}.rv2-search svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);fill:none;stroke:#8996a5;stroke-width:1.7}.rv2-search input{width:100%;height:38px;border:1px solid var(--rv2-border-2);border-radius:7px;background:#fff;padding:0 11px 0 34px;color:#293746;font-size:12.1px;outline:none;box-shadow:none}.rv2-search input:focus{border-color:#9fc6ff;box-shadow:0 0 0 3px rgba(11,111,251,.08)}
.rv2-saved-list{display:grid;gap:3px;min-height:0}.rv2-saved-item{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;border-radius:7px;transition:.15s}.rv2-saved-item:hover{background:#f5f8fb}.rv2-saved-item.is-active{background:var(--rv2-blue-soft)}.rv2-saved-item>button:first-child{min-width:0;height:38px;display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:0 8px;text-align:left;cursor:pointer;color:#394756}.rv2-saved-icon{width:17px;display:inline-grid;place-items:center;color:#91a0af;font-size:13.2px}.rv2-saved-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.55px;font-weight:650}.rv2-saved-item.is-active strong,.rv2-saved-item.is-active .rv2-saved-icon{color:var(--rv2-blue)}.rv2-saved-delete{width:28px;height:28px;border:0;background:transparent;border-radius:6px;color:#a8b2bd;font-size:18.7px;cursor:pointer;opacity:.25}.rv2-saved-item:hover .rv2-saved-delete{opacity:1}.rv2-saved-delete:hover{background:#fff1f0;color:#b84d47}.rv2-saved-empty{padding:18px 8px;text-align:center;color:#9aa5b0;font-size:11px}
.rv2-main{min-width:0;padding:0 24px 30px;background:#fff}
.rv2-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid transparent}.rv2-heading{min-width:0}.rv2-title-line{display:flex;align-items:center;gap:9px}.rv2-title-line h1{margin:0;color:#111c29;font-size:28.6px;line-height:1;font-weight:780;letter-spacing:-.035em}.rv2-version{display:inline-flex;align-items:center;justify-content:center;height:23px;padding:0 9px;border-radius:999px;background:var(--rv2-blue-soft);color:var(--rv2-blue);font-size:11px;font-weight:850}.rv2-report-name-line{display:flex;align-items:center;gap:10px;margin-top:7px}.rv2-report-name-line input{width:min(420px,45vw);height:20px;border:0;border-bottom:1px solid transparent;background:transparent;padding:0;color:#7b8795;font-size:12.1px;font-weight:600;outline:none;box-shadow:none}.rv2-report-name-line input:hover,.rv2-report-name-line input:focus{border-bottom-color:#cfd8e3;color:#44515f}.rv2-report-name-line .report-status{font-size:9.9px;white-space:nowrap}
.rv2-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.rv2-btn{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid #cfdae6;border-radius:7px;background:#fff;color:#334252;font-size:12.1px;font-weight:730;cursor:pointer;box-shadow:0 1px 1px rgba(31,52,74,.02);transition:.15s}.rv2-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rv2-btn:hover{border-color:#aebdcb;background:#fbfcfe}.rv2-btn:disabled{opacity:.5;cursor:not-allowed}.rv2-btn-primary{min-width:94px;border-color:var(--rv2-blue);background:var(--rv2-blue);color:#fff;box-shadow:0 4px 10px rgba(11,111,251,.15)}.rv2-btn-primary:hover{border-color:var(--rv2-blue-2);background:var(--rv2-blue-2)}.rv2-btn-primary svg{fill:currentColor;stroke:currentColor}.rv2-btn-excel{color:#18783a;border-color:#b9d8c3}.rv2-btn-excel:hover{background:#f7fcf8;border-color:#83bc94}
.rv2-builder{margin:0 0 16px;border:1px solid var(--rv2-border);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(18,38,63,.02);overflow:hidden}.rv2-builder>summary{height:44px;display:grid;grid-template-columns:18px auto minmax(0,1fr) 14px;align-items:center;gap:8px;padding:0 14px;list-style:none;cursor:pointer;user-select:none}.rv2-builder>summary::-webkit-details-marker{display:none}.rv2-builder>summary strong{font-size:12.1px;font-weight:740;color:#2a3848}.rv2-builder-summary{color:#96a1ac;font-size:10.45px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv2-filter-icon{display:grid;gap:2px}.rv2-filter-icon i{display:block;height:1.5px;background:#596979;border-radius:2px}.rv2-filter-icon i:nth-child(1){width:14px}.rv2-filter-icon i:nth-child(2){width:10px}.rv2-filter-icon i:nth-child(3){width:6px}.rv2-chevron{width:8px;height:8px;border-right:1.5px solid #81909d;border-bottom:1.5px solid #81909d;transform:rotate(45deg);transition:.15s}.rv2-builder[open] .rv2-chevron{transform:rotate(225deg);margin-top:5px}.rv2-builder-body{padding:12px;border-top:1px solid #edf1f5;background:#fbfcfe}.rv2-builder-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.rv2-builder-top>strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#73808e}.rv2-mini-btn{height:28px;padding:0 10px;border:1px solid #d2dbe5;border-radius:6px;background:#fff;color:#445363;font-size:10.45px;font-weight:700;cursor:pointer}.rv2-mini-btn:hover{border-color:#aebdcb;background:#f9fbfd}
.rv2-block-list{display:grid;gap:10px}.rv2-block-list>.report-builder-block{border:1px solid #dde5ee!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important;overflow:hidden}.rv2-view-head{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-bottom:1px solid #edf1f5;background:#fff}.rv2-view-title{min-width:0;display:flex;align-items:center;gap:7px;flex:1}.rv2-view-grip{color:#b1bbc5;font-size:13.2px;letter-spacing:-3px}.rv2-view-title input{min-width:0;max-width:430px;flex:1;height:32px;border:0;background:transparent;color:#263544;font-size:13.2px;font-weight:740;outline:none;box-shadow:none}.rv2-view-actions{display:flex;align-items:center;gap:7px}.rv2-view-actions label{display:flex;align-items:center;gap:6px;color:#8a96a2;font-size:9.9px}.rv2-view-actions select{height:30px;min-width:110px;border:1px solid #d6dfe8;border-radius:6px;background:#fff;padding:0 8px;color:#42505f;font-size:10.45px}.rv2-remove-view{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#a2adb8;font-size:19.8px;cursor:pointer}.rv2-remove-view:hover{background:#fff2f1;color:#b54d47}
.rv2-view-grid{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:0;background:#fff}.rv2-field-card{min-width:0;padding:13px;border-right:1px solid #edf1f5}.rv2-field-card:nth-child(3){border-right:0}.rv2-field-title{display:flex;align-items:center;gap:6px;margin-bottom:10px}.rv2-field-title strong{font-size:11px;font-weight:780;color:#384655}.rv2-field-symbol{width:18px;color:#7f8d9b;font-size:15.4px}.rv2-field-card>label,.rv2-options-grid label,.rv2-date-grid label,.rv2-compare-fields label{display:grid;gap:4px;color:#8995a1;font-size:9.35px;font-weight:650}.rv2-field-card>label+label{margin-top:7px}.rv2-field-card select,.rv2-field-card input[type=date],.rv2-options-grid select,.rv2-compare-fields input{width:100%;height:31px;border:1px solid #d7e0e9;border-radius:6px;background:#fff;padding:0 8px;color:#354454;font-size:10.45px;box-shadow:none;outline:none}.rv2-field-card select:focus,.rv2-field-card input:focus{border-color:#9ec6ff;box-shadow:0 0 0 2px rgba(11,111,251,.07)}.rv2-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rv2-values-card{grid-column:auto}.rv2-inline-add{margin-left:auto;border:0;background:transparent;color:var(--rv2-blue);font-size:9.9px;font-weight:750;cursor:pointer}.rv2-value-list{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}.rv2-value-list .semantic-metric-row{display:grid!important;grid-template-columns:minmax(0,1fr) 85px 26px!important;gap:5px!important;align-items:center!important;padding:0!important;border:0!important;background:transparent!important}.rv2-value-list .semantic-metric-row select{height:31px!important;border:1px solid #d7e0e9!important;border-radius:6px!important;background:#fff!important;padding:0 7px!important;font-size:9.9px!important}.rv2-value-list .semantic-metric-row .icon-btn{width:26px;height:26px;border:0;background:transparent;color:#9ca7b2;font-size:16.5px}.rv2-options-card{grid-column:1 / -1;border-top:1px solid #edf1f5;border-right:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 18px;align-items:start}.rv2-options-card>.rv2-field-title{grid-column:1 / -1;margin-bottom:0}.rv2-options-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:7px}.rv2-compare-toggle{display:flex!important;align-items:center;gap:7px!important;height:31px!important;margin:17px 0 0!important}.rv2-compare-toggle input{width:14px;height:14px}.rv2-compare-toggle span{color:#556473;font-size:10.45px}.rv2-compare-fields{grid-column:1 / -1;display:grid;grid-template-columns:150px 150px auto auto;align-items:end;gap:7px}.rv2-compare-fields[hidden]{display:none}.rv2-filter-card{grid-column:1 / -1;border-top:1px solid #edf1f5;padding:0 13px 12px}.rv2-filter-card>summary{height:36px;display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;color:#465665;font-size:10.45px;font-weight:750}.rv2-filter-card>summary::-webkit-details-marker{display:none}.rv2-filter-card>summary span{color:#9aa5af;font-size:8.8px;font-weight:600}.rv2-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:7px}.rv2-filter-grid label{display:grid;gap:4px;color:#8995a1;font-size:9.35px}.rv2-filter-grid input{height:31px;border:1px solid #d7e0e9;border-radius:6px;padding:0 8px;font-size:10.45px}
.rv2-dashboard{min-width:0}.rv2-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.rv2-kpi{position:relative;min-width:0;min-height:100px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:start;padding:14px;border:1px solid var(--rv2-border);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(18,38,63,.03)}.rv2-kpi-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#eaf3ff;color:var(--rv2-blue)}.rv2-kpi-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rv2-kpi-copy{min-width:0}.rv2-kpi-copy>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#697786;font-size:10.45px}.rv2-kpi-copy>strong{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#15202c;font-size:22px;line-height:1.05;font-weight:790;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.rv2-kpi-foot{display:flex;align-items:center;gap:6px;margin-top:9px;min-width:0;color:#909ba6;font-size:9.35px}.rv2-kpi-foot em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv2-kpi-foot b{margin-left:auto;white-space:nowrap}.rv2-kpi-foot.is-up b{color:#2c8753}.rv2-kpi-foot.is-down b{color:#b14f48}
.rv2-output{display:grid!important;gap:14px!important;margin:0!important}.rv2-dashboard-result{display:grid;gap:14px}.rv2-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.rv2-card{min-width:0;border:1px solid var(--rv2-border);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(18,38,63,.025);overflow:hidden}.rv2-card-head{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border-bottom:1px solid #edf1f5}.rv2-card-head>div{min-width:0}.rv2-card-head strong{display:block;color:#283746;font-size:12.1px;font-weight:760}.rv2-card-head small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8c98a4;font-size:9.35px}.rv2-card-head>span{color:#929daa;font-size:9.35px;white-space:nowrap}.rv2-period-pill{height:28px!important;display:flex!important;align-items:center;padding:0 10px;border:1px solid #dce4ec;border-radius:6px;color:#667584!important;background:#fff}.rv2-chart-body{height:285px;padding:11px 13px 12px}.rv2-chart-legend{height:26px;display:flex;align-items:center;gap:15px;padding-left:2px;color:#677685;font-size:9.35px}.rv2-chart-legend span{display:flex;align-items:center;gap:6px}.rv2-chart-legend i{width:18px;height:2px;display:inline-block;border-radius:2px}.rv2-chart-legend i.primary{background:var(--rv2-blue)}.rv2-chart-legend i.compare{background:#b9c4d0;border-top:1px dashed #7e8d9d}.rv2-line-chart{display:block;width:100%;height:235px;overflow:visible}.rv2-grid-line{stroke:#e8edf3;stroke-width:1;vector-effect:non-scaling-stroke}.rv2-axis-text,.rv2-axis-label{fill:#7d8996;font-size:9.9px;font-family:inherit}.rv2-line-primary,.rv2-line-compare{fill:none;vector-effect:non-scaling-stroke}.rv2-line-primary{stroke:var(--rv2-blue);stroke-width:2.2}.rv2-line-compare{stroke:#96a5b5;stroke-width:1.6;stroke-dasharray:5 4}.rv2-line-point{fill:#fff;stroke:var(--rv2-blue);stroke-width:2;vector-effect:non-scaling-stroke}.rv2-hbars{display:grid;gap:11px;padding:5px 2px 0}.rv2-hbar-row{display:grid;grid-template-columns:minmax(100px,150px) minmax(120px,1fr) 88px;align-items:center;gap:10px;min-height:31px}.rv2-hbar-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4e5d6d;font-size:9.68px}.rv2-hbar-row>strong{text-align:right;color:#475665;font-size:9.68px;font-weight:700}.rv2-hbar-track{position:relative;height:14px;background:#f2f5f8;border-radius:2px;overflow:hidden}.rv2-hbar-primary,.rv2-hbar-compare{position:absolute;left:0;display:block;border-radius:1px}.rv2-hbar-primary{top:1px;height:7px;background:var(--rv2-blue)}.rv2-hbar-compare{bottom:1px;height:4px;background:#cfd7df}.rv2-no-data{height:100%;display:grid;place-items:center;color:#9aa5b0;font-size:11px}
.rv2-table-card .table-scroll{max-height:none!important;border:0!important;overflow:auto}.reports-v2-neo .rv2-table-card table.report-table{width:100%;border-collapse:collapse;font-size:10.45px}.reports-v2-neo .rv2-table-card table.report-table th,.reports-v2-neo .rv2-table-card table.report-table td{padding:9px 10px;border-right:0;border-left:0;border-color:#e8edf2;color:#44515f;white-space:nowrap}.reports-v2-neo .rv2-table-card table.report-table thead th{background:#fbfcfd;color:#506070;font-size:9.9px;font-weight:780}.reports-v2-neo .rv2-table-card table.report-table tbody tr:hover td{background:#f8fbff}.reports-v2-neo .rv2-table-card .report-sort-btn{min-height:26px;padding:4px 0;color:inherit;font-size:9.9px;font-weight:780}.reports-v2-neo .rv2-table-card table.report-table td:first-child,.reports-v2-neo .rv2-table-card table.report-table th:first-child{padding-left:14px}.reports-v2-neo .rv2-table-card table.report-table td:last-child,.reports-v2-neo .rv2-table-card table.report-table th:last-child{padding-right:14px}.reports-v2-neo .rv2-table-card table.report-table tfoot td{background:#f4f7fa;color:#243341;font-weight:820;border-top:1px solid #d9e2ea}.reports-v2-neo .rv2-table-card .reports-v2-total-label{text-align:left}.rv2-sort-help{color:#9aa5af!important}.rv2-secondary-result{margin-top:0}.rv2-secondary-body{padding:12px}.rv2-empty{min-height:470px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #d9e2eb;border-radius:8px;background:#fbfcfe;color:#8d99a5;text-align:center}.rv2-empty-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#edf4ff;color:var(--rv2-blue);font-size:20.9px;margin-bottom:2px}.rv2-empty strong{color:#546372;font-size:13.2px}.rv2-empty small{font-size:10.45px}
@media(max-width:1280px){.rv2-workspace{grid-template-columns:205px minmax(0,1fr)}.rv2-main{padding-left:18px;padding-right:18px}.rv2-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.rv2-view-grid{grid-template-columns:1fr 1fr}.rv2-values-card{border-top:1px solid #edf1f5}.rv2-field-card:nth-child(2){border-right:0}.rv2-field-card:nth-child(3){grid-column:1/-1}.rv2-chart-body{height:260px}.rv2-line-chart{height:210px}}
@media(max-width:980px){.reports-v2-neo{margin:-10px -10px -24px!important}.rv2-workspace{grid-template-columns:1fr}.rv2-library{border-right:0;border-bottom:1px solid var(--rv2-border);padding-bottom:12px}.rv2-library-title{height:48px}.rv2-saved-list{grid-template-columns:repeat(2,minmax(0,1fr))}.rv2-main{padding-top:0}.rv2-header{align-items:flex-start;flex-direction:column;padding:16px 0}.rv2-actions{width:100%;justify-content:flex-start}.rv2-chart-grid{grid-template-columns:1fr}.rv2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rv2-view-grid{grid-template-columns:1fr}.rv2-field-card{border-right:0;border-bottom:1px solid #edf1f5}.rv2-field-card:nth-child(3){grid-column:auto}.rv2-options-card,.rv2-filter-card{grid-column:auto}.rv2-options-card{display:block}.rv2-options-card>.rv2-field-title{margin-bottom:10px}.rv2-compare-toggle{margin-top:8px!important}.rv2-compare-fields{grid-template-columns:1fr 1fr;margin-top:8px}}
@media(max-width:620px){.rv2-breadcrumb{padding:0 12px}.rv2-main{padding-left:10px;padding-right:10px}.rv2-saved-list{grid-template-columns:1fr}.rv2-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rv2-btn{width:100%;padding:0 9px}.rv2-report-name-line input{width:100%}.rv2-builder-summary{display:none}.rv2-builder>summary{grid-template-columns:18px 1fr 14px}.rv2-kpis{grid-template-columns:1fr}.rv2-date-grid,.rv2-options-grid,.rv2-compare-fields,.rv2-filter-grid{grid-template-columns:1fr}.rv2-chart-body{height:235px;padding-left:8px;padding-right:8px}.rv2-line-chart{height:185px}.rv2-hbar-row{grid-template-columns:85px minmax(100px,1fr) 68px}}

/* v1.0.172 — Operations / Comments conversations */
.comments-page{max-width:1600px;margin:0 auto;padding-bottom:30px}
.comments-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.comments-page-header p{margin:3px 0 0;color:var(--muted)}
.comments-search{display:flex;align-items:center;gap:7px;width:min(360px,38vw);height:34px;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:#fff;color:#70808b}
.comments-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:13.2px}
.comments-conversation-list{display:grid;gap:7px}
.comments-page-empty{padding:36px;text-align:center;border:1px dashed var(--border);border-radius:9px;color:var(--muted);background:#fff}
.comments-conversation{border:1px solid #d8e0e5;border-radius:9px;background:#fff;overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease}
.comments-conversation.has-unread{border-left:3px solid #d3a82b}
.comments-conversation.is-open{border-color:#b9c8d2;box-shadow:0 5px 16px rgba(41,61,75,.07)}
.comments-conversation-summary{width:100%;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 13px;text-align:left;color:var(--text);cursor:pointer}
.comments-conversation-summary:hover{background:#f8fafb}
.comments-conversation-main{display:grid;gap:2px;min-width:0;flex:1}
.comments-conversation-title-row{display:flex;align-items:baseline;gap:8px;min-width:0}
.comments-conversation-title-row strong{font-size:14.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comments-conversation-title-row small{font-size:11px;color:var(--muted);white-space:nowrap}
.comments-conversation-context{font-size:11px;color:#5a6a75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comments-conversation-last{font-size:12.1px;color:#344650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comments-conversation-last b{font-weight:700}
.comments-conversation-side{display:grid;justify-items:end;gap:4px;min-width:145px}
.comments-conversation-side time{font-size:9.9px;color:var(--muted);white-space:nowrap}
.comments-conversation-meta{display:flex;align-items:center;gap:7px;font-size:9.9px;color:var(--muted)}
.comments-unread-badge{padding:2px 6px;border-radius:999px;background:#fff2bd;color:#735600;font-weight:800}
.comments-conversation-chevron{width:7px;height:7px;border-right:1.5px solid #647784;border-bottom:1.5px solid #647784;transform:rotate(45deg);transition:transform .14s ease;margin-right:3px}
.comments-conversation.is-open .comments-conversation-chevron{transform:rotate(225deg);margin-top:4px}
.comments-conversation-body{padding:10px 12px 12px;border-top:1px solid #e5eaed;background:#fbfcfd}
.comments-conversation-loading{padding:22px;text-align:center;color:var(--muted)}
.comments-participants{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 8px;font-size:11px;color:var(--muted)}
.comments-participants>span{margin-right:3px;font-weight:700;color:#52636e}
.comments-participants b{padding:2px 6px;border-radius:999px;background:#edf2f5;color:#3f535f;font-weight:700}
.comments-row-preview{margin-bottom:9px}
.comments-thread-list{display:flex;flex-direction:column;gap:7px;max-height:360px;overflow:auto;padding:1px 2px 1px 0}
.comments-thread-list .schedule-comment-item{background:#fff}
.comments-thread-form{display:grid;gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid #e1e7ea}
.comments-thread-form textarea{width:100%;min-height:58px;resize:vertical;border:1px solid #c9d3d9;border-radius:6px;padding:8px 9px;font:inherit;font-size:13.2px;background:#fff}
.comments-thread-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.comments-thread-actions small{color:var(--muted);font-size:11px}
.comment-compose{position:relative;width:100%}
.comment-compose textarea{width:100%}
.comment-mention-menu{position:absolute;z-index:1600;left:0;bottom:calc(100% + 5px);width:min(360px,100%);max-height:220px;overflow:auto;border:1px solid #c9d4db;border-radius:7px;background:#fff;box-shadow:0 12px 28px rgba(24,42,54,.16);padding:4px}
.comment-mention-menu[hidden]{display:none!important}
.comment-mention-menu button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:9px;border:0;border-radius:5px;background:transparent;padding:7px 8px;text-align:left;color:var(--text);cursor:pointer}
.comment-mention-menu button:hover,.comment-mention-menu button:focus-visible{background:#eef4f7;outline:0}
.comment-mention-menu strong{font-size:12.1px}
.comment-mention-menu small{font-size:9.9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comment-mention{display:inline;padding:1px 3px;border-radius:4px;background:#e8f2f8;color:#245e7a;font-weight:700}
.schedule-comment-form .comment-compose{display:block}
.schedule-comment-form .comment-mention-menu{bottom:calc(100% + 4px)}
@media(max-width:760px){
  .comments-page-header{align-items:stretch;flex-direction:column}
  .comments-search{width:100%}
  .comments-conversation-summary{align-items:flex-start;gap:8px;padding:9px 10px}
  .comments-conversation-side{min-width:auto}
  .comments-conversation-context{max-width:72vw}
  .comments-conversation-body{padding:8px}
  .comments-thread-actions{align-items:flex-end;flex-direction:column}
  .comments-row-preview{overflow:auto}
  .comments-row-preview .schedule-comment-row-preview-fit{min-width:980px}
}


/* Reports V2: fixed table header while the page scrolls */
.rv2-sticky-table-head{position:fixed;z-index:4990;display:none;overflow:hidden;background:#fbfcfd;border-bottom:1px solid #dfe5ea;box-shadow:0 3px 8px rgba(28,48,61,.09);pointer-events:auto}
.rv2-sticky-table-head.is-visible{display:block}
.rv2-sticky-table-head table{margin:0;border-collapse:collapse;table-layout:fixed;background:#fbfcfd}
.rv2-sticky-table-head thead th{box-sizing:border-box;background:#fbfcfd!important;color:#506070;font-size:9.9px;font-weight:780;padding:9px 10px;border-bottom:1px solid #dfe5ea;white-space:nowrap;text-align:right}
.rv2-sticky-table-head thead th:first-child{text-align:left;padding-left:14px}
.rv2-sticky-table-head .report-sort-btn{min-height:26px;padding:4px 0;color:inherit;font-size:9.9px;font-weight:780}

/* Reports V2: row fields left, numeric values right */
.reports-v2-page .report-table-sortable th[data-sort-type="text"],.reports-v2-page .report-table-sortable td.rv2-row-field{text-align:left!important}
.reports-v2-page .report-table-sortable th[data-sort-type="number"],.reports-v2-page .report-table-sortable td.rv2-value-field{text-align:right!important}
.reports-v2-page .report-table-sortable th[data-sort-type="text"] .report-sort-btn{justify-content:flex-start;text-align:left}
.reports-v2-page .report-table-sortable th[data-sort-type="number"] .report-sort-btn{justify-content:flex-end;text-align:right}
.rv2-sticky-table-head .report-table-sortable th[data-sort-type="text"],.rv2-sticky-table-head .report-table-sortable th[data-sort-type="text"] .report-sort-btn{text-align:left!important;justify-content:flex-start}
.rv2-sticky-table-head .report-table-sortable th[data-sort-type="number"],.rv2-sticky-table-head .report-table-sortable th[data-sort-type="number"] .report-sort-btn{text-align:right!important;justify-content:flex-end}

/* Reports V2: keep all row dimensions packed left and values packed right */
.reports-v2-page .report-table-sortable td.rv2-row-field,.reports-v2-page .report-table-sortable th[data-sort-type="text"]{width:1%;white-space:nowrap}
.reports-v2-page .report-table-sortable td.rv2-value-field,.reports-v2-page .report-table-sortable th[data-sort-type="number"]{width:1%;white-space:nowrap}
.reports-v2-page .report-table-sortable .rv2-row-value-spacer{width:auto;min-width:24px;padding:0!important;border-left:0!important;border-right:0!important}
.rv2-sticky-table-head .report-table-sortable .rv2-row-value-spacer{width:auto;min-width:24px;padding:0!important}

/* Reports v2 dashboard: four charts per row on wide screens + per-chart Top selector */
.rv2-chart-grid-three{grid-template-columns:repeat(4,minmax(0,1fr));}
.rv2-top-select{height:28px;min-width:72px;padding:0 24px 0 9px;border:1px solid var(--line,#d8e0ea);border-radius:6px;background:#fff;font:inherit;font-size:12.1px;color:inherit;cursor:pointer;}
@media (max-width:1350px){.rv2-chart-grid-three{grid-template-columns:1fr 1fr;}.rv2-chart-grid-three>.rv2-chart-card:last-child{grid-column:1/-1;}}
@media (max-width:850px){.rv2-chart-grid-three{grid-template-columns:1fr;}.rv2-chart-grid-three>.rv2-chart-card:last-child{grid-column:auto;}}

/* Reports v2 v1.0.179: Top N bar charts expand vertically instead of clipping */
.rv2-chart-grid-three{align-items:start;}
.rv2-chart-grid-three>.rv2-chart-card{align-self:start;}
.rv2-chart-grid-three .rv2-chart-body[data-v2-top-chart],.rv2-chart-grid-three .rv2-chart-body[data-v2-object-chart]{height:285px;transition:height .12s ease;}


/* Reports v2 v1.0.180: chart visibility toggles + responsive expansion */
.rv2-chart-visibility{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:30px;margin:-2px 0 -4px;}
.rv2-chart-visibility>span{margin-right:2px;color:#8a97a4;font-size:9.9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.rv2-chart-visibility label{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 8px;border:1px solid #dce4ec;border-radius:6px;background:#fff;color:#687785;font-size:9.9px;cursor:pointer;user-select:none;}
.rv2-chart-visibility label:has(input:checked){border-color:#bcd4f4;background:#f5f9ff;color:#2f6fae;}
.rv2-chart-visibility input{width:12px;height:12px;margin:0;accent-color:#0d6efd;}
.rv2-chart-grid-three>[hidden]{display:none!important;}
.rv2-chart-grid-three[data-visible-count="2"],.rv2-chart-grid-three[data-visible-count="1"]{grid-auto-flow:row;}
.rv2-chart-grid-three[data-visible-count="1"]>.rv2-chart-card{width:100%;}
@media (max-width:1350px){.rv2-chart-grid-three[data-visible-count="3"]{grid-template-columns:1fr 1fr!important}.rv2-chart-grid-three[data-visible-count="3"]>.rv2-chart-card:not([hidden]):last-of-type{grid-column:1/-1}.rv2-chart-grid-three[data-visible-count="2"]{grid-template-columns:1fr 1fr!important}.rv2-chart-grid-three[data-visible-count="1"]{grid-template-columns:1fr!important}}
@media (max-width:850px){.rv2-chart-visibility{justify-content:flex-start;flex-wrap:wrap}.rv2-chart-grid-three{grid-template-columns:1fr!important}.rv2-chart-grid-three>.rv2-chart-card{grid-column:auto!important}}


/* Reports v2 v1.0.186: compact collapsible charts */
.rv2-chart-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-height:30px;margin:-2px 0 4px;position:relative;flex-wrap:wrap}
.rv2-charts-toggle-btn,.rv2-chart-select-btn{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 9px;border:1px solid #d7e0e9;border-radius:6px;background:#fff;color:#526474;font-size:9.9px;font-weight:700;cursor:pointer;white-space:nowrap}
.rv2-charts-toggle-btn:hover,.rv2-chart-select-btn:hover{background:#f7f9fb;border-color:#c8d4df}
.rv2-charts-toggle-icon{display:inline-block;font-size:11px;line-height:1;transition:transform .12s ease}.rv2-charts-toggle-btn.is-open .rv2-charts-toggle-icon{transform:rotate(90deg)}
.rv2-chart-select-btn strong{font-size:8.8px;color:#7f8d9b;font-weight:700}.rv2-chart-select-caret{font-size:8.8px;transition:transform .12s ease}.rv2-chart-select-btn.is-open .rv2-chart-select-caret{transform:rotate(180deg)}
.rv2-chart-toolbar .rv2-chart-visibility{display:flex;align-items:center;gap:3px;min-height:27px;margin:0;flex-wrap:wrap;justify-content:flex-start;flex:1 1 100%;padding:4px 0 1px}
.rv2-chart-toolbar .rv2-chart-visibility label{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 5px;border:1px solid #dce4ec;border-radius:5px;background:#fff;color:#687785;font-size:8.25px;cursor:pointer;user-select:none}
.rv2-chart-toolbar .rv2-chart-visibility label:has(input:checked){border-color:#bcd4f4;background:#f5f9ff;color:#2f6fae}.rv2-chart-toolbar .rv2-chart-visibility input{width:10px;height:10px;margin:0;accent-color:#0d6efd}
.rv2-chart-toolbar [hidden],.rv2-chart-grid-three[hidden],.rv2-chart-grid-three>[hidden]{display:none!important}
.rv2-chart-grid-three{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}.rv2-chart-grid-three>.rv2-chart-card{align-self:start}
@media(max-width:1350px){.rv2-chart-grid-three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.rv2-chart-grid-three{grid-template-columns:1fr!important}.rv2-chart-toolbar{align-items:flex-start}}

/* Reports V2 v1.0.187 refinements */
.reports-v2-neo .rv2-actions{gap:5px;flex-wrap:nowrap}
.reports-v2-neo .rv2-btn{height:30px;padding:0 9px;gap:5px;border-radius:6px;font-size:11px;box-shadow:none}
.reports-v2-neo .rv2-btn svg{width:12px;height:12px}
.reports-v2-neo .rv2-btn-primary{min-width:0;box-shadow:none}
.reports-v2-neo .rv2-chart-toolbar{min-height:28px;gap:5px;margin:5px 0}
.reports-v2-neo .rv2-charts-toggle-btn,.reports-v2-neo .rv2-chart-select-btn{min-height:26px;padding:3px 8px;font-size:11px;border-radius:6px}
.reports-v2-neo .rv2-chart-visibility{gap:4px;padding:5px 6px}
.reports-v2-neo .rv2-chart-visibility label{min-height:23px;padding:2px 6px;font-size:9.9px}
@media(max-width:620px){.reports-v2-neo .rv2-actions{display:flex;flex-wrap:wrap}.reports-v2-neo .rv2-btn{width:auto}}

/* Reports V2 v1.0.189: +5% body/control text only; keep headings unchanged */
.reports-v2-neo input,
.reports-v2-neo select,
.reports-v2-neo textarea,
.reports-v2-neo button,
.reports-v2-neo label,
.reports-v2-neo td,
.reports-v2-neo th,
.reports-v2-neo small,
.reports-v2-neo .rv2-builder-hint,
.reports-v2-neo .reports-v2-builder-hint,
.reports-v2-neo .report-status,
.reports-v2-neo .rv2-sort-help,
.reports-v2-neo .report-multi-row,
.reports-v2-neo .report-multi-row > span,
.reports-v2-neo .report-multi-row > strong,
.reports-v2-neo .report-line-labels,
.reports-v2-neo .report-legend,
.reports-v2-neo .rv2-chart-visibility label,
.reports-v2-neo .rv2-charts-toggle-btn,
.reports-v2-neo .rv2-chart-select-btn,
.reports-v2-neo .rv2-top-select {
  font-size:105%;
}
.reports-v2-neo svg text{font-size:105%;}

/* Reports V2 v1.0.190: keep informational meta text at original size */
.reports-v2-neo .rv2-table-head small,
.reports-v2-neo .rv2-sort-help {
  font-size:9.35px!important;
}

/* Reports V2 v1.0.191: compact metadata and chart controls */
.reports-v2-neo .rv2-card-head small,
.reports-v2-neo .rv2-table-head small,
.reports-v2-neo .rv2-sort-help {
  font-size:8px!important;
  line-height:1.15;
}
.reports-v2-neo .rv2-chart-toolbar{
  min-height:24px;
  gap:4px;
  margin:3px 0;
}
.reports-v2-neo .rv2-charts-toggle-btn,
.reports-v2-neo .rv2-chart-select-btn{
  height:23px;
  min-height:23px;
  padding:1px 6px;
  gap:4px;
  font-size:9px;
  border-radius:5px;
}
.reports-v2-neo .rv2-charts-toggle-icon{font-size:9px}
.reports-v2-neo .rv2-chart-select-btn strong,
.reports-v2-neo .rv2-chart-select-caret{font-size:7.5px}
.reports-v2-neo .rv2-chart-toolbar .rv2-chart-visibility{
  gap:3px;
  min-height:23px;
  padding:3px 4px;
}
.reports-v2-neo .rv2-chart-toolbar .rv2-chart-visibility label{
  height:20px;
  min-height:20px;
  padding:0 4px;
  gap:3px;
  font-size:8px;
  border-radius:4px;
}
.reports-v2-neo .rv2-chart-toolbar .rv2-chart-visibility input{
  width:9px;
  height:9px;
}
.reports-v2-neo .rv2-top-select{
  font-size:9px!important;
}


/* Reports V2 v1.0.192: normalize row selector text + icon-only header actions */
.reports-v2-neo .rv2-field-card select{
  font-size:9.9px!important;
}
.reports-v2-neo .rv2-actions .rv2-icon-btn{
  width:30px;
  min-width:30px;
  height:30px;
  padding:0;
  display:inline-grid;
  place-items:center;
  border-radius:6px;
}
.reports-v2-neo .rv2-actions .rv2-icon-btn svg{
  width:13px;
  height:13px;
  margin:0;
}
.reports-v2-neo .rv2-actions .rv2-icon-btn span{display:none!important;}

/* Reports V2 v1.0.193: normalize non-table controls; keep table typography unchanged */
.reports-v2-neo .rv2-mini-btn,
.reports-v2-neo .rv2-view-actions select,
.reports-v2-neo .rv2-field-card select,
.reports-v2-neo .rv2-field-card input[type=date],
.reports-v2-neo .rv2-options-grid select,
.reports-v2-neo .rv2-compare-fields input,
.reports-v2-neo .rv2-filter-grid input,
.reports-v2-neo .rv2-inline-add,
.reports-v2-neo .rv2-value-list .semantic-metric-row select {
  font-size:10px!important;
}
.reports-v2-neo .rv2-mini-btn{
  height:26px;
  padding:0 8px;
}
.reports-v2-neo .rv2-view-head{
  min-height:42px;
  padding:5px 9px;
}
.reports-v2-neo .rv2-view-title input{
  height:28px;
  font-size:11px!important;
}
.reports-v2-neo .rv2-view-actions label{
  font-size:9px!important;
}
.reports-v2-neo .rv2-view-actions select{
  height:27px;
  min-width:96px;
  padding:0 7px;
}
.reports-v2-neo .rv2-remove-view{
  width:27px;
  height:27px;
  font-size:16px;
}
.reports-v2-neo .rv2-field-title strong{
  font-size:10px!important;
}
.reports-v2-neo .rv2-field-card>label,
.reports-v2-neo .rv2-options-grid label,
.reports-v2-neo .rv2-date-grid label,
.reports-v2-neo .rv2-compare-fields label,
.reports-v2-neo .rv2-filter-grid label{
  font-size:9px!important;
}
.reports-v2-neo .rv2-field-card select,
.reports-v2-neo .rv2-field-card input[type=date],
.reports-v2-neo .rv2-options-grid select,
.reports-v2-neo .rv2-compare-fields input,
.reports-v2-neo .rv2-filter-grid input,
.reports-v2-neo .rv2-value-list .semantic-metric-row select{
  height:29px!important;
}
.reports-v2-neo .rv2-value-list .semantic-metric-row .icon-btn{
  width:24px;
  height:24px;
  font-size:14px;
}
.reports-v2-neo .rv2-filter-card>summary{
  height:32px;
  font-size:9.5px!important;
}
.reports-v2-neo .rv2-compare-toggle{
  height:29px!important;
  margin-top:15px!important;
}
.reports-v2-neo .rv2-compare-toggle span{
  font-size:9.5px!important;
}
/* Explicitly preserve current table typography */
.reports-v2-neo .rv2-table-card table.report-table{font-size:10.45px!important;}
.reports-v2-neo .rv2-table-card table.report-table thead th,
.reports-v2-neo .rv2-table-card .report-sort-btn{font-size:9.9px!important;}

/* v1.0.194: show the selected Reports V2 period once, instead of repeating it under every KPI/chart/table. */
.reports-v2-neo .rv2-report-period{display:flex;align-items:center;gap:5px;min-height:18px;padding:0 2px;color:#7f8b97;font-size:9px;line-height:1.2}.reports-v2-neo .rv2-report-period strong{color:#667583;font-size:9px;font-weight:700}.reports-v2-neo .rv2-report-period span{color:#a6afb8}.reports-v2-neo .rv2-chart-card .rv2-card-head>div{display:flex;align-items:center}.reports-v2-neo .rv2-chart-card .rv2-card-head small{display:none}.reports-v2-neo .rv2-kpi-copy>.rv2-kpi-foot:empty{display:none}

/* v1.0.195: tighten and vertically align KPI summary cards after period text was removed. */
.reports-v2-neo .rv2-kpis{
  align-items:stretch;
  gap:10px;
  margin-bottom:12px;
}
.reports-v2-neo .rv2-kpi{
  min-height:74px;
  height:100%;
  box-sizing:border-box;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:10px 12px;
}
.reports-v2-neo .rv2-kpi-icon{
  width:34px;
  height:34px;
  align-self:center;
}
.reports-v2-neo .rv2-kpi-icon svg{
  width:18px;
  height:18px;
}
.reports-v2-neo .rv2-kpi-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:34px;
}
.reports-v2-neo .rv2-kpi-copy>small,
.reports-v2-neo .rv2-kpi-copy>strong{
  margin-left:0;
}


/* v1.0.197: compact chart Top selectors + standard-view reset action. */
.reports-v2-neo .rv2-chart-card .rv2-card-head{
  min-height:38px;
  align-items:center;
  padding:5px 9px;
  gap:8px;
}
.reports-v2-neo .rv2-chart-card .rv2-card-head>div{
  min-width:0;
  flex:1 1 auto;
  align-self:center;
}
.reports-v2-neo .rv2-chart-card .rv2-card-head strong{
  margin:0;
  line-height:1.15;
}
.reports-v2-neo .rv2-top-select{
  flex:0 0 62px!important;
  width:62px!important;
  min-width:62px!important;
  max-width:62px!important;
  height:22px!important;
  min-height:22px!important;
  padding:0 18px 0 6px!important;
  margin:0!important;
  font-size:8.5px!important;
  line-height:20px!important;
  border-radius:5px!important;
}
.reports-v2-neo .rv2-reset-btn{color:#6b7785;border-color:#d9e1e8;background:#fff}
.reports-v2-neo .rv2-reset-btn:hover{background:#f7f9fb;border-color:#c9d4de;color:#34495a}


/* v1.0.199: compact month comparison selector for the overview chart. */
.reports-v2-neo .rv2-chart-card[data-chart-card="overview"]{overflow:visible;position:relative;z-index:3}
.reports-v2-neo .rv2-overview-head-controls{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:0 0 auto!important;overflow:visible}
.reports-v2-neo .rv2-months-btn{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 6px;border:1px solid #d8e0ea;border-radius:5px;background:#fff;color:#526474;font-size:8.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.reports-v2-neo .rv2-months-btn:hover,.reports-v2-neo .rv2-months-btn.is-open{background:#f7f9fb;border-color:#c7d3df}
.reports-v2-neo .rv2-months-btn strong{display:inline!important;margin:0!important;font-size:8px!important;color:#7b8996!important}
.reports-v2-neo .rv2-months-btn>span{font-size:7px;transition:transform .12s ease}.reports-v2-neo .rv2-months-btn.is-open>span{transform:rotate(180deg)}
.reports-v2-neo .rv2-month-popover{position:absolute;right:0;top:27px;width:178px;padding:7px;border:1px solid #d7e0e9;border-radius:7px;background:#fff;box-shadow:0 10px 24px rgba(18,38,63,.14);z-index:20}
.reports-v2-neo .rv2-month-popover[hidden]{display:none!important}
.reports-v2-neo .rv2-month-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:6px}
.reports-v2-neo .rv2-month-quick button{height:21px;padding:0 3px;border:1px solid #dce4ec;border-radius:4px;background:#fff;color:#5e6e7d;font-size:8px;cursor:pointer}.reports-v2-neo .rv2-month-quick button:hover{background:#f5f8fb}
.reports-v2-neo .rv2-month-list{display:grid;gap:2px;max-height:210px;overflow:auto}.reports-v2-neo .rv2-month-list label{display:flex;align-items:center;gap:6px;min-height:22px;padding:2px 4px;border-radius:4px;color:#536473;font-size:8.5px;cursor:pointer}.reports-v2-neo .rv2-month-list label:hover{background:#f6f8fa}.reports-v2-neo .rv2-month-list input{width:11px;height:11px;margin:0;accent-color:#0d6efd}
.reports-v2-neo .rv2-month-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.reports-v2-neo .rv2-month-point{fill:#fff;stroke-width:1.8;vector-effect:non-scaling-stroke}.reports-v2-neo .rv2-month-legend{height:auto;min-height:26px;flex-wrap:wrap;row-gap:4px;padding-bottom:3px}
/* v1.0.200: month comparison on every dashboard chart; compact selector. */
.reports-v2-neo .rv2-overview-head-controls{display:flex;align-items:center;gap:4px;margin-left:auto;position:relative;flex:0 0 auto}
.reports-v2-neo .rv2-months-btn{height:20px;min-width:34px;padding:0 5px;font-size:8px}
.reports-v2-neo .rv2-months-btn strong{font-size:8px!important}
.reports-v2-neo .rv2-month-hbars{display:grid;gap:8px}
.reports-v2-neo .rv2-month-hbar-row{display:grid;grid-template-columns:minmax(64px,100px) minmax(0,1fr);gap:8px;align-items:start}
.reports-v2-neo .rv2-month-hbar-row>span{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:2px}
.reports-v2-neo .rv2-month-hbar-series{display:grid;gap:3px}
.reports-v2-neo .rv2-month-hbar-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;min-height:8px}
.reports-v2-neo .rv2-month-hbar-line>i{display:block;height:5px;border-radius:2px;min-width:1px}
.reports-v2-neo .rv2-month-hbar-line>strong{font-size:7.5px;font-weight:600;min-width:54px;text-align:right;color:#536473}

/* Calendar status sidebar ------------------------------------------------ */
.tc-status-groups { display: grid; gap: 8px; }
.tc-status-panel { padding: 0; overflow: hidden; }
.tc-status-heading {
    width: 100%; min-height: 40px; display: grid; grid-template-columns: 18px minmax(0,1fr) auto;
    align-items: center; gap: 7px; padding: 9px 10px; border: 0; border-bottom: 1px solid var(--border);
    background: #f2f6f8; color: #455966; text-align: left; cursor: pointer; font: inherit;
}
.tc-status-heading:hover { background: #edf3f6; }
.tc-status-heading strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.tc-status-chevron { display: inline-flex; align-items: center; justify-content: center; color: #71838e; font-size: 18px; line-height: 1; transform: rotate(90deg); transition: transform .12s ease; }
.tc-status-panel.is-collapsed .tc-status-chevron { transform: rotate(0deg); }
.tc-status-task-list { min-height: 0; max-height: 300px; overflow: auto; padding: 8px; background: #fbfcfd; }
.tc-status-task-list[hidden] { display: none; }
.tc-unscheduled-panel { margin-top: 10px; }
.tc-unscheduled-panel .tc-unscheduled-drop { max-height: 320px; min-height: 0; padding: 8px; border: 1px dashed transparent; }
.tc-sidebar .badge { min-width: 22px; text-align: center; }
@media (max-width: 1050px) {
    .tc-status-groups { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .tc-unscheduled-panel { margin-top: 0; }
}
@media (max-width: 720px) {
    .tc-status-groups { grid-template-columns: 1fr; }
}

/* v1.0.204: task completion action moved out of accordion */
.calendar-page .tc-detail-task-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.calendar-page .tc-complete-work-modal{width:min(760px,calc(100vw - 28px));max-height:min(88vh,820px)}
.calendar-page .tc-complete-work-modal .tc-modal-body{overflow:auto}


/* v1.0.205: quick complete action directly on Calendar task cards. */
.calendar-page .tc-task-complete-icon{
    margin-left:auto;width:25px;height:25px;min-width:25px;padding:0;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid #b9d9c1;border-radius:7px;background:#f0f8f2;color:#34734a;cursor:pointer;
    box-shadow:0 1px 2px rgba(35,76,49,.06);transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease;
}
.calendar-page .tc-task-complete-icon:hover{background:#e4f3e8;border-color:#8fc39d;color:#245f39;transform:translateY(-1px)}
.calendar-page .tc-task-complete-icon:active{transform:translateY(0)}
.calendar-page .tc-task-complete-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.calendar-page .tc-task-complete-icon + .tc-task-edit{margin-left:0}
.calendar-page .tc-calendar.tc-card-layout-compact .tc-day .tc-task-actions{gap:3px}
.calendar-page .tc-calendar.tc-card-layout-compact .tc-day .tc-task-complete-icon{width:23px;height:23px;min-width:23px;border-radius:6px}
.calendar-page .tc-calendar.tc-card-layout-compact .tc-day .tc-task-complete-icon svg{width:14px;height:14px}
\n\n/* v1.0.206: structured compact-card hover preview. */\n.calendar-page .tc-task-preview{width:350px;padding:12px 13px;border-radius:9px;box-shadow:0 14px 34px rgba(29,49,66,.20)}
.calendar-page .tc-task-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid #edf1f4}
.calendar-page .tc-task-preview-head strong{margin:0;color:#314956;font-size:13px;line-height:1.25}
.calendar-page .tc-task-preview-status{flex:0 0 auto;padding:2px 6px;border:1px solid #d8e2e8;border-radius:999px;background:#f7fafb;color:#667884;font-size:9px;font-weight:700;line-height:1.3}
.calendar-page .tc-task-preview-desc{margin:8px 0 0;padding:7px 8px;border-radius:6px;background:#f7f9fa;color:#465963;font-size:11px;line-height:1.4;white-space:pre-wrap}
.calendar-page .tc-task-preview-grid{display:grid;gap:0;margin-top:8px;border-top:1px solid #eef2f4}
.calendar-page .tc-task-preview-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border-bottom:1px solid #eef2f4}
.calendar-page .tc-task-preview-label{color:#8a98a1;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.45}
.calendar-page .tc-task-preview-value{min-width:0;color:#354c58;font-size:11px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}
.calendar-page .tc-task-preview-people{display:flex;flex-wrap:wrap;gap:4px 5px}
.calendar-page .tc-task-preview-person{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border-radius:999px;background:#eef4f7;color:#405864;font-size:10px;font-weight:650}
.calendar-page .tc-task-preview-empty{color:#98a4ab;font-weight:500}
/* v1.0.208: Calendar History is global; task modal no longer contains a local History section. */
.tc-history-section-title {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 12px 3px;
  color: #334955;
}
.tc-history-section-title strong { font-size: 12px; }
.tc-history-section-title span { color: var(--muted); font-size: 10px; }
.tc-history-changes-wrap { flex: 0 0 auto; max-height: 32vh; }
.tc-history-changes-table { min-width: 980px; }
.tc-history-changes-table th:nth-child(1) { width: 130px; }
.tc-history-changes-table th:nth-child(2) { width: 230px; }
.tc-history-changes-table th:nth-child(3) { width: 190px; }
.tc-history-changes-table th:nth-child(4) { width: 120px; }
.tc-history-changes-table th:nth-child(5) { width: 100px; }
.tc-history-changes-table td:nth-child(6) { white-space: normal; }

/* v1.0.209: polished Calendar History layout. */
.tc-modal-backdrop.tc-history-backdrop {
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    padding: 22px 18px;
}
.tc-modal.tc-history-modal {
    flex: 0 1 auto;
    width: min(1540px, calc(100vw - 36px));
    height: auto;
    max-height: calc(100vh - 44px);
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 18px 48px rgba(17, 33, 44, .22);
}
.tc-history-modal > .tc-modal-header {
    min-height: 48px;
    padding: 10px 14px;
    border-bottom: 1px solid #dde5e9;
    background: #fbfcfd;
}
.tc-history-modal > .tc-modal-header h2 {
    margin: 0;
    font-size: 17px;
    line-height: 1.2;
}
.tc-history-modal-body {
    flex: 0 1 auto;
    display: block;
    min-height: 0;
    max-height: calc(100vh - 132px);
    padding: 14px;
    overflow: auto;
    background: #f7f9fb;
}
.tc-history-filter {
    display: grid;
    grid-template-columns: 150px 150px minmax(260px, 1fr) 92px auto;
    align-items: end;
    gap: 10px;
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid #dfe6ea;
    border-radius: 8px;
    background: #fff;
}
.tc-history-filter label {
    display: grid;
    gap: 5px;
    width: auto !important;
    min-width: 0 !important;
    color: #536874;
    font-size: 10px;
    font-weight: 700;
}
.tc-history-filter input,
.tc-history-filter select {
    width: 100%;
    min-width: 0;
    height: 32px;
    padding: 0 9px;
    font-size: 11px;
}
.tc-history-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    height: 32px;
}
.tc-history-actions .btn {
    min-height: 32px;
    height: 32px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    font-size: 10.5px;
}
.tc-history-section-card {
    margin: 0 0 14px;
    overflow: hidden;
    border: 1px solid #dfe6ea;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(32, 50, 61, .03);
}
.tc-history-section-card:last-child { margin-bottom: 0; }
.tc-history-section-title {
    display: block;
    padding: 10px 12px 9px;
    border-bottom: 1px solid #e3e9ec;
    background: #fbfcfd;
    color: #334955;
}
.tc-history-section-title strong {
    display: block;
    margin: 0;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.25;
}
.tc-history-section-title span {
    display: block;
    margin-top: 2px;
    color: #82919a;
    font-size: 9.5px;
    line-height: 1.25;
}
.tc-history-section-card .tc-history-table-wrap {
    flex: none;
    max-height: 34vh;
    margin: 0;
    border: 0;
    border-radius: 0;
}
.tc-history-section-card .tc-history-table {
    margin: 0;
}
.tc-history-section-card .tc-history-table th {
    padding: 7px 9px;
    background: #eef3f6;
    color: #455966;
    font-size: 9.5px;
}
.tc-history-section-card .tc-history-table td {
    padding: 7px 9px;
    font-size: 10.5px;
}
.tc-history-modal > .tc-modal-footer {
    min-height: 46px;
    padding: 8px 12px;
    border-top: 1px solid #dde5e9;
    background: #fbfcfd;
}
.tc-history-modal > .tc-modal-footer .btn {
    min-height: 30px;
    height: 30px;
    padding: 0 12px;
}
@media (max-width: 900px) {
    .tc-modal-backdrop.tc-history-backdrop { padding: 0; }
    .tc-modal.tc-history-modal { width: 100vw; max-height: 100vh; border-radius: 0; }
    .tc-history-modal-body { max-height: calc(100vh - 94px); padding: 10px; }
    .tc-history-filter { grid-template-columns: 1fr 1fr; }
    .tc-history-filter label:nth-child(3),
    .tc-history-filter label:nth-child(4),
    .tc-history-actions { grid-column: 1 / -1; }
    .tc-history-actions { justify-content: flex-start; }
    .tc-history-section-card .tc-history-table-wrap { max-height: none; }
}

/* v1.0.210: collapsible Calendar History sections, 10 rows each by default. */
.tc-history-filter {
    grid-template-columns: 150px 150px minmax(260px, 1fr) auto;
}
.tc-history-section-card {
    overflow: hidden;
}
.tc-history-section-title {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 9px 12px;
    border: 0;
    background: #fff;
    color: inherit;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.tc-history-section-title:hover { background: #f8fafb; }
.tc-history-section-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.tc-history-section-copy strong { font-size: 12px; line-height: 1.2; }
.tc-history-section-copy > span { color: var(--muted); font-size: 10px; line-height: 1.2; }
.tc-history-section-meta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.tc-history-count {
    min-width: 24px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: #eef3f6;
    color: #526875;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
}
.tc-history-chevron {
    display: inline-block;
    font-size: 15px;
    line-height: 1;
    color: #6b7d87;
    transform: rotate(180deg);
    transition: transform .15s ease;
}
.tc-history-section-card.is-collapsed .tc-history-chevron { transform: rotate(0deg); }
.tc-history-section-content {
    border-top: 1px solid #e4eaed;
}
.tc-history-section-content[hidden] { display: none !important; }

/* Calendar v1.0.211: completed-task summary */
.calendar-page .tc-detail-completion{margin-top:14px;padding:11px 12px;border:1px solid var(--border,#d7dde2);border-radius:8px;background:rgba(34,130,78,.035)}
.calendar-page .tc-detail-completion-title{font-weight:700;margin-bottom:8px}
.calendar-page .tc-detail-completion-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:8px}
.calendar-page .tc-detail-result-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;padding:5px 0;border-top:1px solid rgba(127,127,127,.11)}
.calendar-page .tc-detail-result-row>span{font-size:11px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.03em}
.calendar-page .tc-detail-result-row>strong{font-size:12px;font-weight:500;white-space:pre-wrap}
@media(max-width:850px){.calendar-page .tc-detail-completion-grid{grid-template-columns:1fr}.calendar-page .tc-detail-result-row{grid-template-columns:1fr}}

/* v1.0.212: personal row completion marker in Work Schedule V4 */
.schedule-row-check-head,
.schedule-row-check-cell {
    position: sticky !important;
    left: 0;
    width: calc(34px * var(--scale));
    min-width: calc(34px * var(--scale)) !important;
    max-width: calc(34px * var(--scale));
    padding: 0 !important;
    z-index: 8;
    background: #f8fafb !important;
    text-align: center !important;
}
.schedule-row-check-head { z-index: 13; background: #e8f0f4 !important; color: #71828d; font-size: calc(11px * var(--scale)); }
.schedule-row-check { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: calc(28px * var(--scale)); margin: 0; cursor: pointer; }
.schedule-row-check input { position: absolute; opacity: 0; pointer-events: none; }
.schedule-row-check span { width: calc(15px * var(--scale)); height: calc(15px * var(--scale)); border: 1px solid #aebcc5; border-radius: 3px; background: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45); }
.schedule-row-check input:checked + span { position: relative; border-color: #c89c24; background: #f2c94c; }
.schedule-row-check input:checked + span::after { content: ''; position: absolute; left: 50%; top: 45%; width: calc(4px * var(--scale)); height: calc(8px * var(--scale)); border: solid #5f4b12; border-width: 0 2px 2px 0; transform: translate(-50%, -50%) rotate(45deg); }
.schedule-row-check:focus-within span { outline: 2px solid rgba(61,111,134,.25); outline-offset: 1px; }
.schedule-page[data-view-mode="v4"] .sticky-project { left: calc(34px * var(--scale)); }
.schedule-page[data-view-mode="v4"] .sticky-object { left: calc(34px * var(--scale) + var(--project-column-width, calc(72px * var(--scale)))); }
.schedule-page[data-view-mode="v4"] .sticky-company { left: calc(34px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale)))); }
.schedule-page[data-view-mode="v4"] .sticky-manager { left: calc(34px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))) + var(--company-column-width, calc(88px * var(--scale)))); }
.schedule-page[data-view-mode="v4"] .sticky-name { left: calc(34px * var(--scale) + var(--project-column-width, calc(72px * var(--scale))) + var(--object-column-width, calc(120px * var(--scale))) + var(--company-column-width, calc(88px * var(--scale))) + var(--manager-column-width, calc(72px * var(--scale)))); }
.employee-row.schedule-row-marked > td,
.employee-row.schedule-row-marked > td.sticky-project,
.employee-row.schedule-row-marked > td.sticky-object,
.employee-row.schedule-row-marked > td.sticky-company,
.employee-row.schedule-row-marked > td.sticky-manager,
.employee-row.schedule-row-marked > td.sticky-name,
.employee-row.schedule-row-marked > td.schedule-row-check-cell { background-color: #fff8df !important; }
.employee-row.schedule-row-marked .v4-free-input { background-color: transparent !important; }


/* v1.0.216: fixed V4 column geometry; compact Project/Manager; aligned totals */
.schedule-page[data-view-mode="v4"] {
    --project-column-width: calc(46px * var(--scale));
    --object-column-width: calc(150px * var(--scale));
    --company-column-width: calc(92px * var(--scale));
    --manager-column-width: calc(50px * var(--scale));
}
.schedule-page[data-view-mode="v4"] .sticky-project,
.schedule-page[data-view-mode="v4"] .sticky-object,
.schedule-page[data-view-mode="v4"] .sticky-company,
.schedule-page[data-view-mode="v4"] .sticky-manager {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.schedule-page[data-view-mode="v4"] .sticky-project,
.schedule-page[data-view-mode="v4"] .sticky-manager {
    box-sizing: border-box;
}
.schedule-page[data-view-mode="v4"] .sticky-project > strong {
    width: 100%;
    max-width: 100%;
}
.schedule-page[data-view-mode="v4"] .schedule-table {
    table-layout: fixed;
}


/* v1.0.217: restore natural table column mapping; compact V4 identity columns */
.schedule-page[data-view-mode="v4"] {
    --project-column-width: 64px;
    --object-column-width: 132px;
    --company-column-width: 76px;
    --manager-column-width: 68px;
}
.schedule-page[data-view-mode="v4"] .schedule-table {
    table-layout: auto !important;
    width: max-content !important;
    min-width: max-content !important;
}
.schedule-page[data-view-mode="v4"] .sticky-project {
    width: var(--project-column-width) !important;
    min-width: var(--project-column-width) !important;
    max-width: var(--project-column-width) !important;
}
.schedule-page[data-view-mode="v4"] .sticky-object {
    width: var(--object-column-width) !important;
    min-width: var(--object-column-width) !important;
    max-width: var(--object-column-width) !important;
}
.schedule-page[data-view-mode="v4"] .sticky-company {
    width: var(--company-column-width) !important;
    min-width: var(--company-column-width) !important;
    max-width: var(--company-column-width) !important;
}
.schedule-page[data-view-mode="v4"] .sticky-manager {
    width: var(--manager-column-width) !important;
    min-width: var(--manager-column-width) !important;
    max-width: var(--manager-column-width) !important;
}
.schedule-page[data-view-mode="v4"] thead .sticky-project,
.schedule-page[data-view-mode="v4"] thead .sticky-manager {
    padding-left: 6px !important;
    padding-right: 14px !important;
}

/* System -> Settings: Portal only */
.system-settings-page{display:grid;gap:14px;padding:2px 0 28px}.settings-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.settings-page-head h1{margin:2px 0 4px;font-size:24px;color:#2f414b}.settings-page-head p{margin:0;color:var(--muted);font-size:11px}.system-settings-page .page-kicker{color:#71818b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.55px}.settings-card{border:1px solid var(--border);border-radius:10px;background:#fff;padding:15px}.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:12px;margin-bottom:13px;border-bottom:1px solid #edf1f3}.settings-card-head h2{margin:0 0 3px;color:#334954;font-size:14px}.settings-card-head p{margin:0;color:#85929a;font-size:9.5px}.settings-grid{display:grid;gap:12px}.settings-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-field{display:grid;gap:5px;align-content:start}.setting-field>span{color:#637680;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.25px}.setting-field input[type=text],.setting-field select{width:100%;min-height:34px;padding:6px 9px;border:1px solid #d6e0e6;border-radius:6px;background:#fff;color:#334954;font-size:11px}.setting-field small{color:#91a0a8;font-size:8.8px;line-height:1.35}.settings-save-bar{position:sticky;bottom:8px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 11px;border:1px solid #d7e1e6;border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(40,60,70,.08);backdrop-filter:blur(6px)}.settings-save-bar span{color:#7b8991;font-size:9px}@media(max-width:900px){.settings-grid.two{grid-template-columns:1fr}.settings-page-head{flex-direction:column}}

/* System Settings section navigation + Business Rules */
.system-settings-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border:1px solid var(--border);border-radius:10px;background:#f6f8f9}
.system-settings-tab{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 11px;border:1px solid transparent;border-radius:7px;color:#60717b;text-decoration:none;font-size:10px;font-weight:800;transition:.15s ease}
.system-settings-tab:hover{background:#fff;border-color:#dbe4e8;color:#334954}
.system-settings-tab.is-active{background:#fff;border-color:#cfdbe1;color:#263d48;box-shadow:0 1px 4px rgba(33,55,66,.07)}
.system-settings-tab span{padding:1px 5px;border-radius:999px;background:#edf1f3;color:#92a0a7;font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.25px}
.system-settings-tab.is-reserved:not(.is-active){opacity:.75}
.settings-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.setting-field input[type=number]{width:100%;min-height:34px;padding:6px 9px;border:1px solid #d6e0e6;border-radius:6px;background:#fff;color:#334954;font-size:11px}
.settings-safety-note{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #d9e6dd;border-radius:9px;background:#f6faf7;color:#526c5a}
.settings-safety-note strong{font-size:10px;white-space:nowrap}.settings-safety-note span{font-size:9px;line-height:1.4}
.setting-toggle-card{padding:9px;border:1px solid #e3eaed;border-radius:8px;background:#fafcfc}
.switch-line{display:flex;align-items:center;gap:8px;min-height:34px;color:#40545e;font-size:10px;font-weight:700;text-transform:none!important;letter-spacing:0!important}
.switch-line input{width:16px;height:16px;margin:0}
.business-rule-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.business-rule-summary-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.business-rule-summary{display:grid;align-content:start;gap:4px;min-height:86px;padding:10px;border:1px solid #e1e8eb;border-radius:8px;background:#fafcfc}
.business-rule-summary>span{color:#7d8d95;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.22px}
.business-rule-summary>strong{color:#314752;font-size:11px;line-height:1.3}.business-rule-summary>small{color:#8b99a0;font-size:8.5px;line-height:1.4}
.business-rule-summary-grid.compact .business-rule-summary{min-height:62px}
.settings-coming-soon>p{margin:0;color:#8a979e;font-size:10px}
@media(max-width:1150px){.settings-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.business-rule-summary-grid,.business-rule-summary-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.settings-grid.three,.business-rule-summary-grid,.business-rule-summary-grid.compact{grid-template-columns:1fr}.settings-safety-note{align-items:flex-start;flex-direction:column}.system-settings-tab{flex:1;justify-content:center}}

/* v1.0.221: Portal branding / regional / footer settings */
.setting-field input[type=email]{width:100%;min-height:34px;padding:6px 9px;border:1px solid #d6e0e6;border-radius:6px;background:#fff;color:#334954;font-size:11px}
.portal-settings-note{border-color:#d9e5ea;background:#f7fafb;color:#526975}
.portal-asset-field{padding:10px;border:1px solid #e3eaed;border-radius:8px;background:#fafcfc}
.portal-asset-row{display:flex;align-items:center;gap:10px;min-height:48px}
.portal-asset-preview{display:flex;align-items:center;justify-content:center;flex:0 0 96px;height:46px;padding:5px;border:1px dashed #d3dfe5;border-radius:7px;background:#fff;overflow:hidden}
.portal-asset-preview img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.portal-asset-preview.favicon-preview{flex-basis:52px;width:52px}.portal-asset-preview.favicon-preview img{width:28px;height:28px}
.portal-asset-preview em{color:#9aa7ae;font-size:8px;font-style:normal}
.portal-file-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border:1px solid #d5e0e5;border-radius:6px;background:#fff;color:#516670;font-size:9px;cursor:pointer;overflow:hidden}
.portal-file-button:hover{border-color:#bfcfd7;background:#f8fafb}.portal-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.portal-file-button b{font-weight:800}
.setting-check{display:flex;align-items:center;gap:6px;color:#73848d;font-size:8.5px}.setting-check input{margin:0}
.brand{display:inline-flex;align-items:center;gap:8px}.brand-logo{display:block;width:auto;height:28px;max-width:96px;object-fit:contain}
.portal-announcement{display:flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:9px 20px;border-bottom:1px solid #d8c46b;background:#fff7cf;color:#5e4b00;font-size:13px;line-height:1.35;box-shadow:0 1px 0 rgba(0,0,0,.03)}.portal-announcement>span{font-size:9px;color:#c49a00}.portal-announcement strong{font-weight:700}
.login-portal-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px auto -8px;color:#40545e;font-size:13px}.login-portal-brand img{max-width:130px;max-height:40px;object-fit:contain}.login-portal-brand strong{font-weight:800}
.portal-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 14px;min-height:34px;padding:8px 20px;border-top:1px solid #e5eaed;background:#fff;color:#87959c;font-size:8.5px}.portal-footer a{color:#637b87;text-decoration:none}.portal-footer a:hover{text-decoration:underline}
@media(max-width:700px){.portal-asset-row{align-items:flex-start;flex-direction:column}.portal-asset-preview{flex-basis:auto;width:100%}.portal-announcement{justify-content:flex-start}.brand-logo{max-width:72px}}

/* System Settings collapsible cards + employee form field policy */
.settings-collapsible{padding:0;overflow:hidden}
.settings-collapsible>.settings-card-head{margin:0;padding:13px 15px;border-bottom:0;cursor:pointer;list-style:none;user-select:none;align-items:center}
.settings-collapsible>.settings-card-head::-webkit-details-marker{display:none}
.settings-collapsible[open]>.settings-card-head{border-bottom:1px solid #edf1f3;margin-bottom:13px}
.settings-collapsible>.settings-card-head~*{margin-left:15px;margin-right:15px}
.settings-collapsible>.settings-card-head~*:last-child{margin-bottom:15px}
.settings-card-chevron{width:9px;height:9px;border-right:2px solid #8b99a1;border-bottom:2px solid #8b99a1;transform:rotate(45deg);transition:transform .15s ease;flex:0 0 auto;margin-right:3px}
.settings-collapsible[open] .settings-card-chevron{transform:rotate(225deg);margin-top:5px}
.field-policy-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:2px}
.field-policy-group{min-width:0}
.field-policy-group h3{margin:0 0 6px;color:#536670;font-size:10.5px}
.field-policy-table{border:1px solid #e2e8ec;border-radius:6px;overflow:hidden;background:#fff}
.field-policy-head,.field-policy-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;align-items:center;min-height:28px;padding:0 8px;gap:4px}
.field-policy-head{background:#f7f9fa;color:#72818a;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.28px}
.field-policy-head>span:nth-child(2),.field-policy-head>span:nth-child(3){text-align:center}
.field-policy-row{border-top:1px solid #edf1f3;color:#40535d;font-size:9.5px;line-height:1.2}
.field-policy-row>span:first-child{padding:2px 0}
.field-policy-check{display:flex;align-items:center;justify-content:center;margin:0;min-width:0;height:100%}
.field-policy-check .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.field-policy-check input{width:14px;height:14px;margin:0;accent-color:#2680eb}
.field-policy-na{text-align:center;color:#a5b0b6;font-size:11px;line-height:1}
@media(max-width:900px){.field-policy-groups{grid-template-columns:1fr}}

/* v1.0.247: compact clear controls for Work Schedule hierarchy cells */
.schedule-hierarchy-value{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-width:0}
.schedule-hierarchy-value>strong,.schedule-hierarchy-value>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-hierarchy-clear-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 14px;width:14px;height:14px;padding:0;border:0;border-radius:3px;background:transparent;color:#d74f4f;font-size:12px;font-weight:800;line-height:1;cursor:pointer;opacity:.65}
.schedule-hierarchy-clear-btn:hover{background:#fff0f0;color:#b92727;opacity:1}
.schedule-hierarchy-clear-btn:disabled{opacity:.3;cursor:wait}

/* v1.0.249: cell-local Work Schedule comments trigger */
.schedule-comment-anchor{display:none!important}
.schedule-info-cell{gap:0}
.schedule-cell-comment-btn{position:fixed;z-index:70;width:18px;height:18px;min-width:18px;padding:0;border:1px solid #bccbd3;border-radius:50%;background:#fff;color:#496675;box-shadow:0 1px 4px rgba(35,55,65,.18);display:inline-flex;align-items:center;justify-content:center;gap:1px;font-size:10px;line-height:1;cursor:pointer;transform:translateY(-50%)}
.schedule-cell-comment-btn[hidden]{display:none!important}
.schedule-cell-comment-btn:hover,.schedule-cell-comment-btn:focus-visible{border-color:#719bad;background:#f4f9fb;outline:none}
.schedule-cell-comment-btn.has-comments{width:auto;min-width:18px;padding:0 4px;border-radius:9px}
.schedule-cell-comment-btn.has-unread{border-color:#d59b00;background:#fff6cf;color:#7a5600;box-shadow:0 0 0 2px rgba(213,155,0,.12)}
.schedule-cell-comment-btn .schedule-comment-count{font-size:8px;font-weight:800;color:inherit}

/* v1.0.250: highlight the exact Work Schedule cell referenced by Comments */
.schedule-comment-row-preview-table td.schedule-comment-context-cell{background:#fff3b8!important;box-shadow:inset 0 0 0 2px #d8a900!important;position:relative;z-index:1}

.schedule-comment-cell-tag{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2;opacity:.75}

.schedule-comment-recipient{font-size:12px;font-weight:700;opacity:.72}

/* v1.0.260: Calendar V2 Trello-style status board. */
.calendar-page .tc-kanban-shell{min-width:0}
.calendar-page .tc-kanban-toolbar{margin-bottom:12px}
.calendar-page .tc-kanban-board{display:flex;flex-flow:row nowrap;gap:12px;align-items:flex-start;overflow-x:auto;padding:2px 2px 12px;scrollbar-gutter:stable}
.calendar-page .tc-kanban-column{flex:1 1 0;min-width:220px;max-width:none;border:1px solid var(--border,#d9dee3);border-radius:8px;background:#f7f9fa;overflow:hidden}
.calendar-page .tc-kanban-column-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:9px 10px;border-bottom:1px solid var(--border,#d9dee3);background:#eef3f5;color:#405764}
.calendar-page .tc-kanban-column-header strong{font-size:12px}
.calendar-page .tc-kanban-task-list{display:flex;flex-direction:column;gap:7px;min-height:140px;max-height:calc(100vh - 260px);overflow-y:auto;padding:9px}
.calendar-page .tc-kanban-task-list>.tc-task{width:100%;margin:0;flex:0 0 auto;background:#fff}
.calendar-page .tc-kanban-task-list>.tc-empty{padding:18px 8px;text-align:center;color:var(--muted,#6b7280);font-size:11px}
@media(max-width:1100px){.calendar-page .tc-kanban-column{flex:0 0 240px;max-width:none}}
@media(max-width:700px){.calendar-page .tc-kanban-toolbar{align-items:stretch}.calendar-page .tc-kanban-column{flex-basis:82vw;min-width:260px;max-width:82vw}.calendar-page .tc-kanban-task-list{max-height:none}}

/* Calendar V2: month navigator on the left, Trello board on the right. */
.calendar-page .tc-v2-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.calendar-page .tc-v2-calendar-pane{min-width:0;position:sticky;top:10px}
.calendar-page .tc-v2-board-pane{min-width:0;overflow:hidden}
.calendar-page .tc-mini-calendar{border:1px solid var(--border,#d9dee3);border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(31,49,61,.06);overflow:hidden}
.calendar-page .tc-mini-calendar-header{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:6px;padding:10px 9px;border-bottom:1px solid var(--border,#d9dee3);background:#f7f9fa;text-align:center}
.calendar-page .tc-mini-calendar-header strong{font-size:12px;color:#2f4652;letter-spacing:.01em}
.calendar-page .tc-mini-calendar-nav{display:grid;place-items:center;width:28px;height:28px;border:1px solid transparent;border-radius:7px;color:#496775;text-decoration:none;font-size:18px;line-height:1}
.calendar-page .tc-mini-calendar-nav:hover{border-color:var(--border,#d9dee3);background:#fff}
.calendar-page .tc-mini-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:8px 8px 2px;color:var(--muted,#6b7280);font-size:9px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.03em}
.calendar-page .tc-mini-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:6px 8px 9px}
.calendar-page .tc-mini-calendar-day{display:grid;place-items:center;aspect-ratio:1/1;min-width:0;border:1px solid transparent;border-radius:7px;color:#334b57;text-decoration:none;font-size:11px;font-weight:600;transition:background .12s ease,border-color .12s ease,color .12s ease}
.calendar-page .tc-mini-calendar-day:hover{background:#eef4f7;border-color:#dbe7ec}
.calendar-page .tc-mini-calendar-day.is-outside{color:#a9b4ba;font-weight:500}
.calendar-page .tc-mini-calendar-day.is-today{border-color:#8caab7;color:#2d647a}
.calendar-page .tc-mini-calendar-day.is-selected{background:#3e7187;border-color:#3e7187;color:#fff;box-shadow:0 1px 3px rgba(44,86,104,.22)}
.calendar-page .tc-mini-calendar-day.is-selected.is-today{color:#fff}
.calendar-page .tc-mini-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-top:1px solid var(--border,#d9dee3);background:#fbfcfd;color:var(--muted,#6b7280);font-size:9px}
.calendar-page .tc-mini-calendar-footer a{color:#3e7187;font-weight:700;text-decoration:none}
.calendar-page .tc-v2-board-pane .tc-kanban-board{width:100%;padding-top:0}
@media(max-width:980px){.calendar-page .tc-v2-workspace{grid-template-columns:1fr}.calendar-page .tc-v2-calendar-pane{position:static;max-width:360px}.calendar-page .tc-v2-board-pane{overflow:visible}}

/* v1.0.268: mobile responsive pass */
@media(max-width:720px){
    html,body{max-width:100%;overflow-x:hidden}
    body{font-size:13px}

    /* Shell + top navigation */
    .topbar{height:auto;min-height:54px;padding:0 8px;align-items:center;gap:4px}
    .brand{min-width:0;max-width:42vw;padding-right:4px;font-size:15px;overflow:hidden}
    .brand span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .brand-logo{max-height:30px;max-width:120px;object-fit:contain}
    .menu-toggle{flex:0 0 40px;width:40px;height:40px;margin-left:auto;padding:0;font-size:22px}
    .account-menu{min-width:0;margin-left:0}
    .account-menu>.menu-button{max-width:120px;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .topbar-comment-alert{min-width:34px;height:34px;margin-right:0}
    .topbar-comment-preview{position:fixed;top:58px;left:6px;right:6px;width:auto;max-height:calc(100vh - 68px)}
    .topbar-comment-preview-list{max-height:calc(100vh - 130px)}
    .topbar-comment-preview-head{gap:8px}
    .topbar-comment-preview-head time{white-space:normal;text-align:right}

    .main-menu{max-height:calc(100vh - 54px);overflow-y:auto;overscroll-behavior:contain;padding:4px 0 10px;box-shadow:0 10px 22px rgba(0,0,0,.18)}
    .main-menu .menu-dropdown{width:100%}
    .main-menu .menu-link{width:100%;min-height:46px;padding:0 14px;justify-content:space-between;text-align:left}
    .main-menu .dropdown-panel{position:static;width:100%;min-width:0;border:0;border-radius:0;box-shadow:none;background:#263e4b}
    .main-menu .dropdown-panel a{padding:11px 20px;color:#edf4f7;border-top:1px solid rgba(255,255,255,.06)}
    .main-menu .dropdown-panel a:hover,.main-menu .dropdown-panel a.active{background:rgba(255,255,255,.08);color:#fff}
    .account-menu .dropdown-panel{position:fixed;top:54px;right:6px;left:auto;min-width:170px;max-width:calc(100vw - 12px);border-radius:0 0 8px 8px}

    /* Generic page structure */
    .page-shell{padding:10px 8px 22px}
    .page-header{align-items:stretch;flex-direction:column;gap:9px;margin-bottom:10px;padding-bottom:8px}
    .page-header h1{font-size:20px}
    .page-header p{font-size:11px;line-height:1.4}
    .panel{padding:12px;border-radius:7px}
    .table-panel{padding:0}
    .narrow-panel,.form-panel,.project-form-panel,.object-form-panel{width:100%;max-width:none}
    .form-grid.two-columns,.settings-grid.two{grid-template-columns:1fr}
    .form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
    .form-actions .btn{width:100%;min-height:40px}
    .btn{min-height:38px}
    .btn-small{min-height:34px}
    input,select,textarea{font-size:16px}
    textarea{min-height:100px}
    .alert{padding:10px 11px;font-size:12px}
    .empty-table-cell{padding:20px 12px!important}

    /* Generic tables: keep full data, allow touch horizontal scroll */
    .table-panel,.table-wrap,.employee-directory-wrap,.history-table-wrap,.tc-history-table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
    .employee-directory-wrap{max-width:100%;overflow:auto;max-height:none}
    .employee-directory-table{min-width:900px}
    .data-table th,.data-table td{padding:8px 9px}
    .actions-col{width:auto}
    .row-actions{white-space:nowrap}

    /* Lists and directory filters */
    .object-quick-filter,.project-quick-filter,.employee-list-toolbar{grid-template-columns:1fr!important;align-items:stretch!important;gap:8px}
    .object-filter-clear,.directory-filter-reset{grid-column:auto!important;justify-self:stretch!important;width:100%}
    .project-filter-result{min-width:0;text-align:left!important}
    .project-import-form{grid-template-columns:1fr;gap:9px}
    .role-employee-grid{grid-template-columns:1fr}
    .employee-choice{grid-template-columns:22px minmax(0,1fr);gap:8px}
    .employee-choice-meta{grid-column:2;justify-self:start;white-space:normal}

    /* Work Schedule */
    .schedule-page{min-width:0}
    .schedule-titlebar,.schedule-title-actions,.schedule-filter-row,.schedule-filter-row .period-form{max-width:100%}
    .schedule-titlebar{align-items:stretch;flex-direction:column;gap:8px}
    .schedule-title-actions{width:100%;flex-wrap:wrap}
    .schedule-filter-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:end!important}
    .schedule-filter-row>*,.schedule-filter-row .period-form,.schedule-filter-row .period-form>*{min-width:0!important;width:100%!important}
    .schedule-filter-row .save-schedule-btn{width:100%;min-width:0}
    .schedule-table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 210px);border-radius:5px}
    .schedule-table{font-size:calc(10px * var(--scale))}
    .sticky-code{min-width:calc(52px * var(--scale))!important;max-width:calc(52px * var(--scale));left:0}
    .sticky-name{left:calc(52px * var(--scale));min-width:calc(145px * var(--scale))!important;max-width:calc(145px * var(--scale))}
    .schedule-cell-comment-btn{width:22px;height:22px;min-width:22px}
    .schedule-add-dialog{width:calc(100vw - 12px)}
    .schedule-add-fields{grid-template-columns:1fr}

    /* Employees / forms */
    .employee-card-header{max-width:none}
    .employee-card-form{max-width:none;gap:10px}
    .employee-card-form .form-grid.two-columns{grid-template-columns:1fr}
    .contract-summary-head,.employee-quick-card-header{align-items:flex-start;flex-direction:column;gap:7px}
    .manager-chip span{min-height:36px}
    .danger-zone{max-width:none;justify-content:stretch}
    .danger-zone .btn{width:100%}

    /* Settings / users */
    .settings-page-head{align-items:stretch;flex-direction:column;gap:8px}
    .settings-card{padding:11px}
    .settings-card-head{gap:8px}
    .settings-collapsible>.settings-card-head{padding:12px 11px}
    .settings-collapsible>.settings-card-head~*{margin-left:11px;margin-right:11px}
    .settings-save-bar{bottom:4px;align-items:stretch;flex-direction:column;padding:8px}
    .settings-save-bar .btn{width:100%}
    .field-policy-head,.field-policy-row{grid-template-columns:minmax(0,1fr) 52px 52px;padding:0 6px}
    .role-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}

    /* Reports classic + Reports V2 */
    .reports-head{align-items:stretch!important;flex-direction:column!important;gap:10px!important}
    .reports-head-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}
    .reports-grid,.reports-layout{grid-template-columns:1fr!important;gap:10px}
    .reports-sidebar{position:static!important;display:block!important;padding:10px}
    .report-range-bar{align-items:stretch;flex-direction:column}
    .report-range-bar>div,.report-range-bar label,.report-compare-range{width:100%}
    .report-compare-range{display:grid;grid-template-columns:1fr 1fr}
    .report-fields,.report-config-grid,.report-filter-grid{grid-template-columns:1fr!important}
    .report-result-card,.report-builder-block{padding:10px}
    .report-result-head{align-items:flex-start;flex-direction:column}
    .report-chart-row{grid-template-columns:90px minmax(110px,1fr) 70px}
    .report-pie-layout{grid-template-columns:1fr;justify-items:center}
    .report-table{min-width:680px}

    .reports-v2-neo .rv2-main{padding-left:6px!important;padding-right:6px!important}
    .reports-v2-neo .rv2-header{padding:10px 0!important}
    .reports-v2-neo .rv2-actions{display:flex!important;flex-wrap:wrap!important;width:100%;gap:6px}
    .reports-v2-neo .rv2-btn{width:auto!important;min-width:38px}
    .reports-v2-neo .rv2-report-name-line{align-items:stretch;flex-direction:column}
    .reports-v2-neo .rv2-report-name-line input{width:100%!important}
    .reports-v2-neo .rv2-date-grid,.reports-v2-neo .rv2-options-grid,.reports-v2-neo .rv2-compare-fields,.reports-v2-neo .rv2-filter-grid{grid-template-columns:1fr!important}
    .reports-v2-neo .rv2-card,.reports-v2-neo .rv2-table-card{border-radius:7px}
    .reports-v2-neo .rv2-table-card .table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}

    /* Calendar V1/V2 */
    .calendar-page .calendar-page-header{align-items:stretch!important;flex-direction:column;gap:8px}
    .calendar-page .tc-toolbar{align-items:stretch;gap:7px}
    .calendar-page .tc-toolbar-title{width:100%}
    .calendar-page .tc-toolbar-actions{width:100%;margin-left:0;display:flex;flex-wrap:wrap;gap:6px}
    .calendar-page .tc-toolbar-actions .btn{flex:1 1 auto}
    .calendar-page .tc-calendar-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
    .calendar-page .tc-calendar{min-width:680px}
    .calendar-page .tc-v2-workspace{grid-template-columns:1fr;gap:10px}
    .calendar-page .tc-v2-calendar-pane{max-width:none;width:100%;position:static}
    .calendar-page .tc-mini-calendar{width:100%}
    .calendar-page .tc-mini-calendar-day{min-height:36px;aspect-ratio:auto}
    .calendar-page .tc-v2-board-pane{max-width:100%;overflow:hidden}
    .calendar-page .tc-kanban-board{gap:9px;padding-bottom:8px;scroll-snap-type:x proximity}
    .calendar-page .tc-kanban-column{flex:0 0 88vw;min-width:280px;max-width:88vw;scroll-snap-align:start}
    .calendar-page .tc-kanban-task-list{max-height:none}
    .calendar-page .tc-task{font-size:11px}

    /* Comments */
    .comments-page-header{align-items:stretch;flex-direction:column;gap:8px}
    .comments-page .schedule-comment-row-preview{overflow:auto;-webkit-overflow-scrolling:touch}

    /* Modals */
    .modal-backdrop,.tc-modal-backdrop{padding:6px!important}
    .modal-dialog,.tc-modal{width:calc(100vw - 12px)!important;max-width:none!important;max-height:calc(100vh - 12px)!important;border-radius:7px}
    .modal-header,.modal-footer,.tc-modal-header,.tc-modal-footer{padding:10px}
    .modal-body,.tc-modal-body{padding:10px}
    .modal-footer,.tc-modal-footer{gap:7px;flex-wrap:wrap}
    .modal-footer .btn,.tc-modal-footer .btn{flex:1 1 auto;min-height:40px}
    .tc-create-task-modal{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important}

    /* Toasts */
    .toast-container{top:62px;width:calc(100vw - 12px)}
}

@media(max-width:420px){
    .brand{max-width:34vw;font-size:14px}
    .account-menu>.menu-button{max-width:96px;font-size:12px}
    .schedule-filter-row{grid-template-columns:1fr!important}
    .reports-head-actions,.form-actions,.role-form-actions{grid-template-columns:1fr}
    .report-compare-range{grid-template-columns:1fr}
    .calendar-page .tc-kanban-column{flex-basis:92vw;min-width:270px;max-width:92vw}
}

/* v1.0.269: mobile Work Schedule day-first layout */
@media(max-width:720px){
    .schedule-page .schedule-table-wrap{
        scroll-padding-left:116px;
        overscroll-behavior-x:contain;
    }

    /* On phones only the employee column stays pinned. Project/Object/Company/
       Manager remain available by swiping left, but they no longer consume the
       whole viewport while hours are being entered. */
    .schedule-page .sticky-project,.schedule-page .sticky-object,.schedule-page .sticky-company,.schedule-page .sticky-manager,.schedule-page .schedule-row-check-cell{
        position:static!important;
        left:auto!important;
        z-index:auto!important;
    }
    .schedule-page thead .sticky-project,.schedule-page thead .sticky-object,.schedule-page thead .sticky-company,.schedule-page thead .sticky-manager,.schedule-page thead .schedule-row-check-head{
        position:sticky!important;
        top:0!important;
        left:auto!important;
        z-index:8!important;
    }
    .schedule-page .sticky-name{
        position:sticky!important;
        left:0!important;
        width:110px!important;
        min-width:110px!important;
        max-width:110px!important;
        padding:0 6px!important;
        box-shadow:2px 0 5px rgba(37,55,67,.10);
    }
    .schedule-page thead .sticky-name{z-index:13!important}
    .schedule-page tbody .sticky-name{z-index:9!important}
    .schedule-page tfoot .sticky-name{z-index:11!important}
    .schedule-page .schedule-employee-cell-content{gap:3px}
    .schedule-page .employee-name-button,.schedule-page .employee-name-label{
        font-size:11px;
        font-weight:700;
    }
    .schedule-page .schedule-remove-member-btn{
        width:18px;
        height:18px;
        min-width:18px;
        min-height:18px;
        font-size:14px;
    }

    /* Day columns are intentionally larger than desktop cells: one cell must
       be a reliable touch target for entering hours. */
    .schedule-page .day-head,.schedule-page .schedule-cell,.schedule-page .total-day{width:44px!important;min-width:44px!important;max-width:44px!important}
    .schedule-page .schedule-cell span{min-width:44px!important;line-height:32px}
    .schedule-page .schedule-cell input{
        width:44px!important;
        height:34px!important;
        min-height:34px!important;
        font-size:16px!important;
        border-width:2px;
    }
    .schedule-page .day-head span{font-size:12px;line-height:1.05}
    .schedule-page .day-head small{font-size:8px;line-height:1.1}
    .schedule-page .schedule-table th,.schedule-page .schedule-table td{height:34px}
    .schedule-page .month-header{height:34px}
    .schedule-page .schedule-table thead tr:nth-child(2) th{top:34px}
    .schedule-page .summary-column{min-width:48px!important}
}

/* v1.0.270: mobile Work Schedule filters fully visible */
@media(max-width:720px){
    .schedule-page:not(.controls-collapsed) .schedule-controls{max-height:none!important;overflow:visible!important}
    .schedule-page.controls-collapsed .schedule-controls{max-height:0!important;overflow:hidden!important}
    .schedule-page .schedule-filter-row label input,.schedule-page .schedule-filter-row label select{width:100%!important;max-width:100%!important;box-sizing:border-box}
    .schedule-page .schedule-filter-row .period-form{grid-template-columns:minmax(0,1fr) auto!important}
    .schedule-page .schedule-filter-row .period-form .btn{width:auto!important;min-width:72px}
}
@media(max-width:420px){
    .schedule-page .schedule-filter-row .period-form{grid-template-columns:1fr!important}
    .schedule-page .schedule-filter-row .period-form .btn{width:100%!important}
}


/* v1.0.271: mobile Work Schedule hardening */
.mobile-filters-done{display:none}
@media(max-width:720px){
    html,body{min-height:100dvh}
    .schedule-page .schedule-table-wrap{
        max-height:calc(100dvh - 132px);
        -webkit-overflow-scrolling:touch;
        scrollbar-gutter:stable both-edges;
    }
    .schedule-page .schedule-table-wrap.mobile-scroll-hint{
        box-shadow:inset -22px 0 18px -20px rgba(30,55,70,.72);
    }
    .schedule-page .summary-column{min-width:64px!important;max-width:none!important;padding-left:5px!important;padding-right:5px!important;white-space:nowrap}
    .schedule-page .v4-info-column{min-width:82px!important}
    .schedule-page .schedule-cell-comment-btn,
    .schedule-page .schedule-comment-anchor,
    .schedule-page .schedule-remove-member-btn,
    .schedule-page .icon-btn{
        min-width:36px!important;
        min-height:36px!important;
        touch-action:manipulation;
    }
    .schedule-page .schedule-cell-comment-btn{width:36px!important;height:36px!important;border-radius:18px}
    .schedule-page .schedule-comment-anchor{width:36px;height:36px}
    .schedule-page .schedule-remove-member-btn{width:36px!important;height:36px!important;font-size:16px!important}
    .schedule-page:not(.controls-collapsed) .mobile-filters-done{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:100%;
        min-height:40px;
        margin-top:2px;
        grid-column:1/-1;
    }
    .schedule-page:not(.controls-collapsed) .schedule-table-wrap{max-height:calc(100dvh - 220px)}
    .modal-dialog,.tc-modal{max-height:calc(100dvh - 12px)!important}
    .tc-create-task-modal{max-height:calc(100dvh - 12px)!important}
    .modal-body,.tc-modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
    .schedule-comments-modal .modal-dialog{max-height:calc(100dvh - 12px)!important}
    .schedule-comments-modal .modal-body{overflow:auto!important;max-height:calc(100dvh - 112px)}
    .schedule-comments-modal .schedule-comment-row-identity,
    .schedule-comments-modal .schedule-comment-row-summary{grid-template-columns:1fr 1fr!important}
    .schedule-comments-modal .schedule-comment-row-preview{overflow:auto;-webkit-overflow-scrolling:touch}
    .toast-container{top:auto!important;bottom:10px!important}
}
@media(max-width:420px){
    .schedule-comments-modal .schedule-comment-row-identity,
    .schedule-comments-modal .schedule-comment-row-summary{grid-template-columns:1fr!important}
}


/* v1.0.272: mobile modal scroll containment */
body.portal-modal-open{position:fixed!important;overflow:hidden!important;width:100%;left:0;right:0}
.modal,.tc-modal-backdrop{overscroll-behavior:contain}
.modal-dialog,.tc-modal{min-height:0}
.modal-dialog>form,.tc-modal>form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden}
.modal-body,.tc-modal-body{flex:1 1 auto;min-height:0;overflow:auto}
@media(max-width:720px){
    .modal,.tc-modal-backdrop{align-items:flex-start!important;overflow:hidden!important}
    .modal-dialog,.tc-modal{height:auto;max-height:calc(100dvh - 12px)!important}
    .modal-dialog>form,.tc-modal>form{max-height:100%;min-height:0}
    .modal-body,.tc-modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
    .tc-create-task-modal .tc-create-card-body{overflow-y:auto!important;overflow-x:hidden!important}
}

/* v1.0.273: mobile Calendar New task polish */
@media(max-width:720px){
    .calendar-page .tc-create-task-modal{
        width:calc(100vw - 10px)!important;
        max-height:calc(100dvh - 10px)!important;
        border-radius:10px!important;
    }
    .calendar-page .tc-create-task-modal .tc-create-task-header{
        padding:10px 11px!important;
        gap:8px;
        flex:0 0 auto;
    }
    .calendar-page .tc-create-task-modal .tc-create-task-heading{gap:8px;align-items:center}
    .calendar-page .tc-create-task-modal .tc-create-task-heading h2{font-size:18px!important;line-height:1.15;margin:0}
    .calendar-page .tc-create-task-modal .tc-create-task-heading p{display:none!important}
    .calendar-page .tc-create-task-modal .tc-create-task-icon{width:30px;height:30px;border-radius:8px}
    .calendar-page .tc-create-task-modal .tc-modal-close{
        width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
        display:grid;place-items:center;margin-left:auto!important;padding:0!important;border-radius:20px;
    }
    .calendar-page .tc-create-task-modal .tc-create-card-body{padding:10px!important;gap:10px!important;background:#f3f5f6}
    .calendar-page .tc-create-task-modal .tc-create-main,
    .calendar-page .tc-create-task-modal .tc-create-sidebar{display:flex!important;flex-direction:column!important;gap:10px!important;min-width:0}
    .calendar-page .tc-create-task-modal .tc-create-block,
    .calendar-page .tc-create-task-modal .tc-create-side-card{
        margin:0!important;padding:11px!important;border-radius:10px!important;box-shadow:0 1px 2px rgba(18,38,63,.05);
    }
    .calendar-page .tc-create-task-modal .tc-create-description-block{order:-2}
    .calendar-page .tc-create-task-modal .tc-create-state-block{order:-1}
    .calendar-page .tc-create-task-modal .tc-create-label,
    .calendar-page .tc-create-task-modal label{font-size:12px!important;line-height:1.25}
    .calendar-page .tc-create-task-modal .tc-create-title-input{
        min-height:92px!important;font-size:16px!important;line-height:1.35!important;padding:11px!important;border-radius:8px!important;
    }
    .calendar-page .tc-create-task-modal .tc-create-state-row{grid-template-columns:1fr 1fr!important;gap:8px!important}
    .calendar-page .tc-create-task-modal .tc-create-grid{grid-template-columns:1fr!important;gap:9px!important}
    .calendar-page .tc-create-task-modal .tc-grid-span-2{grid-column:auto!important}
    .calendar-page .tc-create-task-modal .tc-create-date-row{grid-template-columns:1fr 1fr!important;gap:8px!important;margin:8px 0!important}
    .calendar-page .tc-create-task-modal input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .calendar-page .tc-create-task-modal select,
    .calendar-page .tc-create-task-modal textarea{
        width:100%!important;max-width:100%!important;box-sizing:border-box!important;font-size:16px!important;
    }
    .calendar-page .tc-create-task-modal input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .calendar-page .tc-create-task-modal select{height:44px!important;min-height:44px!important;padding-top:7px!important;padding-bottom:7px!important}
    .calendar-page .tc-create-task-modal .tc-search-select{margin-top:5px!important}
    .calendar-page .tc-create-task-modal .tc-search-select-input{height:44px!important;min-height:44px!important;font-size:16px!important;padding:8px 34px 8px 10px!important}
    .calendar-page .tc-create-task-modal .tc-search-select:after{top:12px!important;right:11px!important}
    .calendar-page .tc-create-task-modal .tc-search-select-menu{max-height:42dvh!important;border-radius:9px!important;padding:5px!important}
    .calendar-page .tc-create-task-modal .tc-search-select-option{min-height:42px;padding:10px!important;font-size:14px!important;display:flex;align-items:center}
    .calendar-page .tc-create-task-modal .tc-create-side-title,
    .calendar-page .tc-create-task-modal .tc-create-block-title{font-size:12px!important;margin-bottom:8px!important}
    .calendar-page .tc-create-task-modal .tc-create-executors{margin-top:8px!important}
    .calendar-page .tc-create-task-modal .tc-create-executors-head{min-height:40px;margin-bottom:6px!important}
    .calendar-page .tc-create-task-modal .tc-executor-add,
    .calendar-page .tc-create-task-modal .tc-executor-remove{
        width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;touch-action:manipulation;
    }
    .calendar-page .tc-create-task-modal .tc-selected-executor-list{display:flex;flex-direction:column;gap:6px}
    .calendar-page .tc-create-task-modal .tc-selected-executor-row{grid-template-columns:minmax(0,1fr) 40px!important;gap:7px!important;padding:6px 7px!important;min-height:50px}
    .calendar-page .tc-create-task-modal .tc-selected-executor-row input[type=number]{width:74px!important;height:40px!important;font-size:16px!important;padding:6px!important}
    .calendar-page .tc-create-task-modal .tc-selected-executor-name{font-size:13px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
    .calendar-page .tc-create-task-modal .tc-executor-picker{margin-top:7px!important;border-radius:9px!important}
    .calendar-page .tc-create-task-modal .tc-executor-picker input[type=search]{height:44px!important;font-size:16px!important;padding:8px 10px!important}
    .calendar-page .tc-create-task-modal .tc-executor-picker-options{max-height:38dvh;overflow:auto;-webkit-overflow-scrolling:touch}
    .calendar-page .tc-create-task-modal .tc-create-file-drop{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;padding:11px!important;text-align:left}
    .calendar-page .tc-create-task-modal .tc-create-file-drop input[type=file]{width:100%!important;max-width:100%!important;font-size:13px!important}
    .calendar-page .tc-create-task-modal .tc-create-file-drop>span{font-size:13px!important}
    .calendar-page .tc-create-task-modal .tc-create-file-drop>small{font-size:11px!important;line-height:1.35}
    .calendar-page .tc-create-task-modal .tc-planning-reminders{gap:8px!important;margin-top:10px!important}
    .calendar-page .tc-create-task-modal .tc-planning-reminders select{height:44px!important;font-size:16px!important}
    .calendar-page .tc-create-task-modal .tc-conflict-warning{font-size:12px!important;line-height:1.35!important;border-radius:8px!important}
    .calendar-page .tc-create-task-modal .tc-create-task-footer{position:sticky!important;bottom:0;z-index:5;padding:9px 10px!important;gap:8px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -5px 15px rgba(31,49,61,.08)}
    .calendar-page .tc-create-task-modal .tc-create-task-footer .btn{flex:1 1 0!important;min-width:0!important;min-height:44px!important;font-size:14px!important}
}
@media(max-width:430px){
    .calendar-page .tc-create-task-modal .tc-create-state-row,
    .calendar-page .tc-create-task-modal .tc-create-date-row{grid-template-columns:1fr!important}
    .calendar-page .tc-create-task-modal .tc-selected-executor-row{grid-template-columns:minmax(0,1fr) 40px!important}
    .calendar-page .tc-create-task-modal .tc-selected-executor-row input[type=number]{width:68px!important}
}

/* v1.0.274: compact Planning and safe task modal */
@media(max-width:720px){
    .calendar-page .tc-create-task-modal .tc-create-side-card{overflow:hidden!important}
    .calendar-page .tc-create-task-modal .tc-create-side-title,
    .calendar-page .tc-create-task-modal .tc-create-block-title{
        font-size:12px!important;line-height:1.2!important;letter-spacing:.01em!important;color:#344955!important
    }
    .calendar-page .tc-create-task-modal label{font-size:11.5px!important;line-height:1.25!important;color:#53636d!important;font-weight:650!important;min-width:0}
    .calendar-page .tc-create-task-modal .tc-create-label{font-size:11.5px!important;line-height:1.25!important;color:#53636d!important;font-weight:700!important}
    .calendar-page .tc-create-task-modal .tc-create-block-title small,
    .calendar-page .tc-create-task-modal .tc-create-file-drop>small,
    .calendar-page .tc-create-task-modal .tc-create-footer-note{font-size:10.5px!important;line-height:1.3!important}
    .calendar-page .tc-create-task-modal .tc-create-date-row{
        display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(96px,.85fr)!important;gap:8px!important;align-items:end!important;width:100%!important;min-width:0!important
    }
    .calendar-page .tc-create-task-modal .tc-create-date-row>label{min-width:0!important;width:100%!important;overflow:hidden!important}
    .calendar-page .tc-create-task-modal input[type=date]{min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;padding-left:9px!important;padding-right:7px!important}
    .calendar-page .tc-create-task-modal .tc-create-date-row select{min-width:0!important;width:100%!important;max-width:100%!important}
    .calendar-page .tc-create-task-modal .tc-planning-reminders label{font-size:11px!important;font-weight:600!important}
    .calendar-page .tc-create-task-modal .tc-planning-subtitle{font-size:10.5px!important;line-height:1.2!important}
    .calendar-page .tc-create-task-modal input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .calendar-page .tc-create-task-modal select,
    .calendar-page .tc-create-task-modal textarea{line-height:1.2!important}
}
@media(max-width:340px){
    .calendar-page .tc-create-task-modal .tc-create-date-row{grid-template-columns:1fr!important}
}

/* v1.0.275: clean mobile New task controls */
@media(max-width:720px){
    .calendar-page .tc-create-task-modal .tc-create-date-row{
        grid-template-columns:1fr!important;
        gap:9px!important;
        margin:8px 0 9px!important;
    }
    .calendar-page .tc-create-task-modal .tc-create-date-row>label{
        overflow:visible!important;
    }
    .calendar-page .tc-create-task-modal input[type=date],
    .calendar-page .tc-create-task-modal select{
        height:40px!important;
        min-height:40px!important;
        font-size:14px!important;
        line-height:1.2!important;
        padding-top:6px!important;
        padding-bottom:6px!important;
    }
    .calendar-page .tc-create-task-modal input[type=date]{
        text-align:left!important;
        padding-left:10px!important;
        padding-right:10px!important;
    }
    .calendar-page .tc-create-task-modal .tc-search-select-input{
        height:40px!important;
        min-height:40px!important;
        font-size:14px!important;
        line-height:1.2!important;
        padding:7px 32px 7px 10px!important;
    }
    .calendar-page .tc-create-task-modal .tc-search-select:after{
        top:10px!important;
    }
    .calendar-page .tc-create-task-modal .tc-search-select-option{
        min-height:38px!important;
        padding:8px 9px!important;
        font-size:13.5px!important;
        line-height:1.25!important;
    }
    .calendar-page .tc-create-task-modal .tc-planning-reminders select{
        height:40px!important;
        min-height:40px!important;
        font-size:14px!important;
    }
    .calendar-page .tc-create-task-modal .tc-create-state-row select{
        font-size:14px!important;
    }
}


/* v1.0.276: dedicated mobile task date control */
@media(max-width:720px){
    .calendar-page .tc-create-task-modal .tc-task-date-field{
        display:block!important;
        width:100%!important;
        min-width:0!important;
        overflow:visible!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-field-label{
        display:block!important;
        margin:0 0 5px!important;
        font-size:11.5px!important;
        line-height:1.2!important;
        font-weight:650!important;
        color:#53636d!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-date-input{
        display:block!important;
        inline-size:100%!important;
        width:100%!important;
        min-inline-size:0!important;
        min-width:0!important;
        max-inline-size:100%!important;
        max-width:100%!important;
        height:40px!important;
        min-height:40px!important;
        margin:0!important;
        padding:0 10px!important;
        box-sizing:border-box!important;
        border:1px solid #b8c8d2!important;
        border-radius:7px!important;
        background:#fff!important;
        color:#263847!important;
        font-size:14px!important;
        line-height:38px!important;
        font-family:inherit!important;
        font-weight:500!important;
        text-align:left!important;
        -webkit-text-align-last:left!important;
        text-align-last:left!important;
        -webkit-appearance:none!important;
        appearance:none!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-date-input::-webkit-date-and-time-value{
        display:block!important;
        min-width:0!important;
        width:auto!important;
        margin:0!important;
        padding:0!important;
        text-align:left!important;
        line-height:38px!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-date-input::-webkit-datetime-edit{
        display:flex!important;
        align-items:center!important;
        min-width:0!important;
        height:38px!important;
        padding:0!important;
        text-align:left!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-date-input::-webkit-datetime-edit-fields-wrapper{
        padding:0!important;
    }
    .calendar-page .tc-create-task-modal .tc-task-date-input::-webkit-calendar-picker-indicator{
        margin:0 0 0 auto!important;
        padding:6px 2px 6px 8px!important;
        opacity:.72!important;
    }
}

/* Work Schedule period approval */
.schedule-period-status-event.is-pending { border-color:#d8a846; background:#fff8e8; }
.schedule-period-approve-btn { border:1px solid #68a17d; background:#edf8f1; color:#245d39; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:700; cursor:pointer; }
.schedule-period-approve-btn:hover { background:#dff1e6; }
.schedule-period-approve-btn:disabled { opacity:.6; cursor:wait; }
.schedule-period-return-btn { border:1px solid #d7a84f; background:#fff8e8; color:#7a5415; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:700; cursor:pointer; }
.schedule-period-return-btn:hover { background:#fff0c9; }
.schedule-period-return-btn:disabled { opacity:.6; cursor:wait; }

/* v1.0.280 Calendar work type settings */
.settings-work-types{display:grid;gap:4px}.settings-work-type-row{display:grid;grid-template-columns:58px minmax(190px,1fr) 52px 64px 76px 130px;gap:6px;align-items:center;min-height:30px}.settings-work-type-row input[type="text"],.settings-work-type-row input[type="number"]{width:100%;min-height:30px;height:30px;padding-top:4px;padding-bottom:4px}.settings-work-type-head{font-size:11px;font-weight:700;color:#66737b;padding:0 2px;min-height:24px}.settings-work-type-check{justify-content:center;gap:0}.settings-work-type-check input[type="checkbox"]{width:16px!important;height:16px!important;min-width:16px;min-height:16px!important;margin:0!important;padding:0!important;flex:0 0 16px}.settings-work-type-add{display:grid;grid-template-columns:minmax(220px,1fr) 120px;gap:8px;padding-top:10px;border-top:1px solid #e7ebee}.settings-work-type-row code{font-size:11px;color:#5f6b73;overflow-wrap:anywhere}@media(max-width:720px){.settings-work-type-head{display:none}.settings-work-type-row{grid-template-columns:58px minmax(0,1fr) 36px 36px 36px;padding:7px 8px;border:1px solid #e7ebee;border-radius:8px;gap:5px}.settings-work-type-row code{grid-column:2/-1}.settings-work-type-check{grid-column:auto!important}.settings-work-type-add{grid-template-columns:1fr}}

/* Calendar task work timer */
.calendar-page .tc-work-timer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid #d5dee5;border-radius:9px;background:#f7f9fa}
.calendar-page .tc-work-timer.is-running{border-color:#9ab7a3;background:#f2f8f3}
.calendar-page .tc-work-timer-info{display:grid;gap:2px}.calendar-page .tc-work-timer-info>span{font-size:11px;color:#71818d;text-transform:uppercase;letter-spacing:.03em}.calendar-page .tc-work-timer-info>strong{font-size:20px;line-height:1.1;color:#294252}.calendar-page .tc-work-timer-info>small{font-size:12px;color:#71818d}
.calendar-page .tc-work-timer-actions{display:flex;gap:8px;flex-wrap:wrap}.calendar-page .tc-work-timer-actions .btn{text-transform:uppercase;font-weight:700;min-width:84px}
@media (max-width:720px){.calendar-page .tc-work-timer{align-items:stretch;flex-direction:column}.calendar-page .tc-work-timer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-page .tc-work-timer-actions .btn:only-child{grid-column:1/-1}.calendar-page .tc-work-timer-actions .btn{min-height:44px;width:100%}}

/* v1.0.284: mobile schedule long-press edit without native Copy/Paste callout */
@media(max-width:720px){
    .schedule-page .schedule-cell{
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        user-select: none;
    }
    .schedule-page .schedule-cell > span{
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        user-select: none;
    }
    .schedule-page .schedule-cell input{
        -webkit-user-select: text;
        user-select: text;
        -webkit-touch-callout: default;
    }
}


/* v1.0.294 Calendar live sync */
.calendar-page .tc-live-indicator{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#66747d;white-space:nowrap}
.calendar-page .tc-live-indicator.is-live{color:#2f7a4d}.calendar-page .tc-live-indicator.is-reconnecting{color:#9a6a1b}
.calendar-page .tc-task-live{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-left:7px;border-left:3px solid #aeb8bf;font-size:10px;line-height:1.3}
.calendar-page .tc-task-live-state{font-weight:750;color:#66747d}.calendar-page .tc-task-live-time{font-variant-numeric:tabular-nums;font-weight:800;color:#445761}
.calendar-page .tc-task-live.tc-track-running{border-left-color:#5b8fbe}.calendar-page .tc-task-live.tc-track-running .tc-task-live-state{color:#376c9a}
.calendar-page .tc-task-live.tc-track-paused{border-left-color:#d0a03d}.calendar-page .tc-task-live.tc-track-paused .tc-task-live-state{color:#8b671f}
.calendar-page .tc-task-live.tc-track-completed{border-left-color:#61a174}.calendar-page .tc-task-live.tc-track-completed .tc-task-live-state{color:#397a4c}
.calendar-page .tc-task-live.tc-track-cancelled{border-left-color:#b16d6d}.calendar-page .tc-task-live.tc-track-cancelled .tc-task-live-state{color:#8d5252}
.calendar-page .tc-live-updated{animation:tcLivePulse 1.5s ease-out}
@keyframes tcLivePulse{0%{box-shadow:0 0 0 0 rgba(84,135,171,.34)}35%{box-shadow:0 0 0 4px rgba(84,135,171,.18)}100%{box-shadow:0 0 0 0 rgba(84,135,171,0)}}
.calendar-page .tc-external-update{margin:0 16px 8px;padding:7px 9px;border:1px solid #d8b56a;border-radius:7px;background:#fff8e8;color:#76591d;font-size:11px;font-weight:650}
@media (prefers-reduced-motion:reduce){.calendar-page .tc-live-updated{animation:none}}


/* v1.0.295 Calendar card visual cleanup */
.calendar-page .tc-kanban-task-list>.tc-task{
    box-sizing:border-box;
    min-height:118px;
    display:grid;
    grid-template-rows:auto minmax(17px,auto) minmax(15px,auto) auto auto;
    align-content:start;
    gap:0;
    padding:9px 10px 8px 11px;
    border:1px solid #cfd9df;
    border-left-width:4px;
    border-radius:7px;
    background:#fff;
    box-shadow:0 1px 2px rgba(31,50,64,.05);
    cursor:pointer;
}
.calendar-page .tc-kanban-task-list>.tc-task:hover{
    background:#fff;
    border-color:#bccbd3;
    box-shadow:0 2px 6px rgba(31,50,64,.08);
}
.calendar-page .tc-kanban-task-list>.tc-task.tc-task-state-idle{border-left-color:#a7b1b8}
.calendar-page .tc-kanban-task-list>.tc-task.tc-task-state-running{border-left-color:#5b8fbe}
.calendar-page .tc-kanban-task-list>.tc-task.tc-task-state-paused{border-left-color:#d0a03d}
.calendar-page .tc-kanban-task-list>.tc-task.tc-task-state-completed{border-left-color:#61a174}
.calendar-page .tc-kanban-task-list>.tc-task.tc-task-state-cancelled{border-left-color:#b16d6d}

.calendar-page .tc-kanban-task-list>.tc-task .tc-task-object{
    min-height:18px;
    font-size:11px;
    line-height:1.25;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-object>span:last-child{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-desc{
    display:-webkit-box;
    min-height:15px;
    max-height:30px;
    margin-top:3px;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    white-space:normal;
    font-size:10px;
    line-height:1.35;
    color:#314753;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-meta{
    min-height:14px;
    margin-top:3px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    font-size:9px;
    line-height:1.35;
    color:#7a8992;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-live{
    min-height:22px;
    margin-top:6px;
    padding:3px 0 3px 7px;
    border-left-width:0;
    font-size:9.5px;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-live-state{
    display:inline-flex;
    align-items:center;
    min-height:18px;
    padding:2px 6px;
    border:1px solid #d8e0e5;
    border-radius:999px;
    background:#f5f7f8;
    color:#66747d;
    font-weight:750;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-track-running .tc-task-live-state{
    border-color:#c2d8e9;background:#eef5fa;color:#376c9a;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-track-paused .tc-task-live-state{
    border-color:#ead8ad;background:#fbf6e9;color:#8b671f;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-track-completed .tc-task-live-state{
    border-color:#c7dfce;background:#f0f7f2;color:#397a4c;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-track-cancelled .tc-task-live-state{
    border-color:#dfc8c8;background:#f8f1f1;color:#8d5252;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-live-time{
    margin-left:auto;
    font-size:10px;
    letter-spacing:.01em;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-actions{
    min-height:23px;
    margin-top:4px;
    padding-top:4px;
    border-top:1px solid #eef2f4;
    justify-content:flex-end;
    gap:4px;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-edit,
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-complete-icon{
    flex:0 0 auto;
}
.calendar-page .tc-kanban-task-list>.tc-task .tc-task-edit{
    margin-left:0;
}

/* Keep V1 compact day cells unchanged. */
.calendar-page .tc-calendar.tc-card-layout-compact .tc-day .tc-task{
    display:block;
    min-height:30px;
    max-height:30px;
}

@media(max-width:700px){
    .calendar-page .tc-kanban-task-list>.tc-task{min-height:116px}
}

/* v1.0.299 Calendar V2 per-user column visibility settings */
.calendar-page .tc-v2-visibility-settings{border:1px solid #dfe6ea;border-radius:8px;padding:10px 12px;background:#f8fafb}
.calendar-page .tc-v2-visibility-settings legend{padding:0 5px;font-weight:700;color:#53616a}
.calendar-page .tc-v2-visibility-settings>p{margin:0 0 8px;font-size:11px}
.calendar-page .tc-v2-visibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-bottom:8px}
.calendar-page .tc-v2-visibility-settings[hidden]{display:none!important}
@media(max-width:600px){.calendar-page .tc-v2-visibility-grid{grid-template-columns:1fr}}

/* v1.0.301 Calendar V2 personal filters */
.calendar-page .tc-v2-filterbar{margin:10px 0 12px;padding:9px 10px;border:1px solid #dfe6ea;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(35,50,60,.04)}
.calendar-page .tc-v2-filter-body{display:flex;align-items:flex-end;gap:7px;flex-wrap:wrap}
.calendar-page .tc-v2-filter-search{display:flex;flex-direction:column;gap:3px;min-width:220px;flex:1 1 260px;font-size:10px;font-weight:700;color:#6a7780}
.calendar-page .tc-v2-filter-search input{height:34px;border:1px solid #d8e0e5;border-radius:7px;padding:0 10px;background:#fbfcfd;font:inherit;font-size:12px;color:#26333b;outline:none}
.calendar-page .tc-v2-filter-search input:focus{border-color:#9fb9cc;box-shadow:0 0 0 2px rgba(91,143,190,.12);background:#fff}
.calendar-page .tc-v2-filter-select{position:relative;flex:0 1 150px;min-width:135px}
.calendar-page .tc-v2-filter-select>summary{list-style:none;cursor:pointer;height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 9px;border:1px solid #d8e0e5;border-radius:7px;background:#fbfcfd;font-size:11px;font-weight:700;color:#4f5d66;user-select:none}
.calendar-page .tc-v2-filter-select>summary::-webkit-details-marker{display:none}
.calendar-page .tc-v2-filter-select>summary:after{content:'▾';font-size:9px;color:#8a969e}
.calendar-page .tc-v2-filter-select>summary span{min-width:20px;padding:2px 5px;border-radius:999px;background:#eef2f4;color:#69767e;text-align:center;font-size:9px;font-weight:800}
.calendar-page .tc-v2-filter-select[open]>summary{border-color:#a9bfce;background:#fff;box-shadow:0 0 0 2px rgba(91,143,190,.10)}
.calendar-page .tc-v2-filter-menu{position:absolute;z-index:45;top:39px;left:0;min-width:220px;max-width:300px;max-height:260px;overflow:auto;padding:6px;border:1px solid #d7e0e5;border-radius:9px;background:#fff;box-shadow:0 10px 26px rgba(35,50,60,.14)}
.calendar-page .tc-v2-filter-menu label{display:flex;align-items:center;gap:7px;padding:6px 7px;border-radius:6px;font-size:11px;color:#34424a;cursor:pointer}
.calendar-page .tc-v2-filter-menu label:hover{background:#f3f6f8}
.calendar-page .tc-v2-filter-menu input{margin:0}
.calendar-page .tc-v2-filter-empty{padding:8px;font-size:11px}
.calendar-page .tc-v2-filter-chip{height:34px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid #d8e0e5;border-radius:999px;background:#fbfcfd;font-size:11px;font-weight:700;color:#56636b;cursor:pointer;white-space:nowrap}
.calendar-page .tc-v2-filter-chip:has(input:checked){border-color:#a8bfce;background:#eef5fa;color:#376c9a}
.calendar-page .tc-v2-filter-chip input{margin:0}
.calendar-page .tc-v2-filter-clear{height:34px;white-space:nowrap}
.calendar-page .tc-v2-filterbar:not(.has-active-filters) .tc-v2-filter-clear{opacity:.48}
.calendar-page .tc-v2-filter-mobile-toggle{display:none}
@media(max-width:900px){
 .calendar-page .tc-v2-filterbar{padding:7px}
 .calendar-page .tc-v2-filter-mobile-toggle{display:flex;width:100%;height:36px;align-items:center;justify-content:space-between;border:0;background:transparent;padding:0 4px;font-size:12px;font-weight:800;color:#44525b}
 .calendar-page .tc-v2-filter-mobile-toggle .badge{margin-left:auto}
 .calendar-page .tc-v2-filter-body{display:none;padding-top:7px;align-items:stretch}
 .calendar-page .tc-v2-filter-body.is-open{display:flex}
 .calendar-page .tc-v2-filter-search{flex:1 1 100%;min-width:100%}
 .calendar-page .tc-v2-filter-select{flex:1 1 calc(50% - 4px);min-width:0}
 .calendar-page .tc-v2-filter-menu{position:fixed;left:12px;right:12px;top:auto;min-width:0;max-width:none;max-height:45vh}
 .calendar-page .tc-v2-filter-chip{flex:1 1 calc(50% - 4px);justify-content:center}
 .calendar-page .tc-v2-filter-clear{flex:1 1 100%}
}
@media(min-width:901px){.calendar-page .tc-v2-filter-body{display:flex!important}}

/* v1.0.301 Calendar V2 filter dropdown polish */
.calendar-page .tc-v2-filter-select{flex:0 1 158px;min-width:145px}
.calendar-page .tc-v2-filter-menu{
  min-width:240px;
  width:max-content;
  max-width:min(340px,calc(100vw - 24px));
  max-height:288px;
  padding:5px;
  overflow-x:hidden;
  overflow-y:auto;
  box-sizing:border-box;
}
.calendar-page .tc-v2-filter-menu label{
  display:grid;
  grid-template-columns:16px minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-height:32px;
  margin:0;
  padding:5px 8px;
  box-sizing:border-box;
  border-radius:6px;
  line-height:1.25;
}
.calendar-page .tc-v2-filter-menu label+label{margin-top:1px}
.calendar-page .tc-v2-filter-menu input[type="checkbox"]{
  appearance:auto;
  -webkit-appearance:checkbox;
  width:14px!important;
  min-width:14px!important;
  max-width:14px!important;
  height:14px!important;
  min-height:14px!important;
  max-height:14px!important;
  margin:0!important;
  padding:0!important;
  border:initial;
  border-radius:2px;
  box-shadow:none;
  flex:none;
  accent-color:#4f83a4;
}
.calendar-page .tc-v2-filter-menu label>span{
  display:block;
  min-width:0;
  max-width:280px;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#34424a;
  font-size:11px;
  font-weight:500;
}
.calendar-page .tc-v2-filter-menu label:has(input:checked){background:#f1f6f9;color:#315f7c}
.calendar-page .tc-v2-filter-menu label:has(input:checked)>span{color:#315f7c;font-weight:650}
.calendar-page .tc-v2-filter-menu::-webkit-scrollbar{width:7px}
.calendar-page .tc-v2-filter-menu::-webkit-scrollbar-thumb{background:#c7d1d7;border-radius:8px}
.calendar-page .tc-v2-filter-menu::-webkit-scrollbar-track{background:transparent}
.calendar-page .tc-v2-filter-chip input[type="checkbox"]{
  width:13px!important;
  min-width:13px!important;
  height:13px!important;
  min-height:13px!important;
  margin:0!important;
  padding:0!important;
  flex:none;
  accent-color:#4f83a4;
}
@media(max-width:900px){
  .calendar-page .tc-v2-filter-select{flex:1 1 calc(50% - 4px);min-width:0}
  .calendar-page .tc-v2-filter-menu{
    width:auto;
    min-width:0;
    max-width:none;
    max-height:46vh;
    padding:7px;
  }
  .calendar-page .tc-v2-filter-menu label{min-height:38px;padding:7px 9px}
  .calendar-page .tc-v2-filter-menu label>span{max-width:none;font-size:12px}
}

/* v1.0.302 Calendar V2 dropdown search + outside close */
.calendar-page .tc-v2-filter-menu-search{
  position:sticky;
  top:0;
  z-index:2;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:5px;
  margin:-1px -1px 5px;
  padding:5px 6px;
  border-bottom:1px solid #edf1f3;
  background:#fff;
}
.calendar-page .tc-v2-filter-menu-search>span{color:#8a979f;font-size:15px;line-height:1;text-align:center}
.calendar-page .tc-v2-filter-menu-search input[type="search"]{
  width:100%!important;
  min-width:0!important;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:0 8px!important;
  border:1px solid #d8e1e6!important;
  border-radius:6px!important;
  background:#f8fafb!important;
  box-shadow:none!important;
  color:#33424b!important;
  font-size:11px!important;
  font-weight:500!important;
  outline:none!important;
}
.calendar-page .tc-v2-filter-menu-search input[type="search"]:focus{border-color:#9fb9cc!important;background:#fff!important;box-shadow:0 0 0 2px rgba(91,143,190,.10)!important}
.calendar-page .tc-v2-filter-options-list{display:grid;gap:1px}
.calendar-page .tc-v2-filter-menu [data-v2-option-row][hidden]{display:none!important}
.calendar-page .tc-v2-filter-menu [data-v2-filter-no-matches]{padding:10px 8px;text-align:center}


/* v1.0.303 — unified System History */
.system-history-header .page-kicker{margin-bottom:3px;color:#71818b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.55px}
.system-history-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.system-history-tabs a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #d7e1e6;border-radius:9px;background:#f8fafb;color:#61737d;text-decoration:none;transition:.15s ease}
.system-history-tabs a:hover{background:#fff;border-color:#c8d7de}.system-history-tabs a.is-active{background:#fff;border-color:#9eb9c7;box-shadow:0 2px 8px rgba(39,64,76,.08);color:#2e4855}
.system-history-tabs strong{font-size:11px}.system-history-tabs span{font-size:8.5px;color:#8b999f}
.history-calendar-filters{grid-template-columns:minmax(130px,180px) minmax(130px,180px) minmax(220px,1fr) auto auto auto}
.history-completed-table td{vertical-align:top}.history-completed-table .btn{white-space:nowrap}
@media(max-width:800px){.system-history-tabs{grid-template-columns:1fr}.history-calendar-filters{grid-template-columns:1fr}.history-page-table-wrap{overflow:auto}}

/* v1.0.304 — paged System History */
.history-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border,#dde3e8)}
.history-pagination span{font-size:13px;color:#66727a;font-weight:600;min-width:72px;text-align:center}
.history-page-filters label select[name="page_size"]{min-width:82px}
@media(max-width:720px){.history-pagination{justify-content:space-between}.history-pagination span{flex:1}}

/* v1.0.305 — New task location flow */
.calendar-page [data-one-time-location-field][hidden]{display:none!important}

/* v1.0.309 Calendar V3 table view */
.tc-v3-shell{display:flex;flex-direction:column;gap:10px;min-width:0}.tc-v3-toolbar{margin-bottom:0}.tc-v3-table-card{background:#fff;border:1px solid #d9e2e8;border-radius:10px;box-shadow:0 2px 8px rgba(31,52,66,.05);overflow:hidden}.tc-v3-table-scroll{overflow:auto;max-height:calc(100vh - 260px)}.tc-v3-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1050px;font-size:13px}.tc-v3-table th{position:sticky;top:0;z-index:3;background:#f5f8fa;color:#314958;font-weight:700;text-align:left;border-bottom:1px solid #dbe4e9;padding:10px 11px;white-space:nowrap;cursor:pointer}.tc-v3-table th.is-actions{cursor:default}.tc-v3-table td{border-bottom:1px solid #e7edf0;padding:9px 11px;vertical-align:middle;color:#243b49}.tc-v3-table tbody tr{transition:background .12s ease}.tc-v3-table tbody tr:hover{background:#f7fafc}.tc-v3-table td[data-v3-col="projectObject"] strong{display:block;font-weight:650}.tc-v3-table td[data-v3-col="projectObject"] small{display:block;color:#70828d;margin-top:2px}.tc-v3-table-card.is-compact .tc-v3-table td{padding:5px 9px}.tc-v3-table-card.is-compact .tc-v3-table th{padding:7px 9px}.tc-v3-status{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:#edf2f5;color:#49616e}.tc-v3-status-assigned{background:#fff1df;color:#985a16}.tc-v3-status-in_progress{background:#e4f0ff;color:#1764ad}.tc-v3-status-completed{background:#e5f6ea;color:#287740}.tc-v3-status-cancelled{background:#f2ecec;color:#865050}.tc-v3-row-completed td:first-child{box-shadow:inset 3px 0 #61a174}.tc-v3-row-cancelled td:first-child{box-shadow:inset 3px 0 #b16d6d}.tc-v3-row-in_progress td:first-child{box-shadow:inset 3px 0 #5b8fbe}.tc-v3-actions{display:flex;gap:5px;align-items:center;white-space:nowrap}.tc-v3-worked{font-variant-numeric:tabular-nums;font-weight:650}.tc-v3-sort-mark{display:inline-block;min-width:10px;color:#507487}.tc-v3-footer{display:flex;align-items:center;gap:14px;padding:9px 11px;background:#fafcfd;border-top:1px solid #e1e8ec}.tc-v3-pagination{display:flex;align-items:center;gap:7px;margin-left:auto}.tc-v3-page-size{display:flex;align-items:center;gap:7px;margin:0}.tc-v3-page-size select{width:auto;min-width:70px}.tc-v3-settings{border:1px solid #dce5ea;border-radius:8px;padding:10px 12px}.tc-v3-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 12px;margin:8px 0 10px}.tc-v3-settings-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.tc-v3-settings .check-row{min-height:28px}.tc-v3-filterbar{margin-bottom:0}
@media(max-width:900px){.tc-v3-table-scroll{max-height:none}.tc-v3-table{min-width:900px}.tc-v3-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-v3-footer{flex-wrap:wrap}.tc-v3-pagination{margin-left:0}.tc-v3-page-size{margin-left:auto}}


/* Calendar live-work highlight (per-user toggle) */
@keyframes tc-live-work-breathe{0%,100%{box-shadow:0 0 0 0 rgba(55,126,170,.08),0 2px 7px rgba(31,52,66,.05)}50%{box-shadow:0 0 0 3px rgba(55,126,170,.10),0 3px 11px rgba(31,52,66,.08)}}
.calendar-page .tc-task.tc-live-work-highlight{border-color:#8fb8d0!important;background:linear-gradient(90deg,rgba(222,240,250,.62),rgba(255,255,255,.96) 45%);animation:tc-live-work-breathe 2.8s ease-in-out infinite}
.calendar-page .tc-v3-table tbody tr.tc-live-work-highlight td{background:rgba(229,243,251,.50)}
.calendar-page .tc-v3-table tbody tr.tc-live-work-highlight td:first-child{box-shadow:inset 3px 0 #4f96bd}
.calendar-page .tc-v3-table tbody tr.tc-live-work-highlight{animation:tc-live-row-breathe 2.8s ease-in-out infinite}
@keyframes tc-live-row-breathe{0%,100%{filter:none}50%{filter:drop-shadow(0 0 4px rgba(55,126,170,.16))}}
@media (prefers-reduced-motion:reduce){.calendar-page .tc-task.tc-live-work-highlight,.calendar-page .tc-v3-table tbody tr.tc-live-work-highlight{animation:none!important}}

/* v1.0.312 — compact per-task activity timeline */
.calendar-page .tc-task-activity{display:flex;flex-direction:column;gap:0;max-height:330px;overflow:auto;padding:0 3px 0 0}
.calendar-page .tc-activity-item{display:grid;grid-template-columns:11px minmax(0,1fr);gap:5px;padding:5px 3px;border-bottom:1px solid rgba(127,127,127,.11)}
.calendar-page .tc-activity-item:last-child{border-bottom:0}.calendar-page .tc-activity-dot{width:6px;height:6px;border-radius:999px;background:#6f91ad;margin-top:4px;box-shadow:0 0 0 2px rgba(111,145,173,.10)}
.calendar-page .tc-activity-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;min-width:0;line-height:1.15}.calendar-page .tc-activity-head strong{font-size:11px;white-space:nowrap}.calendar-page .tc-activity-head time{font-size:9px;color:var(--muted,#6b7280);white-space:nowrap}
.calendar-page .tc-activity-meta{font-size:9px;color:var(--muted,#6b7280);display:flex;gap:4px;align-items:center;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-page .tc-activity-source{display:inline-flex;border:1px solid rgba(127,127,127,.18);border-radius:999px;padding:0 4px;font-size:8px;line-height:1.35;background:rgba(127,127,127,.045);flex:0 0 auto}
.calendar-page .tc-activity-details{font-size:10px;line-height:1.2;margin-top:2px;color:var(--text,#263746);overflow-wrap:anywhere}
@media(max-width:700px){.calendar-page .tc-activity-head{grid-template-columns:auto 1fr}.calendar-page .tc-activity-head time{grid-column:1/-1;font-size:9px}.calendar-page .tc-activity-meta{justify-self:start}}


/* v1.0.313: keep task create/edit validation errors inside the task modal. */
.calendar-page .tc-create-form-error{margin:10px 14px 0;padding:8px 10px;border-radius:7px;font-size:12px;line-height:1.35;flex:0 0 auto}
.calendar-page .tc-create-form-error[hidden]{display:none!important}
@media(max-width:760px){.calendar-page .tc-create-form-error{margin:8px 10px 0;padding:7px 9px;font-size:11.5px}}

.calendar-page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.notification-telegram-channel { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line, #dfe4ea); }
.notification-telegram-channel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.notification-telegram-channel-head > div { display:flex; flex-direction:column; gap:2px; }
.notification-telegram-channel-head small { color:var(--muted, #6b7280); font-weight:400; }
.notification-telegram-users { display:flex; flex-wrap:wrap; gap:7px; }
.notification-telegram-users .notification-trigger-check { margin:0; }
.notification-telegram-empty { margin:6px 0 0; color:var(--muted, #6b7280); }
.notification-telegram-users small { opacity:.72; font-weight:400; }

/* v1.0.324 — compact TG1/TG2 notification recipients */
.notification-telegram-select-grid { display:grid; grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto; gap:10px; align-items:end; }
.notification-telegram-select-grid label { margin:0; }
.notification-telegram-select-grid select { width:100%; }
.notification-telegram-test-wrap { display:flex; align-items:flex-end; min-height:38px; }
.notification-telegram-test-wrap .btn { min-width:64px; }
@media (max-width: 850px) {
  .notification-telegram-select-grid { grid-template-columns:1fr; }
  .notification-telegram-test-wrap { align-items:flex-start; }
}
