/* Insurance INSIDE v45 approved global readability baseline. */
/*
 * 보험원 INSIDE v45 readability proposal — owner approval gate.
 * Phase 1 only: this file is not imported by the production application.
 * Layout structure, copy, and behavior remain unchanged.
 */
:root {
  --v45-font-sans:
    "Pretendard Variable INSIDE", "Pretendard Variable", Pretendard,
    -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR",
    "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --v45-text-body-size: 16px;
  --v45-text-body-line: 1.56;
  --v45-text-list-title-size: 18px;
  --v45-text-list-title-line: 1.42;
  --v45-text-screen-title-size: 21px;
  --v45-text-screen-title-line: 1.32;
  --v45-text-meta-size: 13px;
  --v45-text-caption-size: 12px;
  --v45-weight-body: 500;
  --v45-weight-title: 720;
  --v45-weight-screen-title: 760;
  --v45-color-primary: #172033;
  --v45-color-secondary: #4b5563;
  --v45-color-muted: #5f6b80;
  --v45-color-on-dark: #f8fafc;
  --v45-color-on-dark-secondary: #d7e2ef;
  --v45-touch-min: 44px;
}

html.v45,
html.v45 body {
  font-family: var(--v45-font-sans) !important;
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
  text-rendering: optimizeLegibility;
  font-synthesis: none;
}

/* v44 INSIDE home — typography, 3-step gray hierarchy, touch only. */
html.v45 .mystat .s,
html.v45 .trend .lb,
html.v45 .rcnt,
html.v45 .pmeta,
html.v45 .emeta {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}

html.v45 .mystat .nm {
  font-size: 15px;
  font-weight: 720;
}

html.v45 .mynudge .nt,
html.v45 .trend .kw,
html.v45 .tool .tt span,
html.v45 .ta-strip .tl span,
html.v45 .pprev,
html.v45 .eprev,
html.v45 .adsub,
html.v45 .icard.inc .is {
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
  font-weight: var(--v45-weight-body);
}

html.v45 .tool .tt b,
html.v45 .ptitle,
html.v45 .etitle,
html.v45 .adbody,
html.v45 .poll .pq,
html.v45 .icard.inc .ih {
  font-size: var(--v45-text-list-title-size);
  line-height: var(--v45-text-list-title-line);
  font-weight: var(--v45-weight-title);
}

html.v45 .tab,
html.v45 .spill,
html.v45 .tool .tg,
html.v45 .mynudge .nb {
  font-size: 14px;
  font-weight: 700;
}

html.v45 .cat,
html.v45 .hotb,
html.v45 .ehead,
html.v45 .bottom-nav-v2 a,
html.v45 .ta-strip .al {
  font-size: var(--v45-text-caption-size);
}

html.v45 .bottom-nav-v2 a {
  font-family: var(--v45-font-sans);
}

html.v45 .hact .ib,
html.v45 .myb,
html.v45 .tab,
html.v45 .spill,
html.v45 .mynudge .nb,
html.v45 .bottom-nav-v2 a {
  min-width: var(--v45-touch-min);
  min-height: var(--v45-touch-min);
}

/* React 될까 — same tokens, no markup or positioning change. */
html.v45 .live-app,
html.v45 .possible-live-app {
  color: var(--v45-color-primary);
  font-family: var(--v45-font-sans);
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
}

html.v45 .live-subcopy h1,
html.v45 .possible-intro h2 {
  font-size: var(--v45-text-screen-title-size);
  line-height: var(--v45-text-screen-title-line);
  font-weight: var(--v45-weight-screen-title);
}

html.v45 .possible-intro > p,
html.v45 .possible-privacy,
html.v45 .possible-bubble,
html.v45 .possible-answer,
html.v45 .possible-fact,
html.v45 .possible-result-body {
  color: var(--v45-color-secondary);
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
  font-weight: var(--v45-weight-body);
}

html.v45 .live-subcopy p,
html.v45 .possible-flow-head span,
html.v45 .possible-engine,
html.v45 .possible-status {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}

html.v45 .possible-flow-head b,
html.v45 .possible-result-head b {
  color: var(--v45-color-primary);
  font-size: 16px;
  font-weight: 700;
}

html.v45 .live-pill-button,
html.v45 .possible-chip,
html.v45 button,
html.v45 [role="button"] {
  min-height: var(--v45-touch-min);
}

html.v45 .possible-chip,
html.v45 .live-pill-button {
  font-size: 14px;
}

/* v44 MY module — dense 8.5–13px copy is promoted to the shared scale. */
html.v45 .top h1 {
  font-size: var(--v45-text-screen-title-size);
  line-height: var(--v45-text-screen-title-line);
  font-weight: var(--v45-weight-screen-title);
}

html.v45 .section-head h2 {
  font-size: var(--v45-text-list-title-size);
  line-height: var(--v45-text-list-title-line);
  font-weight: var(--v45-weight-title);
}

html.v45 .hero-copy h2 {
  color: var(--v45-color-on-dark);
  font-size: 22px;
  line-height: 1.35;
  font-weight: 760;
}

html.v45 .status-card p,
html.v45 .record-note,
html.v45 .quick small,
html.v45 .mcopy small,
html.v45 .privacy-note,
html.v45 .s16-my-business-body {
  color: var(--v45-color-secondary);
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
  font-weight: var(--v45-weight-body);
}

html.v45 .hero-copy p {
  color: var(--v45-color-on-dark-secondary);
  font-size: var(--v45-text-body-size);
  line-height: var(--v45-text-body-line);
  font-weight: var(--v45-weight-body);
}

html.v45 .mini-profile p,
html.v45 .status-card small,
html.v45 .section-head span,
html.v45 .metric span,
html.v45 .s16-my-legal summary {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}

html.v45 .hero-copy small {
  color: var(--v45-color-on-dark-secondary);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}

html.v45 .status-card b,
html.v45 .quick b,
html.v45 .mcopy b {
  color: var(--v45-color-primary);
  font-size: 16px;
  line-height: 1.4;
  font-weight: 700;
}

html.v45 .top button,
html.v45 .hero-actions button,
html.v45 .status-card button,
html.v45 .quick button,
html.v45 .menu-row,
html.v45 .tab,
html.v45 .data-card button,
html.v45 .sheet-head button,
html.v45 .choice,
html.v45 .sheet-foot button,
html.v45 .s16-my-legal summary,
html.v45 .s16-my-business-body a {
  min-width: var(--v45-touch-min);
  min-height: var(--v45-touch-min);
}

/* F2 legal links remain 11–12px by explicit owner decision. */
html.v45 .business-disclosure-links a,
html.v45 .legal-caption,
html.v45 .legal-link {
  font-size: var(--v45-text-caption-size);
}

/* v45 approved phase-2 baseline. */
:root {
  --v45-accent-blue: #2563eb;
  --v45-accent-blue-soft: #eff6ff;
  --v45-warning-red: #d9433a;
}

/* G1 + home feed reduction: six visible elements per ordinary post. */
html.v45 #insideMemberStatus {
  display: none !important;
}

html.v45 .post {
  padding-block: 15px;
}

html.v45 .post .p1 {
  margin-bottom: 5px;
}

html.v45 .post .cat,
html.v45 .post .cat.gray,
html.v45 .post .cat.warn {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  font-weight: 700;
}

html.v45 .post .hotb,
html.v45 .post .pmeta > .vf {
  display: none !important;
}

html.v45 .post .pmeta {
  gap: 9px;
}

html.v45 .v45-card-byline {
  flex: 1;
  min-width: 0;
  color: var(--v45-color-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.v45 .post .pmeta .rt {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

html.v45 .post .pmeta .rt span {
  color: var(--v45-color-secondary);
}

html.v45 .post .pmeta .rt svg {
  stroke: var(--v45-color-muted);
}

html.v45 .mynudge {
  background: var(--v45-accent-blue-soft);
  border-bottom-color: #dbeafe;
}

html.v45 .mynudge .nic {
  border-color: #dbeafe;
  filter: grayscale(1);
}

html.v45 .mynudge .nt,
html.v45 .mynudge .nt b {
  color: #1e4f9a;
}

html.v45 .mynudge .nb,
html.v45 .tool .ti,
html.v45 .trend .new {
  background: var(--v45-accent-blue);
}

html.v45 .spill.on,
html.v45 .tool .tg,
html.v45 .ecta {
  color: var(--v45-accent-blue);
}

html.v45 .fire,
html.v45 .clock,
html.v45 .trend .up {
  color: var(--v45-accent-blue);
}

html.v45 .trend .dn {
  color: var(--v45-warning-red);
}

/* Post detail: one statistics row, count-free actions, folded disclaimer. */
html.v45 .detail-article h2 {
  color: var(--v45-color-primary);
  font-size: var(--v45-text-screen-title-size);
  font-weight: var(--v45-weight-screen-title);
  line-height: var(--v45-text-screen-title-line);
}

html.v45 .detail-body {
  color: var(--v45-color-secondary);
  font-size: var(--v45-text-body-size);
  font-weight: var(--v45-weight-body);
  line-height: var(--v45-text-body-line);
}

html.v45 .detail-author-copy b {
  color: var(--v45-color-primary);
  font-size: 14px;
}

html.v45 .detail-author-copy small,
html.v45 .detail-counts {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}

html.v45 .detail-cat {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
}

html.v45 .detail-counts {
  gap: 14px;
  padding-bottom: 14px;
}

html.v45 .detail-counts span:last-child {
  margin-left: 0;
}

html.v45 .detail-action {
  min-height: var(--v45-touch-min);
  color: var(--v45-color-secondary);
  font-size: 14px;
}

html.v45 .detail-action.on,
html.v45 .detail-action.scrap.on {
  color: var(--v45-accent-blue);
}

html.v45 .detail-tags span {
  background: var(--v45-accent-blue-soft);
  color: #1e4f9a;
}

html.v45 details.detail-disclaimer {
  padding: 0 11px;
}

html.v45 details.detail-disclaimer summary {
  min-height: var(--v45-touch-min);
  color: var(--v45-color-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  font-size: var(--v45-text-meta-size);
  font-weight: 700;
}

html.v45 details.detail-disclaimer p {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.55;
  margin: 0 0 12px;
}

/* MY: three independent status cards become one summary card with three rows. */
html.v45 .status-row.v45-my-summary {
  background: #fff;
  border: 1px solid #e3e7ed;
  border-radius: 16px;
  display: block;
  overflow: hidden;
}

html.v45 .status-row.v45-my-summary .status-card {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #edf0f3;
  border-radius: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 76px;
  padding: 13px 15px;
}

html.v45 .status-row.v45-my-summary .status-card:last-child {
  border-bottom: 0;
}

html.v45 .status-row.v45-my-summary .status-card small {
  color: var(--v45-color-muted);
  grid-column: 1;
  grid-row: 1;
  font-size: var(--v45-text-meta-size);
}

html.v45 .status-row.v45-my-summary .status-card b {
  color: var(--v45-color-primary);
  grid-column: 1;
  grid-row: 2;
  margin-top: 2px;
}

html.v45 .status-row.v45-my-summary .status-card p {
  display: none;
}

html.v45 .status-row.v45-my-summary .status-card button {
  align-self: center;
  background: var(--v45-accent-blue-soft);
  border: 0;
  border-radius: 10px;
  color: #1e4f9a;
  grid-column: 2;
  grid-row: 1 / 3;
  margin: 0;
  min-height: var(--v45-touch-min);
  padding: 0 11px;
}

html.v45 .hero-avatar {
  background: rgb(255 255 255 / 12%) !important;
  color: var(--v45-color-on-dark) !important;
}

html.v45 .identity-tags span,
html.v45 .profile-progress .bar i {
  background: var(--v45-accent-blue) !important;
}

html.v45 .quick b,
html.v45 .mcopy b,
html.v45 .v45-my-summary button {
  color: var(--v45-accent-blue);
}

/* Phase 2: shared scale across every migrated and legacy surface. */
html.v45 body,
html.v45 button,
html.v45 input,
html.v45 textarea,
html.v45 select {
  font-family: var(--v45-font-sans) !important;
}
html.v45 body {
  color: var(--v45-color-primary);
  font-size: var(--v45-text-body-size);
  font-weight: var(--v45-weight-body);
  line-height: var(--v45-text-body-line);
}
html.v45 button,
html.v45 [role="button"],
html.v45 input,
html.v45 select,
html.v45 textarea,
html.v45 a {
  min-height: var(--v45-touch-min);
}
html.v45 .changes-top h1,
html.v45 .changes-hero h2,
html.v45 .sub-head h2,
html.v45 .scrap-local-head h1,
html.v45 .scrap-hero h1,
html.v45 .scrap-hero h2,
html.v45 .ob-screen h1,
html.v45 .recruit-ready h1,
html.v45 .legal-md h1 {
  color: var(--v45-color-primary);
  font-size: var(--v45-text-screen-title-size);
  font-weight: var(--v45-weight-screen-title);
  line-height: var(--v45-text-screen-title-line);
}
html.v45 .changes-hero p,
html.v45 .changes-card p,
html.v45 .sub-head p,
html.v45 .setting-link small,
html.v45 .scrap-hero p,
html.v45 .scrap-card p,
html.v45 .ob-lead,
html.v45 .ob-note,
html.v45 .recruit-ready p,
html.v45 .legal-md p,
html.v45 .legal-md li {
  color: var(--v45-color-secondary);
  font-size: var(--v45-text-body-size);
  font-weight: var(--v45-weight-body);
  line-height: var(--v45-text-body-line);
}
html.v45 .changes-card h3,
html.v45 .setting-link b,
html.v45 .scrap-card h3,
html.v45 .ob-option b,
html.v45 .legal-md h3 {
  color: var(--v45-color-primary);
  font-size: var(--v45-text-list-title-size);
  font-weight: var(--v45-weight-title);
  line-height: var(--v45-text-list-title-line);
}
html.v45 .changes-card small,
html.v45 .changes-result-head,
html.v45 .setting-note,
html.v45 .setting-title,
html.v45 .scrap-tools,
html.v45 .ob-kicker,
html.v45 .ob-step-label,
html.v45 .ob-option small,
html.v45 .ob-hint,
html.v45 .legal-md-effective,
html.v45 .legal-md table {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-meta-size);
  line-height: 1.45;
}
html.v45 .business-disclosure-links a {
  color: var(--v45-color-muted);
  font-size: var(--v45-text-caption-size);
  line-height: 1.45;
}
/* Owner condition: the home affiliation prompt must remain a 1–2 line cue. */
html.v45 .mynudge {
  gap: 8px;
  min-height: 52px;
  padding: 7px 12px;
}
html.v45 .mynudge .nic {
  display: none;
}
html.v45 .mynudge .nt {
  display: -webkit-box;
  overflow: hidden;
  font-size: 14px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
html.v45 .mynudge .nb {
  min-height: 40px;
  padding: 0 11px;
}
@media (min-width: 900px) {
  html.v45 .mynudge {
    min-height: 48px;
  }
  html.v45 .mynudge .nt {
    -webkit-line-clamp: 1;
  }
}
/* v45 foreground corrections for dark brand surfaces. */
html.v45 :where(body *) {
  font-family: var(--v45-font-sans) !important;
}
html.v45 .changes-hero h2 {
  color: var(--v45-color-on-dark);
}
html.v45 .changes-hero p {
  color: var(--v45-color-on-dark-secondary);
}
html.v45 .hero-copy h2 {
  color: var(--v45-color-on-dark);
}
html.v45 .hero-copy p,
html.v45 .hero-copy small {
  color: var(--v45-color-on-dark-secondary);
}

/* F6 explicit contrast repairs. These selectors never redefine legacy module variables. */
html.v45 .trend .rk,
html.v45 .tab:not(.on),
html.v45 .spill:not(.on),
html.v45 .tool .tt span,
html.v45 .bottom-nav-v2 a:not(.on) span,
html.v45 .priority-card.urgent .go,
html.v45 .day h3,
html.v45 .notice .source,
html.v45 .notice .notice-meta,
html.v45 .notice .chev,
html.v45 .term .del,
html.v45 .panel-head > span,
html.v45 .delta-card small,
html.v45 .kpi > span,
html.v45 .change > p,
html.v45 body.f5-module-content .card-copy small,
html.v45 body.f5-module-content .list-head-copy p,
html.v45 body.f5-module-content .list-summary b,
html.v45 body.f5-module-content .consent-badge.off,
html.v45 body.f5-module-content .qa summary,
html.v45 body.f5-module-content .safety p,
html.v45 body.f5-module-content .status p,
html.v45 body.f5-module-content .card-head p,
html.v45 body.f5-module-content .help,
html.v45 body.f5-module-content .unit,
html.v45 body.f5-module-content .facts .fact span,
html.v45 body.f5-module-content .hero > p,
html.v45 body.f5-module-content .tools .search span,
html.v45 body.f5-module-content .result-head > span,
html.v45 body.f5-module-content .stats .stat span,
html.v45 body.f5-module-content .stats .stat small,
html.v45 body.f5-module-content .case-main > span,
html.v45 body.f5-module-content .case-target > span,
html.v45 .possible-foot button,
html.v45 .changes-sum > span,
html.v45 .settings-summary span,
html.v45 .setting-copy small,
html.v45 .setting-link em,
html.v45 .scrap-empty > span,
html.v45 .entry-card > span {
  color: var(--v45-color-secondary) !important;
}

html.v45 .trend .dn,
html.v45 .scrap-local-head em,
html.v45 body.f5-module-content .change .tag,
html.v45 body.f5-module-content .pill.privacy,
html.v45 body.f5-module-content .due.hot {
  color: #b42318 !important;
}

html.v45 .etype.issue,
html.v45 #globalNotificationBadge {
  color: #fff !important;
  background-color: #b42318 !important;
}

html.v45 body.f5-module-content .slide.s1 .sample,
html.v45 body.f5-module-content .slide.s1 .badge,
html.v45 body.f5-module-content .slide.s1 h2,
html.v45 body.f5-module-content .slide.s1 p,
html.v45 body.f5-module-content .slide.s1 .wm b {
  color: #172033 !important;
}

html.v45 body.f5-module-content .slide.s4 .clock span,
html.v45 body.f5-module-content .sidebar h2,
html.v45 body.f5-module-content #rank-percent,
html.v45 .scrap-hero h1,
html.v45 .scrap-hero p {
  color: var(--v45-color-on-dark) !important;
}

html.v45 body.f5-module-content #streak-count {
  color: #9a3412 !important;
}

html.v45 body.f5-module-content #streak-action {
  color: #fff !important;
  background-color: #9a3412 !important;
}

html.v45 #heroTags > span {
  color: #fff !important;
}

html.v45 .possible-send:disabled,
html.v45 .ob-next:disabled {
  color: var(--v45-color-secondary) !important;
}

/* F6 full-document contrast repairs found below the initial viewport. */
html.v45 .adpost .adlbl,
html.v45 .icard.ga .iga-row .gn,
html.v45 .filter-block label.check > em,
html.v45 body.f5-module-content .my-source > span,
html.v45 body.f5-module-content .my-stat > span,
html.v45 body.f5-module-content .insight > small,
html.v45 body.f5-module-content .bar-col > span,
html.v45 body.f5-module-content .generate > p,
html.v45 body.f5-module-content #fee-trend-card > div > span,
html.v45 body.f5-module-content .data-dependent .ptitle > span,
html.v45 body.f5-module-content #daily-input-title > span,
html.v45 body.f5-module-content button#reset,
html.v45 body.f5-module-content #basisList > li,
html.v45 body.f5-module-content #history .empty > p,
html.v45 body.f5-module-content .card.partner > p,
html.v45 body.f5-module-content .source-copy > span,
html.v45 body.f5-module-content .source-btn > .chev,
html.v45 body.f5-module-content .alert-copy > span,
html.v45 body.f5-module-content .timeline .time-row span,
html.v45 body.f5-module-content .case .due,
html.v45 .changes-state p,
html.v45 .menu-row > em {
  color: var(--v45-color-secondary) !important;
}

html.v45 body.f5-module-content .sidebar .status b,
html.v45 body.f5-module-content .sidebar .smallprint {
  color: var(--v45-color-on-dark) !important;
}

html.v45 body.f5-module-content .day.done > small,
html.v45 body.f5-module-content #today-dot > small {
  color: #7c2d12 !important;
}

html.v45 body.f5-module-content .pace-up {
  color: #16753a !important;
}

html.v45 body.f5-module-content .case .pill.false,
html.v45 body.f5-module-content .case .status.review {
  color: #73510b !important;
}
