/* ===== ASCO Catalog — Design System v2 ===== */

:root{
  /* Ink (brand navy) */
  --ink:#0a1f33;
  --ink-2:#132d47;
  --ink-3:#1e4360;

  /* Accent (brand teal) */
  --accent:#0c8074;      /* interactive: buttons, links, focus — 4.8:1 on white */
  --accent-dark:#086b60;  /* hover/active */
  --accent-bright:#2dd4bf;/* decorative only: gradients, brand mark */
  --accent-light:#e1f5f2; /* tinted surface for chips/badges */
  --accent-text:#0b6b60;  /* text on accent-light */

  /* Secondary role accent (kept distinct from teal, for superuser tags etc.) */
  --violet:#6d4fc2;
  --violet-light:#efe9fb;

  /* Avatar palette — all ≥4.5:1 with white text */
  --av-1:#0a1f33;--av-2:#086b60;--av-3:#6d4fc2;--av-4:#a15c1f;--av-5:#b3355a;

  /* Neutrals */
  --bg:#f5f7fa;
  --card:#ffffff;
  --border:#dbe3ea;
  --border-soft:#e9eef2;
  --text:#0f1c2b;
  --muted:#54687a;      /* 4.7:1 on --bg */
  --muted-2:#8698a8;     /* decorative-only, large text */

  /* Semantic */
  --good:#0f7a4c;      --good-bg:#dff5e8;
  --warn:#8a5a06;      --warn-bg:#fdf0cf;
  --bad:#b3261e;       --bad-bg:#fbe4e2;

  --ring:0 0 0 3px rgba(12,128,116,.22);
  --shadow:0 1px 2px rgba(10,31,51,.04),0 10px 26px rgba(10,31,51,.07);
  --shadow-hover:0 2px 6px rgba(10,31,51,.06),0 16px 36px rgba(10,31,51,.11);

  --r-sm:8px;--r-md:11px;--r-lg:16px;--r-xl:20px;
}

*{box-sizing:border-box}
html{background:var(--bg)}
html,body{overscroll-behavior-x:none;max-width:100%}
body{
  margin:0;color:var(--text);font:15px/1.55 'Plus Jakarta Sans',Inter,Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(900px 480px at 88% -8%,rgba(45,212,191,.10),transparent 60%),
    radial-gradient(700px 420px at -6% 12%,rgba(10,31,51,.06),transparent 55%),
    var(--bg);
  background-attachment:fixed;
}
a{color:var(--accent)}
button,input,select{font:inherit}
input,select,textarea{font-size:16px}
a,button,.primary-button,.secondary-button,.mini-button,.link-button,.text-button,.row-action a,.page-links a{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 0 currentColor}50%{box-shadow:0 0 0 3px transparent}}
.catalog-heading,.stats-grid article,.filters,.results-card,.login-card,.import-card,.profile-header,.detail-card,.empty-state{animation:rise .45s cubic-bezier(.16,1,.3,1) backwards}
.stats-grid article:nth-child(1){animation-delay:.02s}.stats-grid article:nth-child(2){animation-delay:.07s}.stats-grid article:nth-child(3){animation-delay:.12s}.stats-grid article:nth-child(4){animation-delay:.17s}
.filters{animation-delay:.08s}.results-card{animation-delay:.14s}
.table-wrap tbody tr{animation:rise .35s cubic-bezier(.16,1,.3,1) backwards}
.table-wrap tbody tr:nth-child(1){animation-delay:.02s}.table-wrap tbody tr:nth-child(2){animation-delay:.05s}.table-wrap tbody tr:nth-child(3){animation-delay:.08s}.table-wrap tbody tr:nth-child(4){animation-delay:.11s}.table-wrap tbody tr:nth-child(5){animation-delay:.14s}.table-wrap tbody tr:nth-child(6){animation-delay:.17s}.table-wrap tbody tr:nth-child(n+7){animation-delay:.19s}
.empty-icon,.auth-icon,.success-icon,.mail-icon{animation:pop .4s cubic-bezier(.34,1.56,.64,1) backwards}

@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* Topbar */
.topbar{position:sticky;top:0;z-index:30;background:linear-gradient(180deg,rgba(13,35,57,.98),rgba(10,31,51,.98));color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.07);transition:transform .25s ease;transform:translateY(0);will-change:transform;backface-visibility:hidden}
@media(max-width:680px){.topbar.topbar-hidden{transform:translateY(-100%) translateZ(0)}}
.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--accent-bright),var(--accent) 35%,transparent 75%);opacity:.85}
.topbar-inner{height:66px;max-width:1500px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;letter-spacing:.01em}
.brand strong{font-weight:800}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,var(--accent-bright),#8fe9de);color:var(--ink);font-weight:900;font-size:18px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 4px 14px rgba(45,212,191,.35)}
.nav-actions{display:flex;align-items:center;gap:20px}
.nav-actions a,.link-button{position:relative;color:#cfe6e2;text-decoration:none}
.nav-actions a:not(.brand)::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:2px;background:var(--accent-bright);transition:right .18s ease}
.nav-actions a:hover:not(.brand)::after{right:0}
.nav-actions a:hover,.link-button:hover{color:#fff}
.nav-actions form{margin:0}
.link-button{border:0;background:none;cursor:pointer;padding:0}
.user-name{color:#8fb3ac;padding-left:4px}

/* Mobile menu bar: hamburger + search shortcut (hidden on desktop) */
.topbar-search,.nav-toggle{display:none}
.nav-toggle-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}

@media(max-width:680px){
  .topbar-inner{gap:8px}
  .brand{flex:1 1 auto;min-width:0}
  .brand span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar-search,.nav-toggle{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.08);color:#fff}
  .topbar-search:hover,.nav-toggle:hover{background:rgba(255,255,255,.16)}
  .nav-toggle{cursor:pointer}

  .nav-actions{
    position:absolute;top:66px;left:0;right:0;z-index:29;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink);
    max-height:0;overflow:hidden;
    transition:max-height .25s ease;
    box-shadow:0 16px 30px rgba(10,31,51,.3);
  }
  .nav-toggle-input:checked ~ .nav-actions{max-height:75vh;overflow-y:auto}
  .nav-actions a,.nav-actions .user-name,.nav-actions form{width:100%}
  .nav-actions a,.nav-actions form button{display:block;padding:15px 20px;border-bottom:1px solid rgba(255,255,255,.09)}
  .nav-actions a:not(.brand)::after{display:none}
  .user-name{display:block;padding:15px 20px;border-bottom:1px solid rgba(255,255,255,.09);color:#8fb3ac}
  .nav-actions form{margin:0}
  .nav-actions form button{width:100%;text-align:left;border:0;background:none;color:#cfe6e2;font:inherit;cursor:pointer}
}

.page-shell{max-width:1500px;margin:0 auto;padding:30px 24px 60px}

/* Headings & type */
.catalog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.heading-actions{display:flex;gap:8px;align-items:center}
.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:800}
h1{font-size:2rem;line-height:1.14;margin:.25rem 0 .35rem;letter-spacing:-.025em;font-weight:800;color:var(--ink)}
h2{font-size:1.08rem;margin:0 0 18px;font-weight:700;color:var(--ink-2)}
h3{font-size:.79rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:22px 0 8px;font-weight:700}
.catalog-heading p,.login-card p,.import-card p,.profile-header p{margin:0;color:var(--muted)}
.catalog-heading p strong{color:var(--ink-2)}

/* Badges / pills */
.version-badge,.status-pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-weight:700;white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}
.version-badge{padding:8px 13px}
.version-badge.complete{background:var(--good-bg);color:var(--good)}
.version-badge.incomplete{background:var(--warn-bg);color:var(--warn)}
.version-badge.incomplete .dot,.status-pill:not(.done):not(.unavailable) .dot{animation:pulse-dot 1.6s ease-in-out infinite}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px}
.stats-grid article{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow)}
.stats-grid article.stat-accent{border-color:#b9e4dd;background:linear-gradient(145deg,#fff,var(--accent-light));border-top:3px solid var(--accent-bright)}
.stats-grid span{display:block;color:var(--muted);font-size:.84rem;font-weight:700}
.stats-grid strong{display:block;font-size:1.65rem;line-height:1.25;margin-top:2px;letter-spacing:-.025em;color:var(--ink);font-weight:800}
.stats-grid small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}

/* Filters & buttons */
.filters{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:12px;box-shadow:var(--shadow)}
.filters label,.stack-form label{display:block;color:var(--ink-2);font-size:.82rem;font-weight:700}
.filters input,.filters select,.stack-form input{display:block;width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid #a9bec9;border-radius:var(--r-sm);background:#fff;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}
.filters input:focus,.filters select:focus,.stack-form input:focus{border-color:var(--accent);box-shadow:var(--ring)}
.search-row{display:grid;grid-template-columns:minmax(300px,1fr) 190px 130px;gap:12px;align-items:end}
.search-input-wrap{position:relative}
.search-input-wrap input{padding-left:38px}
.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;color:#7691a0;pointer-events:none}
.advanced-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;align-items:end;margin-top:14px}
.filter-buttons{display:flex;align-items:flex-end;gap:8px;min-width:max-content}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:var(--r-sm);border:1px solid transparent;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
.primary-button{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 1px 2px rgba(10,31,51,.08)}
.primary-button:hover{background:linear-gradient(135deg,#0e9384,var(--accent-dark));box-shadow:0 8px 20px rgba(12,128,116,.28);transform:translateY(-1px)}
.primary-button:active{transform:translateY(0)}
.secondary-button{background:#fff;color:var(--ink);border-color:var(--border)}
.secondary-button:hover{background:#f4f8f8;border-color:#b9cdd5;transform:translateY(-1px)}
.secondary-button:active{transform:translateY(0)}

/* Specialization picker */
.specialization-picker{margin-top:14px;border:1px solid var(--border);border-radius:var(--r-md);background:#f9fbfc;overflow:hidden}
.specialization-picker summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:12px 14px;color:var(--ink-2)}
.specialization-picker summary::-webkit-details-marker{display:none}
.specialization-picker summary span:first-child{display:flex;align-items:baseline;gap:10px}
.specialization-picker summary small{color:var(--muted);font-weight:500}
.summary-count{color:var(--accent);font-size:.8rem;font-weight:700}
.specialization-body{padding:0 14px 14px;border-top:1px solid var(--border-soft)}
.specialization-tools{display:grid;grid-template-columns:minmax(220px,1fr) 260px auto;gap:10px;align-items:end;padding:12px 0}
.specialization-tools input{margin:0}
.mode-control{display:flex!important;align-items:center;gap:8px}
.mode-control span{white-space:nowrap}
.mode-control select{margin:0}
.text-button{height:42px;border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer;padding:0 8px}
.specialization-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px 14px;max-height:300px;overflow:auto;padding:2px 3px 4px}
.specialization-option{display:grid!important;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:.88rem!important;font-weight:600!important;color:var(--text)!important}
.specialization-option:hover{background:var(--accent-light)}
.specialization-option input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.checkmark{display:block;width:17px;height:17px;border:1.5px solid #9eb3bf;border-radius:4px;background:#fff;position:relative}
.specialization-option input:checked+.checkmark{background:var(--accent);border-color:var(--accent)}
.specialization-option input:checked+.checkmark:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.option-count{color:var(--muted-2);background:#edf2f5;border-radius:999px;min-width:28px;text-align:center;padding:1px 7px;font-size:.72rem}
.specialization-option[hidden]{display:none!important}

/* Active filters */
.active-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 2px 12px}
.active-label{font-size:.8rem;color:var(--muted);font-weight:700}
.filter-chip{display:inline-flex;gap:4px;align-items:center;padding:5px 9px;border:1px solid #bfe1db;border-radius:999px;background:var(--accent-light);color:var(--accent-text);font-size:.75rem}
.filter-chip strong{color:var(--accent-dark)}

/* Results table */
.results-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.results-toolbar{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--border)}
.results-toolbar>div:first-child strong{font-size:1.12rem;color:var(--ink)}
.export-actions{display:flex;align-items:center;gap:7px}
.export-actions span{font-size:.78rem;color:var(--muted)}
.export-actions a{padding:6px 10px;border:1px solid #a8c0ce;border-radius:var(--r-sm);color:var(--accent);font-weight:700;text-decoration:none;font-size:.82rem}
.export-actions a:hover{background:var(--accent-light)}

.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:1120px}
th{text-align:left;padding:11px 13px;background:#eef3f5;color:var(--ink-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}
td{padding:12px 13px;border-top:1px solid var(--border-soft);vertical-align:top}
tbody tr{transition:background .12s,box-shadow .12s}
tbody tr:hover{background:#f4f9f8;box-shadow:inset 3px 0 0 var(--accent-bright)}
td a{color:var(--accent)}
.person-cell{min-width:190px}
.person-cell small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px;max-width:220px}
.person-row{display:flex;align-items:center;gap:10px}
.row-avatar{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;color:#fff;font-size:.78rem;font-weight:800;background:var(--av-1)}
tbody tr:nth-child(5n+1) .row-avatar{background:var(--av-1)}
tbody tr:nth-child(5n+2) .row-avatar{background:var(--av-2)}
tbody tr:nth-child(5n+3) .row-avatar{background:var(--av-3)}
tbody tr:nth-child(5n+4) .row-avatar{background:var(--av-4)}
tbody tr:nth-child(5n+5) .row-avatar{background:var(--av-5)}
.person-link{font-weight:700;text-decoration:none;color:var(--ink)!important}
.person-link:hover{color:var(--accent)!important}
.email-cell{max-width:220px;word-break:break-word}
.specialization-cell{max-width:330px}
.tag-list{display:flex;flex-wrap:wrap;gap:5px}
.tag{display:inline-flex;align-items:center;max-width:100%;padding:3px 7px;border-radius:7px;background:var(--accent-light);color:var(--accent-text);font-size:.7rem;font-weight:700;line-height:1.35}
.tag-more{background:#eef1f4;color:#607481;cursor:help}
.muted{color:var(--muted)}
.status-pill{padding:4px 8px;background:#e7edf2;color:#526b7a;font-size:.72rem}
.status-pill.done{background:var(--good-bg);color:var(--good)}
.status-pill.unavailable{background:var(--bad-bg);color:var(--bad)}
.row-action{width:42px}
.row-action a{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;text-decoration:none;color:var(--accent);font-weight:900;font-size:1.05rem}
.row-action a:hover{background:var(--accent-light)}
.empty-row{text-align:center;color:var(--muted);padding:44px 20px!important}
.empty-row strong{color:var(--ink-2);font-size:1rem}

/* Pagination */
.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--border);color:var(--muted)}
.page-links{display:flex;gap:5px;align-items:center}
.page-links a,.current-page{display:grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--ink);background:#fff}
.page-links a:hover{background:#f3f8fa}
.current-page{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}
.ellipsis{padding:0 4px}

/* Profile / detail */
.profile-header{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;margin:17px 0;box-shadow:var(--shadow)}
.profile-header .status-pill{margin-left:auto}
.profile-avatar,.profile-photo{width:74px;height:74px;border-radius:18px;flex:0 0 74px}
.profile-avatar{display:grid;place-items:center;background:linear-gradient(145deg,var(--ink),var(--ink-3));color:#fff;font-size:1.8rem;font-weight:800}
.profile-photo{object-fit:cover;background:#edf2f5;border:1px solid var(--border)}
.profile-main{min-width:0}
.profile-main h1{margin-top:2px}
.profile-org{color:var(--ink-2);font-weight:700;margin-top:5px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.detail-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:21px;box-shadow:var(--shadow)}
.detail-wide{grid-column:1/-1}
.detail-card dl{display:grid;grid-template-columns:150px 1fr;margin:0}
.detail-card dt,.detail-card dd{padding:9px 0;border-bottom:1px solid var(--border-soft)}
.detail-card dt{color:var(--muted)}
.detail-card dd{margin:0;font-weight:600;word-break:break-word}
.detail-tags .tag{font-size:.78rem;padding:5px 8px}
.multiline{white-space:pre-line}
.job-history{line-height:1.7}
.back-link{color:var(--accent);text-decoration:none;font-weight:700}
.detail-actions{display:flex;gap:9px;margin-top:15px}

/* Auth / login / empty state */
.login-card,.import-card{max-width:540px;margin:8vh auto 0;background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);padding:30px;box-shadow:var(--shadow)}
.stack-form{display:grid;gap:16px;margin-top:24px}
.check-label{display:flex!important;align-items:center;gap:9px}
.check-label input{width:18px!important;height:18px!important;margin:0!important}
.message{padding:12px 15px;margin-bottom:16px;border-radius:10px;background:var(--accent-light);color:var(--accent-text)}
.message.error{background:var(--bad-bg);color:var(--bad)}
.message.success{background:var(--good-bg);color:var(--good)}
.empty-state{text-align:center;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:70px 24px;box-shadow:var(--shadow)}
.empty-state h1{color:var(--text)}
.empty-state .primary-button{margin-top:15px}
.empty-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:15px;background:var(--ink);color:#fff;font-size:1.4rem;font-weight:800}

@media(max-width:1180px){.advanced-grid{grid-template-columns:repeat(3,1fr)}.specialization-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.search-row{grid-template-columns:1fr 1fr}.filter-grow{grid-column:1/-1}.advanced-grid{grid-template-columns:repeat(2,1fr)}.specialization-tools{grid-template-columns:1fr 1fr}.text-button{grid-column:1/-1;justify-self:start}.detail-grid{grid-template-columns:1fr}.detail-wide{grid-column:auto}}
@media(max-width:680px){.topbar-inner{padding:0 14px}.page-shell{padding:20px 12px 40px}.catalog-heading{align-items:flex-start;flex-direction:column}.stats-grid,.search-row,.advanced-grid{grid-template-columns:1fr}.filter-grow{grid-column:auto}.specialization-picker summary{align-items:flex-start;flex-direction:column;gap:5px}.specialization-picker summary span:first-child{display:block}.specialization-picker summary small{display:block;margin-top:2px}.specialization-tools,.specialization-grid{grid-template-columns:1fr}.filter-buttons{flex-wrap:wrap}.results-toolbar{align-items:flex-start;gap:9px;flex-direction:column}.export-actions{flex-wrap:wrap}.pagination{align-items:flex-start;gap:10px;flex-direction:column}.profile-header{align-items:flex-start;flex-wrap:wrap}.profile-header .status-pill{margin-left:0}.profile-avatar,.profile-photo{width:62px;height:62px;flex-basis:62px}.detail-card dl{grid-template-columns:1fr}.detail-card dd{padding-top:0}.detail-actions{flex-direction:column}.login-card,.import-card{margin-top:3vh;padding:22px}}

/* Mobile: results table -> stacked cards instead of horizontal scroll */
@media(max-width:680px){
  .table-wrap{overflow:visible}
  table{min-width:0;width:100%;border-collapse:separate;border-spacing:0}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  tbody tr{position:relative;display:block;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);margin:0 0 10px;padding:14px 44px 6px 14px;box-shadow:var(--shadow)}
  tbody tr:hover{box-shadow:var(--shadow)}
  td{display:block;padding:8px 0;border-top:0;border-bottom:1px solid var(--border-soft)}
  td:last-child{border-bottom:0}
  td::before{content:attr(data-label);display:block;color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
  td.person-cell{padding-top:0;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}
  td.person-cell::before{display:none}
  td.row-action{position:absolute;top:12px;right:10px;padding:0;border:0}
  td.row-action::before{display:none}
  td.row-action a{width:28px;height:28px}
  td.email-cell{max-width:none}
}


/* Accounts & administration */
.auth-card{text-align:left;max-width:560px}
.auth-icon,.success-icon,.mail-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;margin-bottom:16px;font-size:1.4rem;font-weight:800}
.auth-icon{background:var(--ink);color:#fff}
.success-icon{background:var(--good-bg);color:var(--good)}
.mail-icon{background:var(--accent-light);color:var(--accent)}
.auth-footer{margin-top:18px;padding-top:15px;border-top:1px solid var(--border-soft);text-align:center}
.auth-footer a{font-weight:700;text-decoration:none}
.auth-main-action{margin-top:22px}
.form-rendered p{margin:0}
.form-rendered p label{display:block;color:var(--ink-2);font-size:.82rem;font-weight:700}
.form-rendered input,.form-rendered select{display:block;width:100%;min-height:42px;margin-top:6px;padding:8px 12px;border:1px solid #a9bec9;border-radius:var(--r-sm);background:#fff;color:var(--text);outline:none}
.form-rendered input:focus,.form-rendered select:focus{border-color:var(--accent);box-shadow:var(--ring)}
.form-rendered ul.errorlist{list-style:none;margin:6px 0 0;padding:0;color:var(--bad);font-size:.8rem;font-weight:700}
.form-rendered .helptext,.form-rendered p>span.helptext{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;font-weight:500}
.form-rendered ul:not(.errorlist){margin:5px 0 0 18px;padding:0;color:var(--muted);font-size:.76rem}
.form-actions{display:flex;gap:9px;flex-wrap:wrap}
.message.warning{background:var(--warn-bg);color:var(--warn)}
.message.info{background:var(--accent-light);color:var(--accent-text)}
.compact-message{margin:10px 0 0}
.admin-heading{align-items:center}
.admin-stats{margin-top:2px}
.user-table{min-width:1180px}
.role-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf2f5;color:#526b7a;font-size:.72rem;font-weight:700}
.role-pill.role-admin{background:var(--accent-light);color:var(--accent-text)}
.role-pill.role-super{background:var(--violet-light);color:var(--violet)}
.status-stack{display:grid;gap:5px;justify-items:start}
.verification-label{font-size:.72rem;font-weight:700}
.verification-label.verified{color:var(--good)}
.verification-label.pending{color:var(--warn)}
.admin-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.admin-actions form{margin:0}
.mini-button{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.76rem;font-weight:700;text-decoration:none;cursor:pointer}
.mini-button:hover{background:#f3f8fa}
.mini-button.danger-soft{border-color:#e5b8b4;color:var(--bad);background:#fffafa}
.admin-form-card{max-width:670px}
.account-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 4px}
.account-summary div{padding:10px 12px;border:1px solid var(--border-soft);border-radius:10px;background:#f9fbfc}
.account-summary span{display:block;color:var(--muted);font-size:.72rem}
.account-summary strong{display:block;margin-top:2px;font-size:.88rem;color:var(--ink-2)}
@media(max-width:680px){.form-actions{flex-direction:column}.account-summary{grid-template-columns:1fr}.admin-heading .primary-button{width:100%}.auth-card{margin-top:3vh}}

/* IP-change login verification */
.security-note{margin-top:10px!important;padding:11px 12px;border:1px solid var(--border-soft);border-radius:10px;background:#f8fbfc}
.verification-code{font-size:1.55rem!important;font-weight:800!important;letter-spacing:.28em;text-align:center;font-variant-numeric:tabular-nums;color:var(--ink)}
.verification-footer{display:flex;align-items:center;justify-content:space-between;gap:14px}
.verification-footer form{margin:0}
.resend-button{color:var(--accent);font-weight:700}
.ip-value{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem}
.ip-date{display:block;margin-top:2px;color:var(--muted);font-size:.7rem}
@media(max-width:680px){.verification-footer{align-items:flex-start;flex-direction:column}}

/* ASCO direct API */
.api-heading{align-items:center}
.api-status-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;margin-bottom:14px}
.api-status-grid .detail-card{min-width:0}
.api-info-card p{color:var(--muted);margin:16px 0 0}
.api-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.api-flow span{padding:7px 10px;border:1px solid #bfe1db;background:var(--accent-light);border-radius:8px;font-size:.8rem;font-weight:700;color:var(--accent-text)}
.api-flow b{color:var(--muted-2)}
.api-search-card{margin-top:0}
.api-search-row{grid-template-columns:minmax(320px,1fr) auto auto}
.api-results{margin-bottom:18px}
.api-table{min-width:920px}
.api-error{margin-top:14px;padding:10px 12px;border-radius:9px;background:var(--bad-bg);color:var(--bad)}
.api-profile-header{margin-top:22px}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem;background:#f2f5f7;padding:2px 5px;border-radius:5px}
.detail-card form{margin:0}
@media(max-width:900px){.api-status-grid{grid-template-columns:1fr}.api-search-row{grid-template-columns:1fr auto}.api-search-row .secondary-button{grid-column:1/-1;justify-self:start}}
@media(max-width:680px){.api-search-row{grid-template-columns:1fr}.api-search-row .secondary-button{grid-column:auto;width:100%}.api-search-row .primary-button{width:100%}}

/* ASCO v6 specialization test import */
.api-test-import{margin:0 0 14px}
.test-import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.test-import-head h2{margin:4px 0 6px}
.test-import-head p{margin:0;color:var(--muted);max-width:900px}
.test-import-form{display:grid;grid-template-columns:minmax(260px,1fr) 190px auto;gap:12px;align-items:end;margin-top:18px}
.test-import-form label{display:block;color:var(--ink-2);font-size:.82rem;font-weight:700}
.test-import-form input{display:block;width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid #a9bec9;border-radius:var(--r-sm);background:#fff;color:var(--text);outline:none}
.test-import-form input:focus{border-color:var(--accent);box-shadow:var(--ring)}
.api-test-warning{margin:12px 0 0;padding:10px 12px;border:1px solid #ead9a4;border-radius:9px;background:var(--warn-bg);color:var(--warn);font-size:.82rem}
.recent-tests{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.78rem}
.recent-tests a{padding:4px 7px;border:1px solid var(--border);border-radius:7px;text-decoration:none;background:#f8fbfc;font-weight:700}
.test-import-results{margin-bottom:14px}
.test-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-bottom:1px solid var(--border)}
.test-stats div{padding:13px 15px;border-right:1px solid var(--border-soft)}
.test-stats div:last-child{border-right:0}
.test-stats span{display:block;color:var(--muted);font-size:.72rem;font-weight:700}
.test-stats strong{display:block;margin-top:2px;font-size:1.25rem;color:var(--ink-2)}
.test-table{min-width:1450px}
.test-spec-text{display:block;max-width:430px;line-height:1.55}
.test-table code{white-space:nowrap}
@media(max-width:1000px){.test-import-form{grid-template-columns:1fr 160px}.test-import-form .primary-button{grid-column:1/-1;justify-self:start}.test-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.test-import-head{flex-direction:column}.test-import-form{grid-template-columns:1fr}.test-import-form .primary-button{grid-column:auto;width:100%}.test-stats{grid-template-columns:1fr 1fr}.test-stats div{border-bottom:1px solid var(--border-soft)}}

/* ASCO API connection buttons */
.asco-auth-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 14px;
}

.asco-auth-actions form {
    margin: 0;
}

.asco-auth-actions .primary-button,
.asco-auth-actions .secondary-button {
    white-space: nowrap;
    width: auto;
}

@media (max-width: 760px) {
    .asco-auth-actions {
        align-items: stretch;
    }

    .asco-auth-actions form,
    .asco-auth-actions .primary-button,
    .asco-auth-actions .secondary-button {
        width: 100%;
    }
}
