@charset "utf-8";

/* ------------------------------- RESET ------------------------------- */

html {margin: 0; padding: 0; height: 100%;}
body, div, span, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, a, font, small, strong, b, u, i, center, label, form, fieldset,
input, button, textarea, img, p, table, tr, th, td, dl, dt, dd {
    margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; background: transparent;
}
table {border-collapse: collapse; border-spacing: 0;}
ol, ul, li {list-style: none;}
h1, h2, h3, h4, h5, h6 {font-size: 100%; font-weight: normal;}
input, button, textarea, select, optgroup, option {
    font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit;
}
input, button, textarea, select {font-size: 100%; display: block;}
input[type=text], input[type=submit], textarea{-webkit-appearance: none;}
input:-webkit-autofill {
    -webkit-box-shadow: inset 0 0 0 50px #f1f4f9 !important; -webkit-text-fill-color: #000000 !important;
    color: #000000 !important;
}
select {outline: 0;}
:focus {outline: none;}
* {-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
*:before, *:after {-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
::-moz-focus-inner {border: 0; padding: 0;}

html {-webkit-tap-highlight-color: rgba(0, 0, 0, 0); scroll-behavior: smooth;}
body {
    display: flex; flex-direction: column; font-family: Inter, sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
    -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto; min-height: 100vh;
}

/* ------------------------------- COMMON ------------------------------- */

.dn {display: none !important;}

/* ------------------------------- LOGIN ------------------------------- */

.login-page {display: flex; align-items: center; justify-content: center; min-height: 100vh; background: #f4f7fa; 
    background-image: radial-gradient(at 0% 0%, rgba(230, 237, 247, 1) 0, transparent 50%), radial-gradient(at 100% 100%, rgba(235, 240, 248, 1) 0, transparent 50%);}
.login-card {background: #ffffff; width: 400px; padding: 48px 40px; border-radius: 20px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.03); text-align: center; margin: 20px;}
.login-header {margin-bottom: 24px;}
.login-title {font-size: 26px; font-weight: 700; color: #1e293b; margin-bottom: 10px; letter-spacing: -0.02em;}
.login-subtitle {font-size: 14px; color: #64748b;}
.login-body {margin-bottom: 24px;}
.login-input {width: 100%; height: 56px; background: #f1f4f9; border: none; border-radius: 12px; padding: 0 18px; margin-bottom: 16px; font-size: 15px; color: #1e293b; transition: background .3s ease-in-out;}
.login-input::placeholder {color: #94a3b8;}
.login-input:focus {background: #edf2f7;}
.login-button {width: 100%; height: 56px; background: #9dbfff; color: #fff; border: none; border-radius: 12px; font-size: 16px; font-weight: 600; cursor: pointer; transition: opacity .3s ease-in-out;}
.login-button:hover {opacity: 0.9;}
.login-error {color: #ef4444; font-size: 13px; margin-top: 10px;}
.login-footer {font-size: 11px; color: #94a3b8; line-height: 1.6; padding: 0 10px;}

/* ------------------------------- SIDEBAR ------------------------------- */

.sidebar { position: fixed; top: 0; left: -280px; width: 280px; height: 100%; background: #fff; z-index: 200; transition: left .3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 10px 0 30px rgba(0,0,0,0.05); }
.sidebar.active { left: 0; }
.sidebar-header { padding: 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #f1f5f9; }
.sidebar-logo { font-weight: 700; color: #1e293b; font-size: 18px; }
.sidebar-close { background: none; border: none; color: #64748b; cursor: pointer; display: flex; align-items: center; }
.sidebar-nav { padding: 20px 0; }
.sidebar-item a { display: block; padding: 12px 20px; color: #64748b; text-decoration: none; font-size: 14px; font-weight: 600; transition: all .3s ease-in-out; }
.sidebar-item.active a { color: #3b82f6; background: #eff6ff; }
.sidebar-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.2); backdrop-filter: blur(4px); z-index: 150; opacity: 0; visibility: hidden; transition: all .3s ease-in-out; }
.sidebar.active + .sidebar-overlay { opacity: 1; visibility: visible; }

/* ------------------------------- MEDIA ------------------------------- */

.desktop-only { }
.mobile-only { display: none; }

@media (max-width: 1024px) {
    .desktop-only { display: none; }
    .mobile-only { display: block; }
}

/* ------------------------------- TRIALS ------------------------------- */

.trials-page { padding: 40px 0 80px; min-height: calc(100vh - 200px); }
.trials-header-box { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; }
.trials-title { font-size: 48px; font-weight: 800; color: #1e293b; letter-spacing: -0.02em; }

.search-box { position: relative; width: 100%; max-width: 400px; }
.search-box svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #94a3b8; pointer-events: none; }
.trials-search { width: 100%; height: 44px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 0 16px 0 42px; font-size: 14px; color: #1e293b; transition: all .3s ease; }
.trials-search:focus { border-color: #3b82f6; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1); }

.trials-list-header { display: grid; background: #FFFFFF; border-top-right-radius: 12px; border-top-left-radius: 12px; grid-template-columns: 140px 100px 1fr 220px 120px; gap: 20px; padding: 12px 20px; border-bottom: 2px solid #e2e8f0; font-size: 12px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; }

.trials-list { display: flex; flex-direction: column; gap: 0; }

.trial-card { border-bottom: 1px solid #f1f5f9; transition: background .2s ease; }
.trial-card:hover { background: #f8fafc; }

.trial-desktop-row { display: grid; background: #FFFFFF; grid-template-columns: 140px 100px 1fr 220px 120px; gap: 20px; padding: 20px; align-items: start; }
.trial-card:last-of-type .trial-desktop-row {border-bottom-right-radius: 12px; border-bottom-left-radius: 12px;}
.trial-card:last-of-type {border-bottom: none;}

.trial-id { font-size: 13px; font-weight: 600; color: #3b82f6; text-decoration: none; }
.trial-id:hover { text-decoration: underline; }

.col-description { font-size: 13px; line-height: 1.6; color: #475569; }
.pi-link { font-size: 13px; color: #3b82f6; text-decoration: none; }
.pi-link:hover { text-decoration: underline; }

.badge { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; white-space: nowrap; }
.badge-category { background: #f1f5f9; color: #64748b; border: 1px solid #e2e8f0; }
.badge-phase { background: #eff6ff; color: #3b82f6; border: 1px solid #dbeafe; }

.badge-drug { background: #f0f9ff; color: #0369a1; border-color: #bae6fd; }
.badge-registry { background: #fdf2f8; color: #9d174d; border-color: #fce7f3; }
.badge-radiation { background: #fff7ed; color: #9a3412; border-color: #ffedd5; }
.badge-virus { background: #f0fdf4; color: #166534; border-color: #dcfce7; }
.badge-vaccine { background: #f5f3ff; color: #5b21b6; border-color: #ede9fe; }
.badge-car-t { background: #ecfdf5; color: #047857; border-color: #d1fae5; }
.badge-delivery { background: #faf5ff; color: #6b21a8; border-color: #f3e8ff; }

@media (max-width: 1024px) {
    .trials-header-box { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 24px; }
    .trials-title { font-size: 32px; text-align: left; }
    .search-box { max-width: 100%; }
    .trials-list { gap: 16px; }
    .trial-card { padding: 20px; border-radius: 16px; background: #fff; border: 1px solid #f1f5f9; box-shadow: 0 4px 12px rgba(0,0,0,0.03); margin-bottom: 0; }
    .trial-card:hover { background: #fff; }
    .trial-mobile-header { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
    .trial-badges { display: flex; flex-wrap: wrap; gap: 6px; }
    .trial-pi-info { font-size: 12px; color: #94a3b8; font-weight: 500; margin-bottom: 8px; }
    .trial-pi-info .pi-link { color: #3b82f6; font-weight: 600; font-size: 12px; }
    .trial-description { font-size: 14px; color: #475569; line-height: 1.5; }
    .trials-list-header {display: none;}
    .trial-desktop-row {display: none;}
}

/* ------------------------------- DOCUMENTS ------------------------------- */

.documents-page { padding: 40px 0 80px; }
.documents-header-box { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; }
.documents-title { font-size: 48px; font-weight: 800; color: #1e293b; letter-spacing: -0.02em; }

.documents-grid { display: flex; flex-direction: column; gap: 48px; }
.section-label { font-size: 12px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 20px; }
.documents-list { display: grid; grid-template-columns: 100%; gap: 16px; }

.document-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 20px; display: flex; align-items: center; gap: 16px; transition: all .3s ease; }
.document-card:hover { border-color: #3b82f6; box-shadow: 0 10px 25px rgba(59, 130, 246, 0.05); transform: translateY(-2px); }

.document-icon-box { width: 48px; height: 48px; background: #f8fafc; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #64748b; }
.document-card:hover .document-icon-box { background: #eff6ff; color: #3b82f6; }

.document-info { flex: 1; min-width: 0; }
.document-name { font-size: 15px; font-weight: 600; color: #1e293b; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; }
.document-meta { font-size: 13px; color: #94a3b8; display: flex; align-items: center; gap: 8px; }

.document-download { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: #94a3b8; border-radius: 10px; transition: all .2s ease; }
.document-download:hover { background: #f1f5f9; color: #1e293b; }

@media (max-width: 1024px) {
    .documents-title { font-size: 32px; }
    .documents-header-box { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 32px; }
    .documents-grid { gap: 32px; }
    .document-card { padding: 16px; }
}

/* ------------------------------- LAYOUT ------------------------------- */

body { background: #f8fafc; color: #1e293b; line-height: 1.5; }
.container { max-width: 1400px; margin: 0 auto; padding: 0 20px; }

/* ------------------------------- HEADER ------------------------------- */

.header { background: #fff; border-bottom: 1px solid #e2e8f0; position: sticky; top: 0; z-index: 100; }
.header-top { display: flex; align-items: center; justify-content: center; padding: 15px 20px; position: relative; }
.logo { text-align: center; }
.logo-main { font-size: 16px; font-weight: 800; color: #3b82f6; letter-spacing: 0.1em; }
.logo-sub { font-size: 10px; color: #94a3b8; font-weight: 600; margin-top: 2px; }
.header-actions { display: flex; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); }
.logout-link { color: #64748b; transition: color .3s ease-in-out; display: flex; align-items: center; }
.logout-link:hover { color: #1e293b; }

.main-nav { border-top: 1px solid #f1f5f9; padding: 10px 0; }
.nav-list { display: flex; justify-content: center; gap: 20px; }
.nav-item a { display: flex; flex-direction: column; align-items: center; gap: 4px; color: #64748b; text-decoration: none; font-size: 10px; font-weight: 600; transition: .3s ease-in-out; }
.nav-item.active a, .nav-item a:hover { color: #3b82f6; }
.nav-item svg { stroke-width: 1.5; }

.header-mobile { display: none; align-items: center; justify-content: space-between; padding: 12px 16px; }
.header-mobile-left, .header-mobile-right { display: flex; align-items: center; gap: 12px; }
.menu-btn { background: none; border: none; color: #64748b; padding: 0; cursor: pointer; display: flex; align-items: center; }
.mobile-logo-text { font-weight: 700; color: #1e293b; font-size: 18px; }
.lang-text { font-size: 14px; font-weight: 600; color: #64748b; }

/* ------------------------------- OVERVIEW ------------------------------- */

.overview-page { padding-bottom: 60px; background: #f8fafc url('/images/bg.jpg') no-repeat center top / cover; background-attachment: fixed; }
.hero-section { text-align: center; padding: 60px 20px; }
.hero-location { font-size: 12px; font-weight: 700; color: #94a3b8; letter-spacing: 0.2em; margin-bottom: 12px; }
.hero-date { font-size: 32px; font-weight: 400; color: #1e293b; margin-bottom: 16px; }
.hero-time { font-size: 24px; font-weight: 600; color: #3b82f6; margin-bottom: 16px; }
.hero-secondary-time { font-size: 14px; color: #64748b; margin-bottom: 24px; }
.news-button { display: inline-flex; align-items: center; text-decoration: none; gap: 8px; background: #fff; border: 1px solid #e2e8f0; padding: 8px 16px; border-radius: 20px; font-size: 12px; font-weight: 700; color: #64748b; cursor: pointer; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); }
.news-button .badge { background: #3b82f6; color: #fff; padding: 2px 6px; border-radius: 6px; font-size: 11px; font-weight: 700; line-height: 1; }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 48px; }
.stat-item { background: #fff; border: 1px solid #e2e8f0; text-decoration: none; padding: 16px; border-radius: 24px; display: flex; align-items: center; gap: 12px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
.stat-icon { color: #3b82f6; opacity: 0.8; height: 20px; }
.stat-label { font-size: 12px; font-weight: 700; color: #64748b; flex: 1; }
.stat-value { font-size: 18px; font-weight: 700; color: #1e293b; }

.events-group { margin-bottom: 40px; }
.group-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 800; color: #1e293b; margin-bottom: 20px; letter-spacing: 0.05em; }
.group-count { background: #f1f5f9; color: #94a3b8; font-size: 11px; padding: 2px 8px; border-radius: 10px; }

.events-list { display: flex; flex-direction: column; gap: 12px; background: #fff; padding: 20px; border-radius: 24px; border: 1px solid #e2e8f0; }
.events-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.event-card { display: flex; align-items: center; justify-content: space-between; padding: 12px; border-radius: 16px; transition: background .3s ease-in-out; cursor: pointer; }
.event-card.white-background { background: #FFFFFF; }
.event-card:hover { background: #f8fafc; }
.events-grid .event-card { background: #fff; border: 1px solid #e2e8f0; padding: 20px; border-radius: 24px; flex-direction: column; align-items: flex-start; gap: 16px; transition: .3s ease-in-out; }
.events-grid .event-card:hover { border-color: #3b82f6; background: #fff; transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05); }
.event-card-left { display: flex; align-items: center; gap: 16px; }
.event-icon-wrapper { min-width: 40px; width: 40px; height: 40px; background: #f1f5f9; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.event-title { font-size: 15px; font-weight: 600; color: #1e293b; }
.time-item { text-align: right; }
.events-grid .time-item { text-align: left; }
.time-main { font-size: 13px; font-weight: 700; color: #3b82f6; text-transform: uppercase; }
.time-sub { font-size: 11px; color: #94a3b8; margin-top: 2px; max-width: 120px; }

/* ------------------------------- FOOTER ------------------------------- */

.footer { background: #fff; border-top: 1px solid #e2e8f0; padding: 60px 20px 20px; }
.footer-top { max-width: 1400px; padding: 0 20px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 2fr; gap: 60px; margin-bottom: 60px; }
.footer-logo { display: flex; align-items: center; gap: 8px; font-weight: 700; color: #1e293b; margin-bottom: 20px; }
.footer-description { font-size: 13px; color: #64748b; line-height: 1.6; margin-bottom: 24px; max-width: 400px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px; }
.footer-link-item { background: #f1f5f9; padding: 8px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; color: #64748b; display: flex; align-items: center; gap: 6px; }

.footer-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.section-title { font-size: 12px; font-weight: 800; color: #64748b; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.footer-section p { font-size: 12px; color: #94a3b8; line-height: 1.6; }

.footer-bottom { max-width: 1400px; padding: 0 20px; margin: 0 auto; border-top: 1px solid #f1f5f9; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: #94a3b8; }
.footer-version { opacity: 0.6; margin-left: 8px; }
.footer-status { display: flex; align-items: center; gap: 8px; }
.status-indicator { width: 8px; height: 8px; background: #3b82f6; border-radius: 50%; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1); }

@media (max-width: 1024px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .events-grid { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr; gap: 40px; }
    .footer-sections { grid-template-columns: 1fr; }
    .hero-date { font-size: 24px; }
    .event-card { flex-direction: column; align-items: flex-start; gap: 12px; }
    .time-item { text-align: left; }
    .header-desktop { display: none; }
    .header-mobile {display: flex;}
}

@media (max-width: 480px) {
    .login-card {width: 100%; margin: 16px; padding: 40px 24px; border-radius: 24px;}
    .login-title {font-size: 24px;}
    .stat-label {max-width: 60px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
}

/* ------------------------------- EVENTS ------------------------------- */

.events-page { padding-top: 40px; padding-bottom: 60px; min-height: 100vh; background: #f8fafc; }
.events-page .container {max-width: 1920px;}
.events-header { margin-bottom: 32px; }
.events-title { font-size: 48px; font-weight: 900; color: #1e293b; letter-spacing: -0.02em; margin-bottom: 24px; text-transform: uppercase; }
.events-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-btn { padding: 8px 24px; border-radius: 20px; font-size: 14px; font-weight: 600; color: #64748b; background: #fff; border: 1px solid #e2e8f0; cursor: pointer; transition: all .3s; text-decoration: none; display: inline-block; }
.filter-btn:hover { background: #f1f5f9; }
.filter-btn.active { background: #3b82f6; color: #fff; border-color: #3b82f6; }

.events-layout { display: grid; grid-template-columns: 400px 100%; gap: 32px; align-items: start; }

.events-list-sidebar { display: flex; flex-direction: column; gap: 32px; width: 400px; }
.events-list-group { display: flex; flex-direction: column; gap: 16px; }
.group-header { font-size: 12px; font-weight: 700; color: #3b82f6; display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
.group-header .count { color: #94a3b8; font-weight: 400; }

.calendar-wrapper { width: calc(100% - 432px); height: 100%; }
.calendar-section { position: sticky; top: 200px; background: #fff; border-radius: 24px; border: 1px solid #e2e8f0; padding: 24px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
.calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.calendar-nav { display: flex; align-items: center; gap: 12px; }
.nav-btn { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid #e2e8f0; background: #fff; color: #64748b; cursor: pointer; transition: .2s; }
.nav-btn:hover { background: #f8fafc; color: #1e293b; }
.current-month { font-size: 16px; font-weight: 700; color: #1e293b; margin-left: 8px; }
.calendar-views { display: flex; background: #f1f5f9; padding: 4px; border-radius: 12px; }
.view-btn { padding: 6px 16px; border-radius: 8px; font-size: 13px; font-weight: 600; color: #64748b; border: none; background: transparent; cursor: pointer; }
.view-btn.active { background: #fff; color: #3b82f6; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }

.calendar-legend { display: flex; gap: 16px; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid #f1f5f9; }
.legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #94a3b8; }
.legend-item .dot { width: 8px; height: 8px; border-radius: 50%; }
.dot.busy { background: #9dbfff; }
.dot.free { background: #e2e8f0; }
.dot.current { background: #3b82f6; }

.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid #e2e8f0; border-radius: 12px; overflow-x: auto; }
.weekday { padding: 12px; text-align: center; font-size: 12px; font-weight: 700; color: #1e293b; background: #f8fafc; border-bottom: 1px solid #e2e8f0; border-right: 1px solid #e2e8f0; }
.calendar-day { min-height: 120px; padding: 8px; border-bottom: 1px solid #e2e8f0; border-right: 1px solid #e2e8f0; display: flex; flex-direction: column; gap: 4px; transition: background-color .3s ease-in-out; }
.calendar-day:nth-child(7n), .weekday:nth-child(7n) { border-right: none; }
.calendar-day.empty { background: #fafafa; }
.day-number { font-size: 13px; font-weight: 600; color: #94a3b8; margin-bottom: 4px; display: flex; justify-content: space-between; }
.calendar-day.today .day-num-box { color: #fff; background: #3b82f6; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.calendar-day:not(.empty):hover { background: #eff6ff; }

.cal-event { background: #eff6ff; cursor: pointer; border-radius: 4px; padding: 4px 8px; font-size: 10px; color: #3b82f6; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 2px solid #3b82f6; }
.cal-event.more { background: transparent; color: #94a3b8; border: none; font-size: 9px; padding-left: 0; }

.mobile-calendar-view { background: #fff; border-radius: 20px; padding: 16px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); border: 1px solid #e2e8f0; }
.mobile-calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.mobile-nav { display: flex; align-items: center; gap: 12px; }
.today-link { font-size: 13px; font-weight: 600; color: #3b82f6; cursor: pointer; }
.mini-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.mini-day { aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; font-weight: 500; color: #1e293b; border-radius: 50%; position: relative; cursor: pointer; }
.mini-day.has-event::after { content: ''; width: 4px; height: 4px; background: #3b82f6; border-radius: 50%; position: absolute; bottom: 4px; }
.mini-day.today { background: #eff6ff; color: #3b82f6; }
.mini-day.active { background: #3b82f6; color: #fff; }
.mini-day.other-month { color: #e2e8f0; }

.event-card.patch .event-icon-wrapper, .event-card.doctors .event-icon-wrapper, .event-card.test_tube .event-icon-wrapper { background: #ecfdf5; color: #10b981; }
.event-card.phone .event-icon-wrapper { background: #f5f3ff; color: #8b5cf6; }

@media (max-width: 1024px) {
    .events-layout { grid-template-columns: 1fr; gap: 24px; }
    .events-list-sidebar {display: none;}
    .calendar-wrapper {width: 100%;}
    .events-title { font-size: 32px; margin-bottom: 16px; }
    .mobile-events-list { display: flex; flex-direction: column; gap: 24px; }
    .mobile-events-list .event-card { background: #fff; border: 1px solid #e2e8f0; padding: 16px; border-radius: 20px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
}

/* ------------------------------- STATUSES ------------------------------- */

.statuses-page { padding-top: 40px; padding-bottom: 60px; min-height: 100vh; background: #f8fafc;}
.statuses-header { margin-bottom: 32px; }
.statuses-title { font-size: 48px; font-weight: 900; color: #1e293b; letter-spacing: -0.02em; margin-bottom: 24px; text-transform: uppercase; }
.statuses-filters-wrapper { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.statuses-filters { display: flex; flex-wrap: wrap; gap: 8px; background: #fff; padding: 8px; border-radius: 12px; border: 1px solid #e2e8f0; }
.statuses-filters .filter-btn { padding: 8px 20px; border-radius: 8px; font-size: 13px; font-weight: 600; color: #64748b; border: none; background: transparent; cursor: pointer; transition: all .2s; }
.statuses-filters .filter-btn.active { background: #3b82f6; color: #fff; box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2); }
.statuses-sub-filters { display: flex; gap: 12px; }
.sub-filter-btn { display: flex; align-items: center; text-decoration: none; gap: 8px; padding: 8px 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 13px; font-weight: 600; color: #64748b; cursor: pointer; transition: .2s; }
.sub-filter-btn:hover { background: #f8fafc; }
.sub-filter-btn svg { color: #94a3b8; transition: color .2s; }
.sub-filter-btn.active {background: #3b82f6; color: #FFFFFF;}
.sub-filter-btn.active svg {color: #FFFFFF;}

.statuses-group { margin-bottom: 40px; }
.statuses-group .group-title { font-size: 18px; font-weight: 700; color: #1e293b; letter-spacing: 0; text-transform: none; justify-content: space-between; }
.statuses-group .group-count { background: transparent; color: #94a3b8; font-size: 14px; padding: 0; }
.statuses-list { display: flex; flex-direction: column; gap: 16px; }

.status-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 24px; padding: 24px; transition: all .3s ease; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
.status-card.bg-green { background: #f0fdf4; border-color: #dcfce7; }
.status-card.bg-blue { background: #eff6ff; border-color: #dbeafe; }

.status-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 4px; }
.status-card-title { display: flex; align-items: center; gap: 12px; }
.status-card-title h3 { font-size: 18px; font-weight: 700; color: #1e293b; }
.status-alert-badge { width: 32px; height: 32px; background: #fdf2f8; color: #ec4899; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.status-card-institution { font-size: 12px; color: #64748b; text-align: right; max-width: 300px; line-height: 1.4; }
.status-card-meta { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #e2e8f0; }
.status-card-role { font-size: 13px; color: #94a3b8; font-weight: 500; }

.status-card-content { font-size: 14px; color: #475569; line-height: 1.6; }
.status-entry { display: flex; flex-direction: column; gap: 8px; }
.entry-date { font-weight: 700; font-size: 13px; color: #1e293b; }
.entry-date.red { color: #ef4444; }
.entry-date.underline { text-decoration: underline; }
.entry-bullet { font-weight: 700; display: flex; align-items: center; gap: 8px; }
.entry-bullet.red { color: #ef4444; }
.entry-bullet::before { content: '•'; }
.entry-text { margin-top: 4px; }

.red { color: #ef4444 !important; }
.blue { color: #3b82f6 !important; }
.underline { text-decoration: underline !important; }

.status-card-details { display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(0,0,0,0.05); }
.status-card-details.active { display: block; }
.status-card-expand { display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; font-size: 13px; font-weight: 600; color: #3b82f6; text-decoration: none; }
.status-card-expand::after { content: ''; display: inline-block; width: 12px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center; }
.status-card-expand:hover { text-decoration: underline; }

@media (max-width: 1024px) {
    .statuses-title { font-size: 32px; }
    .statuses-filters-wrapper { flex-direction: column; align-items: flex-start; }
    .status-card-top { flex-direction: column; gap: 8px; }
    .status-card-institution { text-align: left; }
}

@media (max-width: 480px) {
    .status-card { padding: 16px; border-radius: 20px; }
    .status-card-title h3 { font-size: 16px; }
}

.news-page { padding-top: 40px; padding-bottom: 60px; min-height: 100vh; background: #f8fafc; }
.news-header { margin-bottom: 32px; }
.news-title { font-size: 48px; font-weight: 900; color: #1e293b; letter-spacing: -0.02em; margin-bottom: 12px; text-transform: uppercase; }
.news-subtitle { font-size: 16px; color: #64748b; margin-bottom: 16px; max-width: 600px; line-height: 1.5; }
.news-count { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #94a3b8; }
.news-filters { background: #fff; padding: 20px; border-radius: 24px; border: 1px solid #e2e8f0; margin-bottom: 32px; display: flex; gap: 16px; align-items: center; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
.search-wrapper { flex: 1; }
.news-search { width: 100%; height: 48px; background: #f1f5f9; border: none; border-radius: 16px; padding: 0 20px; font-size: 14px; color: #1e293b; }
.news-search::placeholder { color: #94a3b8; }
.filters-grid { display: flex; gap: 12px; }
.filter-item { height: 48px; background: #f1f5f9; border-radius: 16px; padding: 0; display: flex; align-items: center; font-size: 13px; font-weight: 600; color: #64748b; cursor: pointer; white-space: nowrap; transition: background .2s; position: relative; }
.filter-item:hover { background: #e2e8f0; }
.news-filter { width: 100%; height: 100%; background: transparent; border: none; padding: 0 40px 0 20px; font-size: inherit; font-weight: inherit; color: inherit; cursor: pointer; appearance: none; -webkit-appearance: none; position: relative; z-index: 1; }
.filter-item svg { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; z-index: 0; }
.news-list { display: flex; flex-direction: column; gap: 16px; }
.news-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 24px; padding: 24px; transition: all .3s ease-in-out; }
.news-card:hover { border-color: #3b82f6; transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0,0,0,0.05); }
.news-card-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
.news-card-meta-top { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.news-date { font-size: 12px; font-weight: 600; color: #94a3b8; }
.news-source { font-size: 12px; font-weight: 700; color: #64748b; }
.news-external-link { color: #94a3b8; transition: color .2s; }
.news-external-link:hover { color: #3b82f6; }
.badge { display: flex; align-items: center; border-radius: 8px; overflow: hidden; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }
.badge-label { padding: 4px 8px; background: #f1f5f9; color: #64748b; }
.badge-value { padding: 4px 8px; background: #fff; color: #94a3b8; border: 1px solid #f1f5f9; border-left: none; font-weight: 400; }
.badge.weak .badge-label { background: #f5f3ff; color: #8b5cf6; }
.badge.weak .badge-value { border-color: #f5f3ff; }
.badge.background .badge-label { background: #f1f5f9; color: #64748b; }
.badge.background .badge-value { border-color: #f1f5f9; }
.badge.related .badge-label { background: #eff6ff; color: #3b82f6; }
.badge.related .badge-value { border-color: #eff6ff; }
.news-card-title { font-size: 18px; font-weight: 700; color: #1e293b; margin-bottom: 12px; line-height: 1.4; transition: color .2s; }
.news-card-title a { color: inherit; text-decoration: none; cursor: pointer; }
.news-card-title a:hover { color: #3b82f6; }
.news-card-text { font-size: 14px; color: #64748b; line-height: 1.6; }

@media (max-width: 1024px) {
    .news-title { font-size: 32px; }
    .news-subtitle { font-size: 14px; }
    .news-filters { flex-direction: column; align-items: stretch; padding: 16px; border-radius: 20px; }
    .filters-grid { flex-direction: column; }
    .filter-item { justify-content: space-between; }
    .news-card { padding: 20px; border-radius: 20px; }
    .news-card-meta-top { flex-direction: column; align-items: flex-start; gap: 4px; }
    .badge { margin-top: 8px; }
}
/* ------------------------------- DOCTORS ------------------------------- */

.doctors-page { padding-top: 40px; padding-bottom: 60px; min-height: 100vh; background: #f8fafc; }
.doctors-title { font-size: 48px; font-weight: 900; color: #1e293b; letter-spacing: -0.02em; margin-bottom: 24px; text-transform: uppercase; }
.doctors-location-card { background: #fff; border-radius: 24px; padding: 24px; border: 1px solid #e2e8f0; display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; gap: 20px; }
.location-status { font-size: 11px; font-weight: 700; color: #94a3b8; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.05em; }
.location-name { font-size: 20px; font-weight: 800; color: #1e293b; margin-bottom: 4px; }
.location-address { font-size: 14px; color: #64748b; margin-bottom: 8px; }
.location-phone-hint { font-size: 11px; color: #94a3b8; }
.location-actions { display: flex; gap: 12px; }
.btn-call { background: #3b82f6; color: #fff; padding: 10px 16px; border-radius: 12px; font-size: 14px; font-weight: 700; text-decoration: none; display: flex; align-items: center; gap: 8px; transition: opacity .2s; }
.btn-call:hover { opacity: 0.9; }
.btn-route { background: #f1f5f9; color: #64748b; height: 100%; padding: 10px 16px; border-radius: 12px; font-size: 14px; font-weight: 700; border: none; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: background .2s; }
.btn-route:hover { background: #e2e8f0; }
.chevron-down { opacity: 0.5; }

.map-section { background: #fff; border-radius: 24px; border: 1px solid #e2e8f0; overflow: hidden; margin-bottom: 24px; }
.map-header { padding: 16px 24px; border-bottom: 1px solid #f1f5f9; display: flex; justify-content: space-between; align-items: center; }
.map-title-box { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #3b82f6; }
.map-stats { font-size: 12px; color: #94a3b8; }
.map-container { height: 360px; background: #f8fafc; position: relative; overflow: hidden; }
.map-mock { width: 100%; height: 100%; background: #f1f5f9; position: relative; }
.map-zoom { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; background: #fff; border-radius: 8px; border: 1px solid #e2e8f0; overflow: hidden; z-index: 10; }
.map-zoom button { width: 32px; height: 32px; background: #fff; border: none; font-size: 18px; color: #64748b; cursor: pointer; }
.map-zoom button:first-child { border-bottom: 1px solid #f1f5f9; }
.map-cluster { position: absolute; width: 32px; height: 32px; background: #3b82f6; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; box-shadow: 0 0 0 6px rgba(59, 130, 246, 0.2); cursor: pointer; z-index: 5; }

.doctors-controls { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; gap: 16px; }
.search-box { position: relative; flex: 1; }
.search-box svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #94a3b8; pointer-events: none; }
.doctors-search { width: 100%; height: 48px; background: #fff; border: 1px solid #e2e8f0; border-radius: 24px; padding: 0 20px 0 48px; font-size: 14px; color: #1e293b; transition: border-color .2s; }
.doctors-search:focus { border-color: #3b82f6; }
.sort-box { position: relative; display: flex; align-items: center; }
.sort-box svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #94a3b8; pointer-events: none; z-index: 1; }
.doctors-sort { background: #fff; border: 1px solid #e2e8f0; height: 48px; border-radius: 24px; padding: 0 24px 0 44px; font-size: 14px; font-weight: 600; color: #64748b; cursor: pointer; appearance: none; -webkit-appearance: none; transition: border-color .2s; }
.doctors-sort:focus { border-color: #3b82f6; }

.doctors-group { margin-bottom: 40px; }
.group-label { font-size: 12px; font-weight: 700; color: #1e293b; margin-bottom: 16px; letter-spacing: 0.05em; text-transform: uppercase; }
.doctors-list-header { display: flex; padding: 0 24px; margin-bottom: 12px; font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; }
.col-name { width: 300px; }
.col-spec { flex: 1; padding: 0 20px; }
.col-clinic { width: 350px; }

.doctors-list { background: #fff; border: 1px solid #e2e8f0; border-radius: 24px; overflow: hidden; }
.doctor-card { display: flex; align-items: center; padding: 12px 24px; border-bottom: 1px solid #f1f5f9; transition: background .2s; cursor: pointer; }
.doctor-card:last-child { border-bottom: none; }
.doctor-card:hover { background: #f8fafc; }
.doctor-main { width: 300px; display: flex; align-items: center; gap: 12px; }
.doctor-avatar-wrapper { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: #f1f5f9; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.doctor-avatar { width: 100%; height: 100%; object-fit: cover; }
.doctor-avatar-placeholder { font-size: 12px; font-weight: 700; color: #3b82f6; text-transform: uppercase; }
.doctor-name { font-size: 14px; font-weight: 700; color: #1e293b; }
.doctor-spec { flex: 1; padding: 0 20px; font-size: 13px; color: #64748b; line-height: 1.4; }
.doctor-clinic { width: 350px; font-size: 13px; color: #64748b; line-height: 1.4; }

@media (max-width: 1024px) {
    .doctors-location-card { flex-direction: column; align-items: flex-start; gap: 20px; padding: 20px; }
    .location-actions { width: 100%; }
    .btn-call, .btn-route { flex: 1; justify-content: center; }
    .doctors-controls { flex-direction: column; align-items: stretch; }
    .doctors-sort { width: 100%; }
    .doctor-card { flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px; }
    .doctor-main { width: 100%; }
    .doctor-name-group { flex: 1; }
    .doctor-subinfo { margin-top: 4px; }
    .doctor-spec-mobile, .doctor-clinic-mobile { font-size: 12px; color: #64748b; margin-top: 4px; line-height: 1.4; }
    .doctor-spec-mobile { font-weight: 500; }
    .doctors-title { font-size: 32px; }
}

/* ------------------------------- FINANCING ------------------------------- */

.finance-page { padding: 40px 0 80px; min-height: calc(100vh - 200px); background: #f8fafc; }
.finance-page .page-title { font-size: 48px; font-weight: 800; color: #1e293b; text-transform: uppercase; letter-spacing: -0.02em; text-align: left; margin-bottom: 0; }
.finance-header-box { display: flex; justify-content: space-between; align-items: center; margin-bottom: 40px; gap: 24px; }
.finance-header-box .search-box { max-width: 400px; }
.finance-table-wrapper { background: #fff; border-radius: 20px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06); overflow: hidden; margin-bottom: 20px; }
.finance-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.finance-table { width: 100%; border-collapse: collapse; text-align: left; min-width: 900px; }
.finance-table th { padding: 20px 24px; font-size: 14px; font-weight: 600; color: #64748b; background: #FFFFFF; border-bottom: 1px solid #f1f5f9; text-transform: uppercase; letter-spacing: 0.05em; }
.finance-table td { padding: 24px; font-size: 14px; color: #1e293b; vertical-align: top; border-bottom: 1px solid #f1f5f9; line-height: 1.5; }
.finance-table .col-doctor { width: 200px; }
.finance-table .col-project { width: auto; }
.finance-table .col-payment-1, .finance-table .col-payment, .finance-table .col-total { white-space: nowrap; width: 140px; }
.cell-doctor { background: #fff; border-right: 1px solid #f1f5f9; }
.doctor-info .doctor-name { font-weight: 700; color: #1e293b; margin-bottom: 4px; font-size: 14px; }
.doctor-info .projects-count { font-size: 11px; color: #94a3b8; font-weight: 600; text-transform: uppercase; }
.cell-project { color: #475569; }
.cell-payment-1, .cell-payment { color: #64748b; font-family: 'Inter', sans-serif; }
.cell-total { font-weight: 700; color: #1e293b; }
.finance-table tfoot tr { background: #FFFFFF; }
.finance-table tfoot td { border-bottom: none; padding: 24px; }
.cell-label { font-size: 14px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; }
.cell-total-grand { font-size: 20px; font-weight: 800; color: #1e293b; text-align: left !important; }

@media (max-width: 1024px) {
    .finance-header-box { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 24px; }
    .finance-header-box .search-box { max-width: none; }
    .finance-page .page-title { font-size: 32px; }
    .finance-table td, .finance-table th { padding: 16px; }
    .finance-table .col-doctor { width: 160px; }
    .finance-table .col-payment-1, .finance-table .col-payment, .finance-table .col-total { width: 120px; }
}

/* ------------------------------- FUNDS ------------------------------- */

.funds-page { padding: 40px 0 80px; min-height: calc(100vh - 200px); background: #f8fafc; }
.funds-page .page-title { font-size: 48px; font-weight: 900; color: #1e293b; text-transform: uppercase; letter-spacing: -0.02em; margin-bottom: 32px; }
.funds-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fund-card { background: #fff; border-radius: 24px; padding: 24px; border: 1px solid #e2e8f0; transition: transform 0.2s, box-shadow 0.2s; display: flex; flex-direction: column; height: 100%; }
.fund-card:hover { transform: translateY(-2px); box-shadow: 0 12px 20px -10px rgba(0,0,0,0.05); }
.fund-card-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 20px; }
.fund-card-icon-box { width: 48px; height: 48px; border-radius: 14px; background: #eff6ff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #3b82f6; }
.fund-card-icon { width: 24px; height: 24px; }
.fund-card-info { flex: 1; min-width: 0; }
.fund-card-name { font-size: 18px; font-weight: 700; color: #1e293b; margin: 0 0 6px 0; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; }
.fund-card-user { display: flex; align-items: center; gap: 6px; color: #64748b; font-size: 14px; font-weight: 500; }
.fund-card-user-icon { width: 16px; height: 16px; opacity: 0.7; }
.fund-card-body { flex: 1; }
.fund-card-status { font-size: 14px; color: #475569; line-height: 1.6; margin: 0; }

/* ------------------------------- SYMPTOMS ------------------------------- */

.symptoms-page { padding: 40px 0 80px; min-height: calc(100vh - 200px); background: #f8fafc; }
.symptoms-page .page-title { font-size: 48px; font-weight: 900; color: #1e293b; text-transform: uppercase; letter-spacing: -0.02em; text-align: left; margin-bottom: 40px; }
.symptoms-table-wrapper { background: #fff; border-radius: 20px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06); overflow: hidden; }
.symptoms-table { width: 100%; border-collapse: collapse; text-align: left; }
.symptoms-table th { padding: 20px 24px; font-size: 14px; font-weight: 600; color: #64748b; background: #FFFFFF; border-bottom: 1px solid #f1f5f9; text-transform: uppercase; letter-spacing: 0.05em; }
.symptoms-table td { padding: 24px; font-size: 14px; color: #1e293b; vertical-align: top; border-bottom: 1px solid #f1f5f9; line-height: 1.5; }
.symptoms-table tr:last-child td { border-bottom: none; }
.symptoms-table .col-date { width: 150px; }
.symptoms-table .col-time { width: 120px; }
.symptoms-table .col-drugs { width: 350px; color: #64748b; font-size: 13px; }
.symptoms-table .cell-date { font-weight: 700; color: #1e293b; }
.symptoms-table .cell-time { color: #64748b; font-weight: 500; text-transform: lowercase; }

.symptoms-mobile-list { display: none; flex-direction: column; gap: 32px; }
.symptoms-group { display: flex; flex-direction: column; gap: 12px; }
.group-date { font-size: 13px; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.02em; padding-left: 4px; }
.symptom-card { background: #fff; border-radius: 20px; padding: 24px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05), 0 2px 4px -1px rgba(0,0,0,0.03); display: flex; flex-direction: column; gap: 16px; }
.symptom-card-section { display: flex; flex-direction: column; gap: 6px; }
.symptom-card-section .section-label { font-size: 10px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; }
.symptom-card-section .section-value { font-size: 14px; color: #1e293b; line-height: 1.5; font-weight: 500; }

/* ------------------------------- ACTIONS ------------------------------- */

.actions-page { padding: 40px 0 80px; min-height: calc(100vh - 200px); background: #f8fafc; }
.actions-header { display: flex; align-items: baseline; gap: 20px; margin-bottom: 32px; }
.actions-header .page-title { font-size: 48px; font-weight: 900; color: #1e293b; text-transform: uppercase; letter-spacing: -0.02em; margin-bottom: 0; }
.actions-stats { font-size: 14px; color: #64748b; display: flex; align-items: center; gap: 8px; font-weight: 500; }
.stats-divider { color: #cbd5e1; }
.actions-filters { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; gap: 20px; }
.filters-pills { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.filter-pill { display: flex; align-items: center; gap: 8px; padding: 8px 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 100px; font-size: 13px; font-weight: 600; color: #475569; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.filter-pill:hover { border-color: #cbd5e1; background: #f8fafc; }
.filter-pill.active { background: #eff6ff; border-color: #3b82f6; color: #2563eb; }

/* Modals */
.modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; align-items: center; justify-content: center; }
.modal.active { display: flex; }
.modal-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); backdrop-filter: blur(4px); }
.modal-container { position: relative; z-index: 1001; width: 100%; display: flex; justify-content: center; pointer-events: none; }
.modal-content { background: #fff; border-radius: 24px; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); pointer-events: auto; overflow: hidden; }

.modal-event { width: 100%; max-width: 600px; padding: 40px; }
.modal-doctor { width: 100%; max-width: 700px; padding: 40px; max-height: 90vh; overflow-y: auto; }
.modal-doctor-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; }
.doctor-info-top { display: flex; gap: 24px; align-items: center; }
.doctor-avatar-wrapper.big { width: 100px; height: 100px; border-radius: 50%; overflow: hidden; background: #f1f5f9; flex-shrink: 0; }
.doctor-avatar-wrapper.big .doctor-avatar { width: 100%; height: 100%; object-fit: cover; }
.doctor-avatar-wrapper.big .doctor-avatar-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 700; color: #94a3b8; }
.doctor-modal-name { font-size: 24px; font-weight: 800; color: #1e293b; margin-bottom: 8px; }
.doctor-modal-spec { font-size: 14px; color: #64748b; line-height: 1.4; }

.info-section { margin-bottom: 24px; }
.info-label { font-size: 12px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; }
.info-value { font-size: 15px; color: #1e293b; line-height: 1.5; }

.info-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.info-tag { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 100px; font-size: 13px; font-weight: 600; }
.trial-tag { background: #eff6ff; color: #3b82f6; }
.doc-tag { background: #f1f5f9; color: #64748b; }

.details-section { margin-top: 24px; }
.details-summary { font-size: 13px; font-weight: 700; color: #475569; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid #f1f5f9; }
.details-summary::-webkit-details-marker { display: none; }
.details-summary::before { content: "▼"; font-size: 10px; transition: transform 0.2s; }
details[open] .details-summary::before { transform: rotate(180deg); }

.details-content { padding-top: 16px; }
.detail-row { margin-bottom: 16px; border-bottom: 1px solid #f8fafc; padding-bottom: 8px; }
.detail-label { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; margin-bottom: 4px; }
.detail-value { font-size: 14px; color: #1e293b; line-height: 1.5; word-break: break-word; }
.detail-value a { color: #3b82f6; text-decoration: none; }
.detail-value a:hover { text-decoration: underline; }

.modal-event-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; }
.modal-event-dates { font-size: 13px; font-weight: 600; color: #94a3b8; line-height: 1.6; }
.modal-event-dates .date-ny { color: #3b82f6; text-transform: uppercase; }
.modal-close { background: none; border: none; padding: 4px; color: #94a3b8; cursor: pointer; transition: color 0.2s; }
.modal-close:hover { color: #1e293b; }
.modal-event-title { font-size: 28px; font-weight: 800; color: #1e293b; margin-bottom: 24px; line-height: 1.2; }
.modal-divider { height: 1px; background: #f1f5f9; margin-bottom: 32px; }
.details-title { font-size: 12px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 16px; }
.details-item { margin-bottom: 12px; }
.details-label { font-size: 11px; color: #94a3b8; margin-bottom: 4px; }
.details-value { font-size: 15px; font-weight: 600; color: #1e293b; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-blue { background: #3b82f6; box-shadow: 0 0 0 4px rgba(59,130,246,0.1); }
.dot-orange { background: #f97316; box-shadow: 0 0 0 4px rgba(249,115,22,0.1); }
.dot-red { background: #ef4444; box-shadow: 0 0 0 4px rgba(239,68,68,0.1); }
.dot-green { background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,0.1); }

.filters-dropdown { position: relative; }
.dropdown-toggle { display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; font-size: 13px; font-weight: 600; color: #475569; cursor: pointer; min-width: 160px; }
.dropdown-toggle .icon-user { width: 16px; height: 16px; color: #94a3b8; }
.dropdown-toggle .icon-chevron { width: 14px; height: 14px; color: #94a3b8; margin-left: auto; }
.dropdown-menu { position: absolute; top: 100%; right: 0; margin-top: 8px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); min-width: 100%; z-index: 10; display: none; overflow: hidden; }
.dropdown-menu.show { display: block; }
.dropdown-item { padding: 12px 16px; font-size: 13px; color: #1e293b; cursor: pointer; transition: background 0.2s; }
.dropdown-item:hover { background: #f8fafc; }

.actions-table-container { background: #fff; border-radius: 20px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); overflow: hidden; }
.actions-table { width: 100%; border-collapse: collapse; text-align: left; }
.actions-table th { padding: 16px 20px; font-size: 11px; font-weight: 700; color: #94a3b8; background: #FFFFFF; border-bottom: 1px solid #f1f5f9; text-transform: uppercase; letter-spacing: 0.05em; }
.actions-table td { padding: 20px; font-size: 13px; color: #1e293b; border-bottom: 1px solid #f1f5f9; vertical-align: top; line-height: 1.5; }
.actions-table tr:last-child td { border-bottom: none; }
.actions-table td:first-child { font-weight: 600; color: #94a3b8; width: 40px; }
.comment-cell { color: #64748b; max-width: 400px; }
.status-badge { display: flex; align-items: center; gap: 10px; font-weight: 600; white-space: nowrap; }
.status-open { color: #2563eb; }
.status-in-progress { color: #d97706; }

.actions-mobile-list { display: none; flex-direction: column; gap: 16px; }
.action-card { background: #fff; border-radius: 20px; padding: 20px; border: 1px solid #e2e8f0; }
.action-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.action-id { font-size: 12px; font-weight: 700; color: #cbd5e1; }
.action-status { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: #2563eb; }
.action-card[data-status="in-progress"] .action-status { color: #d97706; }
.action-title { font-size: 16px; font-weight: 700; color: #1e293b; margin: 0 0 16px 0; line-height: 1.4; }
.action-info { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.info-row { display: flex; flex-direction: column; gap: 4px; }
.info-label { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.02em; }
.info-value { font-size: 13px; color: #475569; font-weight: 500; }
.action-comment { font-size: 13px; color: #64748b; line-height: 1.5; padding-top: 16px; border-top: 1px solid #f1f5f9; }

@media (max-width: 1024px) {
    .actions-header .page-title { font-size: 32px; }
    .actions-header { flex-direction: column; align-items: flex-start; gap: 8px; }
    .actions-filters { flex-direction: column; align-items: stretch; }
    .filters-pills { margin-right: -20px; padding-right: 20px; }
    .actions-table-container { display: none; }
    .actions-mobile-list { display: flex; }
}

@media (max-width: 1200px) {
    .funds-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
    .funds-page .page-title { font-size: 32px; margin-bottom: 24px; }
    .symptoms-page .page-title { font-size: 32px; margin-bottom: 24px; }
    .symptoms-page { padding-top: 20px; }
    .symptoms-table {display: none;}
    .symptoms-mobile-list {display: flex;}
}

@media (max-width: 768px) {
    .funds-grid { grid-template-columns: 1fr; gap: 16px; }
    .fund-card { padding: 20px; border-radius: 20px; }
    .fund-card-header { margin-bottom: 16px; }
    .fund-card-icon-box { width: 40px; height: 40px; border-radius: 12px; }
    .fund-card-icon { width: 20px; height: 20px; }
    .fund-card-name { font-size: 16px; }
    .fund-card-status { font-size: 13px; }
    .finance-page { padding-top: 20px; }
    .finance-table-wrapper { border-radius: 12px; margin: 0 -10px; }
    .finance-table td { font-size: 13px; }
    .finance-table th { font-size: 12px; }
    .symptom-card { padding: 20px; }
}

/* Admin Page */
.admin-page { padding: 30px 20px; max-width: 1200px; margin: 0 auto; min-height: calc(100vh - 80px); }
.admin-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; gap: 20px; }
.admin-title { font-size: 24px; font-weight: 600; color: #1e293b; margin: 0; }
.admin-header-actions { display: flex; gap: 12px; align-items: center; }
.admin-btn-outline { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 12px; border: 1px solid #e2e8f0; background: #fff; color: #475569; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.admin-btn-outline:hover { background: #f8fafc; border-color: #cbd5e1; }
.admin-btn-exit { padding: 10px 16px; color: #64748b; font-size: 14px; text-decoration: none; font-weight: 500; }
.admin-btn-exit:hover { color: #1e293b; }
.admin-container { display: flex; flex-direction: column; gap: 30px; }
.admin-card { background: #fff; border-radius: 20px; border: 1px solid #f1f5f9; padding: 24px; box-shadow: 0 4px 20px rgba(0,0,0,0.02); }
.news-collector-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; gap: 20px; }
.news-collector-title-box { display: flex; gap: 16px; }
.collector-icon { color: #3b82f6; flex-shrink: 0; margin-top: 4px; }
.news-collector h3 { font-size: 18px; font-weight: 600; color: #1e293b; margin: 0 0 8px 0; }
.collector-desc { font-size: 13px; color: #64748b; line-height: 1.6; margin: 0; max-width: 600px; }
.btn-refresh-simple { display: flex; align-items: center; gap: 6px; background: none; border: none; color: #1e293b; font-size: 14px; font-weight: 500; cursor: pointer; padding: 0; }
.btn-refresh-simple:hover { opacity: 0.7; }
.collector-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.stat-box { background: #f8fafc; padding: 16px; border-radius: 12px; display: flex; flex-direction: column; gap: 8px; }
.stat-label { font-size: 10px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; }
.stat-value { font-size: 15px; font-weight: 600; color: #1e293b; line-height: 1.4; }
.status-ok { color: #10b981; }
.collector-footer { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid #f1f5f9; }
.admin-details { font-size: 14px; color: #475569; }
.admin-details summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; font-weight: 500; }
.admin-details summary::-webkit-details-marker { display: none; }
.admin-details summary:hover { color: #1e293b; }
.admin-section-title { font-size: 13px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; margin: 10px 0 0 0; }
.sync-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sync-card { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.sync-card-info { flex: 1; }
.sync-card-title { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sync-card-title h4 { font-size: 16px; font-weight: 600; color: #1e293b; margin: 0; }
.sync-card-title a { color: #94a3b8; }
.sync-time { font-size: 13px; color: #64748b; margin: 0; line-height: 1.5; }
.sync-date { color: #94a3b8; }
.btn-primary-sync { display: flex; align-items: center; gap: 10px; padding: 12px 24px; background: #3b82f6; color: #fff; border: none; border-radius: 12px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.btn-primary-sync:hover { background: #2563eb; transform: translateY(-1px); }
.status-icon-ok { color: #3b82f6; }
.sync-card-large .sync-details-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.sync-details-col { display: flex; flex-direction: column; gap: 4px; }
.sync-details-col p { font-size: 13px; color: #64748b; margin: 0; line-height: 1.5; }
.section-note { font-size: 13px; color: #94a3b8; line-height: 1.6; margin: 0; }
.mt-15 { margin-top: 15px; }
.upload-zone { border: 2px dashed #e2e8f0; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; gap: 16px; text-align: center; transition: all 0.2s; }
.upload-zone:hover { border-color: #3b82f6; background: #f8fafc; }
.upload-icon { color: #cbd5e1; }
.upload-zone p { font-size: 16px; color: #64748b; margin: 0; }
.file-label { color: #3b82f6; font-weight: 600; cursor: pointer; text-decoration: underline; }
.admin-table-container { background: #fff; border-radius: 20px; border: 1px solid #f1f5f9; overflow: hidden; }
.admin-table { width: 100%; border-collapse: collapse; text-align: left; }
.admin-table th { background: #f8fafc; padding: 16px 24px; font-size: 13px; font-weight: 600; color: #64748b; border-bottom: 1px solid #f1f5f9; }
.admin-table td { padding: 16px 24px; border-bottom: 1px solid #f1f5f9; font-size: 14px; color: #475569; vertical-align: middle; }
.admin-table tr:last-child td { border-bottom: none; }
.file-info-cell { display: flex; gap: 16px; align-items: center; }
.file-name { font-weight: 600; color: #1e293b; margin-bottom: 4px; }
.file-path { font-size: 12px; color: #94a3b8; }
.file-icon-excel { color: #3b82f6; }
.file-icon-gsheet { color: #64748b; }
.file-type-tag { font-size: 11px; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; }
.file-actions { display: flex; gap: 8px; justify-content: flex-end; }
.file-actions button { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 10px; border: 1px solid #e2e8f0; background: #fff; color: #475569; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.file-actions button:hover { background: #f8fafc; border-color: #cbd5e1; }
.btn-action-refresh { color: #3b82f6 !important; border-color: #3b82f6 !important; }
.btn-action-refresh:hover { background: #eff6ff !important; }
.btn-action-delete { color: #ef4444 !important; }
.btn-action-delete:hover { background: #fef2f2 !important; border-color: #fca5a5 !important; }
.btn-action-more { padding: 8px !important; color: #94a3b8 !important; }
.text-right { text-align: right; }

.rotating svg { animation: rotate 1s linear infinite; }
@keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.dragover { border-color: #3b82f6 !important; background: #eff6ff !important; }

@media (max-width: 1024px) {
    .collector-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .sync-grid { grid-template-columns: 1fr; }
    .desktop-only { display: none; }
}

@media (max-width: 768px) {
    .admin-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .admin-header-actions { width: 100%; overflow-x: auto; padding-bottom: 5px; }
    .news-collector-header { flex-direction: column; }
    .btn-refresh-simple { align-self: flex-end; }
    .sync-card { flex-direction: column; align-items: stretch; }
    .sync-card .btn-primary-sync { width: 100%; justify-content: center; }
    .sync-details-row { flex-direction: column; align-items: stretch; gap: 15px; }
    .sync-card-large .btn-primary-sync { width: 100%; justify-content: center; }
    .admin-table-container { border: none; background: none; }
    .admin-table thead { display: none; }
    .admin-table tr { display: flex; flex-direction: column; background: #fff; border: 1px solid #f1f5f9; border-radius: 20px; padding: 20px; margin-bottom: 16px; gap: 12px; position: relative; }
    .admin-table td { padding: 0; border: none; display: flex; justify-content: space-between; align-items: center; width: 100%; }
    .admin-table td:first-child { order: 1; }
    .admin-table td:nth-child(2) { order: 2; width: auto; position: absolute; top: 20px; right: 20px; }
    .admin-table td:nth-child(3) { order: 3; width: auto; position: absolute; top: 40px; right: 20px; font-size: 12px; }
    .admin-table td:last-child { order: 4; padding-top: 15px; border-top: 1px solid #f1f5f9; justify-content: flex-end; }
    .file-actions { width: 100%; }
    .file-actions button { flex: 1; justify-content: center; }
}

@media (max-width: 480px) {
    .collector-stats-grid { grid-template-columns: 1fr; }
    .admin-title { font-size: 20px; }
    .stat-box { padding: 12px; }
}


/* SYNC HISTORY */
.sync-history-list { margin-top: 10px; max-height: 300px; overflow-y: auto; background: #f8fafc; border-radius: 12px; border: 1px solid #e2e8f0; padding: 10px; }
.sync-history-item { display: flex; align-items: center; gap: 15px; padding: 8px 12px; border-bottom: 1px solid #e2e8f0; font-size: 13px; }
.sync-history-item:last-child { border-bottom: none; }
.sync-history-item.error { color: #ef4444; background: rgba(239, 68, 68, 0.05); }
.sync-history-date { color: #64748b; font-weight: 500; min-width: 140px; }
.sync-history-type { font-weight: 700; color: #1e293b; text-transform: uppercase; min-width: 80px; }
.sync-history-msg { color: #475569; }
.sync-history-empty { text-align: center; padding: 20px; color: #94a3b8; font-style: italic; }

/* LANG SELECTOR */

.lang-selector {
    display: flex;
    align-items: center;
    margin-right: 15px;
}

.lang-link {
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-decoration: none;
    transition: all 0.2s;
    letter-spacing: 0.1em;
    padding: 4px 8px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
    text-transform: uppercase;
}

.lang-link:hover {
    color: #3b82f6;
    border-color: #3b82f6;
    background: #fff;
}

.header-mobile .lang-selector {
    margin-right: 10px;
}
