/* Shared visual language for the Doctor and Admin workspaces. */
:root {
    --panel-ink: #173443;
    --panel-muted: #596f7c;
    --panel-accent: #087d91;
    --panel-line: #e0e8eb;
    --panel-surface: #f7fafb;
}
.panel-shell, .panel-auth {
    font-family: Inter, system-ui, sans-serif;
    color: var(--panel-ink);
    background: #f4f8f9;
    -webkit-font-smoothing: antialiased;
}
.panel-shell { font-size: 14px; line-height: 1.55; }
.panel-shell h1, .panel-shell h2, .panel-shell h3, .panel-auth h1, .panel-auth h2 {
    letter-spacing: -.025em;
}
.panel-shell .font-black { font-weight: 700; }
.panel-shell #app-sidebar {
    border-color: var(--panel-line);
    box-shadow: 4px 0 24px rgb(23 52 67 / 2%);
    height: 100dvh;
}
.panel-shell #app-sidebar > div:first-child { padding-top: 28px; padding-bottom: 24px; }
.panel-shell #app-sidebar > div:nth-child(2) {
    margin: 16px 14px 8px;
    padding: 14px;
    background: var(--panel-surface);
    border: 1px solid var(--panel-line);
    border-radius: 16px;
}
.panel-shell #app-sidebar nav { padding: 12px; }
.panel-shell .panel-nav-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin-bottom: 4px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--panel-muted);
    font-size: 13px;
    font-weight: 500;
    transition: background-color .15s, color .15s;
}
.panel-shell .panel-nav-link:hover { background: var(--panel-surface); color: var(--panel-accent); }
.panel-shell .panel-nav-link.is-active {
    color: #066678;
    background: #e7f4f5;
    border-color: #d3e9ec;
    font-weight: 650;
}
.panel-shell main > header {
    min-height: 76px;
    height: auto;
    padding-top: 14px;
    padding-bottom: 14px;
    border-color: var(--panel-line);
}
.panel-shell main > header h2 { font-size: 21px; font-weight: 700; }
.panel-shell .panel-content { max-width: 1600px; margin-inline: auto; width: 100%; }
.panel-shell :is(.admin-card, .doctor-card, .admin-stat-card, .doctor-stat-card, .bento-card) {
    border-color: var(--panel-line);
    border-radius: 20px;
    box-shadow: 0 4px 18px rgb(23 52 67 / 3%);
}
.panel-shell :is(.admin-stat-card, .doctor-stat-card) { padding: 22px; }
.panel-shell :is(.admin-stat-card--highlight, .doctor-stat-card--highlight) { border-left: 3px solid var(--panel-accent); }
.panel-shell :is(section, div).bg-white.border.rounded-xl {
    border-color: var(--panel-line);
    border-radius: 20px;
    box-shadow: 0 4px 18px rgb(23 52 67 / 3%);
}
.panel-shell .hero-gradient { background: linear-gradient(115deg, #086c7f, #087d91 65%, #13949a); }
.panel-shell .admin-info-tile { background: var(--panel-surface); border-color: var(--panel-line); }
.panel-shell table { font-size: 13px; line-height: 1.55; }
.panel-shell thead { background: var(--panel-surface); color: var(--panel-muted); }
.panel-shell th { font-size: 11px; font-weight: 600; letter-spacing: .035em; padding-block: 14px; }
.panel-shell td { padding-block: 15px; }
.panel-shell tbody tr { transition: background-color .12s; }
.panel-shell tbody tr:hover { background: #f5fafb; }
.panel-shell td a { text-underline-offset: 3px; }
.panel-shell td a:hover { text-decoration: underline; }
.panel-shell :is(.status-pill, .nav-badge) { font-weight: 650; letter-spacing: .01em; }
.panel-shell :is(.doctor-label, label.font-label-caps), .panel-auth label {
    color: var(--panel-muted); font-size: 13px; font-weight: 600; letter-spacing: 0;
}
.panel-shell :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, textarea),
.panel-auth :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]), select, textarea) {
    border-color: var(--panel-line);
    border-radius: 12px;
    background-color: var(--panel-surface);
    color: var(--panel-ink);
    font-size: 14px;
    min-height: 44px;
}
.panel-shell :is(input, textarea)::placeholder, .panel-auth input::placeholder { color: #73838d; opacity: 1; }
.panel-shell :is(input, select, textarea):focus, .panel-auth :is(input, select, textarea):focus {
    border-color: var(--panel-accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(8 125 145 / 12%);
}
.panel-shell :is(button, a):focus-visible, .panel-auth :is(button, a):focus-visible {
    outline: 3px solid #087d91;
    outline-offset: 3px;
}
.panel-shell :is(.admin-btn, .doctor-btn-primary, .doctor-btn-secondary) { min-height: 44px; border-radius: 12px; }
.panel-shell :is(.admin-btn-primary, .doctor-btn-primary):hover { background: #066678; opacity: 1; }
.panel-shell button:disabled { cursor: not-allowed; opacity: .55; }
.panel-shell .table-scroll { border-radius: inherit; }
.panel-shell .case-conversation { border-color: var(--panel-line); border-radius: 20px; }
.panel-shell .case-message { background: #f0f6f8; }
.panel-shell .case-message.doctor { background: #e7f4f5; }
.panel-shell .answer-templates { border-color: #cce4e8; background: #f0f8f9; }
.panel-shell .answer-templates label { color: #066678; }
.panel-auth { background: radial-gradient(ellipse at top left, #e7f4f5, transparent 60%), #f7fafb; }
.panel-auth .login-card-shadow { border-color: var(--panel-line); border-radius: 26px; box-shadow: 0 18px 50px rgb(23 52 67 / 6%); }
.panel-auth button[type=submit] { min-height: 46px; border-radius: 12px; }
@media (min-width: 1280px) { .panel-shell .panel-content { padding: 32px; } }
@media (max-width: 639px) {
    .panel-shell main > header { min-height: 64px; padding-block: 10px; }
    .panel-shell main > header h2 { font-size: 17px; }
    .panel-shell :is(.admin-stat-card, .doctor-stat-card) { padding: 16px; border-radius: 16px; }
    .panel-shell .case-conversation { padding: 16px; margin: 16px; }
    .panel-shell .case-message { max-width: 95%; }
    .panel-shell .answer-templates select { min-width: 0; width: 100%; flex: 1 1 100%; }
    .panel-shell .answer-templates button { width: 100%; justify-content: center; }
    .panel-auth { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .panel-shell *, .panel-auth * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
