/* ── Neurocuole Patient Portal — Teal theme ──────────────────────────────── */
:root {
    --nc-teal: #0d9488; --nc-teal-dark: #0f766e; --nc-teal-light: #ccfbf1;
    --nc-teal-pale: #f0fdf4; --nc-text: #111827; --nc-text-muted: #6b7280;
    --nc-border: #e5e7eb; --nc-bg: #f9fafb; --nc-white: #ffffff;
    --nc-danger: #dc2626; --nc-danger-bg: #fef2f2;
    --nc-success: #059669; --nc-success-bg: #ecfdf5;
    --nc-warning: #d97706; --nc-warning-bg: #fffbeb;
    --nc-radius: 0.75rem;
    --nc-shadow: 0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);
    --nc-shadow-md: 0 4px 6px -1px rgba(0,0,0,.10),0 2px 4px -2px rgba(0,0,0,.10);
}
*,*::before,*::after{box-sizing:border-box}
html,body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:16px;color:var(--nc-text);background:var(--nc-bg);margin:0;min-height:100vh}
.nc-page-wrapper{min-height:100vh;display:flex;flex-direction:column}
.nc-main{flex:1}
.nc-topbar{background:var(--nc-teal);color:var(--nc-white);padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--nc-shadow-md)}
.nc-topbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.15rem;color:var(--nc-white);text-decoration:none}
.nc-topbar-brand span{font-size:.78rem;opacity:.8;font-weight:400}
.nc-topbar-right{display:flex;align-items:center;gap:1rem;font-size:.875rem}
.nc-card{background:var(--nc-white);border:1px solid var(--nc-border);border-radius:var(--nc-radius);box-shadow:var(--nc-shadow);padding:1.75rem}
.nc-card-title{font-size:1.15rem;font-weight:700;color:var(--nc-teal-dark);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:2px solid var(--nc-teal-light)}
.nc-form-group{margin-bottom:1.25rem}
.nc-label{display:block;font-size:.875rem;font-weight:600;color:var(--nc-text);margin-bottom:.4rem}
.nc-input{width:100%;padding:.65rem .9rem;border:1.5px solid var(--nc-border);border-radius:.5rem;font-size:.95rem;color:var(--nc-text);background:var(--nc-white);transition:border-color .15s,box-shadow .15s;outline:none}
.nc-input:focus{border-color:var(--nc-teal);box-shadow:0 0 0 3px rgba(13,148,136,.15)}
.nc-input.invalid{border-color:var(--nc-danger)}
.nc-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem 1.5rem;border-radius:.5rem;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:background .15s,transform .1s;text-decoration:none}
.nc-btn:active{transform:scale(.98)}
.nc-btn:disabled{opacity:.6;cursor:not-allowed}
.nc-btn-primary{background:var(--nc-teal);color:var(--nc-white)}
.nc-btn-primary:hover:not(:disabled){background:var(--nc-teal-dark)}
.nc-btn-outline{background:transparent;color:var(--nc-teal);border:1.5px solid var(--nc-teal)}
.nc-btn-outline:hover:not(:disabled){background:var(--nc-teal-pale)}
.nc-btn-danger{background:var(--nc-danger);color:var(--nc-white)}
.nc-btn-full{width:100%}
.nc-alert{padding:.85rem 1rem;border-radius:.5rem;font-size:.9rem;margin-bottom:1rem}
.nc-alert-error{background:var(--nc-danger-bg);color:var(--nc-danger);border:1px solid #fecaca}
.nc-alert-success{background:var(--nc-success-bg);color:var(--nc-success);border:1px solid #a7f3d0}
.nc-alert-info{background:var(--nc-teal-pale);color:var(--nc-teal-dark);border:1px solid var(--nc-teal-light)}
.nc-otp-input{font-size:2rem;font-weight:700;letter-spacing:.5rem;text-align:center;width:100%;padding:1rem;border:2px solid var(--nc-border);border-radius:.5rem;background:var(--nc-teal-pale);color:var(--nc-teal-dark)}
.nc-otp-input:focus{border-color:var(--nc-teal);box-shadow:0 0 0 3px rgba(13,148,136,.15);outline:none}
.nc-badge{display:inline-block;padding:.2rem .65rem;border-radius:9999px;font-size:.78rem;font-weight:600}
.nc-badge-active{background:var(--nc-success-bg);color:var(--nc-success)}
.nc-badge-pending{background:var(--nc-warning-bg);color:var(--nc-warning)}
.nc-badge-inactive{background:#f3f4f6;color:#6b7280}
.nc-footer{background:var(--nc-white);border-top:1px solid var(--nc-border);padding:1.25rem 1.5rem;text-align:center;font-size:.8rem;color:var(--nc-text-muted)}
.nc-center-page{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.nc-center-box{width:100%;max-width:440px}
.nc-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;padding:1.5rem;max-width:1100px;margin:0 auto}
.nc-table{width:100%;border-collapse:collapse;font-size:.9rem}
.nc-table th{text-align:left;padding:.6rem .9rem;background:var(--nc-teal-pale);color:var(--nc-teal-dark);font-weight:700;border-bottom:2px solid var(--nc-teal-light)}
.nc-table td{padding:.6rem .9rem;border-bottom:1px solid var(--nc-border)}
.nc-table tr:hover td{background:var(--nc-teal-pale)}
.nc-spinner{display:inline-block;width:1.1rem;height:1.1rem;border:2px solid var(--nc-teal-light);border-top-color:var(--nc-teal);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#blazor-error-ui{background:var(--nc-danger-bg);border-top:2px solid var(--nc-danger);bottom:0;left:0;right:0;padding:.75rem 1.5rem;position:fixed;z-index:1000;display:none}
#blazor-error-ui .dismiss{cursor:pointer;float:right;font-weight:700}
