/* PMD ver 01.0 — shared product skin; keep existing data/DOM contracts. */
body { font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; }
.pmd-header { width: 100%; border-bottom: 1px solid var(--line); background: var(--bg); }
.pmd-header-inner { max-width: var(--content-max); margin: auto; padding: 0 var(--page-padding); min-height: 4.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 2.5rem; }
.pmd-header-inner > * { min-width: 0; }
.pmd-logo { display: inline-flex; gap: .75rem; align-items: baseline; color: var(--text); text-decoration: none; white-space: nowrap; }
.pmd-logo strong { font-size: 1.375rem; font-weight: 650; letter-spacing: -.05em; }
.pmd-logo span { font-size: .75rem; color: var(--muted); }
.pmd-primary-nav { display: flex; flex-wrap: wrap; align-self: stretch; align-items: stretch; gap: .5rem 1.75rem; }
.pmd-primary-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 .125rem; color: var(--muted); text-decoration: none; font-size: .9375rem; border-bottom: 2px solid transparent; white-space: nowrap; }
.pmd-primary-nav a[aria-current="page"] { color: var(--text); font-weight: 600; border-bottom-color: var(--text); }
.pmd-header-actions { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.pmd-quiet-button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--line); border-radius: .625rem; background: var(--bg); color: var(--muted); font-size: .875rem; white-space: normal; text-align: center; }
.pmd-quiet-button:hover { background: var(--panel2); color: var(--text); }
.pmd-theme-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 2.75rem; min-width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--muted); }
.pmd-theme-toggle:hover, .pmd-theme-toggle:focus-visible { background: var(--panel2); color: var(--text); border-color: transparent; }
.pmd-theme-toggle svg { display: block; width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.pmd-theme-toggle .pmd-theme-sun { display: none; }
:root[data-pmd-theme="dark"] .pmd-theme-toggle .pmd-theme-moon { display: none; }
:root[data-pmd-theme="dark"] .pmd-theme-toggle .pmd-theme-sun { display: block; }
.pmd-dashboard .app { display: block; min-height: 0; }
.pmd-dashboard .main, .pmd-calendar main, .pmd-watchlist main { max-width: var(--content-max); padding: 2rem var(--page-padding) 3rem; width: 100%; margin: auto; }
.pmd-dashboard .top { margin-bottom: 1.5rem; align-items: center; }
.pmd-dashboard .top h1, .pmd-calendar h1, .pmd-watchlist h1 { margin: 0; font-size: var(--text-page); letter-spacing: -.035em; font-weight: 600; }
.pmd-dashboard .eyebrow { display: none; }
.pmd-dashboard .top-actions { align-items: center; }
.pmd-dashboard .card { border: 0; background: var(--bg); border-radius: 0; }
.pmd-dashboard .main > section { margin-bottom: 1.75rem; }
.pmd-dashboard .search { padding: 1.25rem; background: var(--panel2); border-radius: .875rem; }
.pmd-dashboard .search-grid { gap: .875rem; }
.pmd-dashboard .field input, .pmd-dashboard .field select { background: var(--bg); color: var(--text); border: 1px solid var(--line); border-radius: .625rem; box-shadow: none; }
.pmd-dashboard .field label { color: var(--muted); font-size: .875rem; }
.pmd-dashboard .primary { background: var(--text); color: var(--bg); border: 1px solid var(--text); border-radius: .625rem; font-weight: 600; box-shadow: none; }
.pmd-dashboard :is(.secondary,.save-btn,.settings-btn) { background: var(--bg); color: var(--text); border: 1px solid var(--line); border-radius: .625rem; font-weight: 500; }
.pmd-dashboard .hero { padding: .5rem 0 1.75rem; border-bottom: 1px solid var(--line); }
.pmd-dashboard .hero-top { gap: 1.5rem; }
.pmd-dashboard .ticker { font-size: 1.25rem; font-weight: 650; }
.pmd-dashboard .company { font-size: .9375rem; color: var(--muted); }
.pmd-dashboard .price { font-weight: 650; letter-spacing: -.025em; }
.pmd-dashboard .change { font-size: 1rem; }
.pmd-dashboard .live-source { color: var(--muted); font-size: .75rem; }
.pmd-dashboard .hero-bottom { gap: 1.5rem; margin-top: 1.25rem; }
.pmd-dashboard .conclusion { font-size: 1rem; line-height: 1.7; color: var(--text); }
.pmd-dashboard .mini { border-color: var(--line); }
.pmd-dashboard .mini strong { font-size: 1.0625rem; font-weight: 550; }
.pmd-dashboard .mini span { font-size: .8125rem; }
.pmd-dashboard .verdict, .pmd-dashboard .pill { color: var(--muted); background: var(--panel2); border: 0; font-weight: 500; border-radius: .5rem; }
.pmd-dashboard .data-strip { gap: .5rem 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: .75rem 0; }
.pmd-dashboard .data-chip { background: transparent; border: 0; border-radius: 0; padding: .375rem 0; gap: .5rem; }
.pmd-dashboard .data-chip strong { font-weight: 500; }
.pmd-dashboard .data-chip span { font-size: .8125rem; }
.pmd-dashboard .panel { padding: 1.5rem 0; border-top: 1px solid var(--line); }
.pmd-dashboard .core-grid .panel { border-top: 0; padding-top: 0; }
.pmd-dashboard .core-grid { gap: 2rem; grid-template-columns: minmax(0, 1.8fr) minmax(17rem, 1fr); }
.pmd-dashboard .core-grid > :last-child { border-left: 1px solid var(--line); padding-left: 1.75rem; }
.pmd-dashboard .kicker { font-size: .75rem; font-weight: 500; letter-spacing: .03em; margin-bottom: .375rem; }
.pmd-dashboard .panel-head { margin-bottom: 1.25rem; }
.pmd-dashboard .panel-head h2 { font-size: 1.25rem; font-weight: 600; letter-spacing: -.025em; }
.pmd-dashboard .chart-wrap { background: var(--panel3); border: 0; border-radius: .75rem; padding: .5rem; }
.pmd-dashboard .chart-toolbar { gap: .25rem; }
.pmd-dashboard .chart-toolbar button { border: 0; background: transparent; color: var(--muted); border-radius: .5rem; font-size: .875rem; }
.pmd-dashboard .chart-toolbar button.active { background: var(--panel2); color: var(--text); font-weight: 600; }
.pmd-dashboard .level { border-color: var(--line); padding: 1.125rem 0; }
.pmd-dashboard .level span { font-size: .875rem; }
.pmd-dashboard .level strong { font-size: 1.0625rem; font-weight: 600; }
.pmd-dashboard :is(.price,.change,.mini strong,.level strong,.position-metric strong,.lab strong) { font-variant-numeric: tabular-nums; }
.pmd-dashboard :is(.reason-basis,.impact-box,.timeframe-summary,.whale-summary,.position-metric,.lab,.strategy-method,.compare-summary) { background: var(--panel3); border-color: var(--line); border-radius: .625rem; }
.pmd-dashboard :is(.reason-card,.reason-item,.whale-card,.timeframe-card,.strategy-evidence-card,.play-card,.setting-row,.security-note) { background: var(--bg); border-color: var(--line); box-shadow: none; }
.pmd-dashboard :is(.settings-modal,.suggestions,.toast) { background: var(--panel); color: var(--text); border: 1px solid var(--line); box-shadow: var(--shadow); }
.pmd-dashboard .suggestions button { color: var(--text); background: var(--panel); }
.pmd-dashboard .suggestions button:hover { background: var(--panel2); }
.pmd-dashboard .suggestions span { color: var(--muted); }
.pmd-dashboard .help { background: transparent; color: var(--muted); border-color: var(--line); }
.pmd-dashboard .help::after { background: var(--text); color: var(--bg); border: 0; box-shadow: var(--shadow); }
.pmd-dashboard .impact-box strong { font-size: 1.25rem; }
.pmd-dashboard .position-summary { gap: .75rem; }
.pmd-dashboard .position-metric { padding: .875rem; }
.pmd-dashboard .position-metric strong { font-size: 1.125rem; }
.pmd-dashboard .reason-tabs { background: var(--panel2); border: 0; border-radius: .625rem; }
.pmd-dashboard .reason-tab { border: 0; font-weight: 500; }
.pmd-dashboard .reason-tab.active { color: var(--text); background: var(--bg); box-shadow: var(--shadow); }
.pmd-dashboard .analysis-viewbar { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1.125rem 0; }
.pmd-dashboard .analysis-mode-switch { background: var(--panel2); border-color: var(--line); }
.pmd-dashboard .analysis-mode-switch button.active { background: var(--bg); color: var(--text); }
.pmd-dashboard .analysis-feedback button { background: var(--bg); border-color: var(--line); color: var(--muted); }
.pmd-dashboard .analysis-feedback button.selected { background: var(--accent-soft); color: var(--blue); }
.pmd-dashboard .timeframe-card { border-radius: .75rem; }
.pmd-dashboard .strategy-lab { margin-top: .75rem; }
.pmd-dashboard .strategy-overview, .pmd-dashboard .strategy-validation { background: var(--panel3); border-color: var(--line); }
.pmd-dashboard .strategy-score, .pmd-dashboard .strategy-meter { background: var(--panel2); }
.pmd-dashboard .ok, .pmd-dashboard .api-badge.ok { color: var(--green); }
.pmd-dashboard .dot { background: var(--green); }
.pmd-dashboard .off { color: var(--danger); }
.pmd-dashboard .chart-legend span::before { background: var(--text); }
.pmd-dashboard .chart-legend .avg::before { background: var(--blue); }
.pmd-dashboard .chart-legend .support::before { background: var(--green); }
.pmd-dashboard .chart-legend .target::before { background: var(--warn); }
.pmd-dashboard .chart-legend .invalid::before { background: var(--danger); }
.pmd-footer { display: flex; justify-content: space-between; align-items: start; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.pmd-footer a { color: var(--muted); }
.pmd-discussion-link { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: .75rem; font-size: .875rem; }
.pmd-calendar footer { font-size: .8125rem; }
.pmd-dashboard .toast { bottom: 1.25rem; font-size: .875rem; }
.pmd-source-details { margin: -1rem 0 1.25rem; color: var(--muted); font-size: .875rem; }
.pmd-source-details summary { width: fit-content; cursor: pointer; padding: .5rem 0; }
.pmd-detail-group { border-top: 1px solid var(--line); margin: 0 0 1.5rem; }
.pmd-detail-group > summary { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 0; list-style: none; cursor: pointer; font-weight: 600; }
.pmd-detail-group > summary::-webkit-details-marker { display: none; }
.pmd-detail-group > summary::after { content: "+"; font-size: 1.25rem; color: var(--muted); margin-left: auto; }
.pmd-detail-group[open] > summary::after { content: "−"; }
.pmd-detail-group > summary span { font-size: .875rem; font-weight: 400; color: var(--muted); }
.pmd-dashboard .pmd-detail-group > .panel { border: 0; padding-top: 0; }
.pmd-position-preview { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 1rem; padding: 1rem 1.25rem; background: var(--panel2); border-radius: .75rem; align-items: center; }
.pmd-position-preview div { min-width: 0; }
.pmd-position-preview span { display: block; color: var(--muted); font-size: .875rem; }
.pmd-position-preview strong { display: block; font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; margin-top: .25rem; }
.pmd-position-preview a { font-size: .875rem; min-height: 2.75rem; display: inline-flex; align-items: center; }
.pmd-upcoming-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; font-size: .875rem; color: var(--muted); }
.pmd-upcoming-item { display: block; padding: .875rem 1rem; background: var(--panel3); border-radius: .625rem; color: var(--text); text-decoration: none; }
.pmd-upcoming-item:hover { background: var(--panel2); }
.pmd-upcoming-date { color: var(--muted); font-size: .75rem; margin-bottom: .25rem; }
.pmd-upcoming-note { margin: .75rem 0 0; font-size: .75rem; color: var(--muted); }
.pmd-upcoming-content { display: block; color: inherit; text-decoration: none; }
.pmd-upcoming-original { display: block; margin-top: .375rem; color: var(--muted); font-size: .75rem; overflow-wrap: anywhere; }
.pmd-upcoming-source-links { display: flex; flex-wrap: wrap; gap: .25rem .75rem; margin-top: .5rem; font-size: .75rem; }
.pmd-upcoming-source-links a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--blue); }
.pmd-upcoming-attribution { grid-column: 1 / -1; min-width: 0; color: var(--muted); font-size: .75rem; overflow-wrap: anywhere; }
.pmd-upcoming-attribution summary { cursor: pointer; min-height: 2.75rem; display: list-item; padding-block: .625rem; }
.pmd-upcoming-attribution p { margin: .5rem 0; }
.pmd-upcoming-attribution a { color: var(--blue); }
.pmd-upcoming-attribution summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.pmd-dashboard .api-badge.ok { background: var(--success-soft); }
.pmd-calendar .eyebrow { display: none; }
.pmd-calendar .page-heading { margin-bottom: 1.75rem; }
.pmd-calendar .page-heading h1 { margin-bottom: .5rem; }
.pmd-calendar .filters { border: 0; background: var(--panel2); border-radius: .75rem; }
.pmd-calendar .table-wrap { border-radius: .625rem; }
.pmd-calendar .source { background: var(--panel3); border: 0; }
.pmd-calendar .country-menu { box-shadow: var(--shadow); }
@media (max-width: 63.999rem) {
  .pmd-header-inner { gap: 1.5rem; }
  .pmd-dashboard .core-grid { grid-template-columns: minmax(0, 1fr); }
  .pmd-dashboard .core-grid > :last-child { border-left: 0; padding: 1.5rem 0 0; border-top: 1px solid var(--line); }
  .pmd-dashboard .levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
}
@media (max-width: 47.999rem) {
  .pmd-header-inner { min-height: 3.75rem; gap: .75rem; }
  .pmd-logo span { font-size: .75rem; }
  .pmd-header-actions .pmd-quiet-button { font-size: .8125rem; }
  .pmd-primary-nav { position: fixed; z-index: 60; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; min-height: var(--bottom-nav-height); padding: 0 .75rem env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: var(--bg); }
  .pmd-primary-nav a { min-width: 0; justify-content: center; border: 0; padding: .5rem .25rem; font-size: .875rem; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; text-align: center; }
  .pmd-primary-nav a[aria-current="page"] { color: var(--blue); }
  .pmd-dashboard .main, .pmd-calendar main, .pmd-watchlist main { padding: 1.5rem 1rem calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 2rem); }
  .pmd-dashboard .top { gap: .75rem; align-items: start; flex-wrap: wrap; }
  .pmd-dashboard .top-actions { flex-wrap: wrap; }
  .pmd-dashboard .search { padding: 1rem; }
  .pmd-dashboard .search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; }
  .pmd-dashboard .ticker-field { grid-column: 1 / -1; }
  .pmd-dashboard .mode-field { grid-column: 1 / -1; }
  .pmd-dashboard #analyzeBtn { grid-column: 1 / -1; }
  .pmd-dashboard .hero-top { display: block; }
  .pmd-dashboard .verdict { margin-top: 1rem; display: inline-flex; }
  .pmd-dashboard .hero-bottom { margin-top: 1rem; }
  .pmd-dashboard .levels { display: block; }
  .pmd-dashboard .level { padding: .875rem 0; }
  .pmd-dashboard .data-strip { display: grid; grid-template-columns: minmax(0, 1fr); }
  .pmd-dashboard .data-chip { display: flex; justify-content: space-between; }
  .pmd-dashboard .panel-head { gap: .75rem; }
  .pmd-dashboard .chart-toolbar { width: 100%; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .pmd-dashboard .chart-toolbar button { padding: .5rem 0; }
  .pmd-dashboard .chart-wrap { padding: .25rem 0; }
  .pmd-dashboard .why-grid, .pmd-dashboard .play-grid { gap: 1.5rem; }
  .pmd-dashboard .position-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pmd-position-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1rem; }
  .pmd-detail-group > summary { flex-wrap: wrap; gap: .25rem .75rem; }
  .pmd-detail-group > summary span { display: none; }
  .pmd-upcoming-list { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .pmd-calendar .event-row { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 1rem 0; }
  .pmd-calendar .country-menu { max-height: min(45dvh, 22rem); }
  .pmd-dashboard .toast, .pmd-pwa-notice { bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + .75rem); }
}
/* This skin loads after dashboard.css: keep its narrow-screen period reflow. */
@media (max-width: 23.999rem) {
  .pmd-dashboard .chart-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
