@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800&display=swap');

:root {
    /* Theme Colors */
    --gbn-purple: #3f169a;
    --gbn-gold: #ffc042;
    
    /* Strict High Contrast Palette */
    --color-app: #ffffff;
    --color-card: #ffffff;
    --color-card-light: #f3f4f6;
    --color-card-dark: #111827;
    
    --color-heading: #000000;
    --color-body: #000000;
    --color-subtle: #000000;
    --color-muted: #000000;
    
    --color-success: #16a34a;
    --color-error: #dc2626;
    --color-warning: #d97706;
    --color-info: #0284c7;
    
    --border-app: #000000;
    --border-card: #000000;
}

/* Base Styles */
body { 
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 
    background-color: var(--color-app); 
    color: var(--color-body); 
    margin: 0;
}

/* Semantic Theme Classes */
.text-primary { color: var(--gbn-purple); }
.bg-primary { background-color: var(--gbn-purple); }
.text-secondary { color: var(--gbn-gold); }
.bg-secondary { background-color: var(--gbn-gold); }

.bg-app { background-color: var(--color-app); }
.bg-card { background-color: var(--color-card); }
.bg-card-light { background-color: var(--color-card-light); }
.bg-card-dark { background-color: var(--color-card-dark); }

.text-heading { color: var(--color-heading); font-weight: bold; }
.text-body { color: var(--color-body); }
.text-subtle { color: var(--color-subtle); opacity: 0.8; }
.text-muted { color: var(--color-muted); opacity: 0.6; }

.text-success { color: var(--color-success); }
.bg-success { background-color: var(--color-success); }
.text-error { color: var(--color-error); }
.bg-error { background-color: var(--color-error); }
.text-warning { color: var(--color-warning); }
.bg-warning { background-color: var(--color-warning); }
.text-info { color: var(--color-info); }
.bg-info { background-color: var(--color-info); }

.border-app { border-color: var(--border-app); }
.border-card { border-color: var(--border-card); }

/* UI Components */
.card { 
    background-color: var(--color-card); 
    border: 1px solid var(--border-card); 
    border-radius: 0.5rem; 
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.header-standard { 
    background-color: var(--gbn-purple); 
    color: #ffffff;
    border-bottom: 2px solid #000000; 
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.btn-primary { 
    background-color: var(--gbn-purple); 
    color: white; 
    font-weight: 700; 
    padding: 0.75rem 1.5rem; 
    border-radius: 0.5rem; 
    transition: all 0.2s; 
    display: inline-block;
    text-align: center;
    border: 1px solid #000000;
    cursor: pointer;
}
.btn-primary:hover { background-color: #2d0f70; transform: translateY(-1px); }
.btn-primary:disabled { background-color: #9ca3af; cursor: not-allowed; }

.btn-secondary { 
    background-color: var(--gbn-gold); 
    color: #000000; 
    font-weight: 700; 
    padding: 0.75rem 1.5rem; 
    border-radius: 0.5rem; 
    border: 1px solid #000000; 
    transition: all 0.2s;
    display: inline-block;
    text-align: center;
    cursor: pointer;
}
.btn-secondary:hover { background-color: #eab308; }

/* Utilities */
.hidden { display: none !important; }
.loader { border-top-color: var(--gbn-purple); animation: spinner 1.5s linear infinite; }
@keyframes spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Patient Records Specific */
.chip-group { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.chip { background: var(--color-card-light); color: var(--color-body); padding: 4px 8px; border-radius: 12px; font-size: 0.75rem; cursor: pointer; border: 1px solid var(--border-card); transition: background 0.2s; white-space: nowrap; font-weight: bold; }
.chip:active { background: #d1d5db; }
.history-alert { background: var(--color-card-light); color: var(--color-heading); padding: 12px; border-radius: 6px; font-size: 0.9rem; margin-bottom: 20px; text-align: center; font-weight: bold; border: 1px solid var(--border-card); }
.safety-alert { background: #fef2f2; color: #991b1b; padding: 15px; border-radius: 6px; font-size: 1rem; margin-bottom: 20px; text-align: left; font-weight: bold; border: 2px solid var(--color-error); box-shadow: 0 4px 6px rgba(220,53,69,0.1); }
.safety-alert ul { margin: 5px 0 0 20px; padding: 0; font-weight: normal; list-style-type: disc; }
.history-card { background: var(--color-card-light); padding: 15px; border-radius: 6px; margin-bottom: 12px; font-size: 0.9rem; border-left: 4px solid var(--gbn-purple); border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.history-card .hc-date { font-weight: bold; color: var(--gbn-purple); font-size: 1rem; margin-bottom: 8px; border-bottom: 1px solid var(--border-card); padding-bottom: 4px; }
.history-card .hc-row { display: flex; margin-bottom: 4px; }
.history-card .hc-label { font-weight: bold; color: var(--color-body); width: 90px; flex-shrink: 0; }
.history-card .hc-value { flex-grow: 1; color: var(--color-heading); }
.vax-list { margin: 5px 0 15px 20px; padding: 0; font-size: 0.9rem; color: var(--color-body); list-style-type: disc; font-weight: bold; }

/* ECA Specific */
.role-tooltip-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; background-color: var(--color-card-light); color: #000000; border: 1px solid #000000; border-radius: 50%; font-size: 12px; font-weight: bold; margin-left: 8px; cursor: pointer; user-select: none; transition: all 0.2s; }
.role-tooltip-icon.active { background-color: var(--gbn-purple); color: #ffffff; }
.role-tooltip-content { display: none; width: 100%; background-color: var(--color-card-dark); color: #ffffff; padding: 12px 16px; border-radius: 6px; font-size: 13px; margin-top: 8px; margin-bottom: 8px; position: relative; border: 1px solid #000000; }
.role-tooltip-content.visible { display: block; animation: fadeIn 0.2s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.contract-display-box { background-color: var(--color-card-light); border: 1px solid var(--border-card); border-radius: 6px; padding: 15px; max-height: 350px; overflow-y: auto; font-size: 13px; margin-bottom: 20px; }
.contract-display-box h5 { font-size: 14px; font-weight: bold; margin-top: 15px; margin-bottom: 5px; color: var(--color-body); }

/* Donor Funnel Styles */
.funnel-tier { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; clip-path: polygon(0% 0%, 100% 0%, 92% 100%, 8% 100%); margin-bottom: -8px; border: 1px solid #000000; }
.funnel-tier:hover { transform: scale(1.02); z-index: 10; }
.funnel-tier.active { transform: scale(1.04); z-index: 20; box-shadow: 0 25px 30px -10px rgba(0, 0, 0, 0.2); }
.detail-card { display: none; animation: subtleFadeUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
@keyframes subtleFadeUp { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
.tier-0 { width: 100%; max-width: 765px; border: 1px solid #000000; }
.tier-1 { width: 94%; max-width: 720px; }
.tier-2 { width: 88%; max-width: 675px; }
.tier-3 { width: 82%; max-width: 630px; }
.tier-4 { width: 76%; max-width: 585px; }
.tier-5 { width: 70%; max-width: 540px; clip-path: inset(0 0 0 0 round 0 0 1.5rem 1.5rem); border: 1px solid #000000; }
.detail-icon-box { width: 6rem; height: 6rem; border-radius: 1.5rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); border: 1px solid #000000; }

/* Print Overrides */
@media print {
    @page { margin: 12mm; }
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    body, main, html { height: auto !important; overflow: visible !important; background-color: #ffffff !important; color: #000000 !important; }
    .rounded-3xl, .rounded-2xl, .detail-card, .funnel-tier, p, li { page-break-inside: avoid !important; break-inside: avoid !important; }
    h2, h3, h4, h5 { page-break-after: avoid !important; break-after: avoid !important; color: #000000 !important; }
    .detail-card { display: block !important; opacity: 1 !important; transform: none !important; animation: none !important; margin-bottom: 2rem !important; }
    .shadow-sm, .shadow-lg, .shadow-2xl, .shadow-xl { box-shadow: none !important; border: 1px solid #000000 !important; }
    .print-hidden { display: none !important; }
    .bg-primary, .bg-secondary, .bg-card-dark { background-color: #ffffff !important; color: #000000 !important; border: 1px solid #000000 !important; }
    .text-white { color: #000000 !important; }
}
