/* Platform extension — load after style.css and learning.css.
   Warm paper, graphite and one clay accent; shell geometry stays with learning.css. */
:is([class^="dossier"], [class*=" dossier"],
    [class^="targeting"], [class*=" targeting"],
    [class^="staff"], [class*=" staff"],
    [class^="platform"], [class*=" platform"]) {
  --platform-ink: #292622;
  --platform-muted: #6d655d;
  --platform-line: #e4ded6;
  --platform-paper: #fffefa;
  --platform-soft: #f5f1eb;
  --platform-accent: #91482f;
  --platform-selected: #f5e8df;
  --ink: var(--platform-ink);
  --muted: var(--platform-muted);
  --line: var(--platform-line);
  --green: var(--platform-accent);
  --learning-blue: var(--platform-accent);
  --learning-accent: var(--platform-accent);
  min-inline-size: 0;
  color: var(--platform-ink);
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

/* Explicit containers avoid turning nested cards into page layouts. */
:is(.platform, .platform-shell, .platform-dashboard, .dossier, .dossier-shell,
    .targeting, .targeting-shell, .staff, .staff-shell) {
  display: grid;
  gap: 24px;
  margin-block: 24px;
  line-height: 1.85;
}
:is(.platform-header, .dossier-header, .targeting-header, .staff-header) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  block-size: auto;
  padding-block: 0 16px;
  border-block-end: 1px solid var(--platform-line);
}
:is(.platform-header, .dossier-header, .targeting-header, .staff-header) > * {
  min-inline-size: 0;
  max-inline-size: 100%;
}
:is(.platform-title, .dossier-title, .targeting-title, .staff-title) {
  margin: 0;
  font-size: clamp(25px, 2.7vw, 35px);
  line-height: 1.55;
  font-weight: 700;
}
:is(.platform-subtitle, .dossier-subtitle, .targeting-subtitle, .staff-subtitle,
    .platform-meta, .dossier-meta, .targeting-meta, .staff-meta) {
  color: var(--platform-muted);
  font-size: 14px;
  max-inline-size: 68ch;
}
:is(.platform-grid, .staff-grid, .targeting-grid, .dossier-grid) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 18px;
}
:is(.dossier-layout, .staff-layout, .targeting-layout) {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(0, 2fr);
  align-items: start;
  gap: 24px;
}
:is(.platform-card, .platform-panel, .dossier-card, .dossier-panel,
    .dossier-summary, .targeting-card, .targeting-panel, .staff-card, .staff-panel) {
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid var(--platform-line);
  border-radius: 22px;
  background: var(--platform-paper);
  box-shadow: 0 4px 20px rgb(55 40 25 / 3%);
}
:is(.platform-hero, .dossier-hero) {
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid var(--platform-line);
  border-radius: 24px;
  background: var(--platform-soft);
}
:is(.platform-stats, .dossier-stats, .staff-stats) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 145px), 1fr));
  gap: 12px;
}
:is(.platform-stat, .dossier-stat, .staff-stat) {
  padding: 18px;
  background: var(--platform-paper);
  border: 1px solid var(--platform-line);
  border-radius: 18px;
}
:is(.platform-stat, .dossier-stat, .staff-stat) strong {
  display: block;
  color: var(--platform-ink);
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
:is(.platform-stat, .dossier-stat, .staff-stat) span {
  color: var(--platform-muted);
  font-size: 13px;
}
:is(.platform-toolbar, .dossier-toolbar, .targeting-toolbar, .staff-toolbar,
    .platform-actions, .dossier-actions, .targeting-actions, .staff-actions,
    .targeting-filters, .staff-filters) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
:is(.platform-toolbar, .dossier-toolbar, .targeting-toolbar, .staff-toolbar,
    .targeting-filters, .staff-filters) > :is(input, select, label) {
  flex: 1 1 200px;
  inline-size: auto;
  min-inline-size: 0;
}
:is(.platform-tabs, .dossier-tabs, .staff-tabs, .targeting-tabs) {
  display: flex;
  gap: 6px;
  max-inline-size: 100%;
  overflow-x: auto;
  padding: 6px;
  border-radius: 15px;
  background: var(--platform-soft);
  scrollbar-width: thin;
  scroll-padding-inline: 6px;
}
:is(.platform-tabs, .dossier-tabs, .staff-tabs, .targeting-tabs) > * {
  flex: 0 0 auto;
}
:is(.dossier-avatar, .staff-avatar) {
  display: inline-grid;
  place-items: center;
  inline-size: 64px;
  block-size: 64px;
  flex: 0 0 64px;
  border-radius: 20px;
  background: var(--platform-selected);
  color: var(--platform-accent);
  font-size: 26px;
  overflow: hidden;
}
:is(.dossier-avatar, .staff-avatar) img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
:is(.dossier-details, .staff-details) {
  display: grid;
  grid-template-columns: minmax(90px, .7fr) minmax(0, 1.3fr);
  gap: 10px 18px;
  margin-block: 18px 0;
}
:is(.dossier-details, .staff-details) dt { color: var(--platform-muted); }
:is(.dossier-details, .staff-details) dd { margin: 0; }
:is(.dossier-timeline, .dossier-history, .targeting-list, .staff-list) {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(.dossier-entry, .dossier-event) {
  padding: 16px 20px;
  border-inline-start: 3px solid #c8ac98;
  border-radius: 10px;
  background: var(--platform-soft);
}
:is(.targeting-option, .targeting-student, .targeting-group, .staff-member) {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  min-block-size: 56px;
  padding: 14px 16px;
  border: 1px solid var(--platform-line);
  border-radius: 14px;
  background: var(--platform-paper);
}
:is(.targeting-option, .targeting-student, .targeting-group):has(input:checked),
.targeting-card[aria-selected="true"] {
  border-color: var(--platform-accent);
  background: var(--platform-selected);
}
:is(.targeting-option, .targeting-student, .targeting-group):has(input:disabled) {
  opacity: .6;
  cursor: not-allowed;
}
:is(.targeting-summary, .targeting-preview, .platform-note, .dossier-note) {
  padding: 16px 20px;
  border: 1px solid var(--platform-line);
  border-radius: 16px;
  background: var(--platform-soft);
}
:is(.platform-empty, .dossier-empty, .targeting-empty, .staff-empty) {
  padding: 36px 20px;
  border: 1px dashed #c9bdb0;
  border-radius: 18px;
  text-align: center;
  background: var(--platform-paper);
  color: var(--platform-muted);
}
:is(.platform-badge, .dossier-badge, .targeting-badge, .staff-badge, .staff-role,
    .platform-status, .dossier-status, .targeting-status, .staff-status) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-inline-size: 100%;
  padding: 4px 11px;
  border: 1px solid var(--platform-line);
  border-radius: 999px;
  background: var(--platform-soft);
  color: var(--platform-muted);
  font-size: 13px;
  line-height: 1.7;
  font-weight: 600;
}
/* Shared controls remain confined to the four module namespaces. */
:is([class^="dossier"], [class*=" dossier"], [class^="targeting"], [class*=" targeting"],
    [class^="staff"], [class*=" staff"], [class^="platform"], [class*=" platform"]) {
  & :is(h1, h2, h3) { color: var(--platform-ink); letter-spacing: normal; }
  & :is(.muted, .small) { color: var(--platform-muted); }
  & :is(button, .platform-button) {
    border: 1px solid var(--platform-line);
    background: var(--platform-soft);
    color: var(--platform-ink);
    box-shadow: none;
    white-space: normal;
  }
  & :is(button.primary, .platform-button.primary) {
    border-color: var(--platform-accent);
    background: var(--platform-accent);
    color: #fff;
  }
  & :is(button[aria-selected="true"], button[aria-pressed="true"]) {
    background: var(--platform-selected);
    border-color: #b88a72;
    color: #783b27;
  }
  & button.danger { background: #fbeee9; color: #9b3326; border-color: #e9c7bd; }
  & :is(input, select, textarea) { background: var(--platform-paper); border-color: #bdb2a6; }
  & :is(input, select, textarea):focus { border-color: var(--platform-accent); outline-color: #91482f55; }
  & :is(input[type="checkbox"], input[type="radio"], progress) { accent-color: var(--platform-accent); }
  & :is(a, summary) { color: var(--platform-accent); text-underline-offset: .2em; }
  & :is(.card, .stat):nth-child(n) { border-color: var(--platform-line); }
  & .stat:nth-child(n) strong { color: var(--platform-ink); }
  & :is(.pill, .tag) { background: var(--platform-soft); color: var(--platform-muted); }
  & :is(th, td) { border-color: var(--platform-line); text-align: start; }
  & th { background: var(--platform-soft); color: var(--platform-muted); }
  & td { background: var(--platform-paper); }
}
:is(.platform-table, .dossier-table, .targeting-table, .staff-table) {
  max-inline-size: 100%;
  overflow-x: auto;
  border: 1px solid var(--platform-line);
  border-radius: 16px;
  scrollbar-width: thin;
}
:is(.platform-table, .dossier-table, .targeting-table, .staff-table) table {
  min-inline-size: 560px;
}
/* Global accessibility only: no sidebar widths, positioning or main margins. */
:where(button, input, select, textarea, a, summary, [tabindex]):focus-visible {
  outline: 3px solid #91482f;
  outline-offset: 3px;
}
button:focus-visible, a:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #91482f;
  outline-offset: 3px;
}
button, select, summary, input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  min-block-size: 44px;
}
label:has(> input:is([type="checkbox"], [type="radio"])) {
  min-block-size: 44px;
  padding-block: 8px;
  cursor: pointer;
}
:where(button, input, select, textarea, summary, [tabindex]) { scroll-margin-block: 150px 24px; }
@media (hover: hover) {
  :is(.platform, .platform-shell, .platform-dashboard, .dossier, .dossier-shell,
      .targeting, .targeting-shell, .staff, .staff-shell) button:hover:not(:disabled) {
    background: #eae2d8;
    filter: none;
  }
  :is(.platform, .platform-shell, .platform-dashboard, .dossier, .dossier-shell,
      .targeting, .targeting-shell, .staff, .staff-shell) button.primary:hover:not(:disabled) {
    background: #753923;
  }
}
@media (max-width: 1100px) {
  :is(.dossier-layout, .staff-layout, .targeting-layout) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  :is(.platform, .platform-shell, .platform-dashboard, .dossier, .dossier-shell,
      .targeting, .targeting-shell, .staff, .staff-shell) { gap: 18px; margin-block: 18px; }
  :is(.platform-grid, .staff-grid, .targeting-grid, .dossier-grid) { grid-template-columns: minmax(0, 1fr); }
  :is(.platform-actions, .dossier-actions, .targeting-actions, .staff-actions) > button { flex: 1 1 140px; }
  :is(.platform-header, .dossier-header, .targeting-header, .staff-header) { gap: 12px; }
  #content .row > * { min-inline-size: 0; max-inline-size: 100%; }
  main > header { flex-wrap: wrap; height: auto; min-height: 55px; padding-block: 10px; }
  main > header > * { min-inline-size: 0; overflow-wrap: anywhere; }
  body > aside nav { padding-inline: 4px; padding-block: 4px 6px; }
  #content :is(input, select, textarea) { font-size: 16px; }
}
@media (max-width: 380px) {
  :is(.dossier-details, .staff-details) { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  :is(.dossier-details, .staff-details) dd { margin-block-end: 12px; }
  :is(.platform-stats, .dossier-stats, .staff-stats) { grid-template-columns: minmax(0, 1fr); }
}
@media (forced-colors: active) {
  :is(.targeting-option, .targeting-student, .targeting-group):has(input:checked),
  .targeting-card[aria-selected="true"] { outline: 2px solid Highlight; }
}
.platform-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#edf5ff,#f5f2ff)}
.platform-summary-card{text-align:start;display:grid;gap:10px;background:#fff;color:#233046}
.platform-summary-card strong{font-size:2rem;color:#2b5fd9}.platform-summary-card span{font-size:1rem}
.platform-student-row{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:start;background:#f6f8fc;border:1px solid #e5e9f1;margin-block:8px;padding:14px;color:#24334b}
.platform-student-row small{display:block;color:#59667a;margin-top:5px}.platform-dashboard>section{margin-block:24px}
@media(max-width:620px){.platform-hero{align-items:stretch;flex-direction:column}.platform-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-summary-card{padding:16px}.platform-summary-card span{font-size:.9rem}}
.app-navigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 20px;padding:12px 14px;border:1px solid #e4e9f2;border-radius:18px;background:#fff;position:relative;z-index:2}.app-navigation button{min-height:44px;padding:9px 16px}.app-navigation .signout{margin-inline-start:auto;color:#ac2435;background:#fff4f4;border-color:#f2d4da}.app-navigation [hidden]{display:none!important}@media(max-width:540px){.app-navigation{padding:10px;gap:6px}.app-navigation button{font-size:14px;padding:8px 12px}}
