/* Shared category colors. Presentation only: no links, handlers or safety gates change. */
:root { --action-hue:210; --action-fill-l:25%; --action-active-l:29%; --action-ink-l:97%; --action-edge-l:62%; }
[data-theme="light"], body.action-colors-page:not(.na-media-page) { --action-fill-l:92%; --action-active-l:85%; --action-ink-l:22%; --action-edge-l:42%; }
[data-action-tone="benefits"], [data-action-tone="ranking"], [data-action-tone="books"] { --action-hue:40; }
[data-action-tone="safe"], [data-action-tone="search"], [data-action-tone="news"] { --action-hue:210; }
[data-action-tone="law"] { --action-hue:245; }
[data-action-tone="religion"] { --action-hue:280; }
[data-action-tone="home"], [data-action-tone="realestate"], [data-action-tone="region"] { --action-hue:165; }
[data-action-tone="cctv"], [data-action-tone="travel"], [data-action-tone="share"] { --action-hue:190; }
[data-action-tone="tv"], [data-action-tone="gaming"], [data-action-tone="lab"] { --action-hue:267; }
[data-action-tone="tax"], [data-action-tone="health"], [data-action-tone="free-info"] { --action-hue:145; }
[data-action-tone="surname"] { --action-hue:22; }
[data-action-tone="birthday"], [data-action-tone="events"], [data-action-tone="entert"] { --action-hue:335; }
[data-action-tone="shopping"], [data-action-tone="shoplinks"] { --action-hue:350; }
[data-action-tone="usedmarket"], [data-action-tone="jobs"], [data-action-tone="albamon"], [data-action-tone="daangn-jobs"], [data-action-tone="food"] { --action-hue:25; }
[data-action-tone="alba"] { --action-hue:45; }
[data-action-tone="dongnealba"] { --action-hue:212; }
[data-action-tone="movies"] { --action-hue:305; }
[data-action-tone="youtube"] { --action-hue:0; }
[data-action-tone="all"], [data-action-tone="neutral"] { --action-hue:218; }
/* Outbound CTAs keep their semantic color even when the selected category changes. */
:is(.app-container, .yt-history, body.action-colors-page) :is(.recommend-share-button,.btn.kakao,[href*="pf.kakao.com"]) { --action-hue:45; }
:is(.app-container, .yt-history, body.action-colors-page) :is(.site-header-free-info,.free-info-dialog) { --action-hue:145; }
:is(.app-container, .yt-history, body.action-colors-page) :is(.site-header-ad,.hero-reset-btn,.modal-close,.free-info-close) { --action-hue:218; }
:is(.app-container, .yt-history, body.action-colors-page) .site-header-hub { --action-hue:350; }
:is(.app-container, .yt-history, body.action-colors-page) :is(.btn.arrive) { --action-hue:145; }
:is(.app-container, .yt-history, body.action-colors-page) :is(.sms,[href^="tel:112"],#recBtn,[data-action-tone="danger"]) { --action-hue:0; }
/* Native controls, menu tiles and text CTAs only. Image/product cards and map widgets keep their design. */
:is(.app-container, .yt-history, body.action-colors-page[data-action-tone]) :is(button,a[href],summary,[role="button"]):not(:disabled):not([aria-disabled="true"]):where(:not(.disabled):not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out):not(.leaflet-control-attribution a):not(a:has(img)):not(a[class*="card"])) {
  background:hsl(var(--action-hue) 60% var(--action-fill-l)) !important;
  color:hsl(var(--action-hue) 70% var(--action-ink-l)) !important;
  border-color:hsl(var(--action-hue) 65% var(--action-edge-l)) !important;
  border-radius:10px;
  /* Do not cross-fade ink/fill: intermediate theme colors can lose contrast. */
  transition-property:box-shadow,transform !important;
}
:is(.app-container, .yt-history, body.action-colors-page[data-action-tone]) :is(button,a[href],summary,[role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled) :is(span,small,svg) { color:inherit !important; }
:is(.app-container, .yt-history, body.action-colors-page[data-action-tone]) :is(button,a[href],summary,[role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled):is(.on,[aria-pressed="true"],[aria-selected="true"],[data-active="true"]) {
  background:hsl(var(--action-hue) 60% var(--action-active-l)) !important;
  box-shadow:inset 0 0 0 2px hsl(var(--action-hue) 70% var(--action-ink-l)) !important;
}
:is(.app-container, .yt-history, body.action-colors-page) :is(button,a[href],summary,[role="button"]):focus-visible { outline:3px solid hsl(var(--action-hue) 65% var(--action-edge-l)); outline-offset:3px; }
:is(.app-container, .yt-history, body.action-colors-page) :is(button,[role="button"]):is(:disabled,[aria-disabled="true"],.disabled) { opacity:.45; filter:grayscale(1); }
/* Small link labels gain a colored hit area without changing card/image links. */
.site-header-nav a[href], .site-header-tab { padding:7px 10px !important; border-radius:10px; }
.app-container a[href]:not(:has(img)):not([class*="card"]) { text-decoration:none; }
body.action-colors-page .top a, body.action-colors-page .hd>a { --action-hue:210; }
body.action-colors-page .top a[href^="/safe"], body.action-colors-page .top a[href^="/jip"] { --action-hue:165; }
.mobile-only-nav :is(button,a) { min-width:48px; min-height:48px; padding:4px 8px; }
@media (prefers-reduced-motion:no-preference) {
  :is(.app-container, .yt-history, body.action-colors-page) :is(button,a[href]):not(:disabled):not([aria-disabled="true"]):hover { outline:1px solid hsl(var(--action-hue) 65% var(--action-edge-l)); outline-offset:1px; }
}

/* Lucide passes explicit stroke attributes; use the same readable ink as the label. */
:is(.app-container, .yt-history, body.action-colors-page) :is(button,a[href]) svg { stroke:currentColor !important; }
