.panel-site, .auth-site { background:#f5f7f9; color:#293f50; font-family:var(--body); }
.panel-site svg, .auth-site svg { width:18px; height:18px; flex:0 0 18px; stroke-width:1.7; }
.panel-sidebar { position:fixed; inset:0 auto 0 0; width:248px; background:#fff; border-right:1px solid #e1e7ed; display:flex; flex-direction:column; overflow-y:auto; z-index:40; }
.panel-brand { padding:24px 20px 8px; display:block; }
.panel-brand img { width:205px; height:auto; }
.panel-role { margin:3px 24px 25px; color:#8997a2; font-size:11px; text-transform:uppercase; }
.panel-sidebar nav { padding:0 14px; flex:1; }
.nav-group { margin-bottom:25px; }
.nav-group > p { font-size:10px; font-weight:700; text-transform:uppercase; color:#94a3ad; margin:0 10px 8px; }
.nav-group a { display:flex; align-items:center; gap:12px; padding:10px 12px; font-size:13px; border-radius:4px; margin-bottom:3px; color:#5c7181; }
.nav-group a.active { background:#eaf3f1; color:#23785f; font-weight:600; }
.nav-group a:hover { background:#f1f5f7; color:#294f6a; }
.panel-public-link { display:flex; gap:10px; align-items:center; padding:20px 24px; font-size:12px; border-top:1px solid #e5ebef; color:#6b8294; }
.panel-workspace { margin-left:248px; min-width:0; }
.panel-topbar { height:70px; background:#fff; border-bottom:1px solid #e3e9ee; padding:12px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; color:#6c8191; }
.panel-topbar > div { display:flex; align-items:center; gap:16px; }
.panel-topbar form { margin:0; }
.topbar-divider { margin-inline:10px; color:#b7c4cb; }
.tool-button { width:40px; height:40px; flex:0 0 40px; border:1px solid #e0e7ec; border-radius:4px; color:#597486; background:#fff; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.mobile-menu { display:none; }
.panel-menu-close, .panel-backdrop { display:none; }
.panel-site .dashboard-shell { padding:30px 32px; background:transparent; }
.panel-site .dashboard-heading h1 { font:600 30px var(--body); line-height:1.2; margin:0; }
.panel-site .eyebrow { font-size:10px; color:#7e958b; margin-bottom:7px; }
.panel-site .page-lede { font-size:13px; margin-bottom:0; }
.panel-site .panel { border:1px solid #e1e8ec; box-shadow:none; padding:20px; border-radius:6px; }
.panel-site .panel h2, .panel-site .portal-section h2 { font:600 20px var(--body); }
.panel-site .btn { min-height:40px; font-size:12px; border-radius:4px; gap:8px; padding:9px 14px; }
.panel-site .btn-primary { background:#277265; box-shadow:none; }
.panel-site .btn-secondary { background:#eaf0f4; color:#526f83; }
.panel-site .metric-grid article { min-height:92px; padding:16px; box-shadow:none; border:1px solid #e2e9ed; }
.panel-site .metric-grid strong { font:600 27px var(--body); }
.panel-site .metric-grid span { font-size:12px; }
.panel-site .backoffice-section-grid .panel { background:transparent; border:0; padding:10px 0; }
.panel-site .management-links a { font-size:13px; background:#fff; border-color:#e0e7eb; color:#527084; padding:12px; }
.panel-site .stack-form label { font-size:12px; }
.panel-site .field-control { font-size:14px; min-height:42px; background:#fff; border-color:#d7e2e8; border-radius:4px; }
.panel-site .table-wrap { background:#fff; border:1px solid #e2e9ed; border-radius:5px; }
.panel-site th { font-size:10px; color:#8596a4; }
.panel-site td { font-size:13px; padding:15px 12px; }
.panel-site .portal-welcome { margin:0 0 24px; padding:0 0 24px; background:transparent; }
.panel-site .portal-welcome h1 { font:600 30px var(--body); line-height:1.2; }
.panel-site .portal-section { background:transparent; border:0; padding:20px 0; border-bottom:1px solid #e0e7eb; }
.panel-site .statement-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.panel-site .statement-grid article { grid-template-columns:1fr; min-width:0; }
.panel-site .portal-actions { grid-template-columns:repeat(3,minmax(0,1fr)); }
.panel-site .portal-actions a { padding:16px; box-shadow:none; }
.panel-site .portal-actions strong { font-size:14px; }
.panel-site .portal-actions span { font-size:12px; }
.panel-site .access-metrics { background:transparent; }
.panel-site .access-queues { grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px 15px; }
.panel-site .arrival-card { padding:14px; }
.panel-site .arrival-card h3 { font-size:15px; }
.panel-site .arrival-card p { font-size:12px; }
.arrival-card-checkout { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; margin-top:12px; padding-top:10px; border-top:1px solid #e1e8ec; font-size:12px; }
.arrival-card-checkout time { font-weight:600; font-variant-numeric:tabular-nums; }
.panel-site .inventory-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.panel-site .metric-grid, .panel-site .finance-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.panel-site .finance-workbench { grid-template-columns:repeat(2,minmax(0,1fr)); }
.panel-site .finance-workbench > section:last-child { grid-column:1/-1; }
.profile-fieldset { margin:0 0 24px; border:0; border-top:1px solid #dce5ea; padding:25px 0 0; }
.profile-fieldset legend { font-size:18px; font-weight:600; padding-right:20px; }
.profile-fieldset label { display:block; color:#657d8c; font-size:12px; font-weight:600; margin-bottom:6px; }
.profile-fieldset small { display:block; font-size:11px; color:#8d9da8; margin-top:6px; }
.profile-formset-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; padding:20px 0; border-bottom:1px solid #e3e9ee; margin-bottom:15px; }
.profile-formset-row input:not([type=checkbox]):not([type=hidden]), .profile-formset-row textarea, .content-photo-grid + form input { width:100%; border:1px solid #d4e0e8; background:white; padding:10px; border-radius:4px; min-width:0; }
.sticky-save { position:sticky; bottom:0; padding:16px 0; background:#f5f7f9f5; border-top:1px solid #dce5ea; z-index:10; }
.request-detail { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.request-detail h2 { font-size:22px; }
.content-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.content-photo-grid article { padding:0 0 20px; border-bottom:1px solid #dce5ea; }
.content-photo-grid img { aspect-ratio:1.4; object-fit:cover; width:100%; border-radius:4px; }
.content-photo-grid h3 { font-size:15px; }
.content-photo-grid p { font-size:12px; color:#7d8e9b; }
.auth-site main { min-height:100svh; padding:55px 24px; }
.auth-brand { display:block; width:260px; margin:0 auto 35px; }
.auth-site .auth-shell { min-height:0; padding:0; }
.auth-site .auth-panel { box-shadow:none; background:#fff; border-color:#dfe8eb; max-width:430px; padding:30px; }
.auth-site .auth-panel h1 { font:600 26px var(--body); line-height:1.2; }
.auth-site .auth-panel .btn-primary { background:#277265; box-shadow:none; }
.skip-link { position:fixed; top:-100px; left:260px; z-index:100; background:white; padding:10px; }
.skip-link:focus { top:10px; }
.work-section { padding:24px 0; margin-bottom:20px; border-top:1px solid #dce5ea; min-width:0; }
.work-section h2 { font:600 21px var(--body); line-height:1.3; margin:0 0 20px; }
.work-section h3 { font:600 16px var(--body); margin:18px 0 12px; }
.work-section summary { font-size:14px; font-weight:600; cursor:pointer; padding:14px 0; }
.work-section > p, .ticket-comment p { font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.command-bar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:20px 0 28px; }
.pending-list { display:grid; }
.pending-list > a { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:1px solid #e0e7ec; align-items:center; font-size:14px; }
.pending-list > a > div { min-width:0; }
.pending-list small { display:block; margin-top:5px; font-size:12px; color:#7b8d99; }
.pending-list > a > strong { flex-shrink:0; color:#277265; }
.ticket-layout { display:grid; grid-template-columns:minmax(0,900px); gap:32px; }
.ticket-layout.has-management { grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); }
.ticket-layout > *, .ticket-management { min-width:0; }
.ticket-summary { display:flex; flex-wrap:wrap; align-items:center; gap:16px; font-size:12px; margin:18px 0 25px; color:#617a88; }
.ticket-facts { margin:20px 0; }
.ticket-facts > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; padding:10px 0; border-bottom:1px solid #e2e9ed; font-size:13px; }
.ticket-facts dt { color:#728895; }
.ticket-facts dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.ticket-comment { padding:18px 0; border-bottom:1px solid #e1e8ec; }
.ticket-comment > div { display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; }
.ticket-comment small { color:#7d909b; font-size:11px; }
.ticket-comment.private-note { padding:18px; margin:12px 0; background:#fff7e6; border-left:3px solid #c3a265; border-radius:4px; }
.ticket-evidence { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ticket-evidence article { min-width:0; padding-bottom:15px; border-bottom:1px solid #dce5ea; }
.ticket-evidence img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; margin-bottom:10px; }
.ticket-evidence a, .ticket-evidence small { display:block; font-size:12px; margin-bottom:9px; overflow-wrap:anywhere; }
.ticket-timeline { border-left:2px solid #d8e5e1; padding-left:20px; list-style:none; margin-left:0; }
.ticket-timeline li { margin-bottom:24px; font-size:13px; overflow-wrap:anywhere; }
.ticket-timeline small { display:block; color:#7c8f9a; font-size:11px; margin-top:6px; }
.ticket-timeline p { margin:7px 0; font-size:12px; }
.maintenance-filters { grid-template-columns:minmax(130px,1.3fr) repeat(4,minmax(90px,1fr)) auto; align-items:end; }
.maintenance-filters label { font-size:12px; color:#6b8290; min-width:0; }
.maintenance-filters .field-control { display:block; margin-top:6px; }
.panel-pagination { display:flex; justify-content:center; align-items:center; gap:25px; padding:25px 0; font-size:13px; }
.panel-pagination a { text-decoration:underline; }
.billing-confirm { max-width:600px; }
.money-total { text-align:right; font-weight:600; font-size:18px; }
.inline-command { margin:10px 0 25px; }
.panel-site input[type=file] { max-width:100%; min-width:0; }
.panel-site .metric-grid strong { overflow-wrap:anywhere; }
.dossier-tabs { display:flex; gap:24px; border-bottom:1px solid #dce5ea; margin-bottom:24px; font-size:13px; }
.dossier-tabs > * { display:inline-flex; align-items:center; gap:8px; padding:12px 0; }
.dossier-tabs [aria-current] { color:#23785f; border-bottom:2px solid #23785f; font-weight:600; }
.dossier-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:20px 0 28px; border-bottom:1px solid #dce5ea; }
.dossier-summary > div { padding:10px 16px 20px 0; }
.dossier-summary dt { font-size:12px; color:#687f8d; }
.dossier-summary dd { font-size:26px; font-weight:600; margin:8px 0 0; }
.dossier-subtitle { font-size:12px; color:#718693; line-height:1.6; margin:8px 0; }
.dossier-checklist { list-style:none; padding:0; margin:20px 0; }
.dossier-checklist-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:14px 20px; padding:18px 0; border-bottom:1px solid #dce5ea; }
.dossier-requirement { display:flex; gap:12px; align-items:center; min-width:0; font-size:14px; }
.dossier-requirement > div { min-width:0; overflow-wrap:anywhere; }
.dossier-requirement small, .dossier-files small { display:block; font-size:12px; color:#718693; margin-top:6px; }
.dossier-status { font-size:11px; border-radius:4px; padding:5px 8px; white-space:nowrap; background:#edf1f5; color:#536d82; }
.dossier-status-complete { background:#e5f3eb; color:#286f4d; }
.dossier-status-expiring, .dossier-status-review { background:#fff1d9; color:#865f1f; }
.dossier-status-expired, .dossier-status-rejected, .dossier-status-missing { background:#fbe9e9; color:#a34444; }
.dossier-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.dossier-actions .table-action, .dossier-parent a { display:inline-flex; align-items:center; gap:6px; }
.dossier-request { grid-column:1/-1; font-size:12px; border-left:2px solid #8aafc2; padding:4px 14px; color:#5b7486; overflow-wrap:anywhere; }
.dossier-request p { font-size:13px; margin:7px 0; line-height:1.6; }
.dossier-history { margin-bottom:20px; }
.dossier-files > div { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid #dce5ea; font-size:13px; }
.dossier-files > div > span { min-width:0; overflow-wrap:anywhere; }
.dossier-files p { font-size:12px; margin:8px 0; }
.dossier-settings { max-width:540px; }
.dossier-field { display:grid; gap:8px; min-width:0; font-size:12px; }
.dossier-field small { font-size:11px; color:#718693; }
.dossier-file-clear { display:flex; align-items:center; gap:8px; }
.dossier-file-clear label { margin:0; }
.dossier-parent { font-size:13px; }
.dossier-empty { font-size:13px; padding:12px 0; }
@media (max-width:760px) { .dossier-checklist-row { grid-template-columns:minmax(0,1fr) auto; } .dossier-checklist-row > .dossier-actions { grid-column:1/-1; } .dossier-files > div { align-items:flex-start; flex-wrap:wrap; } .dossier-summary dt { min-height:36px; } }
.work-section .stack-form p { display:grid; gap:7px; margin:15px 0; min-width:0; }
.ticket-management .stack-form .field-control { width:100%; min-width:0; }
@media (max-width:1150px) { .maintenance-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .ticket-layout.has-management { grid-template-columns:1fr; } .maintenance-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .work-section .panel-heading { gap:15px; flex-wrap:wrap; } }
@media (max-width:1200px) { .panel-site .access-queues { grid-template-columns:repeat(2,minmax(0,1fr)); } .panel-site .backoffice-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .panel-site .finance-workbench { grid-template-columns:1fr; } }
@media (max-width:900px) {
    .panel-sidebar { transform:translateX(-100%); box-shadow:12px 0 30px #183c4b15; }
    .panel-sidebar.is-open { transform:translateX(0); }
    .panel-menu-close { display:inline-flex; position:absolute; top:84px; right:15px; }
    .panel-sidebar.is-open + .panel-backdrop { display:block; position:fixed; inset:0; background:#17364155; border:0; z-index:35; }
    .panel-workspace { margin-left:0; }
    .panel-topbar { padding-inline:20px; }
    .panel-topbar .mobile-menu { display:inline-flex; }
    .panel-site .dashboard-shell { padding:26px 20px; }
    .panel-site .portal-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
    .maintenance-filters { grid-template-columns:1fr; }
    .ticket-evidence { grid-template-columns:1fr; }
    .panel-site .metric-grid strong { font-size:22px; }
    .pending-list > a { gap:12px; }
    .panel-site .dashboard-heading h1 { font-size:25px; }
    .panel-topbar { font-size:11px; padding-inline:15px; gap:8px; }
    .panel-topbar > div { gap:8px; }
    .panel-topbar > div:last-child > span { max-width:90px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .topbar-divider { margin-inline:3px; }
    .panel-site .metric-grid, .panel-site .finance-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .panel-site .backoffice-section-grid, .panel-site .access-queues, .content-photo-grid { grid-template-columns:1fr; }
    .panel-site .portal-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .panel-site .portal-actions a { min-height:104px; padding:14px; align-content:start; gap:8px; }
    .panel-site .statement-grid { grid-template-columns:1fr; }
    .profile-formset-row, .request-detail { grid-template-columns:1fr; }
    .panel-site .portal-welcome h1 { font-size:25px; }
    .panel-site .access-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .panel-site .dashboard-shell { padding:23px 16px; }
}
