/* StartHDS v1 app bundle - dependency-free app, mobile, operations, and progressive UI primitives.
   Load /v1/css/starthds-core.css first. This file intentionally does not define
   root-level tokens, resets, core layout primitives, marketing families, or knowledge families. */

/* StartHDS app/auth/admin compatibility section. Dashboard primitives live in starthds-dashboard.css. */
.hds-auth-shell { min-height: min(100vh, 52rem); display: grid; grid-template-columns: minmax(0, .9fr) minmax(min(26rem, 100%), 1.1fr); gap: var(--hds-space-8, 2rem); align-items: stretch; }
.hds-auth-panel { display: grid; align-content: center; gap: var(--hds-space-4, 1rem); background: linear-gradient(150deg, var(--hds-color-primary, #2457d6), var(--hds-color-accent, #0ea5e9)); color: var(--hds-color-primary-contrast, #fff); border-radius: var(--hds-radius-large, 1.25rem); padding: clamp(1.5rem, 5vw, 3rem); }
.hds-auth-card { align-self: center; background: var(--hds-color-surface, #fff); border: 1px solid var(--hds-color-border, #d7dde8); border-radius: var(--hds-radius-card, 1rem); box-shadow: var(--hds-shadow-large, 0 1.5rem 4rem rgb(15 23 42 / .16)); padding: clamp(1.25rem, 4vw, 2.5rem); }

.hds-admin-shell { display: grid; grid-template-columns: minmax(14rem, .28fr) minmax(0, 1fr); gap: var(--hds-space-6, 1.5rem); align-items: start; }
.hds-admin-sidebar { position: sticky; top: 5rem; display: grid; gap: var(--hds-space-3, .75rem); border: 1px solid var(--hds-color-border, #d7dde8); border-radius: var(--hds-radius-card, 1rem); background: var(--hds-color-surface, #fff); padding: var(--hds-space-4, 1rem); box-shadow: var(--hds-shadow-panel, 0 .5rem 1.5rem rgb(15 23 42 / .08)); }
.hds-admin-sidebar { background: linear-gradient(180deg, var(--hds-color-heading, #0f172a), color-mix(in srgb, var(--hds-color-heading, #0f172a) 72%, var(--hds-color-primary, #2457d6))); color: #fff; border-color: transparent; }
.hds-admin-main { min-width: 0; display: grid; gap: var(--hds-space-6, 1.5rem); }
.hds-admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: var(--hds-space-4, 1rem); }

/* Generic app and mobile layout primitives: dependency-free, token-backed, and product-neutral. */
.hds-app-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: var(--hds-app-gap, 1.25rem);
  background: var(--hds-color-background, #f8fafc);
}
.hds-app-shell:has(> .hds-app-sidebar) { grid-template-columns: minmax(14rem, var(--hds-app-sidebar-width, 18rem)) minmax(0, 1fr); }
.hds-app-main { min-width: 0; display: grid; align-content: start; gap: var(--hds-app-gap, 1.25rem); padding: var(--hds-app-gap, 1.25rem); }
.hds-app-header { min-width: 0; position: sticky; top: 0; z-index: var(--hds-z-appbar, 250); border-bottom: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8)); background: var(--hds-app-chrome-background, var(--hds-color-surface, #fff)); }
.hds-app-sidebar,
.hds-app-aside,
.hds-app-rail {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: var(--hds-space-3, .75rem);
  border: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8));
  background: var(--hds-app-chrome-background, var(--hds-color-surface, #fff));
  box-shadow: var(--hds-shadow-panel, 0 .5rem 1.5rem rgb(15 23 42 / .08));
}
.hds-app-sidebar { position: sticky; top: var(--hds-app-gap, 1.25rem); max-height: calc(100dvh - (var(--hds-app-gap, 1.25rem) * 2)); overflow: auto; border-radius: var(--hds-radius-card, 1rem); padding: var(--hds-space-4, 1rem); }
.hds-app-aside { width: min(100%, var(--hds-app-aside-width, 20rem)); border-radius: var(--hds-radius-card, 1rem); padding: var(--hds-space-4, 1rem); }
.hds-app-rail { width: min(100%, calc(var(--hds-app-sidebar-width, 18rem) * .75)); border-radius: var(--hds-radius-card, 1rem); padding: var(--hds-space-3, .75rem); }
.hds-app-content { width: min(100%, var(--hds-content-max-width, 64rem)); min-width: 0; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--hds-space-5, 1.25rem); }
.hds-app-content > * { min-width: 0; max-width: 100%; }
.hds-app-content--reading { max-width: var(--hds-reading-measure, 68ch); }
.hds-app-content--wide { width: min(100%, var(--hds-content-wide-width, 84rem)); }

.hds-mobile-page {
  min-height: 100vh;
  min-height: 100dvh;
  max-width: 100%;
  overflow-x: clip;
  width: min(100%, var(--hds-mobile-page-max-width, 30rem));
  margin-inline: auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: var(--hds-color-background, #f8fafc);
}
.hds-mobile-page__header,
.hds-mobile-page__footer,
.hds-appbar,
.hds-mobile-tabbar,
.hds-sticky-action-bar {
  background: var(--hds-app-chrome-background, var(--hds-color-surface, #fff));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.hds-mobile-page__header { position: sticky; top: 0; z-index: var(--hds-z-appbar, 250); padding-top: var(--hds-safe-area-top, 0px); border-bottom: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8)); }
.hds-mobile-page__body { min-width: 0; max-width: 100%; overflow-x: clip; overflow-wrap: anywhere; padding: var(--hds-space-4, 1rem) max(var(--hds-space-4, 1rem), var(--hds-safe-area-right, 0px)) var(--hds-space-4, 1rem) max(var(--hds-space-4, 1rem), var(--hds-safe-area-left, 0px)); }
.hds-mobile-page__footer { position: sticky; bottom: 0; z-index: var(--hds-z-sticky, 200); padding-bottom: var(--hds-safe-area-bottom, 0px); border-top: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8)); }

.hds-sticky-action-bar {
  position: sticky;
  bottom: 0;
  z-index: var(--hds-z-sticky, 200);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--hds-space-3, .75rem);
  border-top: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8));
  padding: var(--hds-space-3, .75rem) max(var(--hds-space-4, 1rem), var(--hds-safe-area-right, 0px)) max(var(--hds-space-3, .75rem), var(--hds-safe-area-bottom, 0px)) max(var(--hds-space-4, 1rem), var(--hds-safe-area-left, 0px));
  box-shadow: 0 -.75rem 1.5rem rgb(15 23 42 / .08);
}

.hds-appbar {
  min-width: 0;
  max-width: 100%;
  min-height: calc(var(--hds-app-header-height, 4rem) * var(--hds-density-scale, 1));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hds-space-3, .75rem);
  padding: var(--hds-space-2, .5rem) max(var(--hds-space-4, 1rem), var(--hds-safe-area-right, 0px)) var(--hds-space-2, .5rem) max(var(--hds-space-4, 1rem), var(--hds-safe-area-left, 0px));
}
.hds-appbar__title { min-width: 0; color: var(--hds-color-heading, #0f172a); font-size: var(--hds-font-size-lg, 1.125rem); font-weight: 900; line-height: var(--hds-line-height-tight, 1.1); }
.hds-appbar__title > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hds-appbar__actions { display: flex; flex: 0 0 auto; align-items: center; gap: var(--hds-space-2, .5rem); }
.hds-icon-button {
  width: var(--hds-icon-button-size, 2.75rem);
  min-width: var(--hds-touch-target-min, 2.75rem);
  min-height: var(--hds-touch-target-min, 2.75rem);
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--hds-color-border, #d7dde8);
  border-radius: var(--hds-radius-pill, 999rem);
  background: var(--hds-color-surface, #fff);
  color: var(--hds-color-text, #162033);
  box-shadow: var(--hds-shadow-small, 0 .25rem .75rem rgb(15 23 42 / .07));
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}
.hds-icon-button:hover { border-color: var(--hds-color-primary, #2457d6); color: var(--hds-color-primary, #2457d6); text-decoration: none; }

.hds-mobile-tabbar {
  min-height: calc(var(--hds-mobile-tabbar-height, 4.75rem) + var(--hds-safe-area-bottom, 0px));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(3.5rem, 1fr));
  align-items: stretch;
  gap: var(--hds-space-1, .25rem);
  border-top: 1px solid var(--hds-app-chrome-border, var(--hds-color-border, #d7dde8));
  padding: var(--hds-space-2, .5rem) max(var(--hds-space-3, .75rem), var(--hds-safe-area-right, 0px)) max(var(--hds-space-2, .5rem), var(--hds-safe-area-bottom, 0px)) max(var(--hds-space-3, .75rem), var(--hds-safe-area-left, 0px));
  box-shadow: 0 -.5rem 1.25rem rgb(15 23 42 / .08);
}
.hds-mobile-tabbar__item {
  position: relative;
  min-height: var(--hds-touch-target-min, 2.75rem);
  display: grid;
  place-items: center;
  gap: .1rem;
  border-radius: var(--hds-radius-medium, .75rem);
  color: var(--hds-color-text-muted, #64748b);
  font-size: var(--hds-font-size-xs, .75rem);
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
}
.hds-mobile-tabbar__item:hover,
.hds-mobile-tabbar__item:focus-visible,
.hds-mobile-tabbar__item[aria-current="page"] { background: var(--hds-color-primary-soft, #e8efff); color: var(--hds-color-primary, #2457d6); text-decoration: none; }
.hds-mobile-tabbar__item--primary { background: var(--hds-color-primary, #2457d6); color: var(--hds-color-primary-contrast, #fff); box-shadow: var(--hds-shadow-small, 0 .25rem .75rem rgb(15 23 42 / .07)); }
.hds-mobile-tabbar__item--primary:hover,
.hds-mobile-tabbar__item--primary:focus-visible { background: var(--hds-color-primary-hover, #1d45ad); color: var(--hds-color-primary-contrast, #fff); }
.hds-mobile-tabbar__badge {
  position: absolute;
  top: .25rem;
  right: .55rem;
  min-width: 1.25rem;
  min-height: 1.25rem;
  display: inline-grid;
  place-items: center;
  border: 2px solid var(--hds-app-chrome-background, #fff);
  border-radius: var(--hds-radius-pill, 999rem);
  background: var(--hds-color-danger, #dc2626);
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1;
  padding-inline: .25rem;
}
.hds-mobile-tabbar-spacer { min-height: calc(var(--hds-mobile-tabbar-height, 4.75rem) + var(--hds-safe-area-bottom, 0px)); }

.hds-status-pill { display: inline-flex; width: max-content; align-items: center; gap: .35rem; border-radius: var(--hds-radius-pill, 999rem); border: 1px solid var(--hds-color-border, #d7dde8); padding: .2rem .55rem; font-size: var(--hds-font-size-xs, .75rem); font-weight: 850; }
.hds-status-pill--success { background: var(--hds-color-success-soft, #dcfce7); color: var(--hds-color-success, #15803d); }
.hds-status-pill--warning { background: var(--hds-color-warning-soft, #fef3c7); color: var(--hds-color-warning, #b45309); }
.hds-status-pill--danger { background: var(--hds-color-danger-soft, #fee2e2); color: var(--hds-color-danger, #dc2626); }


/* Progressive interaction, disclosure, sheet, menu, flow, upload, and save-status primitives. */
.hds-disclosure{border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff)}.hds-disclosure--card{box-shadow:var(--hds-shadow-panel,0 .5rem 1.5rem rgb(15 23 42/.08))}.hds-disclosure--compact{border-radius:var(--hds-radius-medium,.75rem)}.hds-disclosure__summary{min-height:var(--hds-touch-target-min,2.75rem);display:flex;align-items:center;justify-content:space-between;gap:var(--hds-space-3,.75rem);width:100%;border:0;background:transparent;color:var(--hds-color-heading,#0f172a);padding:var(--hds-space-4,1rem);font:inherit;font-weight:900;text-align:left;cursor:pointer}.hds-disclosure__summary::after{content:"";width:.65rem;height:.65rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease)}.hds-disclosure[open]>.hds-disclosure__summary::after,.hds-disclosure__summary[aria-expanded=true]::after{transform:rotate(-135deg)}.hds-disclosure__content{border-top:1px solid var(--hds-color-border,#d7dde8);padding:var(--hds-space-4,1rem)}.hds-disclosure--compact .hds-disclosure__summary,.hds-disclosure--compact .hds-disclosure__content{padding:var(--hds-space-3,.75rem)}.hds-disclosure__content[hidden]{display:none!important}
.hds-sheet{position:fixed;inset:0;z-index:var(--hds-z-sheet,700);display:grid;pointer-events:none}.hds-sheet[hidden]{display:none!important}.hds-sheet.is-open{pointer-events:auto}.hds-sheet__backdrop{position:absolute;inset:0;border:0;background:var(--hds-backdrop-color,rgb(15 23 42/.44));opacity:0;transition:opacity var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease);cursor:pointer}.hds-sheet.is-open .hds-sheet__backdrop{opacity:1}.hds-sheet__panel{position:relative;z-index:1;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:var(--hds-space-3,.75rem);width:min(100%,var(--hds-sheet-max-width,36rem));max-height:calc(100dvh - var(--hds-safe-area-top,0px));overflow:auto;background:var(--hds-sheet-background,var(--hds-color-surface,#fff));box-shadow:var(--hds-shadow-overlay,0 1.5rem 5rem rgb(15 23 42/.22));padding:var(--hds-space-4,1rem);transform:translateY(1rem);transition:transform var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease)}.hds-sheet.is-open .hds-sheet__panel{transform:translateY(0)}.hds-sheet__handle{justify-self:center;width:3rem;height:.32rem;border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-border-strong,#aeb9ca)}.hds-sheet__header,.hds-sheet__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--hds-space-3,.75rem)}.hds-sheet__header{border-bottom:1px solid var(--hds-color-border,#d7dde8);padding-bottom:var(--hds-space-3,.75rem)}.hds-sheet__footer{border-top:1px solid var(--hds-color-border,#d7dde8);padding-top:var(--hds-space-3,.75rem);padding-bottom:max(var(--hds-space-2,.5rem),var(--hds-safe-area-bottom,0px))}.hds-sheet__body{min-height:0;overflow:auto}.hds-sheet--bottom{align-items:end}.hds-sheet--bottom .hds-sheet__panel{justify-self:center;border-radius:var(--hds-sheet-radius,1.5rem) var(--hds-sheet-radius,1.5rem) 0 0}.hds-sheet--side{justify-items:end}.hds-sheet--side .hds-sheet__panel{height:100dvh;max-height:100dvh;border-radius:var(--hds-sheet-radius,1.5rem) 0 0 var(--hds-sheet-radius,1.5rem);transform:translateX(1rem)}.hds-sheet--side.is-open .hds-sheet__panel{transform:translateX(0)}.hds-sheet-lock{overflow:hidden}
.hds-dialog{position:fixed;inset:0;z-index:var(--hds-z-modal,1000);display:grid;place-items:center;padding:max(var(--hds-space-4,1rem),var(--hds-safe-area-top,0px)) max(var(--hds-space-4,1rem),var(--hds-safe-area-right,0px)) max(var(--hds-space-4,1rem),var(--hds-safe-area-bottom,0px)) max(var(--hds-space-4,1rem),var(--hds-safe-area-left,0px));pointer-events:none}.hds-dialog[hidden]{display:none!important}.hds-dialog.is-open{pointer-events:auto}.hds-dialog__backdrop{position:absolute;inset:0;border:0;background:var(--hds-backdrop-color,rgb(15 23 42/.52));opacity:0;transition:opacity var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease);cursor:pointer}.hds-dialog.is-open .hds-dialog__backdrop{opacity:1}.hds-dialog__panel{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--hds-space-4,1rem);width:min(100%,var(--hds-dialog-max-width,42rem));max-height:min(88dvh,var(--hds-dialog-max-height,54rem));overflow:auto;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-dialog-radius,var(--hds-radius-large,1.25rem));background:var(--hds-dialog-background,var(--hds-color-surface,#fff));color:var(--hds-color-text,#162033);box-shadow:var(--hds-shadow-overlay,0 1.5rem 5rem rgb(15 23 42/.22));padding:var(--hds-space-5,1.25rem);transform:translateY(.5rem) scale(.98);transition:opacity var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease),transform var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease);opacity:0}.hds-dialog.is-open .hds-dialog__panel{opacity:1;transform:translateY(0) scale(1)}.hds-dialog__header,.hds-dialog__footer{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--hds-space-3,.75rem)}.hds-dialog__header{border-bottom:1px solid var(--hds-color-border,#d7dde8);padding-bottom:var(--hds-space-3,.75rem)}.hds-dialog__body{min-height:0;overflow:auto}.hds-dialog__footer{align-items:center;justify-content:flex-end;border-top:1px solid var(--hds-color-border,#d7dde8);padding-top:var(--hds-space-3,.75rem)}.hds-dialog--wide .hds-dialog__panel{width:min(100%,var(--hds-dialog-wide-max-width,72rem))}.hds-dialog-lock{overflow:hidden}
.hds-menu{position:relative;display:inline-block}.hds-menu__trigger{min-height:var(--hds-touch-target-min,2.75rem);display:inline-flex;align-items:center;justify-content:center;gap:var(--hds-space-2,.5rem);border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-button,999rem);background:var(--hds-color-surface,#fff);color:var(--hds-color-text,#162033);padding:.55rem var(--hds-space-4,1rem);font:inherit;font-weight:850;cursor:pointer}.hds-menu__content{position:absolute;right:0;top:calc(100% + var(--hds-space-2,.5rem));z-index:var(--hds-z-dropdown,300);min-width:min(16rem,calc(100vw - 2rem));display:grid;gap:.2rem;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff);box-shadow:var(--hds-shadow-overlay,0 1.5rem 5rem rgb(15 23 42/.22));padding:var(--hds-space-2,.5rem)}.hds-menu__content[hidden]{display:none!important}.hds-menu__item{min-height:2.5rem;display:flex;align-items:center;gap:var(--hds-space-2,.5rem);width:100%;border:0;border-radius:var(--hds-radius-medium,.75rem);background:transparent;color:var(--hds-color-text,#162033);padding:.55rem .75rem;text-align:left;text-decoration:none;font:inherit;font-weight:750;cursor:pointer}.hds-menu__item:hover,.hds-menu__item:focus-visible{background:var(--hds-color-primary-soft,#e8efff);color:var(--hds-color-primary,#2457d6);text-decoration:none}.hds-menu__separator{height:1px;margin:.25rem 0;border:0;background:var(--hds-color-border,#d7dde8)}
.hds-flow{display:grid;gap:var(--hds-space-5,1.25rem);border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff);box-shadow:var(--hds-shadow-panel,0 .5rem 1.5rem rgb(15 23 42/.08));padding:clamp(1rem,3vw,1.5rem)}.hds-flow__header,.hds-flow__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--hds-space-3,.75rem)}.hds-flow__steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(9rem,100%),1fr));gap:var(--hds-space-2,.5rem);margin:0;padding:0;list-style:none}.hds-flow__step{display:flex;align-items:center;gap:var(--hds-space-2,.5rem);border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface-muted,#f1f5f9);padding:.45rem .75rem;color:var(--hds-color-text-muted,#64748b);font-size:var(--hds-font-size-sm,.875rem);font-weight:850}.hds-flow__step[aria-current=step],.hds-flow__step.is-active{border-color:var(--hds-color-primary,#2457d6);background:var(--hds-color-primary-soft,#e8efff);color:var(--hds-color-primary,#2457d6)}.hds-flow__body{display:grid;gap:var(--hds-space-4,1rem)}.hds-flow-progress{height:.55rem;overflow:hidden;border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface-muted,#f1f5f9)}.hds-flow-progress::before{content:"";display:block;width:var(--hds-flow-progress-value,33%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--hds-color-primary,#2457d6),var(--hds-color-accent,#0ea5e9));transition:width var(--hds-transition-duration,160ms) var(--hds-transition-easing,ease)}
.hds-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:var(--hds-space-3,.75rem)}.hds-choice-card{display:grid;gap:var(--hds-space-2,.5rem);border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff);color:var(--hds-color-text,#162033);padding:var(--hds-space-4,1rem);text-align:left;text-decoration:none;cursor:pointer}.hds-choice-card:hover,.hds-choice-card:focus-visible,.hds-choice-card--selected,.hds-choice-card[aria-pressed=true],.hds-choice-card[aria-checked=true]{border-color:var(--hds-color-primary,#2457d6);box-shadow:0 0 0 var(--hds-focus-ring-width,3px) color-mix(in srgb,var(--hds-focus-ring-color,#7aa2ff) 28%,transparent)}.hds-choice-card__title{color:var(--hds-color-heading,#0f172a);font-weight:900}.hds-choice-card__description{color:var(--hds-color-text-muted,#64748b);font-size:var(--hds-font-size-sm,.875rem)}
.hds-upload{display:grid;gap:var(--hds-space-3,.75rem)}.hds-upload__dropzone{display:grid;place-items:center;gap:var(--hds-space-2,.5rem);min-height:9rem;border:2px dashed var(--hds-color-border-strong,#aeb9ca);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface-muted,#f1f5f9);color:var(--hds-color-text-muted,#64748b);padding:var(--hds-space-5,1.25rem);text-align:center;cursor:pointer}.hds-upload__dropzone.is-dragover,.hds-upload__dropzone:focus-within{border-color:var(--hds-color-primary,#2457d6);background:var(--hds-color-primary-soft,#e8efff);color:var(--hds-color-primary,#2457d6)}.hds-upload__preview{display:grid;gap:var(--hds-space-2,.5rem);margin:0;padding:0;list-style:none}.hds-upload__item{display:flex;align-items:center;justify-content:space-between;gap:var(--hds-space-3,.75rem);border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-medium,.75rem);background:var(--hds-color-surface,#fff);padding:var(--hds-space-3,.75rem);font-size:var(--hds-font-size-sm,.875rem);font-weight:750}.hds-upload__progress{height:.45rem;min-width:7rem;overflow:hidden;border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface-muted,#f1f5f9)}.hds-upload__progress::before{content:"";display:block;width:var(--hds-upload-progress-value,0%);height:100%;background:var(--hds-color-primary,#2457d6)}.hds-upload__error{border:1px solid var(--hds-status-danger-border,#fca5a5);border-radius:var(--hds-radius-medium,.75rem);background:var(--hds-status-danger-surface,#fee2e2);color:var(--hds-status-danger-text,#dc2626);padding:var(--hds-space-3,.75rem);font-weight:800}.hds-upload__error[hidden]{display:none!important}
.hds-save-status{display:inline-flex;align-items:center;gap:var(--hds-space-2,.5rem);width:max-content;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface-muted,#f1f5f9);color:var(--hds-color-text-muted,#64748b);padding:.35rem .75rem;font-size:var(--hds-font-size-sm,.875rem);font-weight:900}.hds-save-status::before{content:"";width:.6rem;height:.6rem;border-radius:var(--hds-radius-pill,999rem);background:currentColor}.hds-save-status--saving{border-color:var(--hds-status-info-border,#7dd3fc);background:var(--hds-status-info-surface,#e0f2fe);color:var(--hds-status-info-text,#0369a1)}.hds-save-status--saved{border-color:var(--hds-status-success-border,#86efac);background:var(--hds-status-success-surface,#dcfce7);color:var(--hds-status-success-text,#15803d)}.hds-save-status--error{border-color:var(--hds-status-danger-border,#fca5a5);background:var(--hds-status-danger-surface,#fee2e2);color:var(--hds-status-danger-text,#dc2626)}.hds-save-status--recovered{border-color:var(--hds-status-warning-border,#fcd34d);background:var(--hds-status-warning-surface,#fef3c7);color:var(--hds-status-warning-text,#b45309)}


/* Operations, notification, trust/safety/admin, attachment, and lightbox primitives. */
.hds-task-list,.hds-notification-list,.hds-admin-list,.hds-attachment-list{display:grid;gap:var(--hds-space-3,.75rem);margin:0;padding:0;list-style:none}
.hds-task-card,.hds-notification-item,.hds-admin-list-item,.hds-moderation-item,.hds-attachment-item{min-width:0;max-width:100%;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff);box-shadow:var(--hds-shadow-panel,0 .5rem 1.5rem rgb(15 23 42/.08))}
.hds-task-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--hds-space-3,.75rem) var(--hds-space-4,1rem);align-items:start;padding:clamp(1rem,3vw,1.35rem);border-left:.35rem solid var(--hds-color-task,#2457d6)}
.hds-task-card__title{margin:0;color:var(--hds-color-heading,#0f172a);font-size:var(--hds-font-size-lg,1.125rem);font-weight:900;line-height:var(--hds-line-height-tight,1.1)}
.hds-task-card__description{grid-column:1/-1;margin:0;color:var(--hds-color-text-muted,#64748b)}.hds-task-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hds-space-2,.5rem);color:var(--hds-color-text-muted,#64748b);font-size:var(--hds-font-size-sm,.875rem);font-weight:750}
.hds-task-card__action{justify-self:end;min-height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface,#fff);color:var(--hds-color-primary,#2457d6);padding:.45rem .85rem;font-weight:850;text-decoration:none;cursor:pointer}.hds-task-card__action:hover,.hds-task-card__action:focus-visible{border-color:var(--hds-color-primary,#2457d6);background:var(--hds-color-primary-soft,#e8efff);text-decoration:none}
.hds-task-card--urgent{border-left-color:var(--hds-color-task-urgent,#dc2626);background:color-mix(in srgb,var(--hds-color-danger-soft,#fee2e2) 22%,var(--hds-color-surface,#fff))}.hds-task-card--complete{border-left-color:var(--hds-color-success,#15803d);background:color-mix(in srgb,var(--hds-color-success-soft,#dcfce7) 26%,var(--hds-color-surface,#fff))}.hds-task-card--complete .hds-task-card__title{text-decoration:line-through;text-decoration-thickness:.08em;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
.hds-notification-item{position:relative;display:grid;gap:var(--hds-space-2,.5rem);padding:var(--hds-space-4,1rem)}.hds-notification-item--unread{border-color:color-mix(in srgb,var(--hds-color-notification,#0369a1) 38%,var(--hds-color-border,#d7dde8));background:color-mix(in srgb,var(--hds-color-notification-soft,#e0f2fe) 34%,var(--hds-color-surface,#fff))}.hds-notification-item--unread::before{content:"";position:absolute;top:var(--hds-space-4,1rem);right:var(--hds-space-4,1rem);width:.65rem;height:.65rem;border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-notification,#0369a1)}
.hds-notification-badge{min-width:1.65rem;min-height:1.65rem;display:inline-grid;place-items:center;border:2px solid var(--hds-color-surface,#fff);border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-notification,#0369a1);color:var(--hds-color-primary-contrast,#fff);padding-inline:.45rem;font-size:var(--hds-font-size-xs,.75rem);font-weight:950;line-height:1}
.hds-trust-badge{max-width:100%;display:inline-flex;align-items:center;gap:var(--hds-space-2,.5rem);width:max-content;min-height:2rem;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-pill,999rem);background:var(--hds-color-surface-muted,#f1f5f9);color:var(--hds-color-text-muted,#64748b);padding:.3rem .7rem;font-size:var(--hds-font-size-sm,.875rem);font-weight:900;line-height:1.2}.hds-trust-badge::before{content:"";width:.55rem;height:.55rem;border-radius:var(--hds-radius-pill,999rem);background:currentColor}.hds-trust-badge--verified{border-color:var(--hds-color-verified-border,#93c5fd);background:var(--hds-color-verified-soft,#dbeafe);color:var(--hds-color-verified,#2563eb)}.hds-trust-badge--staff{border-color:color-mix(in srgb,var(--hds-color-admin,#334155) 38%,var(--hds-color-border,#d7dde8));background:var(--hds-color-admin-soft,#e2e8f0);color:var(--hds-color-admin,#334155)}.hds-trust-badge--expert{border-color:color-mix(in srgb,var(--hds-color-accent,#0ea5e9) 38%,var(--hds-color-border,#d7dde8));background:var(--hds-color-accent-soft,#e0f2fe);color:var(--hds-color-accent,#0ea5e9)}.hds-trust-badge--trusted{border-color:var(--hds-color-trust-border,#5eead4);background:var(--hds-color-trust-soft,#ccfbf1);color:var(--hds-color-trust,#0f766e)}
.hds-notice{min-width:0;max-width:100%;overflow-wrap:anywhere;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--hds-space-3,.75rem);align-items:start;border:1px solid var(--hds-status-info-border,#7dd3fc);border-radius:var(--hds-radius-card,1rem);background:var(--hds-status-info-surface,#e0f2fe);color:var(--hds-status-info-text,#0369a1);padding:var(--hds-space-4,1rem);font-weight:750}.hds-notice::before{content:"";width:.85rem;height:.85rem;margin-top:.35rem;border-radius:var(--hds-radius-pill,999rem);background:currentColor}.hds-notice--info{border-color:var(--hds-status-info-border,#7dd3fc);background:var(--hds-status-info-surface,#e0f2fe);color:var(--hds-status-info-text,#0369a1)}.hds-notice--success{border-color:var(--hds-status-success-border,#86efac);background:var(--hds-status-success-surface,#dcfce7);color:var(--hds-status-success-text,#15803d)}.hds-notice--warning{border-color:var(--hds-status-warning-border,#fcd34d);background:var(--hds-status-warning-surface,#fef3c7);color:var(--hds-status-warning-text,#b45309)}.hds-notice--danger{border-color:var(--hds-status-danger-border,#fca5a5);background:var(--hds-status-danger-surface,#fee2e2);color:var(--hds-status-danger-text,#dc2626)}.hds-notice--trust{border-color:var(--hds-color-trust-border,#5eead4);background:var(--hds-color-trust-soft,#ccfbf1);color:var(--hds-color-trust,#0f766e)}
.hds-table-wrap{min-width:0;max-width:100%;width:100%;overflow-x:auto;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-card,1rem);background:var(--hds-color-surface,#fff);box-shadow:var(--hds-shadow-small,0 .25rem .75rem rgb(15 23 42/.07))}.hds-table{width:100%;min-width:38rem;border-collapse:collapse;background:var(--hds-color-surface,#fff)}.hds-table :where(th,td){border-bottom:1px solid var(--hds-color-border,#d7dde8);padding:.85rem 1rem;text-align:left;vertical-align:top}.hds-table :where(th){background:var(--hds-color-surface-muted,#f1f5f9);color:var(--hds-color-heading,#0f172a);font-size:var(--hds-font-size-sm,.875rem);font-weight:900}.hds-table :where(tbody tr:last-child td){border-bottom:0}
.hds-admin-list-item,.hds-moderation-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--hds-space-3,.75rem);align-items:start;padding:var(--hds-space-4,1rem)}.hds-admin-list-item__content,.hds-moderation-item__content{display:flex;align-items:flex-start;gap:var(--hds-space-3,.75rem);min-width:0}.hds-admin-list-item__content>.hds-icon,.hds-moderation-item__content>.hds-icon{margin-block-start:.15rem;color:var(--hds-color-primary,#2457d6)}
.hds-moderation-item{border-left:.35rem solid var(--hds-color-moderation,#b45309);background:color-mix(in srgb,var(--hds-color-moderation-soft,#fef3c7) 28%,var(--hds-color-surface,#fff))}.hds-bulk-action-bar{position:sticky;bottom:max(var(--hds-space-3,.75rem),var(--hds-safe-area-bottom,0px));z-index:var(--hds-z-sticky,200);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--hds-space-3,.75rem);border:1px solid color-mix(in srgb,var(--hds-color-primary,#2457d6) 26%,var(--hds-color-border,#d7dde8));border-radius:var(--hds-radius-card,1rem);background:var(--hds-app-chrome-background,var(--hds-color-surface,#fff));box-shadow:var(--hds-shadow-card,0 1rem 2rem rgb(15 23 42/.10));padding:var(--hds-space-3,.75rem) var(--hds-space-4,1rem);backdrop-filter:blur(16px) saturate(1.1)}
.hds-attachment-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--hds-space-3,.75rem);align-items:center;padding:var(--hds-space-3,.75rem)}.hds-attachment-preview{width:4rem;height:4rem;display:grid;place-items:center;overflow:hidden;border:1px solid var(--hds-color-border,#d7dde8);border-radius:var(--hds-radius-medium,.75rem);background:var(--hds-color-attachment-soft,#e0f2fe);color:var(--hds-color-attachment,#0ea5e9);font-weight:950}.hds-attachment-preview :where(img,svg){width:100%;height:100%;object-fit:cover}.hds-attachment-meta{min-width:0;overflow-wrap:anywhere;display:grid;gap:.15rem;color:var(--hds-color-text-muted,#64748b);font-size:var(--hds-font-size-sm,.875rem)}.hds-attachment-meta strong{color:var(--hds-color-heading,#0f172a);font-size:var(--hds-font-size-base,1rem)}.hds-attachment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--hds-space-2,.5rem)}
.hds-lightbox{min-width:0;max-width:100%;display:grid;gap:var(--hds-space-4,1rem);place-items:center;border-radius:var(--hds-radius-card,1rem);background:var(--hds-lightbox-background,rgb(2 6 23/.88));color:var(--hds-lightbox-text,#fff);padding:clamp(1rem,4vw,2rem)}.hds-lightbox__image{width:min(100%,var(--hds-lightbox-max-width,72rem));max-height:min(70vh,42rem);object-fit:contain;border-radius:var(--hds-radius-medium,.75rem);background:color-mix(in srgb,var(--hds-lightbox-text,#fff) 8%,transparent);box-shadow:var(--hds-shadow-overlay,0 1.5rem 5rem rgb(15 23 42/.22))}.hds-lightbox__caption{max-width:var(--hds-readable-max-width,42rem);margin:0;color:color-mix(in srgb,var(--hds-lightbox-text,#fff) 84%,transparent);text-align:center}


/* App-bundle responsive rules. Core owns site navigation; this bundle only adapts app surfaces. */
@media (max-width: 760px) {
  .hds-auth-shell,
  .hds-admin-shell,
  .hds-app-shell,
  .hds-app-shell:has(> .hds-app-sidebar),
  .hds-task-card,
  .hds-admin-list-item,
  .hds-moderation-item,
  .hds-attachment-item { grid-template-columns: 1fr; }
  .hds-admin-sidebar,
  .hds-app-sidebar { position: static; max-height: none; }
  .hds-app-main { padding-inline: var(--hds-space-4, 1rem); }
  .hds-app-aside, .hds-app-rail { width: 100%; }
}

@media (max-width: 520px) {
  .hds-sheet__panel { width: min(calc(100% - 2rem), var(--hds-sheet-max-width, 36rem)); }
}

@media (prefers-reduced-motion: reduce) {
  .hds-sheet__backdrop, .hds-sheet__panel, .hds-dialog__backdrop, .hds-dialog__panel, .hds-disclosure__summary::after { transition-duration: var(--hds-motion-reduced-duration, .01ms) !important; }
}

/* Phase 2 app/component icon composition additions. */
.hds-app-sidebar a:has(.hds-icon),
.hds-sheet__footer .hds-button:has(.hds-icon),
.hds-dialog__footer .hds-button:has(.hds-icon),
.hds-menu__trigger:has(.hds-icon),
.hds-menu__item:has(.hds-icon),
.hds-task-card__action:has(.hds-icon),
.hds-attachment-actions .hds-button:has(.hds-icon),
.hds-bulk-action-bar .hds-button:has(.hds-icon) { display: inline-flex; align-items: center; gap: var(--hds-space-2, .5rem); }
.hds-notice:has(.hds-icon) { display: flex; align-items: flex-start; gap: var(--hds-space-2, .5rem); }
.hds-notice > .hds-icon:first-child { color: var(--hds-color-primary, #2457d6); }
