/* ==========================================================================
   Module-specific UI
   ========================================================================== */

/* --------------------------------------------------------------------------
   Login
   -------------------------------------------------------------------------- */
.auth-body {
    min-height: 100vh;
    background:
        radial-gradient(900px 600px at 0% 0%, #e7fbf7 0%, transparent 65%),
        radial-gradient(800px 500px at 100% 100%, #edf5ff 0%, transparent 70%),
        #f6f9fa;
}
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(460px, .95fr); }
.auth-hero { position: relative; overflow: hidden; padding: 46px clamp(32px, 5vw, 78px); display: flex; flex-direction: column; background: linear-gradient(140deg, #f0fdfa 0%, #f7fcfb 46%, #eef6ff 100%); border-right: 1px solid #e1ecec; }
.auth-hero::before { content: ""; position: absolute; width: 560px; height: 560px; border-radius: 50%; right: -220px; top: -230px; border: 1px solid rgba(13,148,136,.13); box-shadow: 0 0 0 55px rgba(13,148,136,.035), 0 0 0 110px rgba(13,148,136,.02); }
.auth-hero::after { content: ""; position: absolute; left: -190px; bottom: -250px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(37,99,235,.07), transparent 68%); }
.auth-hero-inner { position: relative; z-index: 1; display: flex; flex-direction: column; min-height: 100%; }
.auth-brand { display: flex; align-items: center; gap: 12px; color: var(--ink); }
.auth-brand img { border-radius: 13px; box-shadow: 0 14px 28px -18px rgba(15,118,110,.65); }
.auth-brand strong { display: block; font-size: 18px; letter-spacing: -.03em; font-weight: 780; line-height: 1.15; }
.auth-brand > span { display: block; }
.auth-brand > span > span { display: block; font-size: 9.6px; letter-spacing: .13em; text-transform: uppercase; color: #62807d; font-weight: 680; margin-top: 3px; }
.auth-copy { max-width: 570px; margin: auto 0; padding: 52px 0 34px; }
.auth-kicker { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid #c9e9e2; border-radius: 999px; background: rgba(255,255,255,.65); font-size: 9.3px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #0f766e; }
.auth-copy h1 { margin-top: 18px; font-size: clamp(34px, 3.8vw, 50px); line-height: 1.08; letter-spacing: -.045em; color: var(--ink); font-weight: 780; }
.auth-copy h1 span { color: var(--primary); }
.auth-copy > p { max-width: 480px; margin-top: 17px; font-size: 13px; line-height: 1.7; color: #587183; }
.auth-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: 520px; margin-top: 27px; }
.auth-feature { display: flex; gap: 9px; padding: 11px 12px; border: 1px solid rgba(210,228,227,.9); border-radius: 11px; background: rgba(255,255,255,.62); backdrop-filter: blur(6px); }
.auth-feature-icon { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 7px; background: #e2f7f2; color: #0f766e; flex: 0 0 auto; }
.auth-feature strong { display: block; font-size: 10.3px; font-weight: 700; color: #274859; }
.auth-feature span { display: block; font-size: 9.2px; color: #708998; margin-top: 1px; }
.auth-proof { display: flex; align-items: center; gap: 20px; padding-top: 27px; border-top: 1px solid #dfebec; max-width: 520px; }
.auth-proof-item strong { display: block; font-size: 17px; letter-spacing: -.03em; color: #153e4a; }
.auth-proof-item span { display: block; font-size: 8.8px; color: #7b928f; letter-spacing: .04em; }
.auth-hero-foot { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; font-size: 9.3px; color: #7f9593; }
.auth-panel { display: flex; align-items: center; justify-content: center; padding: 42px 30px; background: rgba(255,255,255,.58); }
.auth-card { width: min(400px, 100%); }
.auth-card-head { margin-bottom: 25px; }
.auth-card-head .mobile-brand { display: none; }
.auth-card-head h2 { font-size: 26px; letter-spacing: -.035em; color: var(--ink); font-weight: 770; }
.auth-card-head p { margin-top: 5px; font-size: 11.5px; color: var(--muted); }
.auth-form { display: flex; flex-direction: column; gap: 15px; }
.auth-field { display: flex; flex-direction: column; gap: 6px; }
.auth-field label { font-size: 10.6px; font-weight: 680; color: #395367; }
.auth-input-wrap { position: relative; display: flex; align-items: center; }
.auth-input-wrap > .icon { position: absolute; left: 11px; color: #8aa1b1; pointer-events: none; }
.auth-input-wrap .input { height: 43px; padding-left: 36px; border-radius: 9px; font-size: 12px; background: #fff; }
.auth-input-wrap .input.has-toggle { padding-right: 38px; }
.password-toggle { position: absolute; right: 7px; width: 28px; height: 28px; display: grid; place-items: center; border: 0; background: transparent; color: #8aa1b1; border-radius: 6px; }
.password-toggle:hover { background: #f2f7f7; color: #496678; }
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 10px; }
.auth-note { display: flex; align-items: flex-start; gap: 7px; padding: 9px 11px; border-radius: 8px; background: #f7fafb; border: 1px solid #e7eff2; font-size: 9.3px; color: #728897; line-height: 1.45; }
.auth-note .icon { color: #7ba29a; margin-top: 1px; }
.auth-demo { margin-top: 17px; padding: 12px 13px; border: 1px dashed #c9e2dd; border-radius: 10px; background: #f6fcfb; }
.auth-demo strong { display: block; font-size: 9.5px; color: #3c6c66; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.auth-demo code { font-family: var(--mono); font-size: 9.5px; color: #275b55; background: #e9f7f4; border: 1px solid #d7eeea; padding: 2px 5px; border-radius: 4px; }
.auth-demo p { margin-top: 3px; font-size: 9.2px; color: #78918d; }
.auth-footer { margin-top: 26px; font-size: 9.2px; color: #8ba0af; display: flex; align-items: center; justify-content: space-between; gap: 8px; }

@media (max-width: 980px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-hero { display: none; }
    .auth-panel { min-height: 100vh; padding: 30px 20px; background: linear-gradient(160deg, #f3fbf9, #f7fafc 70%); }
    .auth-card-head .mobile-brand { display: flex; align-items: center; gap: 9px; margin-bottom: 30px; }
    .auth-card-head .mobile-brand strong { font-size: 16px; letter-spacing: -.02em; }
}

/* --------------------------------------------------------------------------
   Hospital cards
   -------------------------------------------------------------------------- */
.hospital-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hospital-card { position: relative; padding: 19px; background: #fff; border: 1px solid var(--border); border-radius: 15px; box-shadow: var(--shadow-sm); transition: box-shadow .18s, border-color .18s, transform .18s; }
.hospital-card:hover { border-color: #cfe4df; box-shadow: var(--shadow-md); transform: translateY(-1px); }
.hospital-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 11px; }
.hospital-code { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 5px; background: #f2f8f7; border: 1px solid #e2efec; font-family: var(--mono); font-size: 8.8px; font-weight: 650; color: #52756f; }
.hospital-card h3 { font-size: 17px; letter-spacing: -.025em; font-weight: 750; color: var(--ink); line-height: 1.25; }
.hospital-card h3 a { color: inherit; }
.hospital-card h3 a:hover { color: var(--primary); }
.hospital-address { display: flex; align-items: flex-start; gap: 5px; margin-top: 6px; font-size: 9.8px; color: var(--muted); line-height: 1.45; }
.hospital-address .icon { color: #92a8b5; margin-top: 1px; }
.hospital-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 14px; border: 1px solid #e6eef1; border-radius: 10px; background: #e6eef1; overflow: hidden; }
.hospital-stat { background: #f8fbfb; padding: 10px 8px; text-align: center; }
.hospital-stat span { display: block; font-size: 8.1px; letter-spacing: .085em; text-transform: uppercase; font-weight: 730; color: #7f95a5; }
.hospital-stat strong { display: block; margin-top: 3px; font-size: 16px; font-weight: 760; color: var(--ink); letter-spacing: -.02em; }
.hospital-stat strong.amber { color: var(--amber); }
.hospital-stat strong.teal { color: var(--primary-bright); }
.hospital-card-foot { display: flex; align-items: center; gap: 9px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #edf2f5; }
.hospital-contact { min-width: 0; }
.hospital-contact strong { display: block; font-size: 9.9px; font-weight: 660; color: #3e586b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hospital-contact span { display: block; font-size: 9px; color: #8fa1af; }
.hospital-actions { display: flex; align-items: center; gap: 5px; margin-left: auto; }

/* Hospital profile */
.profile-hero { position: relative; overflow: hidden; padding: 24px; border: 1px solid #dbe9e7; border-radius: 17px; background: linear-gradient(120deg, #f8fdfc 0%, #f2fbf9 52%, #f4f8ff 100%); box-shadow: var(--shadow-sm); margin-bottom: 18px; }
.profile-hero::after { content: ""; position: absolute; right: -70px; top: -100px; width: 300px; height: 300px; border-radius: 50%; border: 1px solid rgba(13,148,136,.11); box-shadow: 0 0 0 38px rgba(13,148,136,.028), 0 0 0 76px rgba(13,148,136,.018); }
.profile-hero-main { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 15px; }
.profile-avatar { width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg, #0f766e, #14b8a6); color: #fff; font-size: 17px; font-weight: 760; box-shadow: 0 12px 24px -16px rgba(15,118,110,.55); flex: 0 0 auto; }
.profile-hero-copy { min-width: 0; flex: 1; }
.profile-code-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 4px; }
.profile-hero h1 { font-size: 24px; line-height: 1.2; letter-spacing: -.035em; color: var(--ink); font-weight: 770; }
.profile-hero-meta { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; margin-top: 6px; font-size: 10.2px; color: #587183; }
.profile-hero-meta span { display: inline-flex; align-items: center; gap: 4px; }
.profile-hero-meta .icon { color: #83a09b; }
.profile-hero-actions { position: relative; z-index: 2; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.profile-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 19px; position: relative; z-index: 1; }
.profile-kpi { padding: 11px 12px; border: 1px solid rgba(214,231,229,.95); border-radius: 10px; background: rgba(255,255,255,.7); }
.profile-kpi span { display: block; font-size: 8.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 720; color: #7f9793; }
.profile-kpi strong { display: block; margin-top: 2px; font-size: 19px; letter-spacing: -.025em; font-weight: 770; color: #173f45; }
.profile-kpi strong.teal { color: #0f766e; }

.nav-tabs { display: flex; align-items: center; gap: 3px; border-bottom: 1px solid var(--border); margin-bottom: 16px; overflow-x: auto; }
.nav-tab { position: relative; padding: 10px 12px; border: 0; background: none; font-size: 10.4px; font-weight: 650; color: #71889a; white-space: nowrap; }
.nav-tab:hover { color: var(--ink); }
.nav-tab.is-active { color: var(--primary-strong); }
.nav-tab.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--primary-bright); }
.tab-panel { display: none; }
.tab-panel.is-active { display: block; }

/* --------------------------------------------------------------------------
   Equipment
   -------------------------------------------------------------------------- */
.equipment-hero .profile-avatar { background: linear-gradient(135deg, #0c4a6e, #0e7490); }
.asset-code { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 5px; background: rgba(255,255,255,.8); border: 1px solid #d4e7e5; font-family: var(--mono); font-size: 8.8px; font-weight: 650; color: #406862; }
.inline-facts { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fact { display: inline-flex; align-items: center; gap: 4px; font-size: 9.8px; color: #587183; }
.fact .icon { color: #8fa7a3; }
.fact-sep { width: 3px; height: 3px; border-radius: 50%; background: #b8c9c7; }

.profile-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(300px, .9fr); gap: 18px; align-items: start; }
.profile-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.side-stack { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(var(--topbar-h) + 16px); }
.section-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-bottom: 1px solid #edf2f5; }
.section-card-head h2 { font-size: 12.3px; font-weight: 730; color: var(--ink); display: flex; align-items: center; gap: 7px; }
.section-card-head h2 .icon { color: var(--primary); }
.section-card-head .head-action { margin-left: auto; }
.section-card-body { padding: 17px 18px; }
.detail-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
.detail-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 20px; }
.detail-line { display: flex; flex-direction: column; gap: 2px; }
.detail-line span { font-size: 8.9px; font-weight: 620; color: #899dab; }
.detail-line strong { font-size: 10.9px; font-weight: 580; color: #2c4558; }
.detail-line strong.mono { font-size: 10.2px; }

.contract-highlight { border: 1px solid #d8ebe7; border-radius: 11px; background: linear-gradient(135deg, #f7fdfc, #f0faf8); padding: 13px 14px; margin-top: 13px; }
.contract-highlight-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.contract-highlight-top strong { font-size: 10.6px; color: #1e4e49; }
.contract-highlight .terms-box { background: rgba(255,255,255,.72); border-color: #dcece9; margin-top: 9px; }

.status-panel { padding: 15px 18px; }
.status-panel-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f4f6; }
.status-panel-row:last-child { border-bottom: 0; }
.status-panel-row span { font-size: 9.6px; color: #738a9b; }
.status-panel-row strong { font-size: 10.3px; font-weight: 680; color: #2d475a; text-align: right; }
.status-panel-row strong.danger { color: var(--red); }
.status-panel-row strong.success { color: var(--green); }
.status-panel-row strong.amber { color: var(--amber); }

.mini-timeline { padding: 4px 18px 16px; }
.timeline-item { position: relative; display: flex; gap: 11px; padding: 10px 0 10px 1px; }
.timeline-item::before { content: ""; position: absolute; left: 6px; top: 28px; bottom: -9px; width: 1px; background: #e7eff1; }
.timeline-item:last-child::before { display: none; }
.timeline-dot { width: 13px; height: 13px; border-radius: 50%; border: 3px solid #fff; background: #14b8a6; box-shadow: 0 0 0 1px #a7e5db; flex: 0 0 auto; margin-top: 3px; z-index: 1; }
.timeline-dot.danger { background: #ef4444; box-shadow: 0 0 0 1px #fecaca; }
.timeline-dot.amber { background: #f59e0b; box-shadow: 0 0 0 1px #fde68a; }
.timeline-dot.blue { background: #3b82f6; box-shadow: 0 0 0 1px #bfdbfe; }
.timeline-copy { min-width: 0; }
.timeline-copy-head { display: flex; align-items: baseline; gap: 8px; }
.timeline-copy-head strong { font-size: 10.6px; font-weight: 690; color: #2b4356; }
.timeline-copy-head time { margin-left: auto; font-size: 8.7px; color: #98aab7; white-space: nowrap; }
.timeline-copy p { margin-top: 2px; font-size: 9.7px; color: #60798b; line-height: 1.5; }
.timeline-copy small { display: block; margin-top: 2px; font-size: 8.7px; color: #91a3b0; }

.document-list { display: flex; flex-direction: column; }
.document-item { display: flex; align-items: center; gap: 9px; padding: 9px 18px; border-bottom: 1px solid #f0f4f6; }
.document-item:last-child { border-bottom: 0; }
.document-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; background: #f3f8fa; color: #6f8a9c; }
.document-copy { min-width: 0; flex: 1; }
.document-copy strong { display: block; font-size: 9.8px; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.document-copy span { display: block; font-size: 8.5px; color: #91a3b0; }
.document-actions { display: flex; gap: 2px; }

/* --------------------------------------------------------------------------
   Breakdown calls
   -------------------------------------------------------------------------- */
.call-queue { display: flex; flex-direction: column; gap: 11px; }
.call-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: 13px; overflow: hidden; box-shadow: var(--shadow-xs); transition: border-color .15s, box-shadow .15s; }
.call-card:hover { border-color: #cadfd9; box-shadow: var(--shadow-sm); }
.call-card.priority-critical { border-left: 3px solid #ef4444; }
.call-card.priority-high { border-left: 3px solid #f59e0b; }
.call-card.priority-medium { border-left: 3px solid #3b82f6; }
.call-card.priority-low { border-left: 3px solid #94a3b8; }
.call-card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 13px 15px 10px; }
.call-ticket { font-family: var(--mono); font-size: 10px; font-weight: 700; color: #2c5a63; background: #f1f8f7; border: 1px solid #dfeeeb; padding: 3px 7px; border-radius: 5px; }
.call-card-title { font-size: 12px; font-weight: 720; color: var(--ink); }
.call-card-title a { color: inherit; }
.call-card-title a:hover { color: var(--primary); }
.call-head-badges { display: flex; align-items: center; gap: 5px; margin-left: auto; }
.call-card-meta { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; padding: 0 15px 12px; font-size: 9.5px; color: var(--muted); }
.call-card-meta span { display: inline-flex; align-items: center; gap: 4px; }
.call-card-meta .icon { color: #97a9b5; }
.call-card-body { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(150px, .8fr) minmax(160px, .8fr); gap: 16px; padding: 13px 15px; border-top: 1px solid #eef3f5; background: #fbfdfd; }
.call-issue-label { font-size: 8.4px; text-transform: uppercase; letter-spacing: .09em; font-weight: 750; color: #869baa; margin-bottom: 3px; }
.call-issue p { font-size: 9.9px; line-height: 1.5; color: #3f596b; }
.call-field-label { font-size: 8.4px; text-transform: uppercase; letter-spacing: .09em; font-weight: 750; color: #869baa; margin-bottom: 3px; }
.call-field-value { font-size: 9.7px; color: #395568; }
.call-sla { font-size: 9.8px; font-weight: 690; color: #8a640d; }
.call-sla.overdue { color: #b91c1c; }
.call-sla.met { color: #047857; }
.call-card-foot { display: flex; align-items: center; gap: 8px; padding: 9px 15px; border-top: 1px solid #eef3f5; font-size: 9.2px; color: #91a3b0; }
.call-card-foot .right { margin-left: auto; display: flex; gap: 5px; }

.call-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(330px, 1fr); gap: 18px; align-items: start; }
.call-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.call-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(var(--topbar-h) + 16px); }
.call-header-card { overflow: hidden; }
.call-header-top { display: flex; align-items: flex-start; gap: 12px; padding: 17px 18px 12px; }
.call-header-top h2 { font-size: 18px; letter-spacing: -.025em; line-height: 1.25; color: var(--ink); font-weight: 750; }
.call-header-top .meta-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 5px; font-size: 9.8px; color: var(--muted); }
.call-header-badges { display: flex; align-items: center; gap: 5px; margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
.call-issue-box { margin: 0 18px 16px; padding: 13px 14px; border: 1px solid #efe4d3; border-radius: 10px; background: linear-gradient(135deg, #fffdf7, #fffaf0); }
.call-issue-box.danger { border-color: #f3d4d4; background: #fffafa; }
.call-issue-box .label { display: flex; align-items: center; gap: 5px; font-size: 8.5px; text-transform: uppercase; letter-spacing: .09em; font-weight: 750; color: #9a7a42; margin-bottom: 4px; }
.call-issue-box.danger .label { color: #a55b5b; }
.call-issue-box p { font-size: 11px; line-height: 1.6; color: #4a4135; }
.call-issue-box.danger p { color: #5e4040; }
.call-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #eef3f5; }
.call-fact { padding: 11px 15px; border-right: 1px solid #eef3f5; }
.call-fact:last-child { border-right: 0; }
.call-fact span { display: block; font-size: 8.2px; text-transform: uppercase; letter-spacing: .085em; font-weight: 740; color: #8a9eac; }
.call-fact strong { display: block; margin-top: 2px; font-size: 10.2px; font-weight: 660; color: #2f4a5d; }

.call-updates { display: flex; flex-direction: column; }
.call-update { display: flex; gap: 10px; padding: 13px 18px; border-bottom: 1px solid #f0f4f6; }
.call-update:last-child { border-bottom: 0; }
.call-update-dot { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #f1f8f7; color: var(--primary); flex: 0 0 auto; }
.call-update-dot.comment { background: #eff6ff; color: #2563eb; }
.call-update-dot.assignment { background: #f5f3ff; color: #6d28d9; }
.call-update-dot.part { background: #fffbeb; color: #b45309; }
.call-update-copy { min-width: 0; flex: 1; }
.call-update-head { display: flex; align-items: baseline; gap: 7px; }
.call-update-head strong { font-size: 9.8px; font-weight: 690; color: #2e475a; }
.call-update-head time { margin-left: auto; font-size: 8.6px; color: #98aab7; }
.call-update-copy p { margin-top: 3px; font-size: 9.9px; line-height: 1.55; color: #526d7f; }
.comment-form { padding: 12px 18px 16px; border-top: 1px solid #edf2f5; background: #fbfdfd; }

.sla-banner { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border: 1px solid #f2dfb2; border-radius: 10px; background: #fffbeb; }
.sla-banner.overdue { border-color: #f4caca; background: #fef2f2; }
.sla-banner.met { border-color: #c6ebd9; background: #f0fdf6; }
.sla-banner .icon { color: #b45309; }
.sla-banner.overdue .icon { color: #b91c1c; }
.sla-banner.met .icon { color: #047857; }
.sla-banner strong { display: block; font-size: 9.8px; font-weight: 700; color: #855b0e; }
.sla-banner.overdue strong { color: #991b1b; }
.sla-banner.met strong { color: #065f46; }
.sla-banner span { display: block; font-size: 8.8px; color: #a07b35; }
.sla-banner.overdue span { color: #b96868; }
.sla-banner.met span { color: #4b8c74; }

.ticket-timeline { display: flex; flex-direction: column; gap: 0; }
.ticket-step { display: flex; gap: 9px; position: relative; padding-bottom: 14px; }
.ticket-step:last-child { padding-bottom: 0; }
.ticket-step::before { content: ""; position: absolute; left: 7px; top: 17px; bottom: 0; width: 1px; background: #e7eff1; }
.ticket-step:last-child::before { display: none; }
.ticket-step-dot { width: 15px; height: 15px; border-radius: 50%; border: 3px solid #eef4f4; background: #cbd5e1; flex: 0 0 auto; margin-top: 2px; z-index: 1; }
.ticket-step.done .ticket-step-dot { background: var(--primary-bright); border-color: #d8f5ef; }
.ticket-step.current .ticket-step-dot { background: #f59e0b; border-color: #fef3c7; box-shadow: 0 0 0 3px rgba(245,158,11,.1); }
.ticket-step strong { display: block; font-size: 9.7px; font-weight: 660; color: #365062; }
.ticket-step span { display: block; font-size: 8.7px; color: #93a5b2; }
.parts-table { width: 100%; font-size: 9.7px; }
.parts-table td { padding: 6px 0; border-bottom: 1px solid #f1f5f7; }
.parts-table td:last-child { text-align: right; font-weight: 650; }
.parts-table tr:last-child td { border-bottom: 0; }

/* --------------------------------------------------------------------------
   Maintenance
   -------------------------------------------------------------------------- */
.maintenance-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.summary-tile { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-xs); }
.summary-icon { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 10px; background: #f1f8f7; color: var(--primary); flex: 0 0 auto; }
.summary-icon.amber { background: #fffbeb; color: #b45309; }
.summary-icon.red { background: #fef2f2; color: #b91c1c; }
.summary-icon.blue { background: #eff6ff; color: #2563eb; }
.summary-copy span { display: block; font-size: 8.8px; color: #7e94a4; font-weight: 630; }
.summary-copy strong { display: block; font-size: 17px; font-weight: 760; color: var(--ink); letter-spacing: -.02em; line-height: 1.25; }
.summary-copy strong small { font-size: 9px; color: #8ca0ae; font-weight: 600; }
.summary-tile .badge { margin-left: auto; }

.schedule-list { display: flex; flex-direction: column; }
.schedule-row { display: flex; align-items: center; gap: 13px; padding: 14px 18px; border-bottom: 1px solid #eef3f5; transition: background .15s; }
.schedule-row:last-child { border-bottom: 0; }
.schedule-row:hover { background: #fbfdfd; }
.schedule-row.is-overdue { background: #fffbfb; }
.schedule-asset { display: flex; align-items: center; gap: 10px; min-width: 260px; flex: 1; }
.schedule-avatar { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 9px; background: #f2f8f9; border: 1px solid #e6eff2; color: #5c7a8b; flex: 0 0 auto; }
.schedule-copy { min-width: 0; }
.schedule-code { display: inline-block; font-family: var(--mono); font-size: 8.3px; color: #7a929f; margin-bottom: 1px; }
.schedule-copy strong { display: block; font-size: 10.7px; font-weight: 690; color: var(--ink); line-height: 1.3; }
.schedule-copy span { display: block; font-size: 9.2px; color: var(--muted); margin-top: 1px; }
.schedule-copy span strong { display: inline; font-size: inherit; color: #446072; font-weight: 650; }
.schedule-dates { display: flex; gap: 26px; margin-left: auto; flex: 0 0 auto; }
.schedule-date { text-align: right; }
.schedule-date span { display: block; font-size: 8px; text-transform: uppercase; letter-spacing: .075em; font-weight: 740; color: #8da0ad; }
.schedule-date strong { display: block; font-size: 9.8px; font-weight: 690; color: #355163; margin-top: 1px; white-space: nowrap; }
.schedule-date strong.danger { color: var(--red); }
.schedule-date strong.warning { color: var(--amber); }
.schedule-date strong.success { color: var(--green); }
.schedule-actions { flex: 0 0 auto; }
.schedule-actions .btn { min-width: 102px; }

/* --------------------------------------------------------------------------
   Contracts
   -------------------------------------------------------------------------- */
.contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.contract-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-xs); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.contract-card:hover { border-color: #cfe4df; box-shadow: var(--shadow-sm); }
.contract-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 16px 18px 0; }
.contract-asset-code { font-family: var(--mono); font-size: 8.6px; color: #7d94a2; }
.contract-card h3 { font-size: 14.5px; letter-spacing: -.02em; font-weight: 740; color: var(--ink); margin-top: 2px; }
.contract-card h3 a { color: inherit; }
.contract-card h3 a:hover { color: var(--primary); }
.contract-hospital { font-size: 9.6px; color: var(--muted); margin-top: 1px; }
.contract-type { flex: 0 0 auto; }
.contract-facts { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px; margin: 13px 18px 0; border: 1px solid #e8eff2; border-radius: 9px; background: #e8eff2; overflow: hidden; }
.contract-fact { background: #f9fbfc; padding: 8px 10px; }
.contract-fact span { display: block; font-size: 7.8px; text-transform: uppercase; letter-spacing: .075em; font-weight: 740; color: #8da0ad; }
.contract-fact strong { display: block; font-size: 9.5px; color: #385366; font-weight: 660; margin-top: 2px; }
.contract-fact strong.cost { color: #0f766e; }
.contract-terms { margin: 12px 18px 0; padding: 9px 10px; border-radius: 8px; background: #f8fafb; border: 1px solid #edf2f5; font-size: 9.2px; line-height: 1.5; color: #5b7384; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.contract-card-foot { display: flex; align-items: center; gap: 8px; padding: 11px 18px; margin-top: 13px; border-top: 1px solid #eef3f5; background: #fcfdfd; }
.contract-card-foot .warranty { font-size: 8.8px; color: #8a9eac; }
.contract-card-foot .actions { margin-left: auto; display: flex; gap: 5px; }
.contract-banner { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: #f0fdfa; border: 1px solid #c7ebe4; margin-bottom: 16px; font-size: 10px; color: #37665f; }
.contract-banner .icon { color: var(--primary); }

/* --------------------------------------------------------------------------
   Inventory
   -------------------------------------------------------------------------- */
.stock-number { display: inline-flex; align-items: baseline; gap: 3px; font-size: 12px; font-weight: 730; }
.stock-number small { font-size: 8.4px; font-weight: 600; color: #8da0ad; }
.stock-track { width: 72px; height: 5px; border-radius: 99px; background: #edf2f4; overflow: hidden; margin-top: 4px; }
.stock-track span { display: block; height: 100%; border-radius: inherit; background: #10b981; }
.stock-track span.warning { background: #f59e0b; }
.stock-track span.danger { background: #ef4444; }
.inventory-layout { display: grid; grid-template-columns: minmax(0, 2.25fr) minmax(280px, .85fr); gap: 18px; align-items: start; }
.movement-list { display: flex; flex-direction: column; }
.movement-item { display: flex; align-items: center; gap: 8px; padding: 9px 16px; border-bottom: 1px solid #f0f4f6; }
.movement-item:last-child { border-bottom: 0; }
.movement-sign { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 6px; font-size: 9px; font-weight: 800; flex: 0 0 auto; }
.movement-sign.in { background: #ecfdf5; color: #047857; }
.movement-sign.out { background: #fef2f2; color: #b91c1c; }
.movement-sign.adjustment { background: #eff6ff; color: #1d4ed8; }
.movement-copy { min-width: 0; flex: 1; }
.movement-copy strong { display: block; font-size: 9.4px; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.movement-copy span { display: block; font-size: 8.3px; color: #92a4b1; }
.movement-qty { font-size: 9.4px; font-weight: 720; color: #3d586b; }
.movement-qty.in { color: #047857; }
.movement-qty.out { color: #b91c1c; }
.stock-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* --------------------------------------------------------------------------
   Reports
   -------------------------------------------------------------------------- */
.report-hero { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border: 1px solid #dce9e7; border-radius: 14px; background: linear-gradient(120deg, #f9fdfc, #f1faf8 60%, #f5f9ff); margin-bottom: 16px; }
.report-hero-icon { width: 42px; height: 42px; border-radius: 11px; background: #e2f7f2; color: var(--primary); display: grid; place-items: center; }
.report-hero h2 { font-size: 15px; font-weight: 740; color: var(--ink); }
.report-hero p { font-size: 9.8px; color: #6d8984; margin-top: 1px; }
.report-hero-actions { margin-left: auto; display: flex; gap: 7px; flex-wrap: wrap; }
.report-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.report-metric { padding: 13px 14px; border: 1px solid var(--border); border-radius: 11px; background: #fff; box-shadow: var(--shadow-xs); }
.report-metric span { display: block; font-size: 8.4px; text-transform: uppercase; letter-spacing: .07em; font-weight: 720; color: #8197a6; }
.report-metric strong { display: block; font-size: 19px; font-weight: 760; letter-spacing: -.025em; color: var(--ink); margin-top: 2px; }
.report-metric small { display: block; font-size: 8.5px; color: #90a2af; margin-top: 1px; }
.report-metric strong.teal { color: var(--primary); }
.report-metric strong.amber { color: var(--amber); }
.report-metric strong.red { color: var(--red); }

.chart-card { padding: 16px 18px; }
.chart-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.chart-card-head h3 { font-size: 11.6px; font-weight: 720; color: var(--ink); }
.chart-card-head p { font-size: 9.2px; color: var(--muted); margin-top: 1px; }
.bar-chart { display: flex; align-items: flex-end; gap: 9px; height: 190px; padding-top: 10px; border-bottom: 1px solid #e9eff2; }
.bar-group { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; gap: 4px; min-width: 0; }
.bar-pair { display: flex; align-items: flex-end; justify-content: center; gap: 3px; width: 100%; height: 100%; }
.chart-bar { width: 9px; border-radius: 3px 3px 0 0; min-height: 2px; background: #a7f3d0; position: relative; }
.chart-bar.primary { background: #0d9488; }
.bar-group > span { font-size: 8px; color: #8fa2b0; white-space: nowrap; }
.chart-legend { display: flex; align-items: center; gap: 12px; font-size: 8.8px; color: #758b9a; margin-top: 8px; }
.legend-box { width: 8px; height: 8px; border-radius: 2px; background: #a7f3d0; }
.legend-box.primary { background: #0d9488; }

.donut-wrap { display: flex; align-items: center; gap: 22px; }
.donut { position: relative; width: 132px; height: 132px; border-radius: 50%; flex: 0 0 auto; background: conic-gradient(#0d9488 0 var(--p1, 70%), #f59e0b var(--p1, 70%) var(--p2, 85%), #ef4444 var(--p2, 85%) 100%); display: grid; place-items: center; }
.donut::after { content: ""; width: 88px; height: 88px; border-radius: 50%; background: #fff; position: absolute; }
.donut-center { position: relative; z-index: 1; text-align: center; }
.donut-center strong { display: block; font-size: 22px; font-weight: 760; color: var(--ink); letter-spacing: -.03em; line-height: 1; }
.donut-center span { display: block; font-size: 8.2px; color: #8da0ad; margin-top: 2px; }
.donut-legend { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.donut-legend-item { display: flex; align-items: center; gap: 6px; font-size: 9.3px; color: #5f7788; }
.donut-dot { width: 7px; height: 7px; border-radius: 2px; flex: 0 0 auto; }
.donut-dot.teal { background: #0d9488; }
.donut-dot.amber { background: #f59e0b; }
.donut-dot.red { background: #ef4444; }
.donut-legend-item strong { margin-left: auto; color: #2f4b5e; font-weight: 700; }

.hbar-list { display: flex; flex-direction: column; gap: 11px; }
.hbar-row { display: grid; grid-template-columns: 115px 1fr 34px; align-items: center; gap: 9px; font-size: 9.2px; color: #5e7586; }
.hbar-row .hbar-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hbar { height: 7px; border-radius: 99px; background: #edf2f4; overflow: hidden; }
.hbar > span { display: block; height: 100%; border-radius: inherit; background: #5eead4; }
.hbar-row strong { text-align: right; color: #2d495b; font-size: 9.2px; }
.hbar-row:nth-child(2n) .hbar > span { background: #0d9488; }

/* --------------------------------------------------------------------------
   Users, roles, settings, audit
   -------------------------------------------------------------------------- */
.user-identity { display: flex; align-items: center; gap: 9px; }
.user-identity-copy strong { display: block; font-size: 10.7px; font-weight: 680; color: var(--ink); }
.user-identity-copy span { display: block; font-size: 9px; color: var(--muted); }
.role-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.role-card { padding: 17px 18px; border: 1px solid var(--border); border-radius: 13px; background: #fff; box-shadow: var(--shadow-xs); }
.role-card-top { display: flex; align-items: center; gap: 9px; }
.role-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: #f0fdfa; color: var(--primary); }
.role-card h3 { font-size: 12.5px; font-weight: 730; color: var(--ink); }
.role-card .role-desc { font-size: 9.6px; color: var(--muted); line-height: 1.5; min-height: 29px; margin-top: 9px; }
.role-card-stats { display: flex; gap: 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #edf2f5; font-size: 9.2px; color: #7b91a1; }
.role-card-stats strong { color: #385367; }
.role-card-actions { display: flex; gap: 5px; margin-top: 11px; }
.permission-groups { display: flex; flex-direction: column; gap: 14px; }
.permission-group { border: 1px solid var(--border); border-radius: 11px; overflow: hidden; }
.permission-group-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: #f8fafb; border-bottom: 1px solid #edf2f5; }
.permission-group-head strong { font-size: 10.4px; font-weight: 720; color: #2e495c; text-transform: capitalize; }
.permission-group-head label { font-size: 8.8px; color: #708898; }
.permission-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #f0f4f6; }
.permission-item { background: #fff; padding: 9px 12px; }
.permission-item .checkbox { align-items: flex-start; }
.permission-item strong { display: block; font-size: 9.5px; font-weight: 640; color: #3e586a; }
.permission-item span { display: block; font-size: 8.2px; color: #8fa1ae; margin-top: 1px; }

.settings-tabs { display: flex; gap: 3px; border-bottom: 1px solid var(--border); margin-bottom: 18px; overflow-x: auto; }
.settings-tab { padding: 9px 12px; border: 0; background: none; color: #6f8697; font-size: 10.2px; font-weight: 650; white-space: nowrap; position: relative; }
.settings-tab.is-active { color: var(--primary-strong); }
.settings-tab.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--primary-bright); }
.settings-pane { display: none; }
.settings-pane.is-active { display: block; }
.settings-card { max-width: 920px; }
.setting-row { display: grid; grid-template-columns: minmax(200px, .8fr) minmax(0, 1.2fr); gap: 26px; padding: 16px 0; border-bottom: 1px solid #edf2f5; }
.setting-row:last-child { border-bottom: 0; }
.setting-copy strong { display: block; font-size: 10.6px; font-weight: 680; color: #2c4659; }
.setting-copy span { display: block; font-size: 9.2px; color: #8a9eac; margin-top: 2px; line-height: 1.45; }
.setting-control { max-width: 400px; }
.settings-save { position: sticky; bottom: 12px; display: flex; align-items: center; gap: 10px; margin-top: 18px; padding: 12px 15px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-md); backdrop-filter: blur(10px); }
.settings-save p { font-size: 9.4px; color: var(--muted); margin-right: auto; }

.sla-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sla-policy { padding: 11px; border: 1px solid #e5edf0; border-radius: 9px; background: #fbfdfd; }
.sla-policy-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; }
.sla-policy-head strong { font-size: 9.8px; text-transform: capitalize; color: #2f4a5d; }
.sla-policy .field { gap: 3px; }
.sla-policy .input { height: 31px; font-size: 10px; }
.sla-policy label { font-size: 8.1px; color: #8fa2b0; font-weight: 600; }

.audit-action { display: inline-flex; align-items: center; gap: 5px; font-size: 8.8px; font-weight: 700; text-transform: capitalize; color: #5c7486; }
.audit-indicator { width: 6px; height: 6px; border-radius: 50%; background: #94a3b8; }
.audit-indicator.success { background: #10b981; }
.audit-indicator.info { background: #3b82f6; }
.audit-indicator.danger { background: #ef4444; }
.audit-description { max-width: 520px; font-size: 10.2px; line-height: 1.45; color: #405a6d; }
.audit-context { display: block; margin-top: 2px; font-size: 8.7px; color: #93a5b2; }

/* --------------------------------------------------------------------------
   Detail / show page utilities
   -------------------------------------------------------------------------- */
.detail-page-head { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.detail-page-head .head-copy { min-width: 0; }
.detail-page-head h1 { font-size: 21px; font-weight: 760; letter-spacing: -.03em; color: var(--ink); }
.detail-page-head p { font-size: 10.4px; color: var(--muted); margin-top: 3px; }
.detail-page-actions { display: flex; gap: 7px; margin-left: auto; flex-wrap: wrap; }

.info-banner { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; border: 1px solid #dcebe8; border-radius: 9px; background: #f7fcfb; font-size: 9.9px; color: #4f6f6a; line-height: 1.5; }
.info-banner .icon { color: var(--primary); margin-top: 1px; }
.info-banner.warning { border-color: #f3e2b9; background: #fffcf4; color: #7f6227; }
.info-banner.warning .icon { color: #b45309; }
.info-banner.danger { border-color: #f4d4d4; background: #fffafa; color: #8c4b4b; }
.info-banner.danger .icon { color: #b91c1c; }

.inline-actions { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }

/* --------------------------------------------------------------------------
   Responsive module adjustments
   -------------------------------------------------------------------------- */
@media (max-width: 1240px) {
    .profile-layout, .call-layout { grid-template-columns: 1fr; }
    .side-stack, .call-side { position: static; }
    .report-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sla-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
    .hospital-grid, .contract-grid, .role-card-grid { grid-template-columns: 1fr; }
    .profile-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .call-card-body { grid-template-columns: 1fr 1fr; }
    .call-card-body .call-issue { grid-column: 1 / -1; }
    .schedule-row { flex-wrap: wrap; }
    .schedule-dates { margin-left: 45px; }
    .schedule-actions { margin-left: auto; }
}

@media (max-width: 760px) {
    .profile-hero { padding: 18px; }
    .profile-hero-main { flex-wrap: wrap; }
    .profile-hero-actions { width: 100%; }
    .profile-hero h1 { font-size: 20px; }
    .profile-kpis { grid-template-columns: 1fr 1fr; }
    .maintenance-summary { grid-template-columns: 1fr; }
    .report-summary { grid-template-columns: 1fr 1fr; }
    .report-hero { align-items: flex-start; flex-wrap: wrap; }
    .report-hero-actions { width: 100%; }
    .call-card-head .call-head-badges { width: 100%; margin-left: 0; }
    .call-card-body { grid-template-columns: 1fr; }
    .call-facts { grid-template-columns: 1fr; }
    .call-fact { border-right: 0; border-bottom: 1px solid #eef3f5; }
    .call-fact:last-child { border-bottom: 0; }
    .call-header-top { flex-wrap: wrap; }
    .call-header-badges { width: 100%; margin-left: 0; justify-content: flex-start; }
    .schedule-dates { width: 100%; margin-left: 0; justify-content: space-between; gap: 12px; }
    .schedule-actions { width: 100%; margin-left: 0; }
    .schedule-actions .btn { width: 100%; }
    .detail-grid-2, .detail-grid-3 { grid-template-columns: 1fr 1fr; }
    .permission-list { grid-template-columns: 1fr; }
    .setting-row { grid-template-columns: 1fr; gap: 8px; }
    .sla-grid { grid-template-columns: 1fr 1fr; }
    .donut-wrap { flex-wrap: wrap; }
    .inventory-layout { grid-template-columns: 1fr; }
    .contract-facts { grid-template-columns: 1fr; }
    .contract-fact { display: flex; align-items: center; justify-content: space-between; }
}

@media (max-width: 520px) {
    .profile-kpis, .report-summary, .sla-grid { grid-template-columns: 1fr; }
    .hospital-stats { grid-template-columns: 1fr; }
    .hospital-stat { display: flex; align-items: center; justify-content: space-between; }
    .detail-grid-2, .detail-grid-3 { grid-template-columns: 1fr; }
    .stock-form { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Dashboard watch lists & coverage
   -------------------------------------------------------------------------- */
.watch-list { display: flex; flex-direction: column; }
.watch-item { display: block; padding: 11px 16px; border-bottom: 1px solid #f0f4f6; transition: background .15s; }
.watch-item:last-child { border-bottom: 0; }
.watch-item:hover { background: #fbfdfd; }
.watch-top { display: flex; align-items: center; gap: 8px; }
.watch-top strong { font-size: 10px; font-weight: 680; color: #2f4a5d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.watch-top .badge { margin-left: auto; flex: 0 0 auto; }
.watch-meta { margin-top: 2px; font-size: 8.8px; color: #8a9eac; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.watch-item-row { display: flex; align-items: center; gap: 8px; }
.watch-item-row:hover { background: #fbfdfd; }
.inventory-watch-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; background: #f2f8f8; color: #5e7f84; flex: 0 0 auto; }
.watch-copy { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.watch-copy strong { font-size: 9.8px; font-weight: 650; color: #2f4a5d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.watch-copy span { font-size: 8.5px; color: #91a4b1; }
.stock-pill { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 999px; font-size: 8.4px; font-weight: 720; white-space: nowrap; }
.stock-pill-success { background: #ecfdf5; color: #047857; }
.stock-pill-warning { background: #fffbeb; color: #b45309; }
.stock-pill-danger { background: #fef2f2; color: #b91c1c; }
.coverage-list { display: flex; flex-direction: column; padding: 0 14px 10px; }
.coverage-item { display: flex; align-items: center; gap: 8px; padding: 8px 2px; border-bottom: 1px solid #f2f6f8; }
.coverage-item:last-child { border-bottom: 0; }
.coverage-avatar { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: #eef8f6; color: #0f766e; font-size: 8.5px; font-weight: 760; flex: 0 0 auto; }
.coverage-copy { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.coverage-copy strong { font-size: 9.7px; font-weight: 650; color: #2f4a5d; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.coverage-copy span { font-size: 8.4px; color: #91a4b1; }

/* Calls create policy */
.sla-preview { padding: 13px 14px; border: 1px solid #cfe9e4; border-radius: 10px; background: linear-gradient(135deg, #f6fdfb, #edfaf7); }
.sla-preview strong { display: block; margin-top: 2px; font-size: 25px; font-weight: 780; letter-spacing: -.04em; color: #0f766e; line-height: 1.1; }
.sla-preview p { font-size: 9.4px; color: #61847e; margin-top: 2px; }
.policy-list { display: flex; flex-direction: column; gap: 3px; }
.policy-row { display: flex; align-items: center; gap: 6px; padding: 7px 8px; border: 1px solid transparent; border-radius: 7px; font-size: 8.8px; color: #718898; }
.policy-row.is-active { border-color: #cfe9e4; background: #f4fcf9; color: #2f5e57; }
.policy-name { display: inline-flex; align-items: center; gap: 3px; font-weight: 680; color: #3d5969; flex: 1; }
.policy-row strong { font-size: 8.8px; color: #365666; }

/* Matrix */
.matrix-yes { display: inline-grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; background: #ecfdf5; color: #047857; }
.matrix-no { color: #cbd5e1; }

/* Print */
.print-body { background: #eef2f5; padding: 24px; }
.print-toolbar { max-width: 820px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; }
.print-brand { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #24465a; }
.print-brand img { border-radius: 8px; }
.print-toolbar-actions { display: flex; gap: 6px; }
.print-sheet { width: 820px; max-width: 100%; min-height: 500px; margin: 0 auto; padding: 34px 38px; background: #fff; border-radius: 8px; box-shadow: 0 20px 50px -30px rgba(11,31,51,.35); color: #1e3648; }
.print-sheet .print-brand { margin-bottom: 4px; }
.print-sheet h1 { font-size: 22px; }
.print-sheet p { font-size: 10px; }

@media print {
    @page { margin: 12mm; }
    body { background: #fff !important; }
    .sidebar, .topbar, .app-footer, .no-print, .toast-stack, .help-fab, .sidebar-scrim, .page-toolbar, .filter-bar, .pagination, .form-actions { display: none !important; }
    .app-main { margin-left: 0 !important; }
    .page { padding: 0 !important; max-width: none !important; }
    .card, .profile-hero, .kpi-card { box-shadow: none !important; break-inside: avoid; }
    .profile-layout, .call-layout, .dashboard-main { display: block !important; }
    .side-stack, .call-side { position: static !important; margin-top: 14px; }
    .print-body { padding: 0 !important; background: #fff !important; }
    .print-sheet { width: 100% !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; }
    .print-toolbar { display: none !important; }
    a { color: inherit !important; text-decoration: none !important; }
}
