/* =====================================================================
   PisteNote Design System  v0.1  (refined-Toss)
   Single source of truth for /web, /admin, landing, share.
   Strategy: token layer + component classes that RE-EXPRESS the existing
   class names (.primary/.secondary/.field/.card/.row-card/.nav/.segmented/
   .status-chip/.section...) through tokens, so migrating a screen =
   <link> this file + delete the local duplicate <style>. Markup unchanged.
   ===================================================================== */

/* ------------------------------ TOKENS ------------------------------ */
:root {
  color-scheme: light;

  /* palette (kept from current Toss-flavored set) */
  --ds-ink:#191f28;      /* headings / strongest text */
  --ds-text:#333d4b;     /* body */
  --ds-sub:#6b7684;      /* secondary text */
  --ds-muted:#8b95a1;    /* tertiary / disabled label */
  --ds-blue:#3182f6;     /* brand / primary */
  --ds-blue-strong:#1b64da;
  --ds-blue-soft:#eaf3ff;
  --ds-green:#00a36c;    --ds-green-soft:#e9fbf2;
  --ds-red:#f04452;      --ds-red-soft:#fff1f2;
  --ds-yellow:#f59f00;   --ds-yellow-soft:#fff7df;

  /* surfaces */
  --ds-bg:#f4f7fb;
  --ds-card:#ffffff;
  --ds-line:#e5e8eb;
  --ds-line-soft:rgba(229,232,235,.72);

  /* semantic aliases (use these in components) */
  --ds-color-primary:var(--ds-blue);
  --ds-color-primary-strong:var(--ds-blue-strong);
  --ds-color-primary-soft:var(--ds-blue-soft);
  --ds-color-on-primary:#ffffff;
  --ds-color-success:var(--ds-green);
  --ds-color-danger:var(--ds-red);
  --ds-color-warning:var(--ds-yellow);
  --ds-color-text:var(--ds-text);
  --ds-color-heading:var(--ds-ink);
  --ds-color-subtle:var(--ds-sub);

  /* typography */
  --ds-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo",
             "Pretendard", "Malgun Gothic", Roboto, sans-serif;
  --ds-fs-xs:11px;  --ds-lh-xs:1.4;
  --ds-fs-sm:12px;  --ds-lh-sm:1.45;
  --ds-fs-base:13px;--ds-lh-base:1.5;
  --ds-fs-md:15px;  --ds-lh-md:1.5;
  --ds-fs-lg:17px;  --ds-lh-lg:1.4;
  --ds-fs-xl:20px;  --ds-lh-xl:1.32;
  --ds-fs-2xl:24px; --ds-lh-2xl:1.24;
  --ds-fs-3xl:30px; --ds-lh-3xl:1.12;
  /* refined weight scale (was: 900 everywhere) */
  --ds-fw-regular:400;
  --ds-fw-medium:500;
  --ds-fw-semibold:600;
  --ds-fw-bold:700;
  --ds-fw-heavy:800;

  /* spacing (4-based) */
  --ds-space-1:4px;  --ds-space-2:8px;  --ds-space-3:12px; --ds-space-4:16px;
  --ds-space-5:20px; --ds-space-6:24px; --ds-space-8:32px; --ds-space-10:40px;

  /* radius (scaled: control 8 / card 12 / sheet 16) */
  --ds-radius-sm:8px;
  --ds-radius-md:12px;
  --ds-radius-lg:16px;
  --ds-radius-pill:999px;

  /* elevation (3 tokens replacing ad-hoc shadows) */
  --ds-shadow-sm:0 1px 3px rgba(25,31,40,.06);
  --ds-shadow-md:0 8px 20px rgba(25,31,40,.06);
  --ds-shadow-lg:0 16px 34px rgba(25,31,40,.12);

  /* motion */
  --ds-duration-fast:120ms;
  --ds-duration:200ms;
  --ds-ease:cubic-bezier(.2,.8,.2,1);

  /* control sizing */
  --ds-control-h:52px;
  --ds-control-h-sm:42px;

  /* z-index scale */
  --ds-z-nav:8; --ds-z-header:5; --ds-z-sheet:40; --ds-z-toast:60;
}

/* ------------------------------ BASE ------------------------------ */
.ds, .ds * { box-sizing:border-box; }
.ds {
  font-family:var(--ds-font);
  font-size:var(--ds-fs-md);
  line-height:var(--ds-lh-md);
  color:var(--ds-color-text);
  -webkit-font-smoothing:antialiased;
}
.ds h1,.ds h2,.ds h3,.ds h4 { margin:0; color:var(--ds-color-heading); font-weight:var(--ds-fw-heavy); }
.ds button,.ds input,.ds select,.ds textarea { font:inherit; color:inherit; }
.ds button { border:0; cursor:pointer; background:none; }

/* type helpers */
.ds-title    { font-size:var(--ds-fs-2xl); line-height:var(--ds-lh-2xl); font-weight:var(--ds-fw-heavy); color:var(--ds-ink); }
.ds-heading  { font-size:var(--ds-fs-lg);  line-height:var(--ds-lh-lg);  font-weight:var(--ds-fw-bold);  color:var(--ds-ink); }
.ds-body     { font-size:var(--ds-fs-md);  line-height:var(--ds-lh-md);  color:var(--ds-text); }
.ds-caption  { font-size:var(--ds-fs-base);line-height:var(--ds-lh-base);color:var(--ds-sub); }
.ds-overline { font-size:var(--ds-fs-base);font-weight:var(--ds-fw-bold);color:var(--ds-sub);
               letter-spacing:.01em; }

/* ------------------------------ BUTTONS ------------------------------ */
/* new .ds-btn API + back-compat with existing .primary/.secondary/.ghost */
.ds-btn, .primary, .secondary, .ghost {
  width:100%;
  min-height:var(--ds-control-h);
  padding:0 var(--ds-space-4);
  border-radius:var(--ds-radius-sm);
  font-size:var(--ds-fs-md);
  font-weight:var(--ds-fw-bold);
  display:inline-flex; align-items:center; justify-content:center;
  gap:var(--ds-space-2);
  transition:background var(--ds-duration) var(--ds-ease),
             transform var(--ds-duration-fast) var(--ds-ease),
             box-shadow var(--ds-duration) var(--ds-ease);
}
.ds-btn:active, .primary:active, .secondary:active, .ghost:active { transform:scale(.985); }
.ds-btn:disabled, .primary:disabled, .secondary:disabled { opacity:.42; cursor:not-allowed; transform:none; }

.ds-btn--primary, .primary { background:var(--ds-color-primary); color:var(--ds-color-on-primary); }
.ds-btn--primary:hover, .primary:hover { background:var(--ds-color-primary-strong); }
.ds-btn--secondary, .secondary { background:#fff; border:1px solid var(--ds-line); color:var(--ds-ink); }
.ds-btn--secondary:hover, .secondary:hover { background:#f8fafc; }
.ds-btn--ghost, .ghost { background:transparent; color:var(--ds-color-primary); }
.ds-btn--danger { background:var(--ds-color-danger); color:#fff; }
.ds-btn--sm { min-height:var(--ds-control-h-sm); font-size:var(--ds-fs-base); padding:0 var(--ds-space-3); }
.ds-btn--auto, .link-button, .text-button { width:auto; }
.link-button, .text-button { background:transparent; color:var(--ds-color-primary); font-weight:var(--ds-fw-bold); min-height:auto; }

/* ------------------------------ FIELDS ------------------------------ */
.ds-field, .field {
  width:100%;
  min-height:var(--ds-control-h);
  padding:0 var(--ds-space-4);
  border:1.5px solid var(--ds-line);
  border-radius:var(--ds-radius-sm);
  background:#fff;
  color:var(--ds-ink);
  outline:0;
  transition:border-color var(--ds-duration) var(--ds-ease),
             box-shadow var(--ds-duration) var(--ds-ease);
}
.ds-field::placeholder, .field::placeholder { color:var(--ds-muted); }
.ds-field:focus, .field:focus {
  border-color:var(--ds-color-primary);
  box-shadow:0 0 0 3px var(--ds-color-primary-soft);
}
textarea.ds-field, textarea.field { min-height:78px; padding:var(--ds-space-3) var(--ds-space-4); resize:none; line-height:1.5; }
.ds-label { display:block; margin-bottom:var(--ds-space-2); font-size:var(--ds-fs-base); font-weight:var(--ds-fw-bold); color:var(--ds-sub); }

/* --------------------------- SEGMENTED --------------------------- */
.ds-segmented, .segmented {
  padding:var(--ds-space-1);
  background:#edf1f5;
  border-radius:var(--ds-radius-sm);
  display:grid; gap:var(--ds-space-1);
}
.ds-segmented button, .segmented button {
  min-height:var(--ds-control-h-sm);
  border-radius:calc(var(--ds-radius-sm) - 2px);
  background:transparent; color:var(--ds-sub);
  font-size:var(--ds-fs-base); font-weight:var(--ds-fw-bold);
  display:flex; align-items:center; justify-content:center; gap:var(--ds-space-2);
  transition:background var(--ds-duration) var(--ds-ease), color var(--ds-duration) var(--ds-ease);
}
.ds-segmented button.active, .segmented button.active {
  background:#fff; color:var(--ds-ink); box-shadow:var(--ds-shadow-sm);
}

/* ------------------------------ CARDS ------------------------------ */
.ds-card, .card, .row-card {
  border-radius:var(--ds-radius-md);
  background:#fff;
  border:1px solid var(--ds-line-soft);
  box-shadow:var(--ds-shadow-sm);
}
.ds-card, .card { padding:var(--ds-space-4); }
.row-card {
  padding:var(--ds-space-4);
  display:flex; align-items:center; justify-content:space-between; gap:var(--ds-space-3);
}
.row-card + .row-card { margin-top:var(--ds-space-2); }
.ds-card h3, .card h3, .row-card h3 { font-size:var(--ds-fs-lg); line-height:var(--ds-lh-lg); font-weight:var(--ds-fw-bold); }
.ds-card p, .card p, .row-card p { margin:var(--ds-space-1) 0 0; color:var(--ds-sub); font-size:var(--ds-fs-base); line-height:var(--ds-lh-base); word-break:keep-all; }

/* ------------------------------ CHIPS ------------------------------ */
.ds-chip, .status-chip, .role-chip {
  min-height:28px;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 var(--ds-space-3);
  border-radius:var(--ds-radius-pill);
  background:#fff; border:1px solid var(--ds-line);
  color:var(--ds-sub);
  font-size:var(--ds-fs-sm); font-weight:var(--ds-fw-bold);
  gap:var(--ds-space-1);
}
.ds-chip--blue,  .chip-blue   { background:var(--ds-blue-soft);  color:var(--ds-blue-strong); border-color:transparent; }
.ds-chip--green, .chip-green  { background:var(--ds-green-soft); color:var(--ds-green);       border-color:transparent; }
.ds-chip--red,   .chip-red    { background:var(--ds-red-soft);   color:var(--ds-red);         border-color:transparent; }
.ds-chip--yellow,.chip-yellow { background:var(--ds-yellow-soft);color:#9a6400;               border-color:transparent; }

/* --------------------------- SECTIONS --------------------------- */
.ds-section, .section { margin-top:var(--ds-space-5); }
.ds-section-title, .section-title {
  margin:0 0 var(--ds-space-3);
  color:var(--ds-sub);
  font-size:var(--ds-fs-base); font-weight:var(--ds-fw-bold);
  display:flex; align-items:center; justify-content:space-between;
}
.ds-stack, .stack { display:grid; gap:var(--ds-space-3); }

/* --------------------------- BOTTOM NAV --------------------------- */
.ds-nav, .nav {
  min-height:72px;
  padding:var(--ds-space-2) var(--ds-space-3) calc(var(--ds-space-2) + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--ds-line);
  backdrop-filter:blur(12px);
  display:grid; grid-template-columns:repeat(var(--nav-count,4),1fr); gap:var(--ds-space-1);
  z-index:var(--ds-z-nav);
}
.ds-nav button, .nav button {
  border-radius:var(--ds-radius-sm);
  background:transparent; color:var(--ds-muted);
  font-size:var(--ds-fs-xs); font-weight:var(--ds-fw-bold);
  display:grid; place-items:center; gap:var(--ds-space-1); min-height:54px;
  transition:color var(--ds-duration) var(--ds-ease), background var(--ds-duration) var(--ds-ease);
}
.ds-nav button.active, .nav button.active { color:var(--ds-color-primary); background:var(--ds-color-primary-soft); }

/* ------------------------------ SHEET/MODAL ------------------------------ */
.ds-scrim { position:fixed; inset:0; background:rgba(25,31,40,.44); z-index:var(--ds-z-sheet); }
.ds-sheet {
  background:#fff; border-radius:var(--ds-radius-lg) var(--ds-radius-lg) 0 0;
  padding:var(--ds-space-5); box-shadow:var(--ds-shadow-lg);
}
.ds-modal { background:#fff; border-radius:var(--ds-radius-lg); padding:var(--ds-space-5); box-shadow:var(--ds-shadow-lg); }

/* ------------------------------ TABLE (admin) ------------------------------ */
.ds-table { width:100%; border-collapse:collapse; font-size:var(--ds-fs-base); }
.ds-table th { text-align:left; color:var(--ds-sub); font-weight:var(--ds-fw-bold); padding:var(--ds-space-3); border-bottom:1px solid var(--ds-line); }
.ds-table td { padding:var(--ds-space-3); border-bottom:1px solid var(--ds-line-soft); color:var(--ds-text); }
.ds-table tr:hover td { background:#f8fafc; }

/* ------------------------------ MISC ------------------------------ */
.ds-empty { text-align:center; color:var(--ds-muted); padding:var(--ds-space-8) var(--ds-space-4); }
.ds-skeleton { background:linear-gradient(90deg,#eef1f5 25%,#f6f8fa 37%,#eef1f5 63%); background-size:400% 100%; animation:ds-shimmer 1.4s ease infinite; border-radius:var(--ds-radius-sm); }
@keyframes ds-shimmer { 0%{background-position:100% 0} 100%{background-position:-100% 0} }
.ds-divider { height:1px; background:var(--ds-line); border:0; margin:var(--ds-space-4) 0; }

/* =====================================================================
   Piste Design System 1.2.1
   Product layer: fencing rhythm + accessible parent/child reading.
   Material 3 interaction rules are used as a foundation; the visual
   language stays deliberately specific to PisteNote.
   ===================================================================== */
:root {
  --ds-navy:#10243f;
  --ds-navy-deep:#071729;
  --ds-navy-soft:#e8eef5;
  --ds-electric:#2f7ff7;
  --ds-electric-strong:#1767dc;
  --ds-sky:#78b9ff;
  --ds-ivory:#f7f5ef;
  --ds-canvas:#f2f5f7;
  --ds-surface:#ffffff;
  --ds-stroke:#d9e1e8;
  --ds-stroke-strong:#bac7d4;
  --ds-text-strong:#102033;
  --ds-text-body:#344456;
  --ds-text-muted:#667588;
  --ds-piste-line:rgba(47,127,247,.16);

  --ds-blue:var(--ds-electric);
  --ds-blue-strong:var(--ds-electric-strong);
  --ds-blue-soft:#eaf3ff;
  --ds-bg:var(--ds-canvas);
  --ds-line:var(--ds-stroke);
  --ds-line-soft:rgba(217,225,232,.78);
  --ds-ink:var(--ds-text-strong);
  --ds-text:var(--ds-text-body);
  --ds-sub:var(--ds-text-muted);

  --ds-radius-sm:10px;
  --ds-radius-md:14px;
  --ds-radius-lg:20px;
  --ds-shadow-sm:0 1px 2px rgba(16,36,63,.04);
  --ds-shadow-md:0 10px 28px rgba(16,36,63,.08);
  --ds-shadow-lg:0 24px 64px rgba(7,23,41,.16);
  --ds-focus:0 0 0 4px rgba(47,127,247,.24);
}

.pds-app,
.pds-admin,
.pds-landing,
.pds-share {
  color:var(--ds-text-body);
  font-family:var(--ds-font);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

.pds-app :focus-visible,
.pds-admin :focus-visible,
.pds-landing :focus-visible,
.pds-share :focus-visible {
  outline:3px solid var(--ds-electric);
  outline-offset:3px;
}

/* --------------------------- MOBILE APP --------------------------- */
body.pds-app {
  background:linear-gradient(180deg, #dbe3eb 0%, #eef2f5 100%);
  color:var(--ds-text-strong);
  font-size:16px;
}

.pds-app .shell {
  background:var(--ds-canvas);
  box-shadow:0 0 0 1px rgba(16,36,63,.05), 0 24px 80px rgba(7,23,41,.10);
}

.pds-app .top {
  position:relative;
  padding:14px 18px 12px;
  background:rgba(250,251,252,.97);
  border-bottom:1px solid var(--ds-stroke);
  backdrop-filter:saturate(160%) blur(18px);
}

.pds-app .top::after {
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:-1px;
  height:2px;
  background:linear-gradient(90deg, var(--ds-electric) 0 22%, rgba(47,127,247,.14) 22% 100%);
}

.pds-app .brand { color:var(--ds-navy); letter-spacing:-.025em; }
.pds-app .brand .mark {
  border-radius:10px;
  background:var(--ds-navy);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}

.pds-app .role-chip {
  min-height:38px;
  padding:0 13px;
  border:1px solid var(--ds-stroke);
  background:#fff;
  color:var(--ds-text-muted);
  font-size:13px;
}

.pds-app .icon-button,
.pds-app .back-icon-button {
  min-width:48px;
  min-height:48px;
  border-radius:14px;
  border:1px solid var(--ds-stroke);
  background:#fff;
  color:var(--ds-navy);
  box-shadow:none;
}

.pds-app .view {
  padding:14px 18px 32px;
  background:
    linear-gradient(90deg, transparent 0 17px, var(--ds-piste-line) 17px 18px, transparent 18px),
    linear-gradient(180deg, #f9fbfd 0, var(--ds-canvas) 230px, var(--ds-ivory) 100%);
}

.pds-app .title,
.pds-app .home-greeting { padding:10px 2px 4px; }
.pds-app .title h1,
.pds-app .home-greeting h1 {
  color:var(--ds-navy);
  font-size:29px;
  line-height:1.2;
  letter-spacing:-.035em;
}
.pds-app .title p,
.pds-app .home-greeting p {
  color:var(--ds-text-muted);
  font-size:15px;
  line-height:1.62;
}

.pds-app .section { margin-top:22px; }
.pds-app .section-title,
.pds-app .home-section-head h2 {
  color:var(--ds-navy);
  font-size:16px;
  line-height:1.4;
  letter-spacing:-.018em;
}

.pds-app .card,
.pds-app .row-card,
.pds-app .metric,
.pds-app .today-card,
.pds-app .home-record-card,
.pds-app .home-action-list,
.pds-app .home-metrics,
.pds-app .home-event-row,
.pds-app .home-person-row,
.pds-app .home-record-strip,
.pds-app .match-card,
.pds-app .record-item {
  border-color:var(--ds-stroke);
  border-radius:14px;
  box-shadow:none;
}

.pds-app .card,
.pds-app .row-card,
.pds-app .home-event-row,
.pds-app .home-person-row,
.pds-app .home-record-strip,
.pds-app .match-card,
.pds-app .record-item { background:#fff; }

.pds-app .card h3,
.pds-app .row-card h3,
.pds-app .match-main h3,
.pds-app .record-item h3 { color:var(--ds-navy); }
.pds-app .card p,
.pds-app .row-card p,
.pds-app .match-main p,
.pds-app .record-item p {
  color:var(--ds-text-muted);
  font-size:14px;
  line-height:1.62;
}

.pds-app .home-focus {
  position:relative;
  overflow:hidden;
  margin-top:18px;
  padding:20px;
  border:0;
  border-radius:20px;
  color:#fff;
  background:
    linear-gradient(90deg, transparent 0 11%, rgba(120,185,255,.28) 11% 11.4%, transparent 11.4% 88%, rgba(120,185,255,.28) 88% 88.4%, transparent 88.4%),
    linear-gradient(135deg, var(--ds-navy-deep), #173e6d);
  box-shadow:var(--ds-shadow-md);
}
.pds-app .home-focus::after {
  content:"";
  position:absolute;
  left:20px;
  right:20px;
  bottom:14px;
  height:2px;
  background:linear-gradient(90deg, var(--ds-sky), rgba(120,185,255,0));
  opacity:.75;
}
.pds-app .home-focus h2 { color:#fff; font-size:23px; line-height:1.34; }
.pds-app .home-focus p { color:rgba(255,255,255,.76); font-size:15px; line-height:1.62; }
.pds-app .home-focus .status-chip { background:#fff; color:var(--ds-navy); border-color:transparent; }

.pds-app .today-card {
  position:relative;
  padding:19px 18px 19px 22px;
  background:#fff;
  border:1px solid var(--ds-stroke);
}
.pds-app .today-card::before {
  content:"";
  position:absolute;
  left:0;
  top:16px;
  bottom:16px;
  width:4px;
  border-radius:0 4px 4px 0;
  background:var(--ds-electric);
}
.pds-app .today-card h3 { color:var(--ds-navy); font-size:20px; }
.pds-app .today-card p { font-size:14px; line-height:1.62; }

.pds-app .home-action-list { overflow:hidden; }
.pds-app .home-action-row {
  min-height:70px;
  padding:13px 14px;
  border-color:var(--ds-stroke);
}
.pds-app .home-action-icon {
  width:38px;
  height:38px;
  border-radius:11px;
  background:var(--ds-blue-soft);
  color:var(--ds-electric-strong);
}
.pds-app .home-action-row strong,
.pds-app .home-event-row strong,
.pds-app .home-person-row strong,
.pds-app .home-record-strip strong { font-size:16px; color:var(--ds-navy); }
.pds-app .home-action-row small,
.pds-app .home-event-row small,
.pds-app .home-person-row small,
.pds-app .home-record-strip small { font-size:13px; line-height:1.48; }

.pds-app .home-metrics { background:var(--ds-navy); border:0; }
.pds-app .home-metric { border-color:rgba(255,255,255,.16); padding:15px 11px; }
.pds-app .home-metric b { color:#fff; font-size:23px; }
.pds-app .home-metric span { color:rgba(255,255,255,.68); font-size:12px; }

.pds-app .primary,
.pds-app .secondary,
.pds-app .ghost,
.pds-app .field {
  min-height:52px;
  border-radius:12px;
}
.pds-app .primary { background:var(--ds-electric-strong); font-weight:800; }
.pds-app .primary:active { background:var(--ds-navy); }
.pds-app .secondary { border-color:var(--ds-stroke); box-shadow:none; }
.pds-app .field { border:1px solid var(--ds-stroke); background:#fff; font-size:16px; }
.pds-app .field:focus { border-color:var(--ds-electric); box-shadow:var(--ds-focus); }

.pds-app .segmented { border-radius:13px; background:#e6ebf0; }
.pds-app .segmented button { min-height:46px; border-radius:10px; font-size:14px; }

.pds-app .status-chip,
.pds-app .role-chip { font-weight:800; }

.pds-app .nav {
  min-height:76px;
  padding:7px 10px calc(8px + env(safe-area-inset-bottom));
  border-top:1px solid var(--ds-stroke);
  background:rgba(255,255,255,.98);
  backdrop-filter:saturate(160%) blur(18px);
}
.pds-app .nav button {
  position:relative;
  min-height:58px;
  border-radius:12px;
  color:#7b8997;
  font-size:12px;
  font-weight:800;
}
.pds-app .nav button::before {
  content:"";
  position:absolute;
  left:28%;
  right:28%;
  top:0;
  height:3px;
  border-radius:0 0 3px 3px;
  background:transparent;
}
.pds-app .nav button.active {
  color:var(--ds-navy);
  background:#eef5ff;
}
.pds-app .nav button.active::before { background:var(--ds-electric); }

.pds-app .record-detail-top { margin-bottom:16px; }
.pds-app .record-detail-actions button { min-height:48px; border-radius:13px; }
.pds-app #recordDetailScreen > .card:first-of-type {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.pds-app #recordDetailScreen > .card:first-of-type > h3 {
  font-size:24px;
  letter-spacing:-.025em;
}
.pds-app #recordDetailScreen > .card:first-of-type > p {
  margin-top:7px;
  font-size:16px;
}
.pds-app .detail-video-frame {
  margin-top:18px;
  border-radius:18px;
  border:1px solid rgba(16,36,63,.14);
  box-shadow:0 16px 36px rgba(7,23,41,.12);
}
.pds-app #reportBlock .section-title {
  margin-bottom:14px;
  font-size:21px;
  color:var(--ds-navy);
}
.pds-app #reportSummary {
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.pds-app .parent-summary-hero {
  position:relative;
  overflow:hidden;
  padding:24px 22px;
  border:1px solid #b9d6fa;
  border-radius:20px;
  background:
    linear-gradient(90deg, transparent 0 10%, rgba(47,127,247,.10) 10% 10.5%, transparent 10.5% 90%, rgba(47,127,247,.10) 90% 90.5%, transparent 90.5%),
    linear-gradient(145deg, #f5f9ff, #edf5ff 64%, #f9fbfd);
  box-shadow:none;
}
.pds-app .parent-summary-hero::after {
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  top:0;
  height:4px;
  background:linear-gradient(90deg, var(--ds-electric), var(--ds-sky), transparent);
}
.pds-app .parent-summary-hero .eyebrow { color:var(--ds-electric-strong); font-size:15px; }
.pds-app .parent-summary-hero h3 {
  color:var(--ds-navy);
  font-size:22px;
  line-height:1.66;
  letter-spacing:-.025em;
  word-break:keep-all;
}
.pds-app .parent-summary-card,
.pds-app .parent-term-card,
.pds-app .opponent-link-card,
.pds-app .head-history-card,
.pds-app .footwork-card,
.pds-app .evaluation-section {
  border-color:var(--ds-stroke);
  border-radius:15px;
  box-shadow:none;
  background:#fff;
}
.pds-app .parent-summary-point span,
.pds-app .report-text-block .report-paragraph,
.pds-app .evaluation-section p,
.pds-app .parent-term-card p {
  color:var(--ds-text-body);
  font-size:17px;
  line-height:1.74;
}
.pds-app .parent-summary-point b { font-size:14px; line-height:1.35; }
.pds-app .report-section-lead { color:var(--ds-navy); }
.pds-app .record-fab {
  width:58px;
  height:58px;
  border-radius:18px;
  background:var(--ds-navy);
  box-shadow:0 14px 30px rgba(7,23,41,.22);
}

/* --------------------------- SHARED REPORT --------------------------- */
body.pds-share { margin:0; min-height:100%; }
.pds-share .share-shell {
  width:min(100%,430px);
  min-height:100dvh;
  margin:0 auto;
  padding:0;
  overflow:hidden;
}
.pds-share .share-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pds-share .share-brand {
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ds-navy);
  text-decoration:none;
}
.pds-share .share-brand .mark {
  width:38px;
  height:38px;
  object-fit:cover;
  flex:0 0 auto;
}
.pds-share .share-brand > span { min-width:0; display:grid; gap:1px; }
.pds-share .share-brand strong { font-size:18px; line-height:1.25; letter-spacing:-.025em; }
.pds-share .share-brand small {
  color:var(--ds-text-muted);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
}
.pds-share .share-chip {
  min-height:34px;
  padding:0 11px;
  white-space:nowrap;
}
.pds-share .share-view { min-height:calc(100dvh - 65px); }
.pds-share #recordDetailScreen { margin-top:0; }
.pds-share .detail-video-frame { overflow:hidden; background:#000; }
.pds-share .detail-video-frame video {
  width:100%;
  margin:0;
  border-radius:0;
}
.pds-share #reportSummary { margin:0; }

/* --------------------------- PUBLIC LANDING --------------------------- */
body.pds-landing { background:var(--ds-ivory); color:var(--ds-text-strong); }
.pds-landing .site-header {
  border-bottom:1px solid var(--ds-stroke);
  background:rgba(247,245,239,.94);
}
.pds-landing .brand { color:var(--ds-navy); }
.pds-landing .brand-mark {
  border-radius:10px;
  background:var(--ds-navy);
  box-shadow:none;
}
.pds-landing .nav-link,
.pds-landing .button {
  width:auto;
  min-height:48px;
  border-radius:12px;
}
.pds-landing .nav-link.primary,
.pds-landing .button.primary {
  background:var(--ds-electric-strong);
  border-color:var(--ds-electric-strong);
  box-shadow:none;
}

.pds-landing .hero {
  position:relative;
  isolation:isolate;
  width:min(1180px, calc(100% - 40px));
  margin-top:30px;
  padding:64px;
  border-radius:32px;
  color:#fff;
  background:
    linear-gradient(90deg, transparent 0 8%, rgba(120,185,255,.18) 8% 8.25%, transparent 8.25% 91.75%, rgba(120,185,255,.18) 91.75% 92%, transparent 92%),
    linear-gradient(135deg, var(--ds-navy-deep), #12345d 58%, #1c4f87);
  overflow:hidden;
}
.pds-landing .hero::after {
  content:"";
  position:absolute;
  z-index:-1;
  left:5%;
  right:5%;
  bottom:22px;
  height:2px;
  background:linear-gradient(90deg, transparent, var(--ds-sky) 20% 80%, transparent);
  opacity:.75;
}
.pds-landing .hero h1 { color:#fff; font-size:58px; letter-spacing:-.045em; }
.pds-landing .hero-copy { color:rgba(255,255,255,.78); }
.pds-landing .eyebrow {
  padding:0;
  border-radius:0;
  background:transparent;
  color:#a9d2ff;
  letter-spacing:.02em;
}
.pds-landing .simple-points { gap:4px; color:#fff; }
.pds-landing .simple-points span {
  min-height:32px;
  padding:0 0 0 12px;
  border:0;
  border-left:3px solid var(--ds-sky);
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,.82);
}
.pds-landing .hero-panel {
  border:1px solid rgba(255,255,255,.20);
  border-radius:22px;
  box-shadow:none;
}
.pds-landing .hero-photo { min-height:280px; }
.pds-landing .hero-cards { background:#f8fafc; }
.pds-landing .mini-card {
  border:0;
  border-bottom:1px solid var(--ds-stroke);
  border-radius:0;
  padding:16px 4px;
}
.pds-landing .mini-card:last-child { border-bottom:0; }

.pds-landing .section { padding:86px 0; }
.pds-landing .section + .section { border-top:1px solid var(--ds-stroke); }
.pds-landing .section-kicker {
  min-height:auto;
  margin-bottom:16px;
  padding:0 0 0 12px;
  border:0;
  border-left:3px solid var(--ds-electric);
  border-radius:0;
  background:transparent;
  color:var(--ds-electric-strong);
  letter-spacing:.03em;
}
.pds-landing .section-head h2,
.pds-landing .role-title { color:var(--ds-navy); letter-spacing:-.035em; }
.pds-landing .section-head p,
.pds-landing .role-copy,
.pds-landing .use-card p,
.pds-landing .story-card p,
.pds-landing .flow-card p { color:var(--ds-text-muted); }

.pds-landing .use-card,
.pds-landing .story-card,
.pds-landing .flow-card {
  border:1px solid var(--ds-stroke);
  border-top:4px solid var(--ds-navy);
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
.pds-landing .use-card:nth-child(2) { border-top-color:var(--ds-electric); }
.pds-landing .use-card:nth-child(3) { border-top-color:#ca8500; }
.pds-landing .use-icon,
.pds-landing .number { border-radius:10px; }
.pds-landing .role-panel {
  padding:14px 0 14px 30px;
  border:0;
  border-left:4px solid var(--ds-electric);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.pds-landing .role-list div {
  border:0;
  border-bottom:1px solid var(--ds-stroke);
  border-radius:0;
  background:transparent;
}
.pds-landing .phone-card { border-color:var(--ds-stroke-strong); border-radius:22px; box-shadow:none; }
.pds-landing .phone-top { background:var(--ds-navy); }
.pds-landing .app-row { border-radius:10px; background:#fff; }
.pds-landing .cta-band {
  position:relative;
  overflow:hidden;
  border-radius:18px;
  background:var(--ds-navy);
  box-shadow:none;
}
.pds-landing .cta-band::after {
  content:"";
  position:absolute;
  left:34px;
  right:34px;
  bottom:12px;
  height:2px;
  background:linear-gradient(90deg, var(--ds-sky), transparent);
}
.pds-landing footer { background:var(--ds-ivory); border-color:var(--ds-stroke); }

/* --------------------------- ADMIN / OPERATOR --------------------------- */
body.pds-admin { background:var(--ds-canvas); color:var(--ds-text-strong); }
.pds-admin .admin-shell { grid-template-columns:250px minmax(0,1fr); }
.pds-admin .sidebar {
  color:#fff;
  background:
    linear-gradient(180deg, rgba(120,185,255,.08), transparent 32%),
    var(--ds-navy-deep);
  border-right:0;
}
.pds-admin .side-brand .brand { color:#fff; }
.pds-admin .side-brand .mark { background:var(--ds-navy); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.pds-admin .side-nav { gap:6px; }
.pds-admin .side-nav button {
  position:relative;
  min-height:48px;
  border-radius:10px;
  color:rgba(255,255,255,.67);
  font-size:15px;
}
.pds-admin .side-nav button:hover { color:#fff; background:rgba(255,255,255,.08); }
.pds-admin .side-nav button.active {
  color:#fff;
  background:rgba(47,127,247,.24);
  box-shadow:inset 3px 0 0 var(--ds-sky);
}
.pds-admin .side-footer { color:rgba(255,255,255,.58); border-color:rgba(255,255,255,.14); }
.pds-admin .main { background:var(--ds-canvas); }
.pds-admin .admin-topbar {
  border-bottom:1px solid var(--ds-stroke);
  background:rgba(247,245,239,.94);
  backdrop-filter:saturate(160%) blur(16px);
}
.pds-admin .top-title strong { color:var(--ds-navy); }
.pds-admin .admin-content {
  background:
    linear-gradient(90deg, transparent 0 23px, var(--ds-piste-line) 23px 24px, transparent 24px),
    var(--ds-canvas);
}
.pds-admin .page-head h1,
.pds-admin .detail-title h2 { color:var(--ds-navy); letter-spacing:-.035em; }
.pds-admin .page-head p,
.pds-admin .detail-title p { color:var(--ds-text-muted); }

.pds-admin .card,
.pds-admin .surface-card,
.pds-admin .operator-side,
.pds-admin .operator-main,
.pds-admin .operator-detail-card,
.pds-admin .operator-board-card,
.pds-admin .operator-match-card,
.pds-admin .group-card,
.pds-admin .player-card {
  border-color:var(--ds-stroke);
  border-radius:12px;
  box-shadow:none;
  background:#fff;
}
.pds-admin .card { padding:20px; }
.pds-admin .metric {
  position:relative;
  border:1px solid var(--ds-stroke);
  border-top:4px solid var(--ds-electric);
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
.pds-admin .metric:nth-child(2n) { border-top-color:var(--ds-navy); }
.pds-admin .metric b { color:var(--ds-navy); }
.pds-admin .section-title h2 { color:var(--ds-navy); }

.pds-admin .table {
  overflow:hidden;
  border:1px solid var(--ds-stroke);
  border-radius:12px;
  background:#fff;
}
.pds-admin .table > .row {
  margin:0;
  border:0;
  border-bottom:1px solid var(--ds-stroke);
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
.pds-admin .table > .row:last-child { border-bottom:0; }
.pds-admin .row.clickable:hover { background:#f1f6fd; border-color:var(--ds-stroke); }

.pds-admin .primary,
.pds-admin .secondary,
.pds-admin .ghost,
.pds-admin .field,
.pds-admin .top-action { border-radius:10px; }
.pds-admin .primary { background:var(--ds-electric-strong); }
.pds-admin .primary:hover { background:var(--ds-navy); }
.pds-admin .field { border-color:var(--ds-stroke); background:#fff; }
.pds-admin .field:focus { border-color:var(--ds-electric); box-shadow:var(--ds-focus); }
.pds-admin .top-action { min-height:44px; border-color:var(--ds-stroke); }
.pds-admin .mini { width:auto; min-height:40px; border-radius:9px; }

.pds-admin .operator-tabs {
  padding:4px;
  border:1px solid var(--ds-stroke);
  border-radius:12px;
  background:#e7ecf1;
}
.pds-admin .operator-tabs button { min-height:44px; border-radius:9px; }
.pds-admin .operator-tabs button.active { color:#fff; background:var(--ds-navy); }

.pds-admin .schedule-board {
  border:1px solid var(--ds-stroke);
  border-radius:12px;
  box-shadow:none;
}
.pds-admin .board-cell.header {
  color:#fff;
  background:var(--ds-navy);
  border-color:rgba(255,255,255,.14);
}
.pds-admin .board-time { background:#f0f5fb; color:var(--ds-navy); }
.pds-admin .match-chip {
  border-radius:8px;
  border-color:#bfd4ef;
  background:#f2f7fe;
  box-shadow:none;
}
.pds-admin .match-chip.selected { color:#fff; background:var(--ds-electric-strong); border-color:var(--ds-electric-strong); }
.pds-admin .chip { border-radius:8px; }
.pds-admin .code-pill { border-radius:8px; color:var(--ds-navy); background:var(--ds-navy-soft); }

.pds-admin .login-card { border-radius:20px; border-color:var(--ds-stroke); box-shadow:var(--ds-shadow-lg); }
.pds-admin .login-intro {
  background:
    linear-gradient(90deg, transparent 0 10%, rgba(120,185,255,.20) 10% 10.5%, transparent 10.5% 89.5%, rgba(120,185,255,.20) 89.5% 90%, transparent 90%),
    linear-gradient(145deg, var(--ds-navy-deep), #173e6d),
    url("/fencingcoach/hero.jpg") center/cover no-repeat;
}

@media (max-width:980px) {
  .pds-landing .hero { padding:48px; }
  .pds-admin .admin-shell { grid-template-columns:1fr; }
  .pds-admin .sidebar { background:var(--ds-navy-deep); }
}

@media (max-width:640px) {
  .pds-landing .hero {
    width:calc(100% - 24px);
    margin-top:12px;
    padding:34px 20px 30px;
    border-radius:22px;
  }
  .pds-landing .hero h1 { font-size:40px; line-height:1.12; }
  .pds-landing .hero-actions .button,
  .pds-landing .cta-actions .button { width:100%; }
  .pds-landing .section { padding:58px 0; }
  .pds-landing .role-panel { padding-left:18px; }
  .pds-app .view { padding-left:16px; padding-right:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .pds-app *, .pds-admin *, .pds-landing * {
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ========================= PDS 1.1: PRODUCT POLISH ========================= */
/* State language: calm neutral empty states, visible loading, actionable errors. */
.pds-app .soft-empty {
  position:relative;
  min-height:116px;
  display:grid;
  align-content:center;
  padding:22px 70px 22px 20px;
  overflow:hidden;
  text-align:left;
  border:1px solid #d9e3ef;
  border-left:4px solid var(--ds-sky);
  border-radius:12px;
  background:#f7f9fc;
}
.pds-app .soft-empty::before {
  content:"";
  position:absolute;
  right:20px;
  top:50%;
  width:34px;
  height:34px;
  transform:translateY(-50%);
  opacity:.34;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231767dc' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7.8 17.8 17.8 7M16.2 17.8 6.2 7'/%3E%3Ccircle cx='7.8' cy='17.8' r='1.7'/%3E%3Ccircle cx='16.2' cy='17.8' r='1.7'/%3E%3C/svg%3E");
}
.pds-app .soft-empty .title-with-icon { justify-content:flex-start; }
.pds-app .soft-empty h3 { color:var(--ds-navy); font-size:17px; }
.pds-app .soft-empty p { max-width:32em; color:var(--ds-text-muted); font-size:15px; line-height:1.62; }
.pds-app .soft-empty.soft-error {
  border-color:#f3c5ca;
  border-left-color:#d92d4c;
  background:#fff7f8;
}
.pds-app .soft-empty.soft-error::before {
  opacity:.65;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d92d4c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 10 18H2Z'/%3E%3Cpath d='M12 9v5M12 17h.01'/%3E%3C/svg%3E");
}
.pds-app .soft-empty.soft-error h3 { color:#9d1630; }

.pds-app #recordHistoryList[aria-busy="true"] .record-empty {
  position:relative;
  overflow:hidden;
  border-color:#d9e3ef;
  background:#f7f9fc;
}
.pds-app #recordHistoryList[aria-busy="true"] .record-empty::after {
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(100deg, transparent 22%, rgba(255,255,255,.86) 48%, transparent 74%);
  animation:pds-state-sweep 1.35s ease-in-out infinite;
}
@keyframes pds-state-sweep { to { transform:translateX(100%); } }

/* Lightweight in-product feedback replaces browser alert chrome. */
.pds-toast-stack {
  position:fixed;
  z-index:4000;
  left:50%;
  bottom:calc(92px + env(safe-area-inset-bottom));
  width:min(390px, calc(100% - 32px));
  display:grid;
  gap:8px;
  transform:translateX(-50%);
  pointer-events:none;
}
.pds-toast {
  min-height:52px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  color:#fff;
  background:var(--ds-navy-deep);
  box-shadow:0 16px 38px rgba(7,23,41,.24);
  font-size:15px;
  font-weight:750;
  line-height:1.5;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .18s ease, transform .18s ease;
}
.pds-toast.is-visible { opacity:1; transform:translateY(0); }
.pds-toast.is-success { background:#075d4d; }
.pds-toast.is-error { background:#8f1830; }
.pds-toast .ui-icon { width:20px; height:20px; flex:0 0 auto; }

/* Inline status messages reserve less space and announce their change. */
.pds-app #authMessage:empty,
.pds-app #oauthMessage:empty,
.pds-app #profileMessage:empty,
.pds-admin .message:empty { display:none; }
.pds-app #authMessage:not(:empty),
.pds-app #oauthMessage:not(:empty),
.pds-app #profileMessage:not(:empty) {
  margin-top:12px;
  padding:11px 13px;
  border-left:3px solid var(--ds-electric);
  border-radius:8px;
  color:var(--ds-text-body);
  background:#eef5fe;
  font-size:14px;
  line-height:1.5;
  text-align:left;
}

.pds-admin .empty {
  min-height:96px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  place-items:center start;
  gap:14px;
  padding:18px;
  border:1px solid #d9e3ef;
  border-left:4px solid var(--ds-sky);
  border-radius:10px;
  color:var(--ds-text-muted);
  background:#f7f9fc;
  text-align:left;
  font-size:14px;
  line-height:1.55;
}
.pds-admin .empty::before {
  content:"";
  width:36px;
  height:36px;
  border-radius:10px;
  background:#e5f0fd center/22px 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231767dc' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7.8 17.8 17.8 7M16.2 17.8 6.2 7'/%3E%3Ccircle cx='7.8' cy='17.8' r='1.7'/%3E%3Ccircle cx='16.2' cy='17.8' r='1.7'/%3E%3C/svg%3E");
}
.pds-admin .message:not(:empty) {
  min-height:44px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
  padding:10px 13px;
  border:1px solid #c7daf2;
  border-left:4px solid var(--ds-electric);
  border-radius:9px;
  color:var(--ds-text-body);
  background:#eef5fe;
  font-size:13px;
  line-height:1.5;
}
.pds-admin .message[data-tone="success"] {
  border-color:#a9d9c8;
  border-left-color:#0a7c65;
  color:#075d4d;
  background:#edf9f5;
}
.pds-admin .message[data-tone="error"] {
  border-color:#f3c5ca;
  border-left-color:#d92d4c;
  color:#8f1830;
  background:#fff7f8;
}

/* Landing iconography now uses the same 24px stroke language as the product. */
.pds-landing .use-icon svg {
  width:26px;
  height:26px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:640px) {
  /* PDS 1.2: compact phone geometry, verified against Galaxy A36 (384 CSS px). */
  .pds-app .shell { box-shadow:none; }
  .pds-app .top { padding:10px 16px 9px; }
  .pds-app .top::after {
    left:16px;
    right:16px;
    height:1px;
    background:linear-gradient(90deg, var(--ds-electric) 0 18%, rgba(47,127,247,.10) 18% 100%);
  }
  .pds-app .role-chip {
    min-height:34px;
    padding:0 11px;
    font-size:12px;
  }
  .pds-app .icon-button,
  .pds-app .back-icon-button {
    min-width:44px;
    min-height:44px;
    border-radius:12px;
  }
  .pds-app .view {
    padding:12px 16px 24px;
    background:linear-gradient(180deg, #f9fbfd 0, var(--ds-canvas) 180px, var(--ds-ivory) 100%);
  }
  .pds-app .title,
  .pds-app .home-greeting { padding:5px 0 0; }
  .pds-app .title h1,
  .pds-app .home-greeting h1 {
    font-size:25px;
    line-height:1.18;
    letter-spacing:-.03em;
  }
  .pds-app .title p,
  .pds-app .home-greeting p {
    margin-top:6px;
    font-size:15px;
    line-height:1.5;
  }
  .pds-app .section { margin-top:16px; }
  .pds-app .card { padding:15px; }
  .pds-app .row-card,
  .pds-app .match-card,
  .pds-app .record-item { padding:14px; }
  .pds-app .section-title,
  .pds-app .home-section-head h2 {
    margin-bottom:9px;
    font-size:15px;
  }
  .pds-app .segmented.section { margin-top:14px; }
  .pds-app .segmented button { min-height:42px; }
  .pds-app .nav {
    min-height:68px;
    padding:5px 8px calc(6px + env(safe-area-inset-bottom));
  }
  /* Android WebView already excludes the system navigation area from its viewport. */
  body.pds-app.native-app .nav { padding-bottom:6px; }
  .pds-app .nav button {
    min-height:54px;
    border-radius:10px;
  }
  .pds-app .nav button.active { background:#f1f6fc; }
  .pds-app .nav button.active::before {
    left:34%;
    right:34%;
  }
  .pds-app .record-detail-top { margin-bottom:12px; }
  .pds-app .record-detail-actions button {
    min-height:44px;
    border-radius:11px;
  }
  .pds-app #recordDetailScreen > .card:first-of-type > h3 { font-size:21px; }
  .pds-app #recordDetailScreen > .card:first-of-type > p {
    margin-top:5px;
    font-size:14px;
  }
  .pds-app .detail-video-frame {
    margin-top:14px;
    border-radius:14px;
    box-shadow:0 10px 24px rgba(7,23,41,.10);
  }
  .pds-app #reportBlock .section-title {
    margin-bottom:10px;
    font-size:19px;
  }
  .pds-app .parent-report { gap:12px; }
  .pds-app .parent-summary-hero {
    padding:19px 17px;
    border-radius:14px;
    background:linear-gradient(145deg, #f5f9ff, #edf5ff 64%, #f9fbfd);
  }
  .pds-app .parent-summary-hero::after {
    left:17px;
    right:17px;
    height:3px;
  }
  .pds-app .parent-summary-hero .eyebrow { font-size:14px; }
  .pds-app .parent-summary-hero h3 {
    font-size:19px;
    line-height:1.58;
    letter-spacing:-.02em;
  }
  .pds-app .parent-summary-card,
  .pds-app .parent-term-card,
  .pds-app .opponent-link-card,
  .pds-app .head-history-card,
  .pds-app .footwork-card,
  .pds-app .evaluation-section { border-radius:12px; }
  .pds-app .parent-summary-card { padding:15px 14px; }
  .pds-app .parent-summary-card h4 {
    margin-bottom:10px;
    font-size:18px;
  }
  .pds-app .parent-summary-point span,
  .pds-app .report-text-block .report-paragraph,
  .pds-app .evaluation-section p,
  .pds-app .parent-term-card p {
    font-size:16px;
    line-height:1.65;
  }
  .pds-app .record-fab {
    width:54px;
    height:54px;
    border-radius:16px;
  }
  .pds-app .soft-empty { min-height:96px; padding:16px 54px 16px 15px; }
  .pds-app .soft-empty::before { right:15px; width:30px; height:30px; }
  .pds-app .soft-empty p { font-size:14px; }
  .pds-app .record-item { border-radius:12px; }
  .pds-app .record-detail-card { border-radius:14px; }
  .pds-admin .empty { min-height:88px; }
}
