:root {
  --forest-950: #424B73;
  --forest-900: #4F5A85;
  --forest-800: #4E5A86;
  --forest-700: #5E6A96;
  --sage-100: #ECEDF4;
  --sage-200: #DEE0EB;
  --sage-300: #CDD1E2;
  --cream: #F6F3EE;
  --ink: #252A40;
  --muted: #5A6078;
  --line: #E8E3DA;
  --danger: #b74b4b;
  --warning: #b87f26;
  --shadow: 0 18px 50px rgba(26, 29, 44, 0.09);
  --radius: 18px;
  --wood: #D8BB8E;
}

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--cream); }

body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.45;
}

button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
  outline: 3px solid #8f94aa;
  outline-offset: 2px;
}

.login-page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(380px, .8fr);
  background: #f3f4f6;
}

.login-hero {
  position: relative;
  min-height: 720px;
  overflow: hidden;
  padding: clamp(40px, 7vw, 96px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: white;
  background: var(--forest-900);
}

.login-hero::before, .login-hero::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(231, 232, 237, .2);
}
.login-hero::before { width: 630px; height: 630px; right: -220px; top: -150px; }
.login-hero::after { width: 420px; height: 420px; left: -155px; bottom: -200px; background: rgba(88, 93, 121, .16); }

.brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 12px; font-weight: 700; letter-spacing: -.02em; }
.brand-mark {
  width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px;
  color: var(--forest-900); background: #ebecef; font-family: "Newsreader", Georgia, serif; font-size: 19px;
}
.brand-name { font-size: 16px; }
.login-message { position: relative; z-index: 1; max-width: 620px; margin-top: auto; margin-bottom: auto; }
.eyebrow { margin: 0 0 14px; color: #afb2c4; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.login-message h1 { max-width: 600px; margin: 0; font-family: "Newsreader", Georgia, serif; font-size: clamp(42px, 5vw, 74px); font-weight: 600; line-height: 1.04; letter-spacing: -.045em; }
.login-message p:not(.eyebrow) { max-width: 500px; margin: 25px 0 0; color: #cbcdd8; font-size: 17px; }
.login-footer { position: relative; z-index: 1; color: #aeb0bd; font-size: 13px; }

.login-panel { display: flex; align-items: center; justify-content: center; padding: 36px; }
.login-card { width: min(100%, 420px); }
.login-card h2 { margin: 0 0 10px; font-size: 30px; letter-spacing: -.035em; }
.login-card > p { margin: 0 0 30px; color: var(--muted); }
.profile-choice { display: grid; gap: 12px; }
.role-button {
  width: 100%; display: flex; align-items: center; gap: 16px; padding: 17px;
  border: 1px solid var(--line); border-radius: 14px; text-align: left; color: var(--ink); background: white; transition: .2s ease;
}
.role-button:hover { border-color: #9a9eb2; transform: translateY(-2px); box-shadow: 0 12px 25px rgba(30, 33, 49, .08); }
.role-icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: var(--forest-800); background: var(--sage-100); font-size: 20px; }
.role-copy { display: block; flex: 1; }
.role-copy strong { display: block; font-size: 15px; }
.role-copy span { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; }
.role-arrow { color: var(--forest-700); font-size: 22px; }
.login-note { margin: 26px 4px 0; color: var(--muted); font-size: 12px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 258px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 25px 15px; color: #e5e6eb; background: var(--forest-950); }
.sidebar .brand { margin: 0 13px 40px; }
.sidebar .brand-mark { width: 31px; height: 31px; }
.nav-label { margin: 25px 13px 9px; color: #9194a2; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sidebar-nav { display: grid; gap: 3px; }
.nav-item { display: flex; width: 100%; align-items: center; gap: 12px; padding: 11px 13px; border: 0; border-radius: 10px; color: #c2c4ce; background: transparent; font-size: 14px; text-align: left; }
.nav-item:hover { color: #fff; background: rgba(214, 216, 228, .09); }
.nav-item.active { color: #fff; background: var(--forest-700); font-weight: 600; }
.nav-icon { width: 18px; text-align: center; color: #babdcc; font-size: 15px; }
.sidebar-bottom { position: absolute; bottom: 24px; right: 15px; left: 15px; padding: 13px; border: 1px solid rgba(216, 219, 230, .14); border-radius: 12px; background: rgba(216, 219, 230, .06); }
.sidebar-bottom strong { display: block; color: #f0f1f6; font-size: 12px; }
.sidebar-bottom span { color: #a2a5b4; font-size: 11px; }

.workspace { min-width: 0; background: #f4f4f6; }
.topbar { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 38px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.7); }
.breadcrumb { color: var(--muted); font-size: 13px; }
.breadcrumb b { color: var(--ink); font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 13px; }
.notice-button { position: relative; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; color: var(--forest-800); background: white; font-size: 17px; }
.notice-count { position: absolute; top: -6px; right: -6px; min-width: 17px; height: 17px; padding: 1px 4px; border-radius: 8px; color: white; background: #bd5f43; font-size: 10px; font-weight: 700; }
.user-chip { display: flex; align-items: center; gap: 9px; padding-left: 4px; }
.avatar { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--forest-900); background: #cccfda; font-size: 12px; font-weight: 700; }
.user-chip strong, .user-chip small { display: block; line-height: 1.15; }
.user-chip strong { font-size: 12px; }.user-chip small { margin-top: 3px; color: var(--muted); font-size: 10px; }

.page { max-width: 1440px; margin: 0 auto; padding: 34px 38px 54px; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.page-heading h1 { margin: 0; font-family: "Newsreader", Georgia, serif; font-size: 32px; letter-spacing: -.035em; line-height: 1.1; }
.page-heading p { margin: 7px 0 0; color: var(--muted); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 9px 14px; border: 1px solid transparent; border-radius: 9px; color: white; background: var(--forest-700); font-size: 13px; font-weight: 700; text-decoration: none; transition: .18s ease; }
.button:hover { background: var(--forest-800); box-shadow: 0 7px 16px rgba(40, 45, 69, .2); }
.button.secondary { border-color: var(--line); color: var(--forest-800); background: white; }.button.secondary:hover { background: var(--sage-100); box-shadow: none; }
.button.danger { color: var(--danger); background: #fff4f4; border-color: #f2d7d7; }.button.danger:hover { background: #feeaea; box-shadow: none; }
.button.small { min-height: 33px; padding: 6px 10px; font-size: 12px; }

.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 25px; }
.stat-card { min-height: 132px; padding: 19px; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: 0 4px 14px rgba(27, 30, 43, .03); }
.stat-card .stat-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-800); background: var(--sage-100); font-size: 15px; }.stat-card:nth-child(2) .stat-icon { color: #9b6a18; background: #f8edd9; }.stat-card:nth-child(3) .stat-icon { color: #5860a2; background: #e8e9f9; }.stat-card:nth-child(4) .stat-icon { color: #ad5441; background: #fae7e2; }
.stat-label { margin-top: 11px; color: var(--muted); font-size: 12px; }.stat-value { margin-top: 2px; color: var(--ink); font-size: 27px; font-weight: 700; letter-spacing: -.05em; }.stat-foot { margin-top: 3px; color: #4c8a6d; font-size: 11px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(260px, .72fr); gap: 20px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 4px 18px rgba(27, 30, 43, .03); }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 19px 20px 14px; }.panel-header h2 { margin: 0; font-size: 16px; letter-spacing: -.02em; }.panel-header a, .text-action { border: 0; color: var(--forest-700); background: transparent; font-size: 12px; font-weight: 700; text-decoration: none; }
.case-list { padding: 0 9px 10px; }.case-row { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; }.case-row:hover { background: #f8f8f9; }.case-identity { flex: 1; min-width: 0; }.case-identity strong, .case-identity span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.case-identity strong { font-size: 13px; }.case-identity span { margin-top: 2px; color: var(--muted); font-size: 11px; }.case-avatar { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 12px; color: var(--forest-800); background: #eaebee; font-size: 12px; font-weight: 700; }.case-arrow { color: #9fa1a9; }
.status { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; }.status::before { width: 5px; height: 5px; content: ""; border-radius: 50%; background: currentColor; }.status.in-progress { color: #39795a; background: #eaf5ee; }.status.waiting { color: #9a6b1e; background: #fff5df; }.status.ready { color: #51629b; background: #eff0fb; }.status.done { color: #78648e; background: #f3eef8; }
.timeline { padding: 0 20px 17px; }.timeline-item { position: relative; display: flex; gap: 12px; padding: 0 0 18px; }.timeline-item:not(:last-child)::before { position: absolute; top: 24px; left: 6px; width: 1px; bottom: 0; content: ""; background: var(--line); }.timeline-dot { width: 13px; height: 13px; margin-top: 4px; flex: 0 0 auto; border-radius: 50%; background: #9095ab; box-shadow: 0 0 0 4px #eff0f5; }.timeline-item:nth-child(2) .timeline-dot { background: #d6a449; box-shadow: 0 0 0 4px #fff8ea; }.timeline-item:nth-child(3) .timeline-dot { background: #7d8ac0; box-shadow: 0 0 0 4px #f0f2fd; }.timeline-copy strong { display: block; font-size: 12px; }.timeline-copy span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }

.content-panel { padding: 23px; }.table-wrap { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; text-align: left; }.data-table th { padding: 0 12px 11px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; }.data-table td { padding: 13px 12px; border-bottom: 1px solid #f0f0f2; font-size: 13px; vertical-align: middle; }.data-table tr:last-child td { border-bottom: 0; }.person-cell { display: flex; align-items: center; gap: 9px; }.mini-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-800); background: var(--sage-100); font-size: 10px; font-weight: 700; }.cell-muted { color: var(--muted); font-size: 12px; }.table-actions { display: flex; justify-content: flex-end; gap: 8px; }

.split-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .72fr); gap: 20px; align-items: start; }.form-card { padding: 25px; }.form-card h2 { margin: 0; font-size: 18px; letter-spacing: -.025em; }.form-card > p { margin: 5px 0 24px; color: var(--muted); font-size: 13px; }.form-section { padding: 23px 0; border-top: 1px solid var(--line); }.form-section:first-of-type { padding-top: 0; border-top: 0; }.form-section-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 15px; }.form-section-title h3 { margin: 0; font-size: 14px; }.form-section-title p { margin: 2px 0 0; color: var(--muted); font-size: 11px; }.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.form-grid.three { grid-template-columns: 1.2fr .8fr 1fr; }.field { min-width: 0; }.field.full { grid-column: 1 / -1; }.field label { display: block; margin-bottom: 6px; color: #484a55; font-size: 11px; font-weight: 700; }.field input, .field select, .field textarea { width: 100%; padding: 10px 11px; border: 1px solid #d2d3d9; border-radius: 8px; outline: none; color: var(--ink); background: #fff; font-size: 13px; transition: border .15s ease, box-shadow .15s ease; }.field textarea { min-height: 94px; resize: vertical; line-height: 1.5; }.field input:focus, .field select:focus, .field textarea:focus { border-color: #7f849d; box-shadow: 0 0 0 3px rgba(119, 125, 152, .14); }.field input::placeholder, .field textarea::placeholder { color: #a8a9af; }
.guardian-row { position: relative; display: grid; grid-template-columns: .8fr 1.25fr 1fr 1fr 1.2fr auto; gap: 8px; align-items: end; margin-bottom: 9px; }.guardian-row .field label { display: none; }.guardian-row:first-child .field label { display: block; }.icon-button { width: 34px; height: 38px; margin-bottom: 0; display: grid; place-items: center; border: 1px solid #efd4d4; border-radius: 8px; color: var(--danger); background: #fff7f7; }.icon-button:hover { background: #ffeded; }.radio-line { display: flex; gap: 8px; }.radio-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 8px 12px; border: 1px solid #d2d3d9; border-radius: 8px; color: #53555e; background: #fff; font-size: 12px; font-weight: 600; }.radio-pill input { width: auto; accent-color: var(--forest-700); }.conditional { margin-top: 12px; padding: 13px; border-radius: 9px; background: #f5f5f7; }.conditional.hidden { display: none; }.upload-box { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px dashed #b4b6c1; border-radius: 8px; color: var(--forest-700); background: #f8f8fa; font-size: 12px; }.upload-box input { position: absolute; width: 1px; height: 1px; clip: rect(0 0 0 0); }.upload-label { color: var(--forest-700); font-weight: 700; cursor: pointer; }.file-name { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--line); }
.side-note { padding: 22px; background: var(--forest-900); color: #ecedf2; }.side-note h2 { margin: 0; font-family: "Newsreader", Georgia, serif; font-size: 22px; letter-spacing: -.025em; }.side-note > p { margin: 8px 0 20px; color: #c0c2cd; font-size: 13px; }.step-list { display: grid; gap: 3px; }.step { display: flex; align-items: center; gap: 10px; padding: 9px; border-radius: 9px; color: #c0c2cd; font-size: 12px; }.step .step-number { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid #676b7e; border-radius: 50%; color: #c0c2cd; font-size: 10px; }.step.active { color: white; background: rgba(223, 225, 234, .12); font-weight: 700; }.step.active .step-number { color: var(--forest-900); border-color: #dddfe8; background: #dddfe8; }.side-note hr { margin: 22px 0; border: 0; border-top: 1px solid rgba(226, 228, 237, .16); }.side-note small { color: #a2a4b2; font-size: 11px; }

.assignment-patient { display: flex; gap: 12px; align-items: center; padding: 14px; border: 1px solid #d3d4dc; border-radius: 11px; background: #f5f6f8; }.assignment-patient h3 { margin: 0; font-size: 14px; }.assignment-patient span { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }.specialty-filter { display: flex; gap: 7px; flex-wrap: wrap; margin: 15px 0 17px; }.filter-chip { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: white; font-size: 11px; }.filter-chip.active { border-color: var(--forest-700); color: white; background: var(--forest-700); }.professional-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.professional-option { position: relative; display: flex; align-items: center; gap: 10px; min-height: 75px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: white; cursor: pointer; transition: .16s ease; }.professional-option:hover { border-color: #a1a5b6; }.professional-option.selected { border-color: #6d728e; background: #f4f4f7; box-shadow: inset 0 0 0 1px #6d728e; }.professional-option input { position: absolute; opacity: 0; pointer-events: none; }.professional-option strong, .professional-option span { display: block; }.professional-option strong { font-size: 12px; }.professional-option span { margin-top: 2px; color: var(--muted); font-size: 10px; }.choice-check { width: 20px; height: 20px; margin-left: auto; display: grid; place-items: center; border: 1px solid #cbcdd4; border-radius: 50%; color: white; font-size: 12px; }.selected .choice-check { border-color: #5c6382; background: #5c6382; }.assignment-summary { padding: 20px; }.assignment-summary h2 { margin: 0; font-size: 15px; }.assignment-summary p { margin: 5px 0 16px; color: var(--muted); font-size: 12px; }.selection-list { display: grid; gap: 7px; }.selection-list > span { display: block; padding: 9px; border-radius: 8px; color: #4c4e5a; background: #f4f4f6; font-size: 12px; }.empty-selection { padding: 20px 10px; color: var(--muted); font-size: 12px; text-align: center; }.wide-action { width: 100%; margin-top: 18px; }

.professional-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; margin-bottom: 22px; border: 1px solid #d3d4dc; border-radius: 13px; background: #f3f4f7; }.professional-bar p { margin: 0; color: var(--muted); font-size: 12px; }.professional-bar select { min-width: 210px; padding: 8px 10px; border: 1px solid #c2c4cd; border-radius: 8px; color: var(--forest-800); background: white; font-size: 12px; font-weight: 700; }.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.case-card { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; transition: .18s ease; }.case-card:hover { border-color: #a5a8b7; box-shadow: 0 10px 22px rgba(30, 33, 48, .07); transform: translateY(-2px); }.case-card-head { display: flex; justify-content: space-between; gap: 8px; }.case-card h2 { margin: 11px 0 3px; font-size: 15px; }.case-card .case-meta { color: var(--muted); font-size: 11px; }.case-card .case-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 19px; padding-top: 13px; border-top: 1px solid #eeeff1; }.case-card .case-card-footer span { color: var(--muted); font-size: 11px; }

.case-header { display: flex; align-items: center; gap: 15px; padding: 19px 21px; margin-bottom: 19px; border: 1px solid #d3d4dc; border-radius: 14px; background: #fff; }.case-header h2 { margin: 0; font-size: 20px; letter-spacing: -.03em; }.case-header p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }.case-header .case-header-actions { margin-left: auto; }.tabs { display: flex; gap: 17px; padding: 0 3px; margin-bottom: 19px; border-bottom: 1px solid var(--line); }.tab { padding: 8px 2px 11px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; font-size: 12px; font-weight: 700; }.tab.active { border-color: var(--forest-700); color: var(--forest-800); }.session-list { display: grid; gap: 9px; }.session-item { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid #e7e7ea; border-radius: 10px; }.session-calendar { width: 37px; padding: 4px; border-radius: 8px; color: #3e4257; background: #ecedf2; text-align: center; font-size: 10px; font-weight: 700; }.session-calendar b { display: block; font-size: 14px; }.session-item strong, .session-item span { display: block; }.session-item strong { font-size: 12px; }.session-item span { margin-top: 2px; color: var(--muted); font-size: 11px; }.session-status { margin-left: auto; }

.report-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px; align-items: start; }.report-controls { padding: 19px; }.report-controls h2 { margin: 0 0 4px; font-size: 15px; }.report-controls p { margin: 0 0 15px; color: var(--muted); font-size: 12px; }.report-controls select { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; }.report-info { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }.report-info strong { display: block; font-size: 12px; }.report-info span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.report-paper { min-height: 720px; padding: clamp(25px, 4vw, 55px); border: 1px solid #d9d9dc; background: white; box-shadow: var(--shadow); }.letterhead { padding-bottom: 17px; border-bottom: 2px solid var(--forest-700); text-align: center; }.letterhead h2 { margin: 0; font-family: "Newsreader", Georgia, serif; font-size: 22px; letter-spacing: -.025em; }.letterhead p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }.letterhead .report-title { margin-top: 18px; color: var(--forest-900); font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 14px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }.report-section { margin-top: 26px; }.report-section h3 { margin: 0 0 10px; color: var(--forest-800); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }.patient-table { width: 100%; border-collapse: collapse; font-size: 11px; }.patient-table td { padding: 8px 9px; border: 1px solid #e1e2e5; }.patient-table td:first-child { width: 20%; color: #52545e; background: #f7f7f8; font-weight: 700; }.professional-report { padding: 12px 0; border-top: 1px solid #e6e7ea; }.professional-report:first-of-type { border-top: 0; }.professional-report strong { display: block; color: var(--forest-800); font-size: 11px; text-transform: uppercase; }.professional-report p { margin: 4px 0 0; color: #393b46; font-size: 12px; white-space: pre-wrap; }.report-empty { margin: 0; color: var(--muted); font-size: 12px; font-style: italic; }.signatures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 55px; }.signature { padding-top: 10px; border-top: 1px solid #7c7e87; color: #42444f; font-size: 11px; text-align: center; }.signature span { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }.report-footer { margin-top: 35px; padding-top: 9px; border-top: 1px solid #dbdce1; color: var(--muted); font-size: 9px; text-align: center; }

.empty-state { padding: 44px 25px; color: var(--muted); text-align: center; }.empty-state .empty-icon { margin-bottom: 9px; font-size: 27px; }.empty-state h2 { margin: 0; color: var(--ink); font-size: 16px; }.empty-state p { max-width: 320px; margin: 6px auto 16px; font-size: 12px; }.empty-inline { padding: 18px; color: var(--muted); font-size: 12px; text-align: center; }
.toast-region { position: fixed; z-index: 10; right: 22px; bottom: 22px; display: grid; gap: 9px; width: min(360px, calc(100vw - 44px)); }.toast { padding: 13px 15px; border: 1px solid #b5d4bf; border-radius: 11px; color: #255b3b; background: #f2fbf4; box-shadow: 0 12px 25px rgba(27, 31, 48, .14); font-size: 13px; animation: appear .22s ease both; }.toast.error { border-color: #efc6c6; color: #9e4141; background: #fff5f5; }@keyframes appear { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media print {
  body { background: white; }.app-shell, .login-page, .toast-region { display: none !important; }.print-root { display: block !important; }.report-paper { min-height: auto; border: 0; box-shadow: none; }
}
.print-root { display: none; }

@media (max-width: 1050px) { .stats-grid { grid-template-columns: repeat(2, 1fr); }.split-layout, .report-layout { grid-template-columns: 1fr; }.dashboard-grid { grid-template-columns: 1fr; }.report-controls { display: flex; align-items: flex-start; gap: 20px; }.report-controls .report-info { margin-top: 0; padding-top: 0; border-top: 0; }.sidebar { width: 215px; }.app-shell { grid-template-columns: 215px minmax(0, 1fr); }.professional-options { grid-template-columns: 1fr; } }
@media (max-width: 780px) { .login-page { grid-template-columns: 1fr; }.login-hero { min-height: 370px; padding: 34px; }.login-message { margin: 80px 0 15px; }.login-message h1 { font-size: 43px; }.login-footer { display: none; }.login-panel { padding: 38px 25px 48px; }.app-shell { display: block; }.sidebar { position: static; width: 100%; height: auto; padding: 15px; }.sidebar .brand { margin: 0 6px 15px; }.sidebar-nav { display: flex; overflow-x: auto; }.nav-label, .sidebar-bottom { display: none; }.nav-item { width: auto; white-space: nowrap; }.topbar { padding: 13px 18px; }.topbar .breadcrumb { display: none; }.top-actions { margin-left: auto; }.page { padding: 25px 18px 42px; }.page-heading { display: block; }.page-heading .button { margin-top: 16px; }.form-grid, .form-grid.three { grid-template-columns: 1fr; }.guardian-row { grid-template-columns: 1fr 1fr; padding: 0 0 12px; border-bottom: 1px solid var(--line); }.guardian-row .field label { display: block; }.guardian-row .icon-button { grid-column: 2; justify-self: end; }.case-grid { grid-template-columns: 1fr; }.case-header { align-items: flex-start; }.case-header .case-header-actions { margin-left: 0; }.case-header { flex-wrap: wrap; }.tabs { overflow-x: auto; }.professional-bar { align-items: flex-start; flex-direction: column; }.professional-bar select { width: 100%; }.stats-grid { gap: 11px; }.stat-card { padding: 14px; min-height: 112px; }.report-controls { display: block; }.report-controls .report-info { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }.report-paper { padding: 27px 20px; }.signatures { grid-template-columns: 1fr; gap: 30px; }.guardian-row { gap: 9px; }.data-table td, .data-table th { padding-left: 7px; padding-right: 7px; } }

/* identidade visual: logo e fotos */
.brand-logo { display: block; height: 44px; width: auto; }
.login-hero { background: linear-gradient(180deg, rgba(66,75,115,.72), rgba(79,90,133,.92)), url("assets/foto-fachada.jpg") center 30% / cover no-repeat, var(--forest-900); }
.login-hero::after { background: rgba(216, 187, 142, .14); }
.login-hero .brand-logo { height: 96px; }
.sidebar .brand-logo { height: 64px; }
.letterhead .report-logo { display: block; height: 54px; width: auto; margin: 0 auto 10px; }
.login-panel { background: var(--cream); }
.login-card .login-photo { display: none; }
@media (max-width: 760px) { .login-hero .brand-logo { height: 72px; } }

/* equipe: descrição de atuação abaixo do nome */
.person-cell { align-items: flex-start; }
.person-cell small { display: block; margin-top: 3px; max-width: 46ch; font-size: 12px; font-weight: 400; line-height: 1.4; }
.data-table td:first-child { min-width: 260px; }

/* login e acesso dos profissionais */
.form-message { margin: 14px 0 0; padding: 10px 12px; border-radius: 10px; color: var(--forest-800); background: var(--sage-100); font-size: 13px; }
.form-message.error { color: var(--danger); background: #fff4f4; }
.login-card .form-actions { margin-top: 18px; }
.login-card .form-actions .button { width: 100%; }
.access-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; border-color: var(--wood); background: #fffaf2; }
.access-card h2 { margin: 0 0 4px; font-size: 18px; }
.access-data { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 14px 0 0; }
.access-data dt { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.access-data dd { margin: 2px 0 0; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 17px; font-weight: 600; user-select: all; }
@media (max-width: 780px) { .access-card { flex-direction: column; } }
.field.hidden { display: none; }

/* equipe: linha clicável e edição de acesso */
.data-table tr.is-clickable { cursor: pointer; }
.data-table tr.is-clickable:hover td { background: var(--sage-100); }
.data-table tr.is-selected td { background: var(--sage-200); }
.data-table tr.is-clickable:focus-visible { outline: 3px solid #84b59a; outline-offset: -3px; }
.person-cell .access-line { margin-top: 4px; font-weight: 600; color: var(--forest-700); }
.access-edit { padding: 18px 0 4px; }
.access-edit h3 { margin: 0 0 12px; font-size: 14px; }
.access-tools { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.form-card textarea { width: 100%; resize: vertical; }
.form-card .form-actions { display: flex; justify-content: flex-end; gap: 10px; }

/* calendário: agenda do profissional e agendamento da administração */
.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.calendar-head strong { font-family: "Newsreader", Georgia, serif; font-size: 19px; }
.calendar-head strong::first-letter, .slot-picker strong::first-letter { text-transform: uppercase; }
.cal-nav { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--forest-800); font-size: 20px; line-height: 1; }
.cal-nav:hover { background: var(--sage-100); }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cal-weekday { padding: 4px 0; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.cal-day { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-height: 68px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; text-align: left; }
.cal-day b { font-size: 13px; }
.cal-day:hover:not(:disabled) { border-color: var(--forest-700); background: var(--sage-100); }
.cal-day.is-today b { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 99px; color: #fff; background: var(--forest-700); }
.cal-day.is-selected { border-color: var(--forest-700); box-shadow: 0 0 0 2px var(--forest-700) inset; }
.cal-day.is-past { color: #a2a4ad; background: #f7f6f3; }
.cal-day.has-off { border-color: #e3b9b9; background: #fff1f1; }
.cal-day.has-partial { border-color: #e6cf9d; background: #fff8ea; }
.cal-day.has-session:not(.has-off) { border-color: var(--wood); }
.cal-day.is-blocked { color: #a05555; border-color: #ecc9c9; background: repeating-linear-gradient(135deg, #fff5f5, #fff5f5 6px, #fbe6e6 6px, #fbe6e6 12px); cursor: not-allowed; }
.cal-tag { max-width: 100%; overflow: hidden; color: var(--muted); font-size: 10.5px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.cal-day.has-off .cal-tag { color: var(--danger); }
.cal-day.has-partial .cal-tag { color: var(--warning); }
.calendar.compact .cal-day { min-height: 46px; padding: 5px 6px; }
.calendar.compact .calendar-head strong { font-size: 16px; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; color: var(--muted); font-size: 12px; }
.calendar-legend .dot { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 3px; }
.dot.off { background: #f3c4c4; }
.dot.partial { background: #f0d79b; }
.dot.session { background: var(--wood); }
.day-list { display: grid; gap: 9px; margin: 14px 0 18px; }
.day-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.day-item.off { border-color: #e9c3c3; background: #fff7f7; }
.day-item.session { border-color: var(--wood); background: #fffaf2; }
.day-item strong { display: block; font-size: 13px; }
.day-item span { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.unavailability-form { padding-top: 16px; border-top: 1px solid var(--line); }
.unavailability-form h3 { margin: 0 0 12px; font-size: 14px; }
.choice-row { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font-size: 13px; }
.choice-row label { display: inline-flex; align-items: center; gap: 6px; }
.scheduler-card { margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fcfcfd; }
.scheduler-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.scheduler-head strong { display: block; font-size: 14px; }
.scheduler-body { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.slot-picker strong { display: block; margin-bottom: 10px; font-size: 13px; }
.slot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.slot { display: flex; flex-direction: column; align-items: center; padding: 8px 6px; border: 1px solid var(--forest-700); border-radius: 9px; color: var(--forest-800); background: #fff; font-size: 13px; font-weight: 600; }
.slot:hover { color: #fff; background: var(--forest-700); }
.slot.is-busy { border-color: var(--line); color: #a2a4ad; background: #f4f3f0; cursor: not-allowed; }
.slot.is-busy small { font-size: 10px; font-weight: 500; }
.draft-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.draft-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 6px 6px 12px; border-radius: 99px; color: var(--forest-800); background: var(--sage-200); font-size: 12.5px; font-weight: 600; }
.draft-chip button { width: 22px; height: 22px; border: 0; border-radius: 50%; color: var(--forest-800); background: rgba(255,255,255,.7); line-height: 1; }
.draft-flag { color: var(--warning); font-size: 11px; font-style: normal; font-weight: 600; }
.booked-title { margin: 20px 0 10px; font-size: 14px; }
@media (max-width: 780px) { .scheduler-body { grid-template-columns: 1fr; } .cal-day { min-height: 54px; padding: 5px; } .cal-tag { font-size: 9px; } }

.calendar.compact .cal-day.is-blocked { color: #a05555; }
