/* Giải Mã Giấc Mơ – components */
:root{--gm-ink:#1f1850;--gm-violet:#5b3fd1;--gm-violet-2:#7c63ea;--gm-gold:#f3b23c;--gm-gold-soft:#fff6e0;--gm-mist:#f4f2fd;--gm-line:#e4e0f6;--gm-text:#2b2840;--gm-muted:#6b6785;--gm-radius:14px}
.gm-breadcrumb ol{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-wrap:wrap;gap:.25rem;font-size:.86rem;color:var(--gm-muted)}
.gm-breadcrumb li+li:before{content:"›";margin:0 .35rem;color:#b7b1d6}
.gm-breadcrumb a{color:var(--gm-violet);text-decoration:none}
.gm-breadcrumb a:hover{text-decoration:underline}
.gm-meta{font-size:.88rem;color:var(--gm-muted);margin:0 0 1.2rem}
.gm-meta__by{font-weight:600;color:var(--gm-ink)}
.gm-summary{background:linear-gradient(135deg,#f6f3ff 0%,#fff8e9 100%);border:1px solid var(--gm-line);border-left:5px solid var(--gm-gold);border-radius:var(--gm-radius);padding:1rem 1.25rem;margin:0 0 1.5rem}
.gm-summary p{margin:.2rem 0}
.gm-summary__label{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gm-violet)}
.gm-toc{background:var(--gm-mist);border:1px solid var(--gm-line);border-radius:var(--gm-radius);padding:.9rem 1.2rem;margin:0 0 2rem}
.gm-toc summary{cursor:pointer;font-weight:700;color:var(--gm-ink)}
.gm-toc ol{margin:.6rem 0 0;padding-left:1.3rem;columns:2;column-gap:2rem}
.gm-toc li{margin:.25rem 0;break-inside:avoid}
.gm-toc a{color:var(--gm-text);text-decoration:none}
.gm-toc a:hover{color:var(--gm-violet)}
.gm-body h2,.gm-numbers,.gm-faq{scroll-margin-top:90px}
.gm-body table,.gm-numbers table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.95rem;overflow-x:auto;display:block}
.gm-body th,.gm-body td,.gm-numbers th,.gm-numbers td{border:1px solid var(--gm-line);padding:.55rem .75rem;text-align:left;vertical-align:top}
.gm-body thead th,.gm-numbers thead th{background:var(--gm-ink);color:#fff}
.gm-body tbody tr:nth-child(even),.gm-numbers tbody tr:nth-child(even){background:#faf9ff}
.gm-numbers table{display:table}
.gm-numbers__so{font-weight:700;color:var(--gm-violet);white-space:nowrap;font-variant-numeric:tabular-nums}
.gm-note{font-size:.86rem;color:var(--gm-muted);background:var(--gm-gold-soft);border-radius:10px;padding:.7rem .9rem}
.gm-faq details{border:1px solid var(--gm-line);border-radius:12px;margin:.6rem 0;background:#fff}
.gm-faq summary{cursor:pointer;padding:.85rem 1rem;font-weight:600;color:var(--gm-ink);list-style:none;position:relative;padding-right:2.4rem}
.gm-faq summary::-webkit-details-marker{display:none}
.gm-faq summary:after{content:"+";position:absolute;right:1rem;top:.7rem;font-size:1.3rem;color:var(--gm-violet)}
.gm-faq details[open] summary:after{content:"–"}
.gm-faq__a{padding:0 1rem .9rem}
.gm-faq__a p{margin:0}
.gm-author{display:flex;gap:1rem;align-items:flex-start;border-top:1px solid var(--gm-line);border-bottom:1px solid var(--gm-line);padding:1.2rem 0;margin:2.2rem 0;font-size:.92rem;color:var(--gm-muted)}
.gm-author img{border-radius:14px;flex:none}
.gm-author p{margin:.2rem 0}
.gm-author__name{font-weight:700;color:var(--gm-ink)!important}
.gm-related__title{font-size:1.35rem;margin:1.5rem 0 1rem}
.gm-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.gm-card{display:flex;flex-direction:column;border-radius:var(--gm-radius);overflow:hidden;background:#fff;border:1px solid var(--gm-line);text-decoration:none;color:var(--gm-ink);transition:transform .15s,box-shadow .15s}
.gm-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(31,24,80,.12)}
.gm-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.gm-card span{padding:.7rem .85rem;font-weight:600;font-size:.95rem;line-height:1.35}
.gm-catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.9rem}
.gm-catgrid__item{display:flex;flex-direction:column;gap:.25rem;padding:1.1rem;border-radius:var(--gm-radius);background:#fff;border:1px solid var(--gm-line);text-decoration:none;color:var(--gm-ink);transition:border-color .15s,transform .15s}
.gm-catgrid__item:hover{border-color:var(--gm-violet-2);transform:translateY(-2px)}
.gm-catgrid__icon{font-size:1.6rem}
.gm-catgrid__name{font-weight:700;line-height:1.3}
.gm-catgrid__count{font-size:.82rem;color:var(--gm-muted)}
.gm-search{display:flex;gap:.5rem;max-width:640px;width:100%;margin:0 auto}
.gm-search input{flex:1;min-width:0;padding:.9rem 1.1rem;border-radius:999px;border:2px solid rgba(255,255,255,.35);background:rgba(255,255,255,.95);font-size:1rem;color:var(--gm-text)}
.gm-search input:focus{outline:3px solid var(--gm-gold);outline-offset:1px}
.gm-search button{padding:.9rem 1.4rem;border-radius:999px;border:0;background:var(--gm-gold);color:var(--gm-ink);font-weight:700;font-size:1rem;cursor:pointer}
.gm-search button:hover{background:#ffc75a}
.gm-az__nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;position:sticky;top:0;background:#fff;padding:.5rem 0;z-index:2}
.gm-az__nav a{display:inline-flex;width:2.1rem;height:2.1rem;align-items:center;justify-content:center;border-radius:8px;background:var(--gm-mist);color:var(--gm-violet);font-weight:700;text-decoration:none}
.gm-az__list{columns:3;column-gap:2rem;padding-left:1.1rem}
.gm-az__list li{margin:.2rem 0;break-inside:avoid}
.gm-archive-intro{max-width:780px;color:var(--gm-muted)}
.gm-xs-table td,.gm-xs-table th{text-align:center!important}
.gm-xs-wrap{overflow-x:auto}
.gm-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--gm-mist);color:var(--gm-violet);font-weight:700;margin:.15rem;font-variant-numeric:tabular-nums}
.gm-pill--hot{background:#ffe6e6;color:#b42318}
.gm-pill--cold{background:#e8f1ff;color:#1d4ed8}
@media (max-width:781px){.gm-related__grid{grid-template-columns:1fr 1fr}.gm-toc ol{columns:1}.gm-az__list{columns:2}.gm-search{flex-direction:column}.gm-search button{width:100%}}
@media (max-width:480px){.gm-related__grid{grid-template-columns:1fr}.gm-az__list{columns:1}}
