/* QualiSystems public access styles */
.qs-public-login-shell {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 18px;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fafc 48%, #fff7ed 100%);
}
.qs-public-login-card {
    width: 100%;
    max-width: 460px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.14);
    padding: 30px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.qs-public-login-card-small { max-width: 560px; }
.qs-public-brand {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 24px;
}
.qs-public-logo {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: #ffffff;
    background: linear-gradient(135deg, #1d4ed8, #0f172a);
    letter-spacing: -0.03em;
}
.qs-public-brand h1 {
    margin: 0 0 4px;
    color: #0f172a;
    font-size: 26px;
    line-height: 1.15;
}
.qs-public-brand p {
    margin: 0;
    color: #64748b;
    font-size: 15px;
}
.qs-public-login-form label {
    display: block;
    color: #0f172a;
    font-weight: 650;
    margin: 14px 0 7px;
}
.qs-public-login-form input[type="email"],
.qs-public-login-form input[type="password"] {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 13px 14px;
    font-size: 16px;
    background: #f8fafc;
    color: #0f172a;
    box-sizing: border-box;
}
.qs-public-login-form input:focus {
    border-color: #2563eb;
    outline: none;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
    background: #ffffff;
}
.qs-public-check {
    display: flex !important;
    align-items: center;
    gap: 9px;
    margin: 14px 0 18px !important;
    color: #475569 !important;
    font-weight: 500 !important;
}
.qs-public-login-form button,
.qs-public-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 0;
    border-radius: 16px;
    background: #1d4ed8;
    color: #fff;
    padding: 14px 18px;
    font-weight: 750;
    font-size: 16px;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
}
.qs-public-login-form button:hover,
.qs-public-button:hover { background: #1e40af; color: #fff; }
.qs-public-button-secondary { background: #0f172a; margin-top: 10px; }
.qs-public-button-secondary:hover { background: #111827; }
.qs-public-login-footer {
    margin-top: 18px;
    text-align: center;
}
.qs-public-login-footer a,
.qs-public-link-danger {
    color: #1d4ed8;
    text-decoration: none;
    font-weight: 650;
}
.qs-public-link-danger { display: inline-block; margin-top: 14px; color: #b91c1c; }
.qs-public-alert {
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-weight: 600;
}
.qs-public-alert-error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.qs-public-alert-info { background: #eff6ff; color: #1e3a8a; border: 1px solid #bfdbfe; }
.qs-public-alert-warning { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.qs-public-actions { display: grid; gap: 4px; }
.qs-public-muted { color: #64748b; margin: 18px 0 0; font-size: 14px; text-align: center; }
@media (max-width: 520px) {
    .qs-public-login-card { padding: 22px; border-radius: 20px; }
    .qs-public-brand h1 { font-size: 22px; }
}

/* QualiSystems public operational dashboard */
.qs-app-shell {
    min-height: 72vh;
    padding: 34px 18px;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fafc 52%, #fff7ed 100%);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #0f172a;
}
.qs-app-header,
.qs-app-panel,
.qs-app-card {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.qs-app-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .10);
    padding: 22px;
    margin-bottom: 18px;
}
.qs-app-brand { display: flex; gap: 16px; align-items: center; }
.qs-app-brand h1 { margin: 0 0 4px; font-size: 28px; line-height: 1.15; }
.qs-app-brand p { margin: 0; color: #64748b; }
.qs-app-actions { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.qs-app-action-links { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: flex-end; }
.qs-app-actions a { color: #1d4ed8; text-decoration: none; font-weight: 700; }
.qs-app-actions .qs-app-danger { color: #b91c1c; }
.qs-current-user-card {
    display: grid; gap: 2px; justify-items: end;
    background: #f8fafc; border: 1px solid rgba(15, 23, 42, .08); border-radius: 16px;
    padding: 10px 12px; min-width: 220px; box-sizing: border-box;
}
.qs-current-user-card span { color: #64748b; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.qs-current-user-card strong { color: #0f172a; font-size: 14px; line-height: 1.2; }
.qs-current-user-card small { color: #64748b; font-size: 12px; max-width: 260px; overflow-wrap: anywhere; }
.qs-app-panel {
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
    padding: 24px;
    margin-bottom: 18px;
}
.qs-app-panel h2 { margin-top: 0; }
.qs-app-tenant-context { border-left: 5px solid #1d4ed8; }
.qs-app-tenant-context span { display: inline-block; margin-left: 10px; color: #64748b; font-weight: 700; }
.qs-app-grid {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.qs-app-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 22px;
    padding: 22px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
}
.qs-app-card strong { display: block; font-size: 24px; margin-bottom: 6px; color: #0f172a; }
.qs-app-card span { color: #64748b; font-weight: 650; }
.qs-tenant-select-form { display: grid; gap: 12px; max-width: 520px; }
.qs-tenant-select-form label { font-weight: 700; }
.qs-tenant-select-form select {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 13px 14px;
    font-size: 16px;
    background: #f8fafc;
    color: #0f172a;
    box-sizing: border-box;
}
.qs-tenant-select-form button {
    border: 0;
    border-radius: 16px;
    background: #1d4ed8;
    color: #fff;
    padding: 14px 18px;
    font-weight: 750;
    font-size: 16px;
    cursor: pointer;
}
@media (max-width: 900px) {
    .qs-app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .qs-app-header { align-items: flex-start; flex-direction: column; }
    .qs-app-actions { align-items: flex-start; width: 100%; }
    .qs-app-action-links { justify-content: flex-start; }
    .qs-current-user-card { justify-items: start; width: 100%; }
}
@media (max-width: 560px) {
    .qs-app-grid { grid-template-columns: 1fr; }
    .qs-app-brand h1 { font-size: 22px; }
}

/* Professional local clock and protected session */
.qs-session-widget {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(37, 99, 235, .16);
    border-radius: 22px;
    box-shadow: 0 16px 44px rgba(15, 23, 42, .08);
    padding: 16px 18px;
    box-sizing: border-box;
}
.qs-session-widget-compact {
    margin: 16px 0 4px;
    max-width: none;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.qs-session-clock {
    position: relative;
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    border-radius: 18px;
    background: linear-gradient(135deg, #1d4ed8, #0f172a);
    box-shadow: 0 14px 30px rgba(29, 78, 216, .22);
}
.qs-session-clock::before,
.qs-session-clock::after {
    content: "";
    position: absolute;
    left: 13px;
    right: 13px;
    height: 2px;
    background: rgba(255,255,255,.84);
    border-radius: 999px;
}
.qs-session-clock::before { top: 17px; }
.qs-session-clock::after { top: 27px; width: 16px; right: auto; }
.qs-session-clock-dot {
    position: absolute;
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: #ffffff;
    top: 16px;
    right: 12px;
    box-shadow: 0 10px 0 rgba(255,255,255,.75);
}
.qs-session-label {
    display: block;
    color: #64748b;
    font-size: 13px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.qs-session-widget strong {
    display: inline-block;
    color: #0f172a;
    font-size: 30px;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
    letter-spacing: -.02em;
}
.qs-session-widget small {
    display: block;
    color: #64748b;
    margin-top: 3px;
}
.qs-session-idle-warning {
    border-color: rgba(245, 158, 11, .34);
    background: linear-gradient(135deg, #fff7ed, #ffffff);
}
.qs-session-idle-warning .qs-session-clock {
    background: linear-gradient(135deg, #f59e0b, #0f172a);
}
.qs-session-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(8px);
}
.qs-session-modal {
    width: min(440px, 100%);
    background: #ffffff;
    border-radius: 28px;
    padding: 30px;
    text-align: center;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .30);
    border: 1px solid rgba(255,255,255,.65);
}
.qs-session-modal-icon {
    width: 58px;
    height: 58px;
    margin: 0 auto 16px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: linear-gradient(135deg, #1d4ed8, #0f172a);
    color: #fff;
    font-weight: 900;
    letter-spacing: -.08em;
}
.qs-session-modal h2 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 26px;
    line-height: 1.15;
}
.qs-session-modal p {
    margin: 0 0 22px;
    color: #475569;
    line-height: 1.55;
}
.qs-session-modal button {
    width: 100%;
    border: 0;
    border-radius: 16px;
    padding: 14px 18px;
    color: #fff;
    background: #1d4ed8;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}
.qs-session-modal button:focus {
    outline: 3px solid rgba(37, 99, 235, .25);
    outline-offset: 3px;
}
@media (max-width: 560px) {
    .qs-session-widget { align-items: flex-start; }
    .qs-session-widget strong { font-size: 24px; }
    .qs-session-modal { padding: 24px; border-radius: 22px; }
}


/* Sprint 4H: refined client environment hero */
.qs-app-hero {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 28px;
    box-shadow: 0 22px 70px rgba(15, 23, 42, .10);
    padding: 22px 24px;
    box-sizing: border-box;
}
.qs-client-logo-slot {
    width: 156px;
    height: 88px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    border: 1px dashed rgba(37, 99, 235, .35);
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.qs-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 6px;
}
.qs-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 0 5px rgba(34, 197, 94, .12);
}
.qs-app-hero-main h2 {
    margin: 0;
    color: #0f172a;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.05;
    letter-spacing: -.04em;
}
.qs-app-hero-main p {
    margin: 8px 0 0;
    color: #64748b;
    max-width: 680px;
    line-height: 1.45;
}
.qs-app-health-checks {
    display: grid;
    gap: 8px;
    min-width: 230px;
}
.qs-health-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .07);
}
.qs-health-check {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    flex: 0 0 22px;
    border-radius: 999px;
    background: #dcfce7;
    color: #166534;
    font-size: 14px;
    font-weight: 950;
}
.qs-health-chip strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    line-height: 1.05;
}
.qs-health-chip small {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.1;
}
.qs-app-metrics-grid {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.qs-app-metric-card {
    background: rgba(255,255,255,.93);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 20px;
    padding: 18px 20px;
    box-shadow: 0 14px 38px rgba(15, 23, 42, .07);
}
.qs-app-metric-card strong {
    display: block;
    color: #0f172a;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -.04em;
    margin-bottom: 8px;
}
.qs-app-metric-card span {
    color: #64748b;
    font-weight: 750;
}
@media (max-width: 920px) {
    .qs-app-hero { grid-template-columns: 168px minmax(0, 1fr); }
    .qs-app-health-checks { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .qs-app-hero { grid-template-columns: 1fr; }
    .qs-client-logo-slot { width: 100%; max-width: 180px; }
    .qs-app-health-checks { grid-template-columns: 1fr; }
    .qs-app-metrics-grid { grid-template-columns: 1fr; }
}

/* Sprint 4I: área operacional pública */
.qs-operational-nav {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.qs-operational-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 16px;
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15,23,42,.08);
    color: #334155;
    font-weight: 750;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(15,23,42,.06);
}
.qs-operational-nav a:hover,
.qs-operational-nav a.active {
    background: #1d4ed8;
    color: #fff;
    border-color: #1d4ed8;
}
.qs-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.qs-section-heading h2 { margin: 3px 0 6px; }
.qs-section-heading p { margin: 0; color: #64748b; }
.qs-operational-form {
    border-top: 1px solid rgba(15,23,42,.08);
    padding-top: 18px;
}
.qs-two-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}
.qs-operational-form label {
    display: grid;
    gap: 7px;
    color: #0f172a;
    font-weight: 750;
    font-size: 14px;
}
.qs-operational-form input,
.qs-operational-form select,
.qs-operational-form textarea {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 12px 13px;
    background: #f8fafc;
    color: #0f172a;
    box-sizing: border-box;
    font-size: 15px;
}
.qs-operational-form textarea { resize: vertical; }
.qs-operational-form input:focus,
.qs-operational-form select:focus,
.qs-operational-form textarea:focus {
    outline: none;
    border-color: #2563eb;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
.qs-form-check {
    display: flex !important;
    align-items: center;
    flex-direction: row;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #fff;
}
.qs-form-check input { width: auto; }
.qs-span-2 { grid-column: 1 / -1; }
.qs-operational-form button {
    border: 0;
    border-radius: 16px;
    background: #1d4ed8;
    color: #fff;
    padding: 14px 18px;
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    box-shadow: 0 14px 30px rgba(29,78,216,.22);
}
.qs-operational-form button:hover { background: #1e40af; }
.qs-table-wrap { overflow-x: auto; }
.qs-public-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}
.qs-public-table th,
.qs-public-table td {
    padding: 13px 12px;
    border-bottom: 1px solid rgba(15,23,42,.08);
    text-align: left;
    vertical-align: middle;
}
.qs-public-table th {
    color: #475569;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.qs-public-table td { color: #0f172a; }
.qs-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-weight: 800;
    font-size: 12px;
}
.qs-status-pill::before {
    content: "✓";
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #10b981;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
}
.qs-public-alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}
.qs-next-actions-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}
.qs-next-actions-grid {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.qs-next-actions-grid a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    padding: 12px 14px;
    border-radius: 14px;
    text-decoration: none;
    color: #fff;
    background: #0f172a;
    font-weight: 800;
}
@media (max-width: 760px) {
    .qs-two-columns { grid-template-columns: 1fr; }
    .qs-next-actions-panel { flex-direction: column; align-items: stretch; }
    .qs-next-actions-grid a { width: 100%; }
}


/* Sprint 4J: linguagem institucional sem bastidores de desenvolvimento */
.qs-operational-status-panel {
    position: relative;
    overflow: hidden;
}
.qs-operational-status-panel::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(37,99,235,.10), rgba(37,99,235,0) 68%);
    pointer-events: none;
}
.qs-module-note {
    margin-top: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 13px;
    border: 1px solid rgba(37, 99, 235, .16);
    border-radius: 999px;
    background: #f8fafc;
    color: #0f172a;
}
.qs-module-note-icon {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8;
    font-weight: 950;
    font-size: 13px;
}
.qs-module-note strong {
    display: block;
    font-size: 13px;
    line-height: 1.05;
}
.qs-module-note small {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.1;
}


/* Sprint 5A: recepção clínica operacional */
.qs-priority-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 76px;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 850;
    background: #eef2ff;
    color: #1e3a8a;
    border: 1px solid rgba(37, 99, 235, .16);
}
.qs-priority-normal { background: #f8fafc; color: #334155; border-color: rgba(100, 116, 139, .22); }
.qs-priority-prioritario { background: #eff6ff; color: #1d4ed8; border-color: rgba(37, 99, 235, .24); }
.qs-priority-urgente { background: #fff7ed; color: #c2410c; border-color: rgba(249, 115, 22, .28); }
.qs-priority-emergencia { background: #fef2f2; color: #b91c1c; border-color: rgba(239, 68, 68, .30); }
.qs-public-table small { color: #64748b; font-weight: 650; }

/* Sprint 5B: ticket operacional em impressora térmica 80 mm */
.qs-ticket-panel {
    border: 1px solid rgba(15, 23, 42, .08);
}
.qs-print-button,
.qs-mini-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 12px;
    padding: 10px 14px;
    background: #0f172a;
    color: #fff !important;
    font-weight: 850;
    text-decoration: none;
    cursor: pointer;
}
.qs-mini-action {
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 12px;
    background: #2563eb;
}
.qs-ticket-print-scope {
    display: flex;
    justify-content: center;
    margin-top: 18px;
}
.qs-thermal-ticket {
    width: 80mm;
    max-width: 100%;
    background: #fff;
    color: #111827;
    border: 1px dashed #94a3b8;
    border-radius: 14px;
    padding: 12px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    box-shadow: 0 18px 35px rgba(15, 23, 42, .10);
}
.qs-ticket-brand {
    text-align: center;
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.qs-ticket-title {
    margin-top: 8px;
    text-align: center;
    font-size: 12px;
    font-weight: 900;
}
.qs-ticket-protocol {
    margin-top: 8px;
    text-align: center;
    font-size: 26px;
    font-weight: 950;
    letter-spacing: .04em;
}
.qs-ticket-line {
    border-top: 1px dashed #94a3b8;
    margin: 10px 0;
}
.qs-ticket-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 0;
    font-size: 12px;
}
.qs-ticket-row span {
    color: #475569;
}
.qs-ticket-row strong {
    text-align: right;
    font-weight: 900;
}
.qs-ticket-reason span {
    display: block;
    color: #475569;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.qs-ticket-reason p {
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.35;
}
.qs-ticket-footer {
    color: #64748b;
    text-align: center;
    font-size: 10px;
    line-height: 1.3;
}
@media print {
    @page {
        size: 80mm auto;
        margin: 3mm;
    }
    body * {
        visibility: hidden !important;
    }
    .qs-ticket-print-scope,
    .qs-ticket-print-scope * {
        visibility: visible !important;
    }
    .qs-ticket-print-scope {
        position: absolute;
        left: 0;
        top: 0;
        width: 80mm;
        margin: 0;
        display: block;
    }
    .qs-thermal-ticket {
        width: 74mm;
        border: 0;
        border-radius: 0;
        padding: 0;
        box-shadow: none;
    }
}

/* QualiSystems official brand asset */
.qs-brand-logo-wrap {
    width: 164px;
    height: 92px;
    flex: 0 0 164px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 20% 15%, rgba(56, 189, 248, .24), transparent 34%), linear-gradient(135deg, #06122b 0%, #0f2b62 56%, #101828 100%);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .20);
    border: 1px solid rgba(255,255,255,.12);
    overflow: hidden;
}
.qs-brand-logo-wrap img {
    display: block;
    width: 150px;
    height: 82px;
    object-fit: contain;
}
.qs-public-brand .qs-brand-logo-wrap {
    width: 164px;
    height: 92px;
    border-radius: 20px;
}
@media (max-width: 560px) {
    .qs-brand-logo-wrap,
    .qs-public-brand .qs-brand-logo-wrap {
        width: 82px;
        height: 58px;
        flex-basis: 82px;
    }
    .qs-brand-logo-wrap img {
        width: 82px;
        height: 58px;
    }
}


.qs-dashboard-title-link{
    color: inherit;
    text-decoration: none;
}
.qs-dashboard-title-link:hover{
    color: #1f4eea;
    text-decoration: underline;
    text-underline-offset: 6px;
}
.qs-record-filter{
    max-width: 560px;
}
.qs-record-summary{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}
.qs-record-number{
    min-width:180px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    padding:16px 18px;
    text-align:right;
}
.qs-record-number span{
    display:block;
    color:#64748b;
    font-weight:800;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.qs-record-number strong{
    display:block;
    color:#0f172a;
    font-size:18px;
    margin-top:4px;
}
.qs-record-timeline{
    display:grid;
    gap:16px;
}
.qs-record-entry{
    border:1px solid rgba(15,23,42,.08);
    border-radius:22px;
    background:#fff;
    box-shadow:0 14px 35px rgba(15,23,42,.06);
    padding:18px;
}
.qs-record-entry header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    border-bottom:1px solid rgba(15,23,42,.08);
    padding-bottom:12px;
    margin-bottom:14px;
}
.qs-record-entry h3{
    margin:3px 0 0;
    font-size:18px;
    color:#0f172a;
}
.qs-record-entry time{
    white-space:nowrap;
    color:#64748b;
    font-size:13px;
    font-weight:700;
}
.qs-record-content{
    color:#1f2937;
    line-height:1.62;
    font-size:15px;
}
.qs-record-entry footer{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:14px;
    color:#64748b;
    font-size:12px;
}
@media (max-width: 760px){
    .qs-record-summary,.qs-record-entry header,.qs-record-entry footer{display:block;text-align:left;}
    .qs-record-number{margin-top:14px;text-align:left;}
    .qs-record-entry time{display:block;margin-top:8px;}
}


/* Sprint 8A: prescription and balanced brand presence */
.qs-prescription-panel {
    position: relative;
}
.qs-prescription-form textarea {
    min-height: 110px;
}
@media print {
    .qs-app-header,
    .qs-session-widget,
    .qs-app-hero,
    .qs-operational-nav,
    .qs-app-actions,
    .qs-print-button {
        display: none !important;
    }
    .qs-prescription-panel,
    .qs-record-entry {
        box-shadow: none !important;
        border: 0 !important;
        padding: 0 !important;
    }
    @page {
        size: A4;
        margin: 14mm;
    }
}

/* Sprint 8B: pesquisa e impressão A4 de prontuário */
.qs-record-search-form{
    display:grid;
    grid-template-columns:minmax(260px, 1fr) auto;
    gap:14px;
    align-items:end;
    margin-top:14px;
}
.qs-record-search-actions{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.qs-secondary-link{
    color:#1f4eea;
    font-weight:800;
    text-decoration:none;
}
.qs-secondary-link:hover{
    text-decoration:underline;
    text-underline-offset:4px;
}
.qs-record-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.qs-record-print-header{
    display:none;
}
.qs-record-print-button{
    width:auto;
    min-width:220px;
}
@media (max-width: 760px){
    .qs-record-search-form,
    .qs-record-toolbar{
        display:block;
    }
    .qs-record-search-actions,
    .qs-record-print-button{
        margin-top:12px;
    }
    .qs-record-print-button{
        width:100%;
    }
}
@media print{
    body.qs-print-record-active *{
        visibility:hidden !important;
    }
    body.qs-print-record-active .qs-record-print-area,
    body.qs-print-record-active .qs-record-print-area *{
        visibility:visible !important;
    }
    body.qs-print-record-active .qs-record-print-area{
        position:absolute !important;
        left:0 !important;
        top:0 !important;
        width:100% !important;
        background:#fff !important;
        color:#111827 !important;
        padding:0 !important;
        margin:0 !important;
    }
    body.qs-print-record-active .qs-record-print-header{
        display:flex !important;
        justify-content:space-between;
        align-items:flex-start;
        border-bottom:1px solid #111827;
        padding-bottom:8mm;
        margin-bottom:8mm;
        font-family:Arial, sans-serif;
    }
    body.qs-print-record-active .qs-record-print-brand strong{
        display:block;
        font-size:17pt;
        color:#111827;
    }
    body.qs-print-record-active .qs-record-print-brand span,
    body.qs-print-record-active .qs-record-print-meta span{
        display:block;
        margin-top:2mm;
        font-size:9pt;
        color:#374151;
    }
    body.qs-print-record-active .qs-app-panel,
    body.qs-print-record-active .qs-record-entry{
        box-shadow:none !important;
        border:0 !important;
        border-radius:0 !important;
        padding:0 !important;
        margin:0 0 6mm 0 !important;
        background:#fff !important;
    }
    body.qs-print-record-active .qs-record-summary{
        display:flex !important;
        justify-content:space-between;
        border-bottom:1px solid #d1d5db !important;
        padding-bottom:6mm !important;
        margin-bottom:7mm !important;
    }
    body.qs-print-record-active .qs-record-entry{
        page-break-inside:avoid;
        border-top:1px solid #d1d5db !important;
        padding-top:4mm !important;
    }
    body.qs-print-record-active .qs-record-entry header,
    body.qs-print-record-active .qs-record-entry footer{
        display:flex !important;
        justify-content:space-between;
    }
    body.qs-print-record-active .qs-kicker{
        color:#374151 !important;
        font-size:8pt !important;
    }
    body.qs-print-record-active h2{
        font-size:16pt !important;
        color:#111827 !important;
    }
    body.qs-print-record-active h3{
        font-size:12pt !important;
        color:#111827 !important;
    }
    body.qs-print-record-active p,
    body.qs-print-record-active .qs-record-content,
    body.qs-print-record-active footer,
    body.qs-print-record-active time{
        font-size:10pt !important;
        color:#111827 !important;
        line-height:1.45 !important;
    }
    @page{
        size:A4;
        margin:14mm;
    }
}

/* Sprint 8D: cadastro, manutenção e consulta */
.qs-operational-nav-pro { align-items: flex-start; }
.qs-nav-dropdown { position: relative; display: inline-flex; }
.qs-nav-dropdown .qs-nav-parent { padding-right: 28px; position: relative; }
.qs-nav-dropdown .qs-nav-parent::after {
    content: "▾";
    position: absolute;
    right: 12px;
    font-size: 11px;
    opacity: .72;
}
.qs-nav-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 180px;
    z-index: 30;
    padding: 8px;
    border-radius: 16px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(15,23,42,.10);
    box-shadow: 0 18px 44px rgba(15,23,42,.16);
}
.qs-nav-dropdown:hover .qs-nav-dropdown-menu,
.qs-nav-dropdown:focus-within .qs-nav-dropdown-menu { display: grid; gap: 6px; }
.qs-nav-dropdown-menu a {
    justify-content: flex-start;
    border-radius: 12px;
    box-shadow: none;
    width: 100%;
    padding: 10px 12px;
    background: #fff;
}
.qs-submode-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 8px 0 18px;
}
.qs-submode-tabs a {
    text-decoration: none;
    color: #334155;
    background: #f8fafc;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 999px;
    padding: 9px 14px;
    font-weight: 750;
}
.qs-submode-tabs a.active,
.qs-submode-tabs a:hover { background: #0f172a; color: #fff; border-color: #0f172a; }
.qs-inline-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 18px;
}
.qs-inline-search-form label { margin: 0; }
@media (max-width: 720px) {
    .qs-inline-search-form { grid-template-columns: 1fr; }
    .qs-nav-dropdown { width: 100%; }
    .qs-nav-dropdown .qs-nav-parent { width: 100%; }
    .qs-nav-dropdown-menu { position: static; width: 100%; margin-top: 6px; }
}

/* Sprint 8E: menu principal sem dropdown hover; ações aparecem como subabas contextuais dentro da seção */
.qs-operational-nav-pro { align-items: center; }
.qs-nav-dropdown,
.qs-nav-dropdown-menu { display: none !important; }
.qs-operational-nav a { white-space: nowrap; }
.qs-submode-tabs { margin-top: 14px; }

/* Sprint 8F: Recepção com pesquisa explícita e seleção por cards, sem listagem automática */
.qs-reception-search-summary {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(15,23,42,.04));
    border: 1px solid rgba(37,99,235,.14);
    margin-bottom: 12px;
}
.qs-reception-search-summary strong { color: #0f172a; font-size: 16px; }
.qs-reception-search-summary small { color: #64748b; }
.qs-reception-patient-choices {
    display: grid;
    gap: 10px;
    margin-bottom: 10px;
}
.qs-patient-choice-card {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) minmax(220px, .8fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(15,23,42,.10);
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.06);
    cursor: pointer;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.qs-patient-choice-card:hover {
    transform: translateY(-1px);
    border-color: rgba(37,99,235,.45);
    box-shadow: 0 16px 34px rgba(37,99,235,.12);
}
.qs-patient-choice-card input { width: 18px; height: 18px; }
.qs-patient-choice-card:has(input:checked) {
    border-color: rgba(37,99,235,.85);
    box-shadow: 0 18px 40px rgba(37,99,235,.16);
    background: linear-gradient(135deg, #fff, rgba(37,99,235,.06));
}
.qs-patient-choice-main strong { display: block; color: #0f172a; font-size: 18px; }
.qs-patient-choice-main small,
.qs-patient-choice-meta { color: #64748b; font-size: 13px; }
.qs-patient-choice-meta b { color: #334155; }
.qs-patient-choice-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 9px 12px;
    border-radius: 999px;
    background: #eef4ff;
    color: #1d4ed8;
    font-weight: 800;
}
.qs-patient-choice-card:has(input:checked) .qs-patient-choice-action {
    background: #2563eb;
    color: #fff;
}
@media (max-width: 820px) {
    .qs-patient-choice-card { grid-template-columns: auto 1fr; }
    .qs-patient-choice-meta, .qs-patient-choice-action { grid-column: 2; }
    .qs-patient-choice-action { justify-content: flex-start; width: fit-content; }
}

/* Sprint 9A: navegação por áreas com submódulos contextuais */
.qs-area-nav {
    max-width: 1180px;
    margin: 0 auto 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 4px 0;
}
.qs-area-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(15,23,42,.08);
    color: #334155;
    font-weight: 850;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15,23,42,.06);
    transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.qs-area-nav a:hover,
.qs-area-nav a.active {
    background: #1d4ed8;
    color: #fff;
    border-color: #1d4ed8;
    transform: translateY(-1px);
}
.qs-context-nav {
    max-width: 1180px;
    margin: 0 auto 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    border-radius: 26px;
    background: rgba(255,255,255,.50);
    border: 1px solid rgba(15,23,42,.06);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.qs-context-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(15,23,42,.07);
    color: #334155;
    font-weight: 780;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(15,23,42,.05);
}
.qs-context-nav a:hover,
.qs-context-nav a.active {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}
.qs-operational-nav {
    display: none !important;
}
@media (max-width: 720px) {
    .qs-area-nav,
    .qs-context-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .qs-area-nav a,
    .qs-context-nav a {
        width: 100%;
    }
}

/* Sprint 9B: orçamento simples e impressão A4 */
.qs-budget-print-panel {
    margin-top: 24px;
    border: 1px solid rgba(37,99,235,.12);
    background: linear-gradient(135deg, #ffffff, rgba(37,99,235,.035));
}
.qs-budget-document {
    background: #fff;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 20px;
    padding: 22px;
}
.qs-budget-document h3 {
    margin-top: 0;
    font-size: 24px;
    color: #0f172a;
}
.qs-budget-total {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
    font-size: 20px;
    color: #0f172a;
}
@media print {
    @page { size: A4; margin: 14mm; }
    body.qs-print-budget-active * { visibility: hidden !important; }
    body.qs-print-budget-active .qs-budget-print-panel,
    body.qs-print-budget-active .qs-budget-print-panel * { visibility: visible !important; }
    body.qs-print-budget-active .qs-budget-print-panel {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
        box-shadow: none !important;
        border: none !important;
        background: #fff !important;
    }
    body.qs-print-budget-active .qs-budget-print-panel button,
    body.qs-print-budget-active .qs-budget-print-panel .qs-section-heading p { display: none !important; }
    body.qs-print-budget-active .qs-budget-document { border: none !important; padding: 0 !important; }
}

/* Sprint 9C: parametrização documental e impressão A4 profissional */
.qs-parametrizacao-form .qs-form-section-title{
    grid-column:1 / -1;
    margin-top:8px;
    padding:10px 12px;
    border-radius:14px;
    background:linear-gradient(135deg, rgba(15,23,42,.06), rgba(37,99,235,.05));
    color:#0f172a;
    font-weight:900;
    letter-spacing:.02em;
}
.qs-parametrizacao-preview{
    margin-top:18px;
}
.qs-budget-screen-heading{
    margin-bottom:14px;
}
.qs-a4-document{
    max-width: 190mm;
    margin: 0 auto;
    padding: 14mm 13mm 10mm;
    min-height: auto;
    color:#111827;
    font-family: Arial, Helvetica, sans-serif;
    line-height:1.25;
}
.qs-a4-header{
    display:grid;
    grid-template-columns: 72px 1fr 116px;
    gap:14px;
    align-items:center;
    padding-bottom:10px;
    border-bottom:2px solid #0f172a;
}
.qs-a4-logo-box{
    width:70px;
    height:54px;
    border-radius:14px;
    border:1px solid rgba(15,23,42,.12);
    background:#f8fafc;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    color:#0f172a;
    font-weight:900;
}
.qs-a4-logo-box img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:4px;
}
.qs-a4-company strong{
    display:block;
    font-size:15px;
    line-height:1.15;
    text-transform:uppercase;
}
.qs-a4-company span{
    display:block;
    font-size:12px;
    font-weight:700;
    color:#334155;
    margin-top:2px;
}
.qs-a4-company small{
    display:block;
    font-size:9.5px;
    color:#475569;
    margin-top:4px;
}
.qs-a4-doc-id{
    text-align:right;
    border-left:1px solid rgba(15,23,42,.15);
    padding-left:12px;
}
.qs-a4-doc-id b{
    display:block;
    font-size:16px;
    color:#0f172a;
}
.qs-a4-doc-id span{
    display:block;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#64748b;
}
.qs-a4-title-row{
    display:grid;
    grid-template-columns:1fr 150px;
    gap:16px;
    align-items:start;
    margin:12px 0 10px;
}
.qs-a4-title-row h3{
    font-size:18px;
    margin:0 0 3px;
    color:#0f172a;
}
.qs-a4-title-row p{
    font-size:10px;
    margin:0;
    color:#475569;
}
.qs-a4-date-box{
    border:1px solid rgba(15,23,42,.12);
    border-radius:10px;
    padding:8px;
    display:grid;
    grid-template-columns:1fr;
    gap:1px;
}
.qs-a4-date-box span{
    font-size:8px;
    color:#64748b;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.qs-a4-date-box strong{
    font-size:10.5px;
    color:#0f172a;
    margin-bottom:4px;
}
.qs-a4-client-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:10px;
}
.qs-a4-client-grid > div{
    border:1px solid rgba(15,23,42,.1);
    border-radius:10px;
    padding:8px 10px;
    background:#fbfdff;
}
.qs-a4-client-grid span{
    display:block;
    font-size:8px;
    color:#64748b;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.qs-a4-client-grid strong{
    display:block;
    font-size:12px;
    color:#0f172a;
}
.qs-a4-client-grid small{
    display:block;
    font-size:9.5px;
    color:#475569;
}
.qs-a4-items-table{
    width:100%;
    border-collapse:collapse;
    margin-top:6px;
    font-size:10px;
}
.qs-a4-items-table th{
    background:#0f172a;
    color:#fff;
    text-align:left;
    font-size:9px;
    padding:6px;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.qs-a4-items-table td{
    border-bottom:1px solid rgba(15,23,42,.12);
    padding:6px;
    vertical-align:top;
}
.qs-a4-items-table th:nth-child(n+2),
.qs-a4-items-table td:nth-child(n+2){
    text-align:right;
    white-space:nowrap;
}
.qs-a4-total-row{
    margin-top:10px;
    margin-left:auto;
    width:230px;
    border:2px solid #0f172a;
    border-radius:12px;
    padding:8px 10px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#fff;
}
.qs-a4-total-row span{
    font-size:10px;
    color:#475569;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.qs-a4-total-row strong{
    font-size:17px;
    color:#0f172a;
}
.qs-a4-notes{
    margin-top:10px;
    padding:8px 10px;
    border-left:3px solid #2563eb;
    background:#f8fafc;
    font-size:9.5px;
    color:#334155;
}
.qs-a4-footer{
    margin-top:12px;
    padding-top:8px;
    border-top:1px solid rgba(15,23,42,.14);
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:8.5px;
    color:#64748b;
}
@media print{
    @page { size: A4 portrait; margin: 8mm 9mm 8mm 9mm; }
    body.qs-print-budget-active{
        background:#fff !important;
        margin:0 !important;
    }
    body.qs-print-budget-active .qs-app-header,
    body.qs-print-budget-active .qs-session-widget,
    body.qs-print-budget-active .qs-app-hero,
    body.qs-print-budget-active .qs-area-nav,
    body.qs-print-budget-active .qs-context-nav,
    body.qs-print-budget-active .qs-budget-screen-heading,
    body.qs-print-budget-active .qs-submode-tabs,
    body.qs-print-budget-active .qs-operational-form,
    body.qs-print-budget-active .qs-app-panel > .qs-section-heading,
    body.qs-print-budget-active .qs-app-panel > .qs-table-wrap,
    body.qs-print-budget-active .qs-app-panel > .qs-empty-state,
    body.qs-print-budget-active .qs-app-panel > .qs-public-alert{
        display:none !important;
    }
    body.qs-print-budget-active .qs-app-shell,
    body.qs-print-budget-active .qs-app-panel,
    body.qs-print-budget-active .qs-budget-print-panel{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
    }
    body.qs-print-budget-active .qs-budget-document{
        width:100% !important;
        max-width:none !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        page-break-inside:avoid !important;
    }
    body.qs-print-budget-active .qs-a4-document{
        font-size:10px !important;
    }
    body.qs-print-budget-active .qs-a4-header{ padding-bottom:7px !important; gap:10px !important; }
    body.qs-print-budget-active .qs-a4-title-row{ margin:8px 0 !important; }
    body.qs-print-budget-active .qs-a4-client-grid{ margin-bottom:7px !important; }
    body.qs-print-budget-active .qs-a4-items-table th,
    body.qs-print-budget-active .qs-a4-items-table td{ padding:4px 5px !important; }
    body.qs-print-budget-active .qs-a4-total-row{ margin-top:7px !important; padding:6px 8px !important; }
    body.qs-print-budget-active .qs-a4-notes{ margin-top:7px !important; padding:6px 8px !important; }
    body.qs-print-budget-active .qs-a4-footer{ margin-top:8px !important; }
}

/* v0.1.38: prontuário com seleção explícita e estoque com visão operacional */
.qs-record-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.qs-record-result-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 18px;
    padding: 16px;
}
.qs-record-result-card h3 { margin: 4px 0 8px; font-size: 20px; }
.qs-record-result-card p { margin: 0 0 5px; color: #475569; }
.qs-record-result-card small { display: block; color: #64748b; }
.qs-stock-summary-header,
.qs-stock-history-heading {
    margin: 18px 0 12px;
}
.qs-stock-summary-header h3,
.qs-stock-history-heading h3 { margin: 4px 0 6px; }
.qs-stock-summary-header p { margin: 0; color: #64748b; }
.qs-stock-summary-table strong { color: #0f172a; }
.qs-stock-balance {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    background: #ecfdf5;
    color: #065f46;
    font-weight: 800;
}
.qs-stock-balance.qs-stock-low {
    background: #fff7ed;
    color: #9a3412;
}

/* Sprint 9D: prescrição integrada ao catálogo de estoque e documentos A4 parametrizados */
.qs-prescription-catalog-panel{
    margin: 18px 0 22px;
    padding: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(248,250,252,.95), rgba(255,255,255,.98));
}
.qs-compact-heading{ margin-bottom: 12px; }
.qs-compact-heading h3{ margin: 0 0 4px; font-size: 1.15rem; }
.qs-prescription-catalog-table-wrap{ max-height: 260px; overflow: auto; }
.qs-prescription-catalog-table td,
.qs-prescription-catalog-table th{ white-space: nowrap; }
.qs-use-prescription-product{ cursor: pointer; border: 0; }
.qs-use-prescription-product.is-selected{
    background: #dcfce7 !important;
    color: #166534 !important;
    box-shadow: inset 0 0 0 1px rgba(22, 101, 52, .25);
}
.qs-ticket-client-line{
    font-size: 9px;
    line-height: 1.25;
    text-align: center;
    margin: 2px 0 4px;
}
.qs-record-print-footer{ margin-top: 14px; }
@media print{
    body.qs-print-record-active .qs-record-print-footer{
        display:flex !important;
        justify-content:space-between !important;
        gap:12px !important;
        border-top:1px solid #cbd5e1 !important;
        padding-top:6px !important;
        font-size:9px !important;
        color:#475569 !important;
    }
}

/* v0.1.40: busca inteligente de medicamentos e impressão A4 da prescrição */
.qs-prescription-smart-search .qs-prescription-search-box{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:10px 0 14px;
}
.qs-prescription-smart-search input[type="search"]{
    width:100%;
    min-height:50px;
    border-radius:16px;
    border:1px solid rgba(37,99,235,.22);
    padding:0 16px;
    font-size:16px;
    background:#fff;
}
.qs-prescription-search-hint{
    font-size:13px;
    color:#64748b;
}
.qs-prescription-search-results .qs-empty-state{
    margin:0;
}
.qs-prescription-print-panel{
    margin-top:24px;
    border:1px solid rgba(37,99,235,.12);
    background:linear-gradient(135deg,#ffffff,rgba(37,99,235,.035));
}
.qs-prescription-document{
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    padding:22px;
}
.qs-a4-prescription-table th:nth-child(n+2),
.qs-a4-prescription-table td:nth-child(n+2){
    text-align:left;
    white-space:normal;
}
@media print{
    @page { size: A4 portrait; margin: 8mm 9mm 8mm 9mm; }
    body.qs-print-prescription-active{
        background:#fff !important;
        margin:0 !important;
    }
    body.qs-print-prescription-active *{ visibility:hidden !important; }
    body.qs-print-prescription-active .qs-prescription-print-panel,
    body.qs-print-prescription-active .qs-prescription-print-panel *{ visibility:visible !important; }
    body.qs-print-prescription-active .qs-prescription-print-panel{
        position:absolute !important;
        left:0 !important;
        top:0 !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
    }
    body.qs-print-prescription-active .qs-prescription-screen-heading,
    body.qs-print-prescription-active .qs-prescription-print-panel button{
        display:none !important;
    }
    body.qs-print-prescription-active .qs-prescription-document{
        width:100% !important;
        max-width:none !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        font-size:10px !important;
    }
    body.qs-print-prescription-active .qs-a4-header{ padding-bottom:7px !important; gap:10px !important; }
    body.qs-print-prescription-active .qs-a4-title-row{ margin:8px 0 !important; }
    body.qs-print-prescription-active .qs-a4-client-grid{ margin-bottom:7px !important; }
    body.qs-print-prescription-active .qs-a4-items-table th,
    body.qs-print-prescription-active .qs-a4-items-table td{ padding:5px 6px !important; }
    body.qs-print-prescription-active .qs-a4-footer{ margin-top:8px !important; }
}

/* v0.1.41: prescrição com múltiplos itens e dispensação controlada */
.qs-prescription-items-builder{
    border:1px solid rgba(37,99,235,.12);
    border-radius:22px;
    padding:18px;
    background:linear-gradient(135deg,#fff,rgba(37,99,235,.035));
}
.qs-prescription-item-card{
    border:1px solid rgba(15,23,42,.10);
    border-radius:20px;
    padding:16px;
    margin:14px 0;
    background:#fff;
    box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.qs-prescription-item-card legend{
    padding:0 8px;
    font-weight:900;
    color:#0f172a;
}
.qs-prescription-item-grid{ margin-top:8px; }
.qs-prescription-item-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:10px;
}
.qs-prescription-item-source{
    font-size:13px;
    color:#64748b;
    font-weight:800;
}
.qs-prescription-item-highlight{
    outline:3px solid rgba(34,197,94,.20);
    box-shadow:0 0 0 8px rgba(34,197,94,.08);
}
.qs-dispensing-card{
    border:1px solid rgba(37,99,235,.13);
    border-radius:20px;
    padding:16px;
    background:#fff;
    margin:12px 0;
}
.qs-dispensing-card h3{ margin:0 0 6px; }
.qs-dispensing-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    font-size:13px;
    color:#475569;
    margin-bottom:12px;
}

/* v0.1.42: prescrição em grade, revisão e remoção segura */
.qs-prescription-grid-builder{
    gap:18px;
}
.qs-prescription-editor-card{
    border:1px solid rgba(37,99,235,.14);
    border-radius:22px;
    padding:18px;
    background:linear-gradient(135deg,#ffffff,rgba(37,99,235,.035));
    box-shadow:0 10px 35px rgba(15,23,42,.04);
}
.qs-prescription-staged-panel{
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    background:#fff;
    padding:14px;
    margin-top:16px;
}
.qs-prescription-staged-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}
.qs-prescription-staged-heading strong{
    display:block;
    color:#0f172a;
    font-size:17px;
}
.qs-prescription-staged-heading small{
    color:#64748b;
    font-weight:700;
}
.qs-prescription-staged-table th:first-child,
.qs-prescription-staged-table td:first-child{
    width:58px;
    text-align:center;
}
.qs-prescription-staged-table td{
    vertical-align:top;
}
.qs-staged-check label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    font-weight:900;
    color:#be123c;
    cursor:pointer;
}
.qs-staged-check input{
    width:18px;
    height:18px;
    accent-color:#be123c;
}
.qs-source-pill{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:6px 10px;
    background:#eef2ff;
    color:#1e3a8a;
    font-size:12px;
    font-weight:900;
}
.qs-prescription-builder-message{
    min-height:0;
    margin:0 0 10px;
    font-weight:800;
}
.qs-prescription-builder-message-info,
.qs-prescription-builder-message-success,
.qs-prescription-builder-message-error{
    border-radius:16px;
    padding:10px 14px;
}
.qs-prescription-builder-message-info{
    background:#eff6ff;
    color:#1d4ed8;
}
.qs-prescription-builder-message-success{
    background:#ecfdf5;
    color:#047857;
}
.qs-prescription-builder-message-error{
    background:#fff1f2;
    color:#be123c;
}
@media (max-width: 760px){
    .qs-prescription-staged-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .qs-prescription-staged-table{
        min-width:780px;
    }
}


/* v0.1.43: impressão A4 compactada e relatórios operacionais */
.qs-report-panel .qs-report-metrics-grid { margin: 18px 0; }
.qs-report-document { background:#fff; border:1px solid rgba(15,23,42,.08); border-radius:20px; padding:22px; }
.qs-report-subtitle { margin: 12px 0 6px; font-size: 13px; color:#0f172a; }
.qs-report-summary-table td:nth-child(2),
.qs-report-summary-table th:nth-child(2) { text-align:right; width:90px; }

@media print{
    @page { size: A4 portrait; margin: 7mm 8mm 7mm 8mm; }

    body.qs-print-prescription-active,
    body.qs-print-report-active{
        background:#fff !important;
        margin:0 !important;
        padding:0 !important;
        height:auto !important;
        overflow:visible !important;
    }

    body.qs-print-prescription-active .qs-app-header,
    body.qs-print-prescription-active .qs-session-widget,
    body.qs-print-prescription-active .qs-app-hero,
    body.qs-print-prescription-active .qs-area-nav,
    body.qs-print-prescription-active .qs-context-nav,
    body.qs-print-prescription-active .qs-prescription-panel,
    body.qs-print-prescription-active .qs-app-panel:not(.qs-prescription-print-panel),
    body.qs-print-prescription-active .qs-public-alert,
    body.qs-print-report-active .qs-app-header,
    body.qs-print-report-active .qs-session-widget,
    body.qs-print-report-active .qs-app-hero,
    body.qs-print-report-active .qs-area-nav,
    body.qs-print-report-active .qs-context-nav,
    body.qs-print-report-active .qs-report-screen-heading,
    body.qs-print-report-active .qs-operational-form,
    body.qs-print-report-active .qs-report-metrics-grid{
        display:none !important;
    }

    body.qs-print-prescription-active .qs-app-shell,
    body.qs-print-prescription-active .qs-prescription-print-panel,
    body.qs-print-report-active .qs-app-shell,
    body.qs-print-report-active .qs-report-panel{
        display:block !important;
        min-height:0 !important;
        height:auto !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
    }

    body.qs-print-prescription-active .qs-prescription-print-panel{
        position:static !important;
        left:auto !important;
        top:auto !important;
        page-break-after:auto !important;
        break-after:auto !important;
    }

    body.qs-print-prescription-active .qs-prescription-screen-heading,
    body.qs-print-prescription-active .qs-prescription-print-panel button,
    body.qs-print-report-active .qs-report-panel > .qs-section-heading{
        display:none !important;
    }

    body.qs-print-prescription-active .qs-prescription-document,
    body.qs-print-report-active .qs-report-document{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        font-size:9.2px !important;
        line-height:1.16 !important;
        page-break-after:auto !important;
        break-after:auto !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    body.qs-print-prescription-active .qs-a4-header,
    body.qs-print-report-active .qs-a4-header{ grid-template-columns:58px 1fr 94px !important; gap:8px !important; padding-bottom:5px !important; }
    body.qs-print-prescription-active .qs-a4-logo-box,
    body.qs-print-report-active .qs-a4-logo-box{ width:54px !important; height:42px !important; border-radius:9px !important; }
    body.qs-print-prescription-active .qs-a4-company strong,
    body.qs-print-report-active .qs-a4-company strong{ font-size:12px !important; }
    body.qs-print-prescription-active .qs-a4-company span,
    body.qs-print-report-active .qs-a4-company span{ font-size:9.5px !important; }
    body.qs-print-prescription-active .qs-a4-company small,
    body.qs-print-report-active .qs-a4-company small{ font-size:7.8px !important; margin-top:2px !important; }
    body.qs-print-prescription-active .qs-a4-doc-id b,
    body.qs-print-report-active .qs-a4-doc-id b{ font-size:12px !important; }
    body.qs-print-prescription-active .qs-a4-title-row,
    body.qs-print-report-active .qs-a4-title-row{ grid-template-columns:1fr 116px !important; margin:6px 0 !important; gap:8px !important; }
    body.qs-print-prescription-active .qs-a4-title-row h3,
    body.qs-print-report-active .qs-a4-title-row h3{ font-size:13px !important; margin-bottom:1px !important; }
    body.qs-print-prescription-active .qs-a4-title-row p,
    body.qs-print-report-active .qs-a4-title-row p{ font-size:7.8px !important; }
    body.qs-print-prescription-active .qs-a4-date-box,
    body.qs-print-report-active .qs-a4-date-box{ padding:5px !important; border-radius:7px !important; }
    body.qs-print-prescription-active .qs-a4-date-box span,
    body.qs-print-report-active .qs-a4-date-box span{ font-size:6.8px !important; }
    body.qs-print-prescription-active .qs-a4-date-box strong,
    body.qs-print-report-active .qs-a4-date-box strong{ font-size:8px !important; margin-bottom:2px !important; }
    body.qs-print-prescription-active .qs-a4-client-grid,
    body.qs-print-report-active .qs-a4-client-grid{ gap:6px !important; margin-bottom:5px !important; }
    body.qs-print-prescription-active .qs-a4-client-grid > div,
    body.qs-print-report-active .qs-a4-client-grid > div{ padding:5px 6px !important; border-radius:7px !important; }
    body.qs-print-prescription-active .qs-a4-client-grid span,
    body.qs-print-report-active .qs-a4-client-grid span{ font-size:6.8px !important; }
    body.qs-print-prescription-active .qs-a4-client-grid strong,
    body.qs-print-report-active .qs-a4-client-grid strong{ font-size:9px !important; }
    body.qs-print-prescription-active .qs-a4-client-grid small,
    body.qs-print-report-active .qs-a4-client-grid small{ font-size:7.5px !important; }
    body.qs-print-prescription-active .qs-a4-items-table,
    body.qs-print-report-active .qs-a4-items-table{ font-size:7.8px !important; margin-top:4px !important; }
    body.qs-print-prescription-active .qs-a4-items-table th,
    body.qs-print-prescription-active .qs-a4-items-table td,
    body.qs-print-report-active .qs-a4-items-table th,
    body.qs-print-report-active .qs-a4-items-table td{ padding:3px 4px !important; }
    body.qs-print-prescription-active .qs-a4-footer,
    body.qs-print-report-active .qs-a4-footer{ margin-top:6px !important; padding-top:4px !important; font-size:7px !important; }
    body.qs-print-report-active .qs-report-subtitle{ font-size:9px !important; margin:6px 0 3px !important; }
}

.qs-inline-action-form{display:inline-flex;margin:0;align-items:center;gap:8px}
.qs-mini-danger{border:0;border-radius:999px;background:#d13063;color:#fff;font-weight:800;padding:8px 12px;cursor:pointer;box-shadow:0 8px 18px rgba(209,48,99,.18)}
.qs-mini-danger:hover{filter:brightness(.96);transform:translateY(-1px)}
.qs-compact-metrics{margin-bottom:20px}

/* v0.1.48: orçamento multi-itens com revisão antes do registro */
.qs-budget-editor-card{
    border:1px solid rgba(37,99,235,.14);
    border-radius:22px;
    padding:18px;
    background:linear-gradient(135deg,#ffffff,rgba(188,154,67,.055));
    box-shadow:0 10px 35px rgba(15,23,42,.04);
    margin-top:14px;
}
.qs-budget-editor-actions{
    margin-top:12px;
}
.qs-budget-builder-message{
    margin-top:10px;
    font-weight:800;
}
.qs-budget-staged-panel{
    margin-top:18px;
}
.qs-budget-staged-table td{
    vertical-align:top;
}
.qs-budget-total-preview{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:14px;
    margin-top:12px;
    padding:12px 14px;
    border-radius:16px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.08);
}
.qs-budget-total-preview span{
    color:#64748b;
    font-weight:800;
    text-transform:uppercase;
    font-size:12px;
    letter-spacing:.04em;
}
.qs-budget-total-preview strong{
    color:#0f172a;
    font-size:22px;
}
@media (max-width: 760px){
    .qs-budget-staged-table{ min-width:820px; }
}

/* v0.1.49: financeiro básico e caixa operacional */
.qs-finance-status-pill{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:5px 10px;
    font-size:12px;
    font-weight:800;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.10);
    color:#0f172a;
}
.qs-finance-cash-open{
    border-left:5px solid #16a34a;
}
.qs-finance-cash-closed{
    border-left:5px solid #f97316;
}

/* v0.1.54: governança de usuários e matriz de poderes */
.qs-access-matrix-list{display:grid;gap:14px;margin-top:14px}
.qs-access-user-card{border:1px solid rgba(15,23,42,.10);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.04);overflow:hidden}
.qs-access-user-card summary{cursor:pointer;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:#f8fafc}
.qs-access-user-card summary small{color:#64748b;font-weight:600}
.qs-access-matrix-form{padding:16px;margin:0}
.qs-access-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:14px}
.qs-access-check{align-items:flex-start;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:10px;background:#fff}
.qs-access-check span{display:flex;flex-direction:column;gap:2px;line-height:1.25}
.qs-access-check small{font-size:11px;color:#64748b;font-weight:600}


.qs-form-is-loading { position: relative; overflow: hidden; }
.qs-form-loader-overlay {
    position: absolute; inset: 0; z-index: 30; display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.88); backdrop-filter: blur(2px); border-radius: 18px;
}
.qs-form-loader-box {
    min-width: 220px; display: grid; gap: 10px; justify-items: center; text-align: center;
    background: #ffffff; border: 1px solid rgba(15,23,42,.08); border-radius: 18px; padding: 18px 20px;
    box-shadow: 0 18px 40px rgba(15,23,42,.12); color: #0f172a;
}
.qs-form-loader-box strong { font-size: 16px; }
.qs-form-loader-box span { color: #64748b; font-size: 13px; }
.qs-hourglass-loader {
    width: 32px; height: 32px; border: 3px solid #1d4ed8; border-left-color: transparent; border-right-color: transparent;
    border-radius: 8px; position: relative; animation: qsHourglassSpin 1.2s linear infinite;
}
.qs-hourglass-loader::before, .qs-hourglass-loader::after {
    content: ''; position: absolute; left: 50%; transform: translateX(-50%); width: 10px; height: 10px; border-radius: 999px; background: #1d4ed8;
}
.qs-hourglass-loader::before { top: 4px; animation: qsHourglassSandTop 1.2s ease-in-out infinite; }
.qs-hourglass-loader::after { bottom: 4px; animation: qsHourglassSandBottom 1.2s ease-in-out infinite; }
@keyframes qsHourglassSpin { 0% { transform: rotate(0deg);} 50% { transform: rotate(180deg);} 100% { transform: rotate(360deg);} }
@keyframes qsHourglassSandTop { 0%,100% { opacity: 1; transform: translateX(-50%) scale(1);} 50% { opacity: .25; transform: translateX(-50%) scale(.45);} }
@keyframes qsHourglassSandBottom { 0%,100% { opacity: .25; transform: translateX(-50%) scale(.45);} 50% { opacity: 1; transform: translateX(-50%) scale(1);} }


.qs-gap-large { gap: 24px; align-items: start; }
.qs-checkbox-stack {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 14px;
    background: #f8fafc;
    margin: 10px 0 14px;
}
.qs-checkbox-stack label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-weight: 600;
    color: #334155;
}
.qs-inline-form {
    display: inline-flex;
    margin: 0;
}
.qs-inline-form button {
    border: 0;
    border-radius: 12px;
    padding: 8px 10px;
    background: #0f172a;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}
.qs-inline-form button:hover { background: #1d4ed8; }


.qs-badge-warning {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    border: 1px solid #fed7aa;
    font-size: 12px;
    font-weight: 700;
}

.qs-checkbox-line {
    display: flex !important;
    gap: 10px;
    align-items: flex-start;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 10px 12px;
    border-radius: 12px;
}

.qs-checkbox-line input[type="checkbox"] {
    width: auto;
    margin-top: 3px;
}

.qs-actions-cell {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* v0.2.15-beta · Dashboard Executivo */
.qs-executive-dashboard-panel .qs-section-heading { align-items: flex-start; }
.qs-dashboard-period-box {
    display: grid;
    gap: 4px;
    min-width: 220px;
    padding: 12px 14px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 16px;
    background: rgba(248,250,252,.9);
    text-align: right;
}
.qs-dashboard-period-box span { color: #64748b; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.qs-dashboard-period-box strong { color: #0f172a; font-size: 14px; }
.qs-executive-metrics-grid { margin-top: 18px; }
.qs-exec-card-positive strong { color: #047857; }
.qs-exec-card-attention strong { color: #b45309; }
.qs-exec-card-risk strong { color: #b91c1c; }
.qs-executive-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: 18px;
    margin-top: 18px;
}
.qs-executive-grid-thirds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.qs-executive-card h3 { margin-top: 4px; }
.qs-executive-alert-list { display: grid; gap: 10px; margin-top: 12px; }
.qs-executive-alert {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(15,23,42,.08);
    text-decoration: none;
    background: #fff;
    color: #0f172a;
}
.qs-executive-alert strong { font-size: 14px; }
.qs-executive-alert span { color: #64748b; font-size: 13px; }
.qs-executive-alert:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(15,23,42,.08); }
.qs-alert-warning { border-left: 5px solid #d97706; }
.qs-alert-danger { border-left: 5px solid #dc2626; }
.qs-alert-info { border-left: 5px solid #2563eb; }
.qs-exec-actions-grid { margin-top: 12px; }
.qs-executive-kv-list { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 10px; }
.qs-executive-kv-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(15,23,42,.08); }
.qs-executive-kv-list li:last-child { border-bottom: 0; }
.qs-executive-kv-list span { color: #64748b; font-size: 13px; }
.qs-executive-kv-list strong { color: #0f172a; font-size: 15px; text-align: right; }
@media (max-width: 980px) {
    .qs-executive-grid, .qs-executive-grid-thirds { grid-template-columns: 1fr; }
    .qs-dashboard-period-box { text-align: left; width: 100%; }
}


/* v0.2.16-beta: padronização leve de interface e usabilidade operacional */
.qs-ui-v0216 .qs-interface-context {
    max-width: 1180px;
    margin: -8px auto 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 10px 26px rgba(15,23,42,.05);
}
.qs-ui-v0216 .qs-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    color: #0f172a;
    font-weight: 850;
    font-size: 14px;
}
.qs-ui-v0216 .qs-breadcrumb-separator { color: #94a3b8; font-weight: 900; }
.qs-ui-v0216 .qs-interface-hint { color: #64748b; font-size: 12px; font-weight: 700; text-align: right; }
.qs-ui-v0216 .qs-app-panel {
    position: relative;
    overflow: hidden;
}
.qs-ui-v0216 .qs-app-panel::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(29,78,216,.75), rgba(14,165,233,.35), rgba(15,23,42,.08));
    opacity: .75;
}
.qs-ui-v0216 .qs-section-heading {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(15,23,42,.07);
}
.qs-ui-v0216 .qs-section-heading h2,
.qs-ui-v0216 .qs-app-panel > h2:first-child {
    letter-spacing: -.02em;
}
.qs-ui-v0216 .qs-operational-form {
    background: linear-gradient(180deg, rgba(248,250,252,.86), rgba(255,255,255,.7));
    border: 1px solid rgba(15,23,42,.06);
    border-radius: 18px;
    padding: 18px;
}
.qs-ui-v0216 .qs-operational-form button,
.qs-ui-v0216 .qs-public-button,
.qs-ui-v0216 .qs-record-print-button {
    min-height: 42px;
    border-radius: 14px;
}
.qs-ui-v0216 .qs-table-wrap {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    overflow: auto;
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.qs-ui-v0216 table {
    border-collapse: separate;
    border-spacing: 0;
}
.qs-ui-v0216 th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .035em;
}
.qs-ui-v0216 td, .qs-ui-v0216 th { vertical-align: top; }
.qs-ui-v0216 .qs-public-alert {
    border-radius: 16px;
    border-left-width: 5px;
}
.qs-ui-v0216 .qs-empty-state {
    padding: 18px;
    border: 1px dashed rgba(100,116,139,.32);
    border-radius: 18px;
    background: #f8fafc;
    color: #475569;
    font-weight: 700;
}
.qs-ui-v0216 .qs-area-nav a.active,
.qs-ui-v0216 .qs-context-nav a.active {
    box-shadow: 0 12px 28px rgba(29,78,216,.18);
}
@media (max-width: 760px) {
    .qs-ui-v0216 .qs-interface-context {
        align-items: flex-start;
        flex-direction: column;
        margin-top: 0;
    }
    .qs-ui-v0216 .qs-interface-hint { text-align: left; }
    .qs-ui-v0216 .qs-section-heading { flex-direction: column; }
    .qs-ui-v0216 .qs-operational-form { padding: 14px; }
    .qs-ui-v0216 .qs-table-wrap { margin-left: -2px; margin-right: -2px; }
}

.qs-access-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 16px; }
.qs-access-origin { display: inline-flex; align-items: center; width: fit-content; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 700; margin-top: 6px; }
.qs-access-origin-default { background: #eef2ff; color: #3730a3; }
.qs-access-origin-allow { background: #dcfce7; color: #166534; }
.qs-access-origin-deny { background: #fee2e2; color: #991b1b; }
.qs-access-summary-row { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 10px; margin: 12px 0; }
.qs-access-summary-row span { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid rgba(15,23,42,.08); border-radius: 14px; background: #fff; }
.qs-access-summary-row strong { font-size: 18px; color: #0f172a; }
.qs-access-summary-row small { color: #64748b; }
.qs-access-group { border: 1px solid rgba(15,23,42,.08); border-radius: 16px; padding: 12px; margin: 12px 0; background: rgba(248,250,252,.65); }
.qs-access-group h4 { margin: 0 0 10px; color: #0f172a; }
.qs-access-actions, .qs-access-reset-form { margin-top: 12px; }
.qs-secondary-button { background: #f8fafc !important; color: #334155 !important; border: 1px solid rgba(15,23,42,.12) !important; }
@media (max-width: 720px) { .qs-access-summary-row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .qs-access-summary-row { grid-template-columns: 1fr; } }


/* v0.2.20-beta: shell visual responsivo com menu lateral recolhível */
.qs-ui-v0220 {
    --qs-side-width-collapsed: 74px;
    --qs-side-width-expanded: 258px;
    --qs-side-bg: rgba(255,255,255,.96);
    --qs-side-border: rgba(15,23,42,.08);
    --qs-side-blue: #1d4ed8;
    --qs-side-ink: #0f172a;
    position: relative;
}

@media (min-width: 1041px) {
    .qs-ui-v0220 {
        padding-left: calc(var(--qs-side-width-collapsed) + 18px);
    }
    .qs-ui-v0220.qs-side-nav-pinned,
    .qs-ui-v0220:has(.qs-side-nav:hover) {
        padding-left: calc(var(--qs-side-width-expanded) + 18px);
    }
}

.qs-side-nav {
    position: fixed;
    z-index: 9990;
    top: 18px;
    left: 14px;
    bottom: 18px;
    width: var(--qs-side-width-collapsed);
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 10px;
    border: 1px solid var(--qs-side-border);
    border-radius: 26px;
    background: var(--qs-side-bg);
    box-shadow: 0 24px 60px rgba(15,23,42,.14);
    backdrop-filter: blur(12px);
    overflow: hidden;
    transition: width .22s ease, transform .22s ease, box-shadow .22s ease;
}

.qs-ui-v0220.qs-side-nav-pinned .qs-side-nav,
.qs-side-nav:hover {
    width: var(--qs-side-width-expanded);
}

.qs-side-nav-top {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(15,23,42,.07);
}

.qs-side-nav-collapse {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 16px;
    background: #eff6ff;
    color: var(--qs-side-blue);
    font-size: 24px;
    font-weight: 900;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease;
}
.qs-side-nav-collapse:hover { background: #dbeafe; transform: translateX(1px); }
.qs-ui-v0220.qs-side-nav-pinned .qs-side-nav-collapse span { transform: rotate(180deg); display: inline-block; }

.qs-side-nav-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 180px;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .18s ease, transform .18s ease;
}
.qs-side-nav-brand strong {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #0f172a;
    color: #fff;
    font-size: 13px;
    letter-spacing: .04em;
}
.qs-side-nav-brand span {
    color: var(--qs-side-ink);
    font-weight: 900;
    letter-spacing: -.02em;
}

.qs-ui-v0220.qs-side-nav-pinned .qs-side-nav-brand,
.qs-side-nav:hover .qs-side-nav-brand {
    opacity: 1;
    transform: translateX(0);
}

.qs-side-nav-list {
    display: grid;
    gap: 8px;
    flex: 1;
    align-content: start;
    padding-top: 2px;
}

.qs-side-nav-footer {
    padding-top: 10px;
    border-top: 1px solid rgba(15,23,42,.07);
}

.qs-side-nav-item {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 0 12px;
    border-radius: 16px;
    color: #1e40af;
    text-decoration: none;
    font-weight: 850;
    outline: none;
    transition: background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.qs-side-nav-item:hover,
.qs-side-nav-item:focus-visible {
    background: #eff6ff;
    color: #1d4ed8;
    transform: translateX(1px);
}
.qs-side-nav-item.active {
    background: linear-gradient(135deg, #1d4ed8, #2563eb);
    color: #fff;
    box-shadow: 0 14px 28px rgba(37,99,235,.25);
}
.qs-side-nav-logout { color: #b91c1c; }
.qs-side-nav-logout:hover { background: #fef2f2; color: #991b1b; }

.qs-side-nav-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.qs-side-nav-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.qs-side-nav-text {
    min-width: 155px;
    white-space: nowrap;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .18s ease, transform .18s ease;
}
.qs-ui-v0220.qs-side-nav-pinned .qs-side-nav-text,
.qs-side-nav:hover .qs-side-nav-text {
    opacity: 1;
    transform: translateX(0);
}

.qs-side-nav-mobile-toggle {
    display: none;
    max-width: 1180px;
    margin: 0 auto 12px;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 16px;
    background: #fff;
    color: #0f172a;
    font-weight: 900;
    box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
.qs-side-nav-mobile-toggle span {
    color: #1d4ed8;
    font-size: 20px;
    line-height: 1;
}

.qs-side-nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9980;
    background: rgba(15,23,42,.42);
    backdrop-filter: blur(2px);
}

.qs-context-nav-v0220 {
    position: sticky;
    top: 12px;
    z-index: 25;
}

@media (max-width: 1040px) {
    .qs-ui-v0220 {
        padding-left: 18px;
        padding-right: 18px;
    }
    .qs-side-nav-mobile-toggle { display: inline-flex; }
    .qs-side-nav {
        top: 12px;
        bottom: 12px;
        left: 12px;
        width: min(86vw, 304px);
        transform: translateX(calc(-100% - 24px));
        border-radius: 24px;
    }
    .qs-ui-v0220.qs-side-nav-mobile-open .qs-side-nav {
        transform: translateX(0);
    }
    .qs-ui-v0220.qs-side-nav-mobile-open .qs-side-nav-backdrop {
        display: block;
    }
    .qs-side-nav-brand,
    .qs-side-nav-text {
        opacity: 1;
        transform: none;
    }
    .qs-side-nav-collapse {
        display: none;
    }
    .qs-side-nav-top {
        padding-left: 4px;
    }
    .qs-side-nav-brand {
        min-width: auto;
    }
    .qs-side-nav-item {
        min-height: 52px;
    }
    .qs-context-nav-v0220 {
        position: relative;
        top: auto;
    }
}

@media (max-width: 640px) {
    .qs-ui-v0220 {
        padding: 18px 12px 28px;
    }
    .qs-app-header {
        border-radius: 20px;
    }
    .qs-context-nav-v0220 {
        overflow-x: auto;
        flex-wrap: nowrap;
        justify-content: flex-start;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 12px;
    }
    .qs-context-nav-v0220 a {
        white-space: nowrap;
        flex: 0 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .qs-side-nav,
    .qs-side-nav-text,
    .qs-side-nav-brand,
    .qs-side-nav-item,
    .qs-side-nav-collapse {
        transition: none !important;
    }
}

/* v0.2.21 - melhorias financeiras sugeridas por usuário */
.qs-inline-details {
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 16px;
    background: #f8fafc;
    padding: 12px 14px;
}
.qs-inline-details summary {
    cursor: pointer;
    font-weight: 800;
    color: #1d4ed8;
    margin-bottom: 10px;
}
.qs-cnpj-lookup-box {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding-top: 26px;
}
.qs-cnpj-lookup-box small { color: #64748b; font-weight: 650; }
.qs-payables-filter-form {
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    padding: 16px;
    margin: 12px 0 18px;
}
.qs-mini-action[disabled] { opacity: .65; cursor: wait; }
@media (max-width: 720px) {
    .qs-cnpj-lookup-box { padding-top: 0; }
}

/* v0.3.1 - busca humanizada de fornecedor dentro de Contas a Pagar */
.qs-supplier-picker {
    display: grid;
    gap: 10px;
    align-content: start;
}
.qs-supplier-picker > label {
    margin: 0;
}
.qs-supplier-picker small {
    color: #64748b;
    font-weight: 650;
    line-height: 1.35;
}
.qs-supplier-picker input[type="search"] {
    background: #ffffff;
}

/* v0.3.6-beta: ações seguras em fornecedores */
.qs-inline-delete-form{display:inline-block;margin-left:8px}
.qs-inline-delete-form button.qs-mini-link{background:transparent;border:0;padding:0;cursor:pointer;font:inherit;text-decoration:underline}
.qs-danger-link{color:#b91c1c!important;font-weight:800}
.qs-danger-link:hover{color:#7f1d1d!important}

/* v0.3.9-beta: lixeira administrativa de fornecedores */
.qs-muted-row{opacity:.78;background:rgba(100,116,139,.08)}
.qs-muted-row td{color:#475569}
.qs-muted-row small{color:#64748b}

/* v0.4.1 - Sobre o sistema, versão e diagnóstico */
.qs-system-version-footer{
    margin: 22px 0 8px;
    padding: 10px 14px;
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
    align-items:center;
    justify-content:flex-end;
    color:#64748b;
    font-size:12px;
    border-top:1px solid #e2e8f0;
}
.qs-system-version-footer a{ color:#2f3c5f; font-weight:700; text-decoration:none; }
.qs-system-version-footer a:hover{ text-decoration:underline; }
.qs-about-hero{
    display:grid;
    grid-template-columns: 1.3fr .9fr;
    gap:16px;
    margin: 14px 0 18px;
}
.qs-about-hero > div{
    border:1px solid #dbeafe;
    background:linear-gradient(135deg,#f8fafc,#eff6ff);
    border-radius:18px;
    padding:18px;
    box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.qs-about-hero strong{ display:block; color:#0f172a; font-size:20px; margin-bottom:6px; }
.qs-about-hero span{ color:#64748b; }
.qs-about-grid{
    display:grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap:12px;
    margin:14px 0 20px;
}
.qs-about-card{
    border:1px solid #e2e8f0;
    background:#fff;
    border-radius:14px;
    padding:14px;
}
.qs-about-card small{ display:block; color:#64748b; margin-bottom:6px; }
.qs-about-card strong{ color:#0f172a; word-break:break-word; }
.qs-section-heading-soft{ margin-top:20px; }
.qs-module-status-grid{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:10px 0 18px;
}
.qs-module-pill{
    border:1px solid #e2e8f0;
    background:#f8fafc;
    color:#475569;
    border-radius:999px;
    padding:7px 10px;
    font-size:12px;
    font-weight:700;
}
.qs-module-pill.active{ border-color:#bbf7d0; background:#f0fdf4; color:#166534; }
.qs-module-pill.pending{ border-color:#fed7aa; background:#fff7ed; color:#9a3412; }
.qs-diagnostic-copy{
    width:100%;
    border:1px solid #cbd5e1;
    border-radius:14px;
    padding:12px;
    background:#f8fafc;
    color:#334155;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size:12px;
    resize:vertical;
    margin-bottom:10px;
}
@media (max-width: 780px){
    .qs-about-hero,.qs-about-grid{ grid-template-columns:1fr; }
    .qs-system-version-footer{ justify-content:flex-start; }
}
.qs-form-help{
    margin:0;
    color:#64748b;
    font-size:12px;
    line-height:1.5;
}

/* v0.4.13-beta: contenção visual de Contas a receber dentro do shell público */
.qs-app-shell .qs-view-frame,
.qs-app-shell .qs-view-frame * {
    box-sizing: border-box;
}
.qs-app-shell .qs-receivables-view {
    width: 100%;
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}
.qs-app-shell .qs-receivables-view > .qs-app-panel {
    width: 100%;
    max-width: 100%;
}
.qs-app-shell .qs-receivables-view .qs-two-columns,
.qs-app-shell .qs-receivables-view .qs-operational-form,
.qs-app-shell .qs-receivables-view .qs-table-wrap {
    max-width: 100%;
}
.qs-app-shell .qs-receivables-view .qs-table-wrap {
    overflow-x: auto;
}
@media (max-width: 760px) {
    .qs-app-shell .qs-receivables-view {
        max-width: 100%;
    }
}
