:root{--app-font:"Segoe UI",Arial,sans-serif;--app-size:16px;--surface:#fff;--page:#f3f6fa;--text:#172b40;--soft:#edf2f8;--line:#dce5ed;--navy:#173b4f;--muted:#64748b;--success-bg:#e2f5ed;--success-text:#176449;--error-bg:#fce9ec;--error-text:#9f2739;--info-bg:#edf3fc;--info-text:#24558a;color-scheme:light}
:root[data-theme=dark]{--surface:#1c283b;--page:#111b2a;--text:#e8eef7;--soft:#26374e;--line:#3e5069;--navy:#e8eef7;--muted:#b6c4d6;--success-bg:#193e36;--success-text:#8ce0bd;--error-bg:#4a2732;--error-text:#ffb5c2;--info-bg:#243955;--info-text:#b9d5ff;color-scheme:dark}
body{font-family:var(--app-font);font-size:var(--app-size);background:var(--page);color:var(--text)}.card,.portal-head{background:var(--surface);color:var(--text);border-color:var(--line)}h2,h3{color:var(--text)}a{color:var(--blue)}input,select,textarea{background:var(--surface);color:var(--text);border-color:var(--line);font-family:inherit}label{color:var(--muted);font-size:.875em}button,.button{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.secondary{background:var(--soft);color:var(--text)}.muted,small{color:var(--muted)}th{background:var(--soft);color:var(--text)}td,th{border-color:var(--line)}tbody tr:hover{background:var(--soft)}.help,.notice,.badge{background:var(--info-bg);color:var(--info-text)}.error,.validation-summary-errors{background:var(--error-bg);color:var(--error-text)}.validation-summary-valid{display:none}.badge.green{background:var(--success-bg);color:var(--success-text)}.badge.red{background:var(--error-bg);color:var(--error-text)}.error:empty{display:none}fieldset{border:0;padding:0;min-width:0}fieldset:disabled{opacity:.8}.logo-editor{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:10px 0 24px}.logo-editor img{width:150px;height:110px;object-fit:contain;background:white;border-radius:8px;padding:10px}
aside{background:#122d4a}aside a,aside .brand{color:#edf3fc}nav a.active,nav a:hover{background:color-mix(in srgb,var(--blue) 35%,#122d4a)}.dashboard-jumps a{background:var(--soft);color:var(--text)}.dashboard-jumps a:hover{background:var(--blue);color:white}
[data-theme=dark] .dashboard-appointment,[data-theme=dark] .planning-day,[data-theme=dark] .dashboard-kpi.result,[data-theme=dark] .personnel-panel,[data-theme=dark] .hours-panel{background:var(--surface);color:var(--text);border-color:var(--line)}[data-theme=dark] .dashboard-appointment h3,[data-theme=dark] .kpi-details b{color:var(--text)}[data-theme=dark] .date-tile,[data-theme=dark] .mail-kpis .pending{background:var(--info-bg);color:var(--info-text)}[data-theme=dark] .mail-kpis .sent{background:var(--success-bg);color:var(--success-text)}[data-theme=dark] .mail-kpis .failed{background:var(--error-bg);color:var(--error-text)}[data-theme=dark] .dashboard-kpi.result>strong{color:var(--success-text)}[data-theme=dark] .dashboard-kpi.income>strong{color:#9bbfff}[data-theme=dark] .dashboard-kpi.expense>strong{color:#ffa8b7}
@media(max-width:650px){main{padding:16px}.card{padding:18px}h1{font-size:1.45em}.logo-editor{gap:12px}}
table{background:var(--surface);color:var(--text)}tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface) 85%,var(--soft))}tbody tr:hover{background:var(--soft)}[data-theme=dark] td a{color:color-mix(in srgb,var(--blue) 45%,white)}

/* Shared compact, horizontally scrollable tables for browser and installed app. */
body button,body .button,body .hours-button{white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none;flex-shrink:0}
body .table-scroll,body .table-wrap,body .hours-table{overflow-x:auto;max-width:100%;min-width:0;overscroll-behavior-x:contain}
body table{table-layout:auto;background:var(--surface);color:var(--text)}
body table th,body table td{white-space:nowrap;overflow-wrap:normal;word-break:normal;max-width:none;padding:8px 12px;vertical-align:middle;line-height:1.4;border-color:var(--line)}
body table th{background:var(--soft);color:var(--text)}
body table td small{white-space:nowrap;max-width:none;margin-top:3px}
body table .row-actions{flex-wrap:nowrap;align-items:center;gap:6px}
body table form{margin:0}
body table button,body table .button{width:auto;min-width:max-content;min-height:34px;padding:7px 12px;line-height:1.4}
body table td label{margin-bottom:0}
body table td details{margin:4px 0}
body table td textarea{white-space:pre-wrap;min-width:220px}
body table td input:not([type=hidden]):not([type=checkbox]),body table td select{min-width:140px}
body .hours-table .hours-remark{white-space:nowrap;max-width:none}
@media(max-width:650px){body table button,body table .button{min-height:44px}body .toolbar{display:flex;flex-wrap:wrap}body .toolbar>.button{width:auto;flex:0 0 auto}body .toolbar>form{flex:1 1 100%}body .toolbar{overflow-x:auto}body .hours-tabs{overflow-x:auto}}
@media print{body table td,body table td small{white-space:normal;overflow-wrap:anywhere}body .table-scroll,body .table-wrap,body .hours-table{overflow:visible}}
body .hours-table td,body .hours-table th{padding:8px 12px}body .hours-page,body .hours-card,body .personnel-page{min-width:0}[data-theme=dark] .planning-day.selected{background:var(--blue);color:white}[data-theme=dark] .planning-day.booked:not(.selected){background:var(--info-bg);color:var(--info-text)}[data-theme=dark] .kpi-details,[data-theme=dark] .mail-kpis span,[data-theme=dark] .finance-month,[data-theme=dark] .planning-calendar>strong{color:var(--muted)}
