/* Zcore FSM — Field-ready interface system */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=JetBrains+Mono:wght@500;600&display=swap');

:root {
    --ink: #19362d;
    --muted-ink: #5b7068;
    --canvas: #ffffff;
    --surface: #ffffff;
    --line: #c5d5ca;
    --signal: #bd5a36;
    --signal-deep: #994529;
    --teal: #19734f;
    --teal-deep: #10573a;
    --sun: #d8a83d;
    --bs-body-bg: var(--canvas);
    --bs-body-color: var(--ink);
    --bs-secondary-color: var(--muted-ink);
    --bs-border-color: var(--line);
    --bs-primary: var(--teal);
    --bs-primary-rgb: 25, 115, 79;
    --bs-success: #287258;
    --bs-danger: #b54638;
    --bs-warning: #dca833;
    --bs-info: #287a93;
    --bs-font-sans-serif: "DM Sans", system-ui, sans-serif;
    --bs-border-radius: .6rem;
    --bs-border-radius-lg: .9rem;
}

[data-bs-theme="dark"] {
    --ink: #e8f2e9;
    --muted-ink: #b5c8b9;
    --canvas: #15271f;
    --surface: #1d342a;
    --line: #4b6557;
    --bs-body-bg: var(--canvas);
    --bs-body-color: var(--ink);
    --bs-secondary-color: var(--muted-ink);
    --bs-border-color: var(--line);
}
[data-bs-theme="dark"] .navbar,
[data-bs-theme="dark"] .mobile-quick-actions {
    background:rgba(21,39,31,.96)!important;
}
[data-bs-theme="dark"] .navbar-nav .nav-link:hover,
[data-bs-theme="dark"] .navbar-nav .nav-link:focus {
    color:#94d5b1;
}
[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .table th {
    background:rgba(42,65,52,.96);
}
[data-bs-theme="dark"] .mobile-quick-actions .btn-primary,
[data-bs-theme="dark"] .nav-tabs .nav-link.active,
[data-bs-theme="dark"] .call-link {
    color:#9cdbb7!important;
}

*,*::before,*::after {
    box-shadow:none!important;
    text-shadow:none!important;
    backdrop-filter:none!important;
}
* { -webkit-tap-highlight-color: rgba(23,107,112,.16); }
html { background: var(--canvas); }
body { min-width: 320px; font-size: 16px; line-height: 1.45; background: var(--canvas); }
body::before { display:none; content:none; background:none; }
h1,h2,h3,h4,h5,h6 { color:var(--ink); font-family:"Barlow Condensed", sans-serif; font-weight:700; letter-spacing:.01em; }
h2,.h2 { font-size:clamp(1.7rem, 7vw, 2.35rem); line-height:.95; }
a { color:var(--teal); }
main.container { max-width:1440px; padding-bottom:2rem; }

/* Navigation: an equipment-panel header rather than a shrunken desktop menu */
.navbar { background:#fff!important; border-color:var(--line)!important; box-shadow:none; backdrop-filter:none; }
.navbar-brand { color:var(--ink); font-family:"Barlow Condensed", sans-serif; font-size:1.45rem; font-weight:700; letter-spacing:.02em; }
.navbar-brand img { width:auto; max-height:32px; object-fit:contain; }
.navbar-toggler { min-width:44px; min-height:44px; padding:.45rem; border-color:var(--line); }
.navbar-nav .nav-link { display:flex; align-items:center; gap:.25rem; padding:.58rem .7rem; color:var(--ink); font-weight:600; white-space:nowrap; border-radius:.45rem; }
.navbar-nav .nav-link:hover,.navbar-nav .nav-link:focus { background:rgba(25,115,79,.1); color:var(--teal-deep); }
.dropdown-menu { border:1px solid var(--line); border-radius:.7rem; box-shadow:none; background:var(--surface); }
.dropdown-item { padding:.7rem .9rem; color:var(--ink); font-weight:500; }
.dropdown-item:active { background:var(--teal); }

/* Keep the expanded Admin navigation on one usable line at laptop widths. */
@media (min-width:1200px) and (max-width:1499.98px) {
    .navbar .container-fluid { padding-right:.75rem!important; padding-left:.75rem!important; }
    .navbar-brand { margin-right:.45rem; font-size:1.1rem; }
    .navbar-brand img { max-height:27px; margin-right:.3rem!important; }
    .navbar-nav .nav-link { gap:.1rem; padding:.48rem .32rem; font-size:.78rem; }
}

/* Inputs and actions */
.btn { min-height:44px; display:inline-flex; justify-content:center; align-items:center; gap:.25rem; padding:.62rem .9rem; font-weight:700; border-radius:.55rem; line-height:1.15; transition:transform .14s ease, background-color .14s ease, border-color .14s ease; }
.btn-sm { min-height:38px; padding:.42rem .68rem; font-size:.82rem; }
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--teal); border-color:var(--teal); }
.btn-primary:hover,.btn-primary:focus { background:var(--teal-deep); border-color:var(--teal-deep); }
.form-control,.form-select { min-height:44px; border-color:var(--line); border-radius:.55rem; font-size:16px; color:var(--ink); background-color:var(--surface); }
.form-control:focus,.form-select:focus { border-color:var(--teal); box-shadow:none; outline:2px solid rgba(25,115,79,.32); outline-offset:1px; }
.form-label { margin-bottom:.35rem; color:var(--muted-ink); font-size:.82rem; font-weight:700; letter-spacing:.025em; }
.input-group .btn { min-height:44px; }
.badge { padding:.38em .6em; font-size:.72em; font-weight:700; letter-spacing:.02em; }

/* Shared working surfaces */
.card { margin-bottom:1rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface); box-shadow:none; }
.card-header { padding:.8rem 1rem; border-bottom-color:var(--line); background:rgba(226,239,228,.64); }
.card-body { padding:1rem; }
.card-footer { padding:.75rem 1rem; border-top-color:var(--line); background:transparent; }
.alert { border-radius:.7rem; border-width:1px; padding:.85rem 1rem; }
.nav-pills,.nav-tabs { gap:.35rem; border-bottom:0; }
.nav-pills .nav-link,.nav-tabs .nav-link { min-height:38px; padding:.45rem .7rem; color:var(--muted-ink); white-space:nowrap; border-radius:.5rem; font-weight:700; }
.nav-pills .nav-link.active { background:var(--teal); }
.nav-tabs .nav-link.active { color:var(--teal-deep); background:rgba(25,115,79,.1); border-color:transparent; }
.table-responsive { position:relative; border:1px solid var(--line); border-radius:.65rem; -webkit-overflow-scrolling:touch; }
.table-responsive::after { content:"Swipe for more"; position:sticky; left:calc(100% - 7.7rem); bottom:.35rem; display:inline-block; padding:.2rem .45rem; border-radius:999px; background:rgba(23,50,58,.82); color:#f5f8f5; font-size:.68rem; letter-spacing:.04em; pointer-events:none; }
.table { margin-bottom:0; --bs-table-bg:transparent; --bs-table-color:var(--ink); --bs-table-border-color:var(--line); }
.table th { padding:.72rem .65rem; color:var(--muted-ink); background:rgba(226,239,228,.64); font-size:.7rem; letter-spacing:.065em; white-space:nowrap; text-transform:uppercase; }
.table td { padding:.7rem .65rem; vertical-align:middle; }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg:rgba(25,115,79,.055); }
@media (min-width:768px) {
    .delivery-challan-table { width:100%; min-width:1240px; table-layout:auto; }
    .delivery-challan-table th,
    .delivery-challan-table td { padding:.58rem .5rem; }
    .delivery-challan-table th:first-child,
    .delivery-challan-table td:first-child { width:9.5rem; min-width:9.5rem; white-space:nowrap; }
    .delivery-challan-table [data-dc-column="date"] { width:6.5rem; min-width:6.5rem; }
    .delivery-challan-table [data-dc-column="customer"] { width:13rem; min-width:11rem; }
    .delivery-challan-table [data-dc-column="call-id"],
    .delivery-challan-table [data-dc-column="items"] { width:4rem; min-width:4rem; }
    .delivery-challan-table th:last-child,
    .delivery-challan-table td:last-child { width:1%; min-width:13rem; white-space:nowrap; }
}
.pagination { flex-wrap:wrap; gap:.2rem; }
.page-link { min-width:40px; min-height:40px; display:grid; place-items:center; border-radius:.45rem!important; color:var(--teal); border-color:var(--line); }

/* Keep repeatable-list actions within reach while users review long item sets. */
.repeatable-items-section { position:relative; }
.repeatable-items-toolbar {
    position:sticky;
    top:.5rem;
    z-index:24;
    flex-wrap:wrap;
    gap:.5rem;
    padding:.55rem .65rem;
    border:1px solid var(--line);
    border-radius:.65rem;
    background:rgba(248,250,247,.96);
    box-shadow:none;
    backdrop-filter:none;
}
.card-header.repeatable-items-toolbar {
    margin:-1px -1px 0;
    border-radius:.8rem .8rem .5rem .5rem;
}
.modal-body .repeatable-items-toolbar { top:0; }
[data-bs-theme="dark"] .repeatable-items-toolbar {
    background:rgba(28,50,56,.96);
}
[data-bs-theme="dark"] .quotation-option-card .card-header.repeatable-items-toolbar {
    color:var(--ink);
    background:rgba(28,50,56,.96);
}

/* Dashboard command board */
.stat-card { position:relative; overflow:hidden; min-height:76px; margin-bottom:0; border:1px solid #dce4df!important; border-radius:.25rem; color:#243b34; background:#fff; box-shadow:none; transition:border-color .14s ease; }
.stat-card:hover { border-color:#aebfb5!important; }
.stat-card .card-body { padding:.65rem .75rem; }
.stat-card .stat-label { max-width:none; color:#a12f2f; font-family:"DM Sans",system-ui,sans-serif; font-size:.82rem; font-weight:700; line-height:1.2; opacity:1; }
.stat-card .stat-value { margin-top:.18rem; color:#243b34; font-family:"DM Sans",system-ui,sans-serif; font-size:1.55rem; font-weight:700; line-height:1; }
.accent-blue,.accent-indigo,.accent-teal,.accent-cyan,.accent-amber,.accent-pink,.accent-red,.accent-orange,.accent-green,.accent-grey,.accent-slate{background:#fff}

/* Call list stays dense, readable, and intentionally compact */
.sc-grid { width:100%; table-layout:fixed; }
.sc-grid th,.sc-grid td { overflow-wrap:anywhere; white-space:normal; vertical-align:top; }
.sc-grid .sc-title { color:var(--ink); }
.sc-grid .sc-desc { color:var(--muted-ink)!important; }
.sc-expand { width:34px; height:34px; min-height:34px; padding:0; }
.sc-type-badge { background:#3c5058; color:#f4f7f3; }
.sc-pending-badge { animation:pending-breathe 2s ease-in-out infinite; }
@keyframes pending-breathe { 50% { transform:scale(1.03); } }
.priority-urgent{border-left:4px solid var(--bs-danger)} .priority-high{border-left:4px solid #ce7c27} .priority-normal{border-left:4px solid #65767a}
.call-link { color:var(--teal-deep)!important; font-weight:700; text-decoration:none; }

/* Customer records */
.customer-search-dropdown { position:absolute; z-index:1000; top:100%; right:0; left:0; display:none; max-height:200px; overflow-y:auto; border:1px solid var(--line); border-radius:.55rem; background:var(--surface); box-shadow:none; }
.customer-search-item { padding:.8rem 1rem; cursor:pointer; border-bottom:1px solid var(--line); }
.customer-search-item:hover { background:rgba(23,107,112,.08); }
.customer-search-item:last-child { border-bottom:0; }
.customer-search-item .customer-name { color:var(--ink); font-weight:600; }
.customer-search-item .customer-details,
.customer-search-no-results { color:var(--muted-ink); }

/* Modals are usable in installed mode and on compact Android devices */
.modal-content { border:1px solid var(--line); border-radius:.85rem; background:var(--surface); }
.modal-header,.modal-footer { padding:.9rem 1rem; border-color:var(--line); }
.modal-title { font-size:1.4rem; }
.modal-body { padding:1rem; }
.modal-dialog-scrollable .close-call-form { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; overflow:hidden; }
.modal-dialog-scrollable .close-call-form .modal-body { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.close-call-footer { display:grid; grid-template-columns:1fr auto auto; gap:.5rem; align-items:center; }
.close-call-footer > * { margin:0; }

/* PWA bottom rail */
.mobile-quick-actions { position:fixed; z-index:1050; right:0; bottom:0; left:0; display:none; padding:.45rem .55rem calc(.45rem + env(safe-area-inset-bottom)); background:rgba(248,250,247,.98); border-top:1px solid var(--line); box-shadow:none; backdrop-filter:none; }
.mobile-quick-actions .container-fluid { padding:0; }
.mobile-quick-actions .row { --bs-gutter-x:.35rem; }
.mobile-quick-actions .btn { min-height:51px; padding:.25rem .1rem; border:0; background:transparent; color:var(--muted-ink); font-size:.67rem; }
.mobile-quick-actions .btn-primary { color:var(--teal-deep); background:rgba(23,107,112,.13); }
.mobile-quick-actions .btn i { margin-bottom:.12rem; font-size:1rem; }
.mobile-quick-actions .btn small { font-size:.67rem; font-weight:700; }
.install-app-fab { position:fixed; z-index:1060; right:16px; bottom:16px; border-radius:999px; box-shadow:none; }

@media (max-width: 767.98px) {
    body { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }
    .navbar { position:sticky; top:0; z-index:1030; }
    .navbar .container-fluid { padding:.4rem .75rem; }
    .navbar-brand img { max-height:27px; }
    .navbar-collapse { max-height:calc(100dvh - 62px); margin-top:.35rem; padding:.45rem 0 .75rem; overflow:auto; border-top:1px solid var(--line); }
    .navbar-nav .nav-link { min-height:43px; padding:.65rem .75rem; }
    .navbar-nav .dropdown-menu { margin:.15rem .35rem; border:0; box-shadow:none; background:rgba(23,107,112,.06); }
    main.container { margin-top:1rem!important; padding-right:.75rem; padding-left:.75rem; }
    h2,.h2 { letter-spacing:0; }
    .d-flex.justify-content-between.align-items-center.mb-3,
    .d-flex.justify-content-between.align-items-center.mb-4 { align-items:flex-start!important; gap:.65rem; }
    .d-flex.justify-content-between.align-items-center > .btn,
    .d-flex.justify-content-between.align-items-center > div:last-child { flex-shrink:0; }
    .card-body { padding:.8rem; }
    .card-header { padding:.7rem .8rem; }
    .nav-pills,.nav-tabs { flex-wrap:nowrap; margin-right:-.75rem; padding-right:.75rem; overflow-x:auto; scrollbar-width:none; }
    .nav-pills::-webkit-scrollbar,.nav-tabs::-webkit-scrollbar { display:none; }
    .stat-grid { --bs-gutter-x:.45rem; --bs-gutter-y:.45rem; }
    .stat-card { min-height:72px; border-radius:.25rem; }
    .stat-card .stat-label { font-size:.76rem; }
    .stat-card .stat-value { font-size:1.7rem; }
    .dashboard-card { margin-bottom:.65rem; }
    .mobile-quick-actions { display:block; }
    .install-app-fab { bottom:86px; }
    .table-responsive::after { display:none; }
    .table { min-width:680px; }
    .sc-grid { min-width:0; }
    .sc-grid th:first-child { width:52px!important; }
    .sc-grid th:last-child { width:64px!important; }
    .sc-grid td { padding:.65rem .42rem; font-size:.88rem; }
    .sc-grid .sc-desc { font-size:.85rem; line-height:1.3; }
    .table td .btn-sm { margin:.08rem; }
    .card-footer .d-flex { flex-wrap:wrap; }
    .card-footer .d-flex .btn:first-child { flex:1 1 55%; }
    .modal { padding-right:0!important; }
    .modal-dialog { width:auto; max-width:none; margin:.55rem; }
    .modal-dialog.modal-dialog-scrollable { height:calc(100dvh - 1.1rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
    .modal-content { max-height:100%; }
    .modal-footer { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
    .modal-footer .btn { width:100%; margin:0!important; }
    .close-call-footer { grid-template-columns:1fr auto; }
    .close-call-footer .close-call-submit { grid-column:1 / -1; grid-row:1; width:100%; }
    .close-call-footer .close-call-add { grid-column:1; grid-row:2; }
    .close-call-footer .close-call-cancel { grid-column:2; grid-row:2; }
    .form-check { min-height:44px; padding:.65rem .65rem .65rem 2.1rem; border-radius:.5rem; background:rgba(23,107,112,.055); }
    .form-check-input { width:1.2rem; height:1.2rem; margin-left:-1.55rem; }
    .customer-search-dropdown { max-height:45dvh; }
    .repeatable-items-toolbar { top:calc(62px + env(safe-area-inset-top)); }
    .modal-body .repeatable-items-toolbar { top:0; }
}

@media (max-width:575.98px) {
    .row > .col-md-6,.row > .col-md-4,.row > .col-md-3 { margin-bottom:.5rem; }
    .btn { font-size:.88rem; }
    .btn-sm { font-size:.78rem; }
    .customers-page-actions,.delivery-actions { width:100%; }
    .customers-page-actions .btn,.delivery-actions .btn { flex:1 1 auto; }
    /* Filters become a calm, single-handed vertical work flow */
    form.row.g-2.align-items-end > .col,
    form.row.g-2.align-items-end > .col-auto { width:100%; flex:0 0 100%; }
    form.row.g-2.align-items-end > .col-auto.d-flex { flex-wrap:wrap; }
    form.row.g-2.align-items-end > .col-auto.d-flex .btn { flex:1 1 calc(50% - .25rem); }
    .table { min-width:620px; }
    .sc-grid { min-width:0; }
    /* Quotation rows are work tickets on a phone, not a miniature spreadsheet. */
    .quotation-table { min-width:0; border:0; }
    .quotation-table thead { display:none; }
    .quotation-table,.quotation-table tbody,.quotation-table tr,.quotation-table td { display:block; width:100%; }
    .quotation-table tr { position:relative; margin:.65rem; width:calc(100% - 1.3rem); padding:.3rem .72rem .72rem; border:1px solid var(--line); border-radius:.65rem; background:var(--surface); }
    .quotation-table td { min-height:0; padding:.42rem 0; border:0; text-align:left!important; }
    .quotation-table td::before { content:attr(data-label); display:block; margin-bottom:.12rem; color:var(--muted-ink); font-size:.66rem; font-weight:700; letter-spacing:.065em; text-transform:uppercase; }
    .quotation-table td[data-label="Quote no."] { font-family:"JetBrains Mono",monospace; color:var(--teal-deep); }
    .quotation-table td[data-label="Actions"] { display:flex; position:static; flex-wrap:wrap; gap:.35rem; width:100%; max-width:none; margin-top:.3rem; padding-top:.65rem; border-top:1px solid var(--line); text-align:left!important; }
    .quotation-table td[data-label="Actions"]::before { display:block; flex:0 0 100%; width:100%; }
    .quotation-table td[data-label="Actions"] .btn { margin:0; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

@media print {
    .navbar,.mobile-quick-actions,.btn,.modal,.alert { display:none!important; }
    body { background:#fff; padding:0; }
    .card { box-shadow:none; }
}

/* Release polish — quiet green field-system accents, without changing page structure. */
.btn-secondary { --bs-btn-bg:#5d7168; --bs-btn-border-color:#5d7168; --bs-btn-hover-bg:#455950; --bs-btn-hover-border-color:#455950; }
.btn-outline-secondary { --bs-btn-color:#52665c; --bs-btn-border-color:#aebfb3; --bs-btn-hover-bg:#52665c; --bs-btn-hover-border-color:#52665c; }
.btn-warning { --bs-btn-bg:#d6a63d; --bs-btn-border-color:#d6a63d; --bs-btn-hover-bg:#bd8d28; --bs-btn-hover-border-color:#bd8d28; --bs-btn-color:#243128; --bs-btn-hover-color:#243128; }
.btn-info { --bs-btn-bg:#397a69; --bs-btn-border-color:#397a69; --bs-btn-hover-bg:#286653; --bs-btn-hover-border-color:#286653; }
.btn-outline-primary { --bs-btn-color:var(--teal); --bs-btn-border-color:#7fac94; --bs-btn-hover-bg:var(--teal); --bs-btn-hover-border-color:var(--teal); }
.form-control::placeholder { color:#82948a; opacity:1; }
.form-check-input:checked { background-color:var(--teal); border-color:var(--teal); }
.form-control,.form-select { transition:border-color .14s ease, box-shadow .14s ease, background-color .14s ease; }
.table > tbody > tr:last-child > * { border-bottom-width:0; }
.table-responsive { background:var(--surface); }
.alert-success { --bs-alert-color:#1d5d40; --bs-alert-bg:#e1f1e5; --bs-alert-border-color:#b8d9c0; }
.alert-info { --bs-alert-color:#245f52; --bs-alert-bg:#e0f0ea; --bs-alert-border-color:#b7d8cb; }
.alert-warning { --bs-alert-color:#745515; --bs-alert-bg:#fbf1d5; --bs-alert-border-color:#ead396; }
.modal-content { box-shadow:none; }
footer.bg-light { background:rgba(226,239,228,.58)!important; border-color:var(--line)!important; }
.login-page main.container { max-width:1120px; margin-top:clamp(2rem,8vh,6rem)!important; }
.login-page .card { overflow:hidden; box-shadow:none; }
.login-page .card-header { padding:1.35rem 1.25rem 1.05rem; background:linear-gradient(135deg,#e5f1e6,#f8fbf6); }
.login-page .card-header img { max-height:52px; width:auto; object-fit:contain; }
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select { background-color:#193027; color:var(--ink); }
[data-bs-theme="dark"] .card-header,[data-bs-theme="dark"] .table th { background:rgba(42,65,52,.96); }
[data-bs-theme="dark"] footer.bg-light { background:rgba(25,47,37,.85)!important; }
[data-bs-theme="dark"] .login-page .card-header { background:linear-gradient(135deg,#203b2e,#1c3328); }
@media (hover:hover) {
    .card:not(.stat-card) { transition:border-color .16s ease; }
    .card:not(.stat-card):hover { border-color:#9fbea8; box-shadow:none; }
}