/*
 * Adapted subset of CRMS - Responsive Bootstrap 5 Admin Dashboard, version 1.0.0.
 * Copyright Dreams Technologies. https://themeforest.net/user/dreamstechnologies
 * Commercial ThemeForest license; project use only. See claude/crm-assets.md.
 * Layout vocabulary and palette adapted from assets/css/style.css; no remote fonts.
 */
:root { --sidenav-width:240px; --topbar-height:64px; --primary:#b71d0c; --surface:#fff; --canvas:#f7f8f9; --ink:#1f2020; --muted:#5a5b5b; --line:#e1e4e7; --soft:#fff0ed; }
[data-bs-theme="dark"] { --primary:#ffab9c; --surface:#202529; --canvas:#161a1d; --ink:#f2f4f5; --muted:#bdc5cc; --line:#495159; --soft:#3d2827; }
* { box-sizing:border-box; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:1rem; line-height:1.55; }
a { color:var(--primary); text-underline-offset:.2em; }
a:hover { text-decoration:underline; }
:focus-visible { outline:3px solid #317cdb; outline-offset:3px; }
.skip-link { position:absolute; top:-100px; left:1rem; z-index:2000; padding:1rem; background:var(--surface); }
.skip-link:focus { top:0; }
.header { height:var(--topbar-height); display:flex; align-items:center; gap:1.25rem; padding:0 1.5rem; border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:50; }
.brand { display:flex; align-items:center; gap:.6rem; min-width:210px; color:var(--ink); font-size:1.15rem; font-weight:750; text-decoration:none; }
.brand-mark { background:#b71d0c; color:#fff; border-radius:9px; padding:.2rem .6rem; }
.header-caption { color:var(--muted); flex:1; }
.icon-button { display:inline-flex; gap:.45rem; align-items:center; padding:.45rem .7rem; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); min-height:44px; }
.sidebar { width:var(--sidenav-width); position:fixed; top:var(--topbar-height); bottom:0; background:var(--surface); border-right:1px solid var(--line); }
.sidebar-inner { height:100%; padding:1.5rem 1rem; overflow:auto; }
.menu-heading { font-size:.72rem; letter-spacing:.11em; color:var(--muted); font-weight:700; margin:0 .7rem .7rem; }
.sidebar-menu { display:grid; gap:.3rem; }
.sidebar-menu a { display:flex; gap:.8rem; align-items:center; padding:.7rem .85rem; border-radius:6px; text-decoration:none; color:var(--ink); min-height:44px; }
.sidebar-menu a:hover,.sidebar-menu a.active { background:var(--soft); color:var(--primary); }
.sidebar-menu .ti { font-size:1.25rem; }
.page-wrapper { margin-left:var(--sidenav-width); min-height:calc(100vh - var(--topbar-height)); display:flex; flex-direction:column; }
.content { padding:1.75rem; width:100%; max-width:1600px; margin:0 auto; flex:1; overflow-wrap:anywhere; }
.breadcrumb { gap:.6rem; color:var(--muted); font-size:.85rem; padding:0; }
.breadcrumb li + li::before { content:"/"; padding-right:.6rem; }
h1 { font-size:1.8rem; font-weight:700; margin-bottom:1.2rem; letter-spacing:-.035em; }
h2 { font-size:1.25rem; font-weight:650; }
.footer { padding:1rem 1.75rem; display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--line); color:var(--muted); font-size:.8rem; }
form:not(.inline-form) { margin:1rem 0; padding:1.5rem; background:var(--surface); border:1px solid var(--line); border-radius:10px; }
label { display:block; font-weight:600; margin:.75rem 0 .3rem; }
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea { display:block; width:100%; max-width:44rem; min-height:44px; padding:.55rem .75rem; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:6px; }
input[type=checkbox],input[type=radio] { width:1.2rem; height:1.2rem; accent-color:var(--primary); }
button:not(.icon-button):not(.fc-button):not(.choices__button),.button-link { display:inline-block; background:#b71d0c; color:white; border:1px solid #b71d0c; border-radius:6px; padding:.6rem 1rem; margin:.8rem .5rem .3rem 0; min-height:44px; text-decoration:none; }
button:hover,.button-link:hover { filter:brightness(.94); }
.table { background:var(--surface); --bs-table-bg:var(--surface); --bs-table-color:var(--ink); --bs-table-border-color:var(--line); }
.table th { white-space:nowrap; font-size:.85rem; color:var(--muted); padding:1rem; }
.table td { padding:1rem; vertical-align:middle; }
.table-responsive { overflow-x:auto; border:1px solid var(--line); border-radius:9px; margin:1rem 0; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:1.3rem; }
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1rem; margin:1.5rem 0; }
.kpi-label { color:var(--muted); font-size:.85rem; }
.kpi-value { font-size:2rem; font-weight:750; letter-spacing:-.04em; display:block; }
.empty-state { padding:2rem; text-align:center; background:var(--surface); border:1px dashed var(--line); border-radius:10px; color:var(--muted); }
.field-validation-error,.validation-message,.validation-summary-errors { color:var(--primary); }
[role=alert] { border-left:3px solid var(--primary); padding:.6rem 1rem; }
.status-badge { display:inline-flex; align-items:center; gap:.4rem; border-radius:5px; padding:.2rem .55rem; background:var(--soft); color:var(--primary); font-size:.85rem; font-weight:600; }
.status-1 { color:#075e48; background:#ddf6ed; }.status-2 { color:#16488d; background:#e5efff; }.status-3,.status-4 { color:#8a1823; background:#fde7ea; }
.sidebar-toggle { display:none; }
.choices { max-width:44rem; }.choices__inner,.choices__list--dropdown,.flatpickr-calendar { background:var(--surface); color:var(--ink); }
.choices__input { background:var(--surface); color:var(--ink); }
[data-bs-theme="dark"] .choices__list--dropdown .choices__item--selectable.is-highlighted { background:var(--soft); color:var(--ink); }
[data-bs-theme="dark"] .flatpickr-day,[data-bs-theme="dark"] .flatpickr-current-month,[data-bs-theme="dark"] span.flatpickr-weekday { color:var(--ink); }
[data-bs-theme="dark"] .flatpickr-months .flatpickr-month,[data-bs-theme="dark"] .flatpickr-weekdays { background:var(--surface); color:var(--ink); }
[data-bs-theme="dark"] .flatpickr-months .flatpickr-prev-month,[data-bs-theme="dark"] .flatpickr-months .flatpickr-next-month { color:var(--ink); fill:var(--ink); }
[data-bs-theme="dark"] .flatpickr-day:hover { background:var(--soft); border-color:var(--line); }
input:not([type=hidden]),select,textarea { border-color:#737b83; }
[data-bs-theme="dark"] input:not([type=hidden]),[data-bs-theme="dark"] select,[data-bs-theme="dark"] textarea { border-color:#8c969f; }
.fc { --fc-border-color:var(--line); --fc-page-bg-color:var(--surface); --fc-neutral-bg-color:var(--canvas); }
.fc-event.status-0 { --fc-event-bg-color:#174d8c; --fc-event-border-color:#174d8c; color:white; background:#174d8c; }
.fc-event.status-1 { --fc-event-bg-color:#075e48; --fc-event-border-color:#075e48; color:white; background:#075e48; }
.fc-event.status-2 { --fc-event-bg-color:#494e72; --fc-event-border-color:#494e72; color:white; background:#494e72; }
.fc-event.status-3 { --fc-event-bg-color:#8a1823; --fc-event-border-color:#8a1823; color:white; background:#8a1823; }
.fc-event.status-4 { --fc-event-bg-color:#704309; --fc-event-border-color:#704309; color:white; background:#704309; }
.fc .working-interval { background:#4d967d; opacity:.14; }
@media (max-width:991px) { :root { --sidenav-width:210px; }.header-caption { display:none; }.header .theme-toggle { margin-left:auto; }.content { padding:1.2rem; } }
@media (max-width:767px) { .header { padding:0 .75rem; gap:.5rem; }.brand { min-width:0; font-size:.95rem; }.brand-mark { display:none; }.sidebar { position:static; width:100%; border-bottom:1px solid var(--line); }.sidebar-inner { max-height:60vh; }.page-wrapper { margin-left:0; }.js-layout .sidebar { display:none; }.js-layout .sidebar-open .sidebar { display:block; }.js-layout .sidebar-toggle { display:inline-flex; }.content { padding:1rem; } form:not(.inline-form) { padding:1rem; }.footer { flex-direction:column; }.fc-toolbar { flex-wrap:wrap; gap:.5rem; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
