
:root{--forest:#164d3d;--green:#236b50;--rose:#fff2f1;--red:#b84c57;--ink:#233a33;--muted:#65776f;--line:#e5eae6;--bs-primary:#b84c57;--bs-success:#236b50;--bs-body-font-family:'Figtree',sans-serif}
body{margin:0;background:#fff7f6;color:var(--ink);font-family:var(--bs-body-font-family);font-size:.95rem;line-height:1.6}
a{color:var(--green);text-underline-offset:3px}h1,h2,h3{color:var(--ink);font-weight:700;letter-spacing:-.035em}h1{font-size:2rem}h2{font-size:1.65rem}h3{font-size:1.3rem}h4,h5{color:var(--green);font-weight:600}p{color:var(--muted)}
.app-sidebar{--bs-offcanvas-width:270px;background:var(--forest)!important;color:#fff;width:270px!important;border:0!important}.app-sidebar .offcanvas-header{display:flex;padding:30px 22px}.sidebar-brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-size:1.2rem;font-weight:700;line-height:1.3}.brand-mark{display:grid;place-items:center;background:#fbd8d7;color:var(--forest);width:42px;height:46px;border-radius:12px;font-size:1.4rem}.brand-subtitle{display:block;font-size:.75rem;font-weight:400;color:#c7dfd3;margin-top:4px}.app-sidebar .offcanvas-body{padding:0 16px 20px;display:flex;flex-direction:column;overflow-y:auto}.sidebar-nav{width:100%}.nav-caption{display:block;color:#b7d1c4;font-size:.75rem;margin:22px 14px 8px}.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 14px;color:#e4f0e9;text-decoration:none;border-radius:8px;margin:3px 0;font-size:.88rem;min-height:44px}.sidebar-link i{font-size:1.15rem}.sidebar-link:hover{background:#27604c;color:white}.sidebar-link.active{background:#fbd8d7;color:#343f34;font-weight:600}.sidebar-bottom{margin-top:auto;padding-top:32px}.sidebar-user{display:flex;gap:10px;align-items:center;padding:16px 10px;border-top:1px solid #ffffff26;font-size:.88rem}.sidebar-user small,.sidebar-bottom small{display:block;color:#bfd6ca;font-size:.75rem}.sidebar-bottom p{color:white;padding:14px}.logout-button{background:none;border:0;width:100%;text-align:left}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#e9f2eb;color:var(--forest);font-weight:700}
.workspace-header{height:80px;background:#ffffffc9;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 36px}.workspace-label{font-weight:600}.workspace-meta{color:var(--muted);font-size:.85rem;margin-left:auto}.account-link{margin-left:auto;display:flex;align-items:center;gap:10px;text-decoration:none;font-size:.85rem;color:var(--ink)}.sidebar-toggle{font-size:1.5rem;padding:0 8px}.content{padding:36px;min-height:calc(100vh - 145px)}.content>.container,.content>.container-fluid{max-width:1320px;padding-left:0;padding-right:0}.workspace-footer{padding:16px 36px;color:var(--muted);font-size:.75rem;display:flex;justify-content:space-between;border-top:1px solid var(--line)}.skip-link{position:fixed;top:-100px;left:20px;z-index:2000;background:white;padding:12px}.skip-link:focus{top:12px}
.card,.content form.shadow{border:1px solid var(--line);border-radius:14px!important;box-shadow:0 4px 16px #164d3d05!important;background:white}.card-header{background:#fff2f1;border-bottom:1px solid #f2dedc;padding:18px 22px;font-weight:600;color:var(--ink)}.card-body{padding:24px}.content .shadow,.content .shadow-sm{box-shadow:0 4px 16px #164d3d08!important}.form-control,.form-select{border-color:#d8e2da;border-radius:8px;min-height:44px;padding:10px 12px;color:var(--ink)}.form-control:focus,.form-select:focus{border-color:var(--green);box-shadow:0 0 0 3px #236b5022}.form-group label,.col-form-label,.form-label{font-size:.87rem;color:var(--ink);margin-bottom:6px}.btn{border-radius:8px;padding:9px 16px;font-weight:600;font-size:.88rem}.btn-primary,.btn-success{--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:#164d3d;--bs-btn-hover-border-color:#164d3d;--bs-btn-active-bg:#164d3d;--bs-btn-active-border-color:#164d3d}.btn-outline-primary,.btn-outline-success{--bs-btn-color:var(--green);--bs-btn-border-color:#9bbbaa;--bs-btn-hover-bg:var(--green);--bs-btn-hover-border-color:var(--green)}.btn-danger{--bs-btn-bg:var(--red);--bs-btn-border-color:var(--red)}.text-primary,.text-success{color:var(--green)!important}.bg-success{background:var(--green)!important}.bg-danger{background:var(--red)!important}.alert{border-radius:10px}.alert-success{background:#edf6ef;border-color:#d0e6d6;color:#164d3d}.alert-danger{background:#fff0ef;border-color:#f0d3d3;color:#963c48}.table-responsive{background:white;border:1px solid var(--line);border-radius:12px;padding:12px}.table{font-size:.86rem;vertical-align:middle;margin-bottom:0;--bs-table-border-color:var(--line)}.table>thead>tr>th{background:#f0f5f1!important;color:#355146;padding:14px 12px;font-weight:600;white-space:nowrap;border-bottom:1px solid #d4e0d6}.table>tbody>tr>td{padding:14px 12px}.table tbody tr:hover{--bs-table-bg:#fff8f7}.badge{border-radius:6px;padding:6px 9px;font-weight:500}.page-link{color:var(--green)}.pagination .active>.page-link{background:var(--green);border-color:var(--green)}.select2-container .select2-selection--single{height:44px;border-color:#d8e2da;border-radius:8px}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:42px;padding-left:12px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:42px}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:var(--green);box-shadow:none}.modal-content{border:0;border-radius:14px}.modal-header{background:var(--rose)}
.page-intro{margin-bottom:28px}.page-intro p{max-width:65ch;margin:8px 0 0}.welcome-panel{background:#fff;border:1px solid #efd8d6;border-radius:18px;padding:48px;position:relative;overflow:hidden}.welcome-panel:before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:#eaa2a6}.welcome-panel h1{font-size:clamp(2rem,4vw,3.4rem);max-width:16ch;line-height:1.12}.welcome-panel p{max-width:52ch;margin:20px 0 26px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:28px}.action-card{display:block;padding:24px;background:white;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}.action-card>i{font-size:1.6rem;color:var(--green)}.action-card h2{font-size:1.15rem;margin:16px 0 8px}.action-card p{font-size:.88rem;margin:0}.action-card:hover{border-color:#8db09b;background:#f7fbf8}.booking-help{background:var(--rose);border-left:3px solid #d57e88;padding:14px 18px;border-radius:6px;margin-bottom:22px;color:#70464a;font-size:.88rem}:focus-visible{outline:3px solid #bd5967;outline-offset:3px}
@media(min-width:992px){.app-sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;display:flex;flex-direction:column}.app-sidebar .offcanvas-body{flex-grow:1}.workspace{margin-left:270px}.sidebar-toggle{display:none}}
@media(max-width:991.98px){.content{padding:24px 18px}.workspace-header{padding:0 18px;height:68px}.workspace-footer{padding:16px 18px}.welcome-panel{padding:30px 24px}.workspace-label{font-size:.9rem}.account-link>span:last-child{display:none}.workspace-meta{display:none}.content .row{--bs-gutter-x:1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Content surfaces and reading hierarchy */
.content { padding: 32px 36px 48px; }
.content > .container, .content > .container-fluid { max-width: 1440px; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-heading h1 { margin: 0 0 8px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.page-description { margin: 0; max-width: 65ch; color: var(--muted); font-size: .95rem; }
.page-heading > .btn, .page-heading > .row-actions { flex-shrink: 0; margin-top: 5px; }
.surface { background: #fff; border: 1px solid #e0e8e1; border-radius: 14px; min-width: 0; overflow: hidden; box-shadow: 0 3px 12px #164d3d03; }
.surface-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 22px 26px; border-bottom: 1px solid var(--line); background: #fcfdfc; }
.surface-header h2, .surface-header h3 { font-size: 1.05rem; letter-spacing: -.01em; margin: 0; font-weight: 700; }
.surface-header p { margin: 4px 0 0; font-size: .82rem; }
.surface-body { padding: 26px; }
.surface-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--green); background: #eaf3ed; font-size: 1.2rem; }
.surface .table-responsive { border: 0; border-radius: 0; padding: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 0; }
.detail-item { min-width: 0; padding: 18px 0; border-bottom: 1px solid #edf0ed; }
.detail-item dt { color: var(--muted); font-size: .78rem; font-weight: 500; margin: 0 0 6px; }
.detail-item dd { margin: 0; color: var(--ink); font-weight: 500; overflow-wrap: anywhere; }
.detail-item-wide { grid-column: 1 / -1; }
.detail-grid .detail-item:last-child { border-bottom: 0; }
.form-section { border-bottom: 1px solid var(--line); padding: 24px 0; }
.form-section:first-child { padding-top: 0; }
.form-section:last-of-type { border-bottom: 0; }
.form-section-title { font-size: 1.05rem; color: var(--ink); border: 0; margin: 0 0 8px; padding: 0; }
.form-section-description { font-size: .87rem; margin-bottom: 22px; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.auth-panel { max-width: 560px; margin: 0 auto; }
.auth-panel .page-heading { margin-bottom: 24px; }
.auth-panel .card { border-radius: 14px; }
.auth-panel label { font-weight: 600; }
.auth-panel .card-body { padding: 30px; }
.auth-panel .row { margin: 0; }
.auth-panel .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; width: 100%; padding: 0; margin-left: 0; text-align: left!important; }
.auth-panel .col-form-label { padding-bottom: 6px; }
/* Search tools apply to the full server result or the explicitly complete list. */
.filter-bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 18px; padding: 22px 26px; background: #fff; }
.filter-field { min-width: 0; }
.filter-field-wide { grid-column: span 2; }
.filter-field label { display: block; font-size: .79rem; font-weight: 600; color: #4e6559; margin-bottom: 7px; }
.filter-field .form-control, .filter-field .form-select { font-size: .86rem; }
.filter-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.input-icon { position: relative; }
.input-icon > i { position: absolute; left: 13px; top: 12px; color: #8a9d90; pointer-events: none; }
.input-icon .form-control { padding-left: 38px; }
/* Grouped table columns preserve information with less visual noise. */
.table-modern { --bs-table-border-color: #edf1ed; font-size: .85rem; }
.table-modern > thead > tr > th { background: #f2f6f3!important; padding: 14px 22px; color: #607569; font-size: .75rem; font-weight: 600; border-top: 0; }
.table-modern > tbody > tr > td { padding: 20px 22px; border-left: 0; border-right: 0; }
.table-modern > tbody > tr:last-child > td { border-bottom: 0; }
.table-person { min-width: 130px; max-width: 260px; overflow-wrap: anywhere; }
.table-person strong { display: block; font-weight: 600; font-size: .87rem; color: var(--ink); }
.table-person small { display: block; font-size: .76rem; color: var(--muted); margin-top: 3px; }
.reference-link { color: var(--green); font-weight: 600; text-decoration: none; white-space: nowrap; }
.row-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.row-actions form { margin: 0; }
.row-actions .btn { white-space: nowrap; font-size: .76rem; padding: 6px 10px; }
.status-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 20px; padding: 5px 10px; font-size: .74rem; font-weight: 600; background: #eef1ef; color: #516459; white-space: nowrap; }
.status-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-approved, .status-active, .status-paid { background: #e9f4ed; color: #216144; }
.status-pending, .status-unpaid { background: #fff5df; color: #805c1c; }
.status-rejected, .status-blocked { background: #fff0f0; color: #a24853; }
.table-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 18px 26px; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.table-footer .pagination { margin: 0; }
.table-footer nav .d-none.flex-sm-fill { gap: 20px; }
.table-footer nav p { display: none; }
.empty-state { text-align: center; padding: 44px 20px; }
.empty-state > i { display: block; color: #9ab2a2; font-size: 2rem; margin-bottom: 12px; }
.empty-state h3 { font-size: 1.15rem; margin: 0 0 8px; }
.empty-state p { font-size: .87rem; margin-bottom: 18px; }
[hidden] { display: none!important; }
/* A persistent desktop rail, and a separate mobile drawer. */
.workspace, .app-sidebar { transition: margin-left .2s ease, width .2s ease; }
.sidebar-toggle { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #dfe8e1; border-radius: 9px; color: var(--forest); font-size: 1.2rem; background: #fff; }
.sidebar-link { min-width: 0; }
.sidebar-link > i { flex: 0 0 22px; text-align: center; }
.sidebar-link-label { line-height: 1.4; }
@media (min-width: 992px) {
    .sidebar-mobile-toggle { display: none; }
    .sidebar-desktop-toggle { display: inline-flex; }
    .sidebar-collapsed .app-sidebar { width: 84px!important; }
    .sidebar-collapsed .workspace { margin-left: 84px; }
    .sidebar-collapsed .sidebar-brand-label, .sidebar-collapsed .sidebar-link-label, .sidebar-collapsed .sidebar-user-label, .sidebar-collapsed .nav-caption, .sidebar-collapsed .sidebar-bottom > p { display: none; }
    .sidebar-collapsed .app-sidebar .offcanvas-header { justify-content: center; padding: 26px 12px; }
    .sidebar-collapsed .app-sidebar .offcanvas-body { padding-left: 12px; padding-right: 12px; }
    .sidebar-collapsed .sidebar-link { justify-content: center; padding: 12px; margin-bottom: 9px; }
    .sidebar-collapsed .sidebar-user { justify-content: center; padding: 16px 0; }
}
@media (max-width: 1199.98px) { .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991.98px) {
    .sidebar-desktop-toggle { display: none; }
    .sidebar-mobile-toggle { display: inline-flex; }
    .content { padding: 26px 18px; }
    .page-heading { gap: 16px; }
    .surface-header, .surface-body, .filter-bar, .table-footer { padding: 20px; }
}
@media (max-width: 575.98px) {
    .page-heading { flex-direction: column; margin-bottom: 22px; }
    .filter-bar { grid-template-columns: 1fr; gap: 14px; }
    .filter-field-wide { grid-column: auto; }
    .detail-grid { grid-template-columns: 1fr; }
    .surface-body { padding: 18px; }
    .table-modern > thead > tr > th, .table-modern > tbody > tr > td { padding-left: 16px; padding-right: 16px; }
    .auth-panel .card-body { padding: 22px; }
    .workspace-label { max-width: 160px; line-height: 1.25; }
    .workspace-footer span { display: none; }
}

.btn-link { color: var(--green); }
.table-description { max-width: 52ch; overflow-wrap: anywhere; white-space: normal; }
.filter-field-search { grid-column: span 2; }
@media (max-width: 575.98px) { .filter-field-search { grid-column: auto; } }

.surface-header > h2 + p { flex-basis: 100%; margin-top: 0; }
.surface-header:has(> h2 + p) { row-gap: 6px; }

/* Bangladesh mission identity: national green, a restrained red accent, white surfaces. */
:root {
    --forest: #00583f;
    --green: #006a4e;
    --rose: #fff2f4;
    --red: #bd2d43;
    --flag-red: #f42a41;
    --ink: #17372b;
    --muted: #617269;
    --line: #e2e9e4;
    --bs-primary: #006a4e;
    --bs-success: #006a4e;
}
body { background: #f6f9f6; }
.workspace-header { background: #fff; border-top: 3px solid var(--green); }
.workspace-label { display: flex; flex-direction: column; line-height: 1.35; }
.workspace-label strong { font-size: .98rem; font-weight: 700; }
.workspace-label small { color: var(--muted); font-size: .75rem; font-weight: 400; margin-top: 2px; }
.app-sidebar .offcanvas-header { padding: 24px 18px; align-items: center; }
.sidebar-brand { font-size: 1rem; gap: 12px; align-items: center; }
.brand-mark { flex: 0 0 56px; width: 56px; height: 56px; background: #fff; border-radius: 50%; }
.brand-mark img { width: 48px; height: 48px; object-fit: contain; }
.brand-subtitle { font-size: .72rem; color: #cbe1d6; margin-top: 6px; }
.sidebar-link.active { background: #fff0f2; color: #594038; box-shadow: inset 3px 0 0 var(--flag-red); }
.sidebar-link:hover { background: #197451; }
.sidebar-link.active:hover { background: #ffe7eb; color: #594038; }
.btn-primary:hover, .btn-success:hover { background: #00543d; border-color: #00543d; }
.status-approved, .status-active, .status-paid { color: #006044; background: #e9f5ed; }
.status-rejected, .status-blocked { color: #ad2940; background: #fff0f3; }
/* A quiet public entry point with the mission first. */
.landing-page { background: #fff; border-top: 4px solid var(--green); }
.workspace.workspace-public, .sidebar-collapsed .workspace.workspace-public { margin-left: 0; display: flex; flex-direction: column; min-height: calc(100dvh - 4px); }
.public-masthead { width: min(1120px, calc(100% - 72px)); margin: 0 auto; padding: 26px 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.public-mission { display: flex; align-items: center; gap: 18px; color: var(--ink); text-decoration: none; }
.public-mission img { width: 60px; height: 60px; object-fit: contain; }
.public-mission strong { display: block; font-size: 1.18rem; font-weight: 700; }
.public-mission small { display: block; font-size: .87rem; color: var(--muted); margin-top: 3px; }
.public-portal-label { color: var(--muted); font-size: .85rem; }
.workspace-public .content { display: grid; place-items: center; flex: 1; min-height: 0; padding: 72px 24px; }
.landing-hero { width: 100%; max-width: 840px; text-align: center; }
.landing-rule { width: 42px; height: 3px; background: var(--flag-red); margin: 0 auto 28px; }
.landing-hero h1 { font-size: clamp(2rem, 3.6vw, 3.1rem); letter-spacing: -.04em; line-height: 1.18; margin: 0 auto; max-width: 780px; }
.landing-hero p { font-size: clamp(.95rem, 1.3vw, 1.1rem); margin: 20px 0 30px; }
.landing-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.landing-actions .btn { min-width: 150px; padding: 12px 24px; }
.workspace-public .workspace-footer { width: min(1120px, calc(100% - 72px)); padding: 20px 0; margin: 0 auto; }
/* Compact applicant and visit panels share one visual baseline. */
.booking-intro { max-width: 66ch; }
.booking-hours { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; padding: 16px 22px; margin-bottom: 24px; background: #edf5ef; border: 1px solid #dceade; border-radius: 10px; color: #466b55; font-size: .83rem; }
.booking-hours > div { display: flex; gap: 10px; align-items: center; color: var(--green); }
.booking-hours > span + span { padding-left: 24px; border-left: 1px solid #ccdcd0; }
.booking-hours strong { font-weight: 600; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.booking-panel { border-radius: 12px; }
.booking-panel .surface-header { display: block; padding: 22px 24px; min-height: 106px; border-top: 3px solid var(--green); background: #fff; }
.booking-panel .surface-header p { margin-top: 8px; font-size: .8rem; line-height: 1.6; }
.booking-section-heading { display: flex; align-items: center; gap: 10px; }
.booking-section-heading > i { color: var(--green); font-size: 1.2rem; }
.booking-panel .surface-body { padding: 24px; }
.booking-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 18px; }
.booking-fields > .form-group, .booking-address-grid > .form-group { min-width: 0; }
.booking-fields label, .booking-address-grid label { font-size: .8rem; margin-bottom: 7px; }
.booking-fields label > span:not(.text-muted), .booking-address-grid label > span:not(.text-muted) { color: var(--red); }
.booking-fields label > span.text-muted { font-size: .72rem; font-weight: 400; }
.booking-field-wide { grid-column: 1 / -1; }
.booking-fields .form-control, .booking-address-grid .form-control { font-size: .9rem; }
.booking-address-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.booking-panel .form-section { border-top: 1px solid var(--line); border-bottom: 0; margin-top: 26px; padding: 24px 0 0; }
.booking-panel .form-section-title { margin-bottom: 18px; font-size: .96rem; }
.booking-fields #phone_code { min-width: 70px; }
.booking-fields #phone_main { min-width: 0; }
.booking-note { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; align-items: flex-start; gap: 10px; color: var(--muted); font-size: .81rem; }
.booking-note > i { color: var(--green); }
.booking-submit-bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 24px; margin-top: 24px; border: 1px solid var(--line); background: #fff; border-radius: 10px; }
.booking-submit-bar strong { display: block; font-size: .9rem; }
.booking-submit-bar p { font-size: .8rem; margin-top: 4px; }
.booking-submit-bar > .d-flex { flex-shrink: 0; }
/* Dates read as a calendar, followed by ordered reserved times. */
.date-badge { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 54px; min-width: 54px; height: 60px; border-radius: 8px; background: #edf5ef; color: var(--green); border: 1px solid #dfeadf; }
.date-badge-day { font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
.date-badge-month { font-size: .69rem; font-weight: 600; }
.schedule-times { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-start; min-width: 180px; }
.schedule-time { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; border: 1px solid #dfe9e1; background: #f6faf7; font-size: .78rem; color: #315d46; white-space: nowrap; }
.result-summary { font-size: .8rem; color: var(--muted); }
@media (max-width: 1199.98px) { .booking-layout { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
@media (max-width: 991.98px) {
    .booking-layout { grid-template-columns: 1fr; }
    .public-portal-label { display: none; }
    .booking-panel .surface-header { min-height: 0; }
}
@media (max-width: 575.98px) {
    .booking-fields, .booking-address-grid { grid-template-columns: 1fr; }
    .booking-field-wide { grid-column: auto; }
    .booking-hours { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px 18px; }
    .booking-hours > span + span { padding-left: 0; border-left: 0; }
    .booking-panel .surface-body, .booking-panel .surface-header { padding: 20px; }
    .booking-submit-bar { flex-direction: column; align-items: flex-start; padding: 20px; gap: 18px; }
    .public-masthead { width: calc(100% - 40px); padding: 22px 0; }
    .public-mission { gap: 12px; }
    .public-mission img { width: 52px; height: 52px; }
    .public-mission strong { font-size: 1.03rem; }
    .public-mission small { font-size: .8rem; }
    .workspace-public .content { padding: 60px 22px; }
    .workspace-public .workspace-footer { width: calc(100% - 40px); }
    .workspace-footer .mission-footer-name { display: block; max-width: 100%; font-size: .72rem; }
}

.schedule-date { display: flex; align-items: center; gap: 16px; }
.schedule-table > thead > tr > th:first-child { width: 34%; }
.schedule-table > thead > tr > th:last-child { width: 16%; }
.schedule-table .table-person { min-width: 140px; }
.schedule-table .date-badge-month { margin-bottom: 2px; }
@media (max-width: 575.98px) { .schedule-date { gap: 12px; } .schedule-table .table-person { min-width: 125px; } }
