:root{--color-bg:#f4f6f8;--color-surface:#ffffff;--color-surface-muted:#f8fafb;--color-text:#1b2733;--color-text-secondary:#5a6b7b;--color-border:#d9e1e8;--color-border-strong:#b9c6d0;--color-primary:#0f4c6b;--color-primary-hover:#0b3a52;--color-primary-soft:#e3eef4;--color-success:#1c7c4f;--color-success-soft:#e3f3ea;--color-warning:#9a6b00;--color-warning-soft:#fdf3dc;--color-danger:#b3372f;--color-danger-hover:#932b24;--color-danger-soft:#fbe9e7;--color-focus:#d97706;--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-control:8px;--control-height:44px;--focus-ring:0 0 0 3px rgba(217,119,6,0.22);--transition-control:border-color 120ms ease,box-shadow 120ms ease,background-color 120ms ease;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--shadow-sm:0 1px 2px rgba(15,40,60,0.06);--shadow-md:0 2px 8px rgba(15,40,60,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5}h1,h2,h3{line-height:1.25;margin:0 0 var(--space-3)}h1{font-size:1.45rem;font-weight:700}h2{font-size:1.15rem;font-weight:600;margin-top:var(--space-5)}a{color:var(--color-primary)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-5)}.brand{font-weight:700;color:var(--color-primary);text-decoration:none;margin-right:var(--space-2)}.user-identity{display:flex;align-items:baseline;gap:6px;min-width:0;max-width:28rem;padding:6px 10px;border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:.88rem}.user-identity-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.user-identity-role,.user-identity-separator{color:var(--color-text-secondary)}.user-identity-role{white-space:nowrap}.nav{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;margin-left:auto}.nav a{text-decoration:none;color:var(--color-text-secondary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.nav a:hover{background:var(--color-surface-muted);color:var(--color-text)}.nav .logout-btn,.nav-toggle{margin-left:auto}.nav-toggle{display:none;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:8px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.nav-toggle:hover{background:var(--color-surface-muted)}.nav-toggle-icon{display:grid;grid-gap:4px;gap:4px;width:18px}.nav-toggle-icon span{display:block;height:2px;border-radius:999px;background:currentColor}.nav-toggle-text{white-space:nowrap}.page{width:100%;max-width:1100px;margin:0 auto;padding:var(--space-5)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.page-header h1{margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card>h1:first-child,.card>h2:first-child{margin-top:0}.card+.card,.card+section,section+.card{margin-top:var(--space-5)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.auth-card{width:100%;max-width:400px}.auth-brand{text-align:center;margin-bottom:var(--space-4)}.auth-brand .title{font-size:1.1rem;font-weight:700;color:var(--color-primary);margin:0}.auth-brand .subtitle{color:var(--color-text-secondary);margin:var(--space-1) 0 0}.public-query-header{display:flex;flex-direction:column;gap:var(--space-2);text-align:center;margin-bottom:var(--space-5);overflow-wrap:anywhere}.public-query-program{margin:0;color:var(--color-primary);font-size:clamp(1.1rem,4.6vw,1.3rem);font-weight:800;letter-spacing:.025em;line-height:1.25;text-wrap:balance}.public-query-institution{margin:0;color:var(--color-text);font-size:1.05rem;font-weight:700;text-wrap:balance}.public-query-description,.public-query-region{margin:0;color:var(--color-text-secondary)}.public-query-region{font-size:.95rem}.public-query-description{font-size:.9rem}.public-query-loading{margin:var(--space-4) 0 0;text-align:center;color:var(--color-text-secondary)}.public-result{margin-top:var(--space-5);padding:var(--space-6) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);text-align:center;animation:public-result-in .28s ease-out both}.public-result--success{background:linear-gradient(180deg,var(--color-success-soft),var(--color-surface));border-color:var(--color-success)}.public-result--neutral{background:linear-gradient(180deg,var(--color-warning-soft),var(--color-surface));border-color:var(--color-warning)}.public-result--error{background:linear-gradient(180deg,var(--color-surface-muted),var(--color-surface));border-color:var(--color-border-strong)}.public-result__icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;margin-bottom:var(--space-3);border-radius:50%;color:#ffffff}.public-result__icon svg{width:30px;height:30px}.public-result--success .public-result__icon{background:var(--color-success)}.public-result--neutral .public-result__icon{background:var(--color-warning)}.public-result--error .public-result__icon{background:var(--color-primary)}.public-result__title{max-width:30rem;margin:0 auto var(--space-2);font-size:clamp(1.15rem,4vw,1.35rem);line-height:1.35}.public-result__title:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:var(--radius-sm)}.public-result--success .public-result__title{color:var(--color-success)}.public-result__hint,.public-result__secondary{max-width:30rem;margin:var(--space-2) auto 0;color:var(--color-text-secondary)}.public-result__hint{font-size:.9rem}.public-result__actions{display:flex;justify-content:center;margin-top:var(--space-4)}@keyframes public-result-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-control);padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;min-height:var(--control-height);text-decoration:none;transition:var(--transition-control)}.btn:disabled{opacity:1;background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--color-primary);color:#ffffff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn-danger{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn-link{background:transparent;color:var(--color-primary);padding:var(--space-2);min-height:36px}.btn-sm{padding:6px 10px;min-height:36px;font-size:.85rem}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field label{font-weight:600;font-size:.9rem}.field .required:after{content:" *";color:var(--color-danger)}.field .hint{color:var(--color-text-secondary);font-size:.85rem}.field .error-message,.field .field-error{color:var(--color-danger);font-size:.85rem;font-weight:600}input:not([type]),input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea{width:100%;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);padding:10px 12px;font-size:.95rem;background:var(--color-surface);color:var(--color-text);min-height:var(--control-height);transition:var(--transition-control)}textarea{min-height:96px;resize:vertical}input:not([type]):focus,input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.input-error,input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}input:not([type]):disabled,input[type=date]:disabled,input[type=email]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,select:disabled,textarea:disabled{background:var(--color-surface-muted);color:var(--color-text-secondary);border-color:var(--color-border);cursor:not-allowed;opacity:1}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:18px;accent-color:var(--color-primary);cursor:pointer;flex:0 0 auto}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed;opacity:.6}input:user-invalid:not(:disabled),select:user-invalid:not(:disabled),textarea:user-invalid:not(:disabled){border-color:var(--color-danger)}input::placeholder,textarea::placeholder{color:var(--color-text-secondary);opacity:.8}input[readonly]{color:var(--color-text-secondary)}.fieldset-group,input[readonly]{background:var(--color-surface-muted)}.fieldset-group{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.fieldset-group legend{font-weight:700;font-size:.95rem;padding:0 var(--space-2);color:var(--color-text-secondary)}.form-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap}.alert{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;border:1px solid transparent;border-left-width:4px;font-size:.95rem}.alert-error{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger)}.alert-info{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.alert-success{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.badge-active{background:var(--color-success-soft);color:var(--color-success)}.badge-inactive{background:var(--color-warning-soft);color:var(--color-warning)}.badge-neutral{background:var(--color-surface-muted);color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge-provider{background:var(--color-primary-soft);color:var(--color-primary)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--color-surface)}.table th{text-align:left;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-strong);white-space:nowrap}.table td,.table th{padding:var(--space-3) var(--space-4)}.table td{border-bottom:1px solid var(--color-border);vertical-align:middle}.table tbody tr:hover{background:var(--color-surface-muted)}.pagination{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);color:var(--color-text-secondary)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.metric{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.metric dt{color:var(--color-text-secondary);font-size:.85rem}.metric dd{margin:var(--space-1) 0 0;font-size:1.6rem;font-weight:700}.identity-detail{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:var(--space-1) var(--space-3);gap:var(--space-1) var(--space-3);margin:var(--space-2) 0}.identity-detail dt{font-weight:600}.identity-detail dd{margin:0}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.detail-grid dt{font-size:.85rem;color:var(--color-text-secondary)}.detail-grid dd{margin:0 0 var(--space-3);font-weight:500}.empty-state{color:var(--color-text-secondary);padding:var(--space-5);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.pill-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media (max-width:768px){.topbar{flex-wrap:wrap;row-gap:var(--space-2)}.brand{order:0}.nav-toggle{display:inline-flex;order:1}.user-identity{order:2;flex-basis:100%;max-width:100%}.nav{order:3;display:none;flex-basis:100%;flex-wrap:nowrap;flex-direction:column;align-items:stretch;gap:var(--space-1);margin-left:0;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.nav.nav-open{display:flex}.nav a{width:100%;padding:var(--space-3) var(--space-2)}.nav .logout-btn{width:100%;margin-left:0;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.nav .logout-btn .btn{width:100%}}@media (max-width:640px){.public-query-header{gap:var(--space-1);margin-bottom:var(--space-4)}.public-query-program{font-size:1.1rem;letter-spacing:.02em}.public-query-institution{font-size:1rem}.public-result{padding:var(--space-5) var(--space-4)}.auth-page,.page{padding:var(--space-4) var(--space-3)}.card{padding:var(--space-4)}.fieldset-group{padding:var(--space-3)}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%}.table thead{display:none}.table,.table tbody,.table td,.table tr{display:block;width:100%}.table tr{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-2) 0;background:var(--color-surface)}.table td{display:flex;justify-content:space-between;gap:var(--space-3);border-bottom:1px dashed var(--color-border);padding:var(--space-2) var(--space-4)}.table td:last-child{border-bottom:none}.table td:before{content:attr(data-label);font-weight:600;color:var(--color-text-secondary)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.public-result{animation:none}}