:root {
    --gg-ink: #24392f;
    --gg-ink-soft: #526b61;
    --gg-jade: #3d786a;
    --gg-jade-deep: #24594f;
    --gg-gold: #c7a35d;
    --gg-gold-light: #ead8a9;
    --gg-paper: rgba(255, 253, 243, .84);
    --gg-line: rgba(172, 139, 74, .42);
    --gg-serif: "Times New Roman", "Noto Serif", serif;
    --gg-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

html:has(body.jlpt180-gg-page),
body.jlpt180-gg-page {
    width: 100%;
    min-height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden;
    color: var(--gg-ink);
    background: #eaf0ea !important;
    font-family: var(--gg-sans) !important;
}

body.jlpt180-gg-page .site-header,
body.jlpt180-gg-page #masthead,
body.jlpt180-gg-page .site-footer,
body.jlpt180-gg-page #colophon,
body.jlpt180-gg-page .sidebar-main,
body.jlpt180-gg-page #secondary { display: none !important; }

body.jlpt180-gg-page .site,
body.jlpt180-gg-page .site-content,
body.jlpt180-gg-page .content-area,
body.jlpt180-gg-page .site-main,
body.jlpt180-gg-page .entry-content,
body.jlpt180-gg-page .ast-container,
.jlpt180-gg-shell {
    width: 100% !important;
    max-width: none !important;
    min-height: 100vh;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.jlpt180-gg-wrap,
.jlpt180-gg-wrap *,
.jlpt180-gg-wrap *::before,
.jlpt180-gg-wrap *::after { box-sizing: border-box; }

.jlpt180-gg-wrap {
    position: relative;
    isolation: isolate;
    width: 100%;
    min-height: 100vh;
    padding: 14px clamp(18px, 3vw, 52px) 28px;
    color: var(--gg-ink);
    font: 500 14px/1.4 var(--gg-sans);
    background-color: #f6f0df;
    background-image: linear-gradient(rgba(255, 253, 244, .12), rgba(238, 244, 236, .08)), var(--gg-ledger-bg);
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}

.jlpt180-gg-wrap :where(h1, h2, h3, p) { margin: 0; }
.jlpt180-gg-wrap :where(button, input, select, a) { font: inherit; }
.jlpt180-gg-wrap :where(article, section, aside, header) { margin: 0 !important; }
.jlpt180-gg-wrap * { letter-spacing: normal; text-transform: none; font-variant: normal; }
.jlpt180-gg-wrap button { cursor: pointer; }
.jlpt180-gg-wrap a { color: inherit; text-decoration: none; }

.gg-ico {
    display: inline-block;
    flex: 0 0 auto;
    width: 56px;
    aspect-ratio: 1.125 / 1;
    background-image: var(--gg-icon-atlas);
    background-repeat: no-repeat;
    background-size: 400% 300%;
}
.gg-ico.is-temple { background-position: 0 0; }
.gg-ico.is-bricks { background-position: 33.333% 0; }
.gg-ico.is-server { background-position: 66.667% 0; }
.gg-ico.is-book { background-position: 100% 0; }
.gg-ico.is-hammer { background-position: 0 50%; }
.gg-ico.is-crystal { background-position: 33.333% 50%; }
.gg-ico.is-bank { background-position: 66.667% 50%; }
.gg-ico.is-message { background-position: 100% 50%; }

.gg-ledger-topbar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    min-height: 46px;
    padding: 0 20px;
}
.gg-ledger-brand { display: flex; align-items: center; gap: 7px; }
.gg-ledger-brand .gg-ico { width: 38px; margin: -6px 0; }
.gg-ledger-brand strong { font: 700 23px/1 var(--gg-serif); color: #1d2f28; }
.gg-ledger-trust { display: flex; gap: 12px; }
.gg-ledger-trust span,
.gg-ledger-home {
    padding: 7px 22px;
    border: 1px solid rgba(178, 147, 88, .35);
    border-radius: 999px;
    background: rgba(255, 253, 244, .56);
    color: #41554a;
    font-family: var(--gg-serif);
    font-size: 15px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.gg-ledger-home { justify-self: end; color: #24638c; font-family: var(--gg-sans); font-weight: 700; }

.gg-ledger-title { padding: 2px 0 10px; text-align: center; }
.gg-ledger-title h1 {
    color: #29453a;
    font: 500 clamp(32px, 3.4vw, 52px)/1.05 var(--gg-serif) !important;
    text-transform: uppercase;
    text-shadow: 0 2px 0 rgba(255,255,255,.7);
}
.gg-ledger-title p { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 3px; color: #756247; font: 18px/1.2 var(--gg-serif); }
.gg-ledger-title p span,
.gg-ledger-card > h2 > span { width: 74px; height: 1px; background: linear-gradient(90deg, transparent, var(--gg-gold), transparent); }
.gg-learning-ribbon { display: flex; align-items: center; justify-content: center; gap: 10px; width: min(100%, 950px); margin: 8px auto 0; padding: 7px 16px; border: 1px solid rgba(180,146,77,.3); border-radius: 999px; background: linear-gradient(90deg, rgba(255,250,230,.35), rgba(223,241,231,.72), rgba(255,250,230,.35)); color: #466457; box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
.gg-learning-ribbon b { font-size: 12px; }
.gg-learning-ribbon i { width: 5px; height: 5px; border-radius: 50%; background: #c39b4e; box-shadow: 0 0 0 3px rgba(195,155,78,.12); }

.gg-ledger-dashboard {
    display: grid;
    grid-template-columns: minmax(235px, .68fr) minmax(700px, 2fr) minmax(390px, 1.08fr);
    gap: clamp(14px, 1.6vw, 26px);
    width: min(100%, 1760px);
    margin: 0 auto;
}
.gg-ledger-card {
    position: relative;
    border: 1px solid var(--gg-line);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(255, 253, 244, .87), rgba(245, 249, 241, .73));
    box-shadow: 0 12px 28px rgba(56, 72, 57, .12), inset 0 0 0 4px rgba(255,255,255,.42), inset 0 0 28px rgba(198,165,94,.08);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.gg-ledger-card::before,
.gg-ledger-card::after {
    position: absolute;
    content: "";
    pointer-events: none;
}
.gg-ledger-card::before {
    z-index: 0;
    inset: 8px;
    width: auto;
    height: auto;
    border: 1px solid rgba(199, 163, 93, .42);
    border-radius: 17px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.58);
}
.gg-ledger-card::after { display: none; }
.gg-ledger-card > * { position: relative; z-index: 1; }
.gg-ledger-card > h2 { display: flex; align-items: center; justify-content: center; gap: 10px; color: #55462f; font: 500 20px/1.2 var(--gg-serif); text-align: center; }
.gg-ledger-card > h2 > span { width: 46px; }

.gg-profile-card { display: flex; flex-direction: column; align-items: center; min-height: 1050px; padding: 18px 18px 14px; }
.gg-profile-avatar {
    display: grid;
    place-items: center;
    width: 124px;
    height: 124px;
    padding: 7px;
    border: 2px solid #d6b86f;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.95), rgba(177,218,203,.52));
    box-shadow: 0 0 0 8px rgba(101,155,136,.13), 0 0 0 10px rgba(201,166,96,.24);
}
.gg-profile-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.gg-profile-avatar .gg-ico { width: 94px; }
.gg-profile-card h2 { width: 100%; margin-top: 12px; overflow: hidden; color: #29463b; font: 700 21px/1.15 var(--gg-serif); text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.gg-current-rank { width: 92%; margin-top: 7px; padding: 7px; border: 1px solid rgba(177,143,69,.45); border-radius: 13px; background: linear-gradient(90deg, rgba(164,202,187,.32), rgba(255,250,228,.82), rgba(164,202,187,.32)); color: #385d50; font: 700 23px/1 var(--gg-serif); text-align: center; }
.gg-rank-caption { margin: 5px 0 12px !important; color: #6a746c; font-family: var(--gg-serif); }
.gg-merit-rank-note { width: 92%; margin: -5px 0 12px !important; padding: 6px 9px; border: 1px solid rgba(198,151,44,.34); border-radius: 10px; background: rgba(255,247,211,.72); color: #72571a; font-size: 12px; line-height: 1.35; text-align: center; }
.gg-merit-rank-note strong { color: #a35b08; }
.gg-profile-stats { display: grid; gap: 8px; width: 100%; }
.gg-profile-stats > div { display: grid; grid-template-columns: 1fr auto; align-items: end; padding: 9px 12px; border: 1px solid rgba(181,148,81,.32); border-radius: 12px; background: rgba(255,253,244,.62); }
.gg-profile-stats span { grid-column: 1 / -1; color: #607165; font-family: var(--gg-serif); }
.gg-profile-stats strong { color: #285b4d; font: 700 31px/1 var(--gg-serif); }
.gg-profile-stats small { color: #718077; }
.gg-rank-progress { width: 100%; margin-top: 9px; padding: 8px 10px; border: 1px solid rgba(167,136,73,.28); border-radius: 12px; background: rgba(235,245,237,.6); }
.gg-rank-progress > div:first-child { display: flex; justify-content: space-between; gap: 8px; color: #4d665b; font-size: 10px; }
.gg-rank-progress > div:first-child strong { color: #916d2e; }
.gg-rank-progress__bar { height: 7px; margin-top: 6px; overflow: hidden; border-radius: 99px; background: rgba(86,129,109,.14); }
.gg-rank-progress__bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #4f997d, #e0b857); box-shadow: 0 0 10px rgba(213,174,83,.45); }
.gg-rank-progress.is-complete { color: #866624; text-align: center; }
.gg-stipend-button { display: grid; grid-template-columns: 1fr auto; align-items: center; width: 100%; margin-top: 8px; padding: 8px 11px; border: 1px solid rgba(206,161,64,.48); border-radius: 12px; background: linear-gradient(135deg, rgba(255,239,177,.8), rgba(220,242,231,.84)); color: #3a5f50; box-shadow: inset 0 1px 0 #fff9d9, 0 4px 12px rgba(123,92,37,.12); }
.gg-stipend-button span { font-size: 11px; font-weight: 800; }
.gg-stipend-button b { color: #916817; font-family: var(--gg-serif); }
.gg-stipend-button.is-claimed { opacity: .62; cursor: default; filter: grayscale(.25); }
.gg-stipend-button.is-loading { opacity: .7; cursor: wait; }
.gg-conversion-rule { width: 100%; margin-top: 9px; padding: 8px 10px; border-radius: 12px; background: rgba(251,247,229,.62); text-align: center; }
.gg-conversion-rule > * { display: block; }
.gg-conversion-rule span { color: #725d37; font: 16px var(--gg-serif); }
.gg-conversion-rule strong, .gg-conversion-rule b { color: #39594e; }
.gg-conversion-rule small { margin-top: 4px; color: #748078; font-size: 10px; }
.gg-next-unlock { width: 100% !important; margin: 14px 0 0 !important; padding: 14px 13px !important; border: 2px solid rgba(226,167,41,.52) !important; border-radius: 17px !important; background: linear-gradient(145deg,rgba(255,225,112,.7),rgba(225,247,238,.8)) !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.48),0 8px 20px rgba(124,89,22,.14) !important; text-align: center !important; }
.gg-next-unlock > * { display: block !important; margin: 0 !important; }
.gg-next-unlock small { color: #a2690d !important; font: 900 9.5px/1.2 var(--gg-sans) !important; letter-spacing: .07em !important; text-transform: uppercase !important; }
.gg-next-unlock strong { margin-top: 4px !important; color: #2d584a !important; font: 900 24px/1.05 var(--gg-serif) !important; }
.gg-next-unlock p { margin-top: 7px !important; color: #49675b !important; font: 700 11.5px/1.38 var(--gg-sans) !important; }
.gg-next-unlock b { margin-top: 9px !important; padding: 7px 9px !important; border-radius: 999px !important; background: linear-gradient(90deg,#d8951c,#f2bd42) !important; color: #fff !important; font: 900 11.5px/1.2 var(--gg-sans) !important; text-shadow: 0 1px 2px rgba(97,56,0,.45) !important; box-shadow: 0 5px 12px rgba(194,123,9,.23) !important; }

.gg-rank-path { min-width: 0; min-height: 1515px; padding: 16px 18px 14px; overflow: hidden; }
.gg-rank-intro { width: calc(100% - 28px); margin: 8px auto 0 !important; color: #3e6658; font: 800 13px/1.38 var(--gg-sans) !important; text-align: center; }
.gg-rank-value-strip { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 6px !important; width: 100% !important; margin: 9px 0 0 !important; padding: 0 !important; }
.gg-rank-value-strip span { display: flex !important; align-items: center !important; justify-content: center !important; min-height: 30px !important; padding: 5px 7px !important; border: 1px solid rgba(196,151,57,.34) !important; border-radius: 999px !important; background: linear-gradient(135deg,rgba(255,239,165,.78),rgba(224,249,240,.82)) !important; color: #66501f !important; font: 850 10.5px/1.15 var(--gg-sans) !important; text-align: center !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.88),0 3px 9px rgba(129,96,26,.1) !important; }
.gg-rank-rail { display: none; }
.gg-rank-list { position: relative; z-index: 1; display: grid !important; grid-template-columns: 1fr !important; grid-auto-rows: 226px; align-items: start; gap: 12px; width: 100% !important; min-width: 0; height: auto !important; margin: 10px 0 0 !important; padding: 0 !important; }
.jlpt180-gg-wrap .gg-rank-row { position: relative; display: grid !important; grid-template-columns: minmax(0, 1fr) 110px !important; grid-template-rows: 1fr !important; align-items: center !important; align-content: center !important; justify-items: stretch !important; gap: 16px !important; width: 100% !important; max-width: none !important; min-width: 0 !important; min-height: 226px !important; height: 226px !important; margin: 0 !important; padding: 17px 15px 17px 22px !important; overflow: hidden !important; border: 2px solid rgba(185,148,72,.68) !important; border-radius: 22px !important; background-repeat: no-repeat !important; background-size: cover !important; background-position: center !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.78), 0 10px 24px rgba(65,86,72,.18) !important; transition: .2s ease; }
.gg-rank-row::after { position: absolute; z-index: 1; inset: 0; border-radius: inherit; background: linear-gradient(90deg,rgba(255,253,239,.97) 0%,rgba(255,250,225,.92) 48%,rgba(255,250,225,.5) 70%,rgba(255,255,255,.05) 100%); content: ""; pointer-events: none; }
.gg-rank-row::before { position: absolute; z-index: 0; top: 14px; bottom: 14px; left: 0; width: 5px; border-radius: 0 8px 8px 0; background: linear-gradient(#74c8a8,#d9ad48); box-shadow: 0 0 13px rgba(82,180,143,.55); content: ""; }
.gg-rank-row:hover, .gg-rank-row:focus { outline: none; border-color: rgba(207,161,64,.7) !important; transform: translateY(-2px); box-shadow: inset 0 1px 0 #fff, 0 10px 24px rgba(81,105,89,.16) !important; }
.jlpt180-gg-wrap .gg-rank-row > div { position: relative; z-index: 2; display: grid !important; grid-template-columns: 1fr !important; grid-template-areas: "name" "tagline" "benefits" !important; align-content: center !important; align-items: start !important; width: 100% !important; max-width: none !important; min-width: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: left !important; }
.jlpt180-gg-wrap .gg-rank-row strong { grid-area: name; display: block !important; width: auto !important; margin: 0 !important; color: #244c3e; font: 900 30px/1.02 var(--gg-serif) !important; white-space: nowrap !important; word-break: normal !important; overflow-wrap: normal !important; text-shadow: 0 1px 0 #fff,0 2px 8px rgba(255,255,255,.7); }
.jlpt180-gg-wrap .gg-rank-row em { grid-area: tagline; display: block !important; width: 100% !important; margin: 4px 0 0 !important; overflow: visible !important; color: #a36b08; font: 900 16px/1.22 var(--gg-sans) !important; font-style: normal !important; white-space: normal !important; text-overflow: clip !important; word-break: normal !important; }
.jlpt180-gg-wrap .gg-rank-row small { grid-area: benefit; display: block !important; width: 100% !important; max-width: 100% !important; overflow: visible !important; margin: 5px 0 0 !important; color: #365e50; font: 750 14.5px/1.3 var(--gg-sans) !important; white-space: normal !important; text-overflow: clip !important; word-break: normal !important; overflow-wrap: break-word !important; }
.jlpt180-gg-wrap .gg-rank-benefits { grid-area: benefits; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px 8px !important; width: 100% !important; margin: 10px 0 0 !important; padding: 0 !important; list-style: none !important; }
.jlpt180-gg-wrap .gg-rank-benefits li { display: grid !important; grid-template-columns: 9px minmax(0,1fr) !important; align-items: start !important; gap: 7px !important; min-width: 0 !important; margin: 0 !important; padding: 6px 8px !important; border: 1px solid rgba(180,142,63,.27) !important; border-radius: 10px !important; background: rgba(255,253,241,.88) !important; box-shadow: inset 0 1px 0 #fff,0 3px 8px rgba(89,64,19,.08) !important; }
.jlpt180-gg-wrap .gg-rank-benefits li > i { width: 7px !important; height: 7px !important; margin-top: 4px !important; border-radius: 50% !important; background: currentColor !important; box-shadow: 0 0 0 3px rgba(36,112,91,.14) !important; }
.jlpt180-gg-wrap .gg-rank-benefits li > b { display: block !important; min-width: 0 !important; color: inherit !important; font: 900 14px/1.25 var(--gg-sans) !important; overflow-wrap: break-word !important; }
.jlpt180-gg-wrap .gg-rank-benefits li:nth-child(4n+1) { color: #08785f !important; }
.jlpt180-gg-wrap .gg-rank-benefits li:nth-child(4n+2) { color: #1569b6 !important; }
.jlpt180-gg-wrap .gg-rank-benefits li:nth-child(4n+3) { color: #8b42b6 !important; }
.jlpt180-gg-wrap .gg-rank-benefits li:nth-child(4n+4) { color: #b05d00 !important; }
.jlpt180-gg-wrap .gg-rank-benefits li:last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
.gg-rank-row > b { position: relative; z-index: 3; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; align-self: stretch !important; width: 110px !important; margin: 0 !important; padding: 9px 7px !important; border: 2px solid rgba(224,170,54,.66) !important; border-radius: 17px !important; background: linear-gradient(145deg,rgba(255,252,225,.96),rgba(255,213,92,.9)) !important; color: #806024; font: 850 12px/1.15 var(--gg-sans) !important; text-align: center !important; box-shadow: inset 0 2px 0 #fff,0 6px 16px rgba(114,81,20,.2),0 0 18px rgba(255,196,51,.2) !important; }
.gg-rank-row > b i { display: block !important; margin-bottom: 4px !important; color: #b57712 !important; font: 900 8px/1 var(--gg-sans) !important; font-style: normal !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
.gg-rank-row > b span { color: #604a20 !important; font-size: 11.5px !important; white-space: nowrap !important; }
.gg-rank-row.is-unlocked { border-color: rgba(77,151,121,.56) !important; box-shadow: inset 0 0 0 2px rgba(77,151,121,.1), 0 8px 20px rgba(69,126,103,.13) !important; }
.gg-rank-row.tier-1 { background-image: url("../img/rank-banner-tan-tu-v1.webp") !important; border-color: rgba(72,156,119,.62) !important; }
.gg-rank-row.tier-2 { background-image: url("../img/rank-banner-tap-dich-v1.webp") !important; border-color: rgba(65,151,222,.62) !important; }
.gg-rank-row.tier-3 { background-image: url("../img/rank-banner-ngoai-mon-v1.webp") !important; border-color: rgba(35,177,159,.62) !important; }
.gg-rank-row.tier-4 { background-image: url("../img/rank-banner-noi-mon-v1.webp") !important; border-color: rgba(141,82,216,.6) !important; }
.gg-rank-row.tier-5 { background-image: url("../img/rank-banner-than-truyen-v1.webp") !important; border-color: rgba(220,155,21,.7) !important; }
.gg-rank-row.tier-6 { background-image: url("../img/rank-banner-truong-lao-v1.webp") !important; border-color: rgba(221,103,55,.7) !important; }

.gg-contribute-card { min-height: 1050px; padding: 16px 24px 14px; }
.gg-money-brick-note { display: flex; align-items: center; justify-content: center; gap: 8px 12px; flex-wrap: wrap; margin: 10px 0 2px !important; padding: 9px 12px; border: 1px solid rgba(194,137,52,.34); border-radius: 12px; background: linear-gradient(180deg,rgba(255,251,231,.94),rgba(255,244,207,.86)); color: #5d513d; text-align: center; box-shadow: inset 0 1px 0 rgba(255,255,255,.86); }
.gg-money-brick-note strong { color: #a3482f; font-family: var(--gg-serif); font-size: 15px; line-height: 1.3; }
.gg-money-brick-note span { color: #65756c; font-size: 11px; line-height: 1.4; }
.gg-field-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; margin-top: 15px; }
.gg-field-row label, .gg-field-stack label { color: #53665c; font-family: var(--gg-serif); }
.gg-stepper { display: grid; grid-template-columns: 43px 86px 43px; overflow: hidden; border: 1px solid rgba(182,144,67,.45); border-radius: 999px; background: rgba(255,252,240,.78); }
.gg-stepper button { border: 0; background: transparent; color: #876d3d; font-size: 25px; }
.gg-stepper input { width: 100%; padding: 8px 2px; border: 0; border-right: 1px solid rgba(182,144,67,.28); border-left: 1px solid rgba(182,144,67,.28); outline: 0; background: transparent; color: #31483d; font: 700 20px var(--gg-serif); text-align: center; appearance: textfield; }
.gg-stepper input::-webkit-outer-spin-button, .gg-stepper input::-webkit-inner-spin-button { margin: 0; appearance: none; }
.gg-converted { padding: 10px 13px; border: 1px solid rgba(184,145,72,.25); border-radius: 12px; background: rgba(255,252,240,.57); }
.gg-converted strong { color: #31594b; font: 700 22px var(--gg-serif); }
.gg-converted span { grid-column: 2; color: #68766e; font-size: 11px; text-align: right; }
.gg-contribution-preview { margin-top: 9px; padding: 10px 12px; border: 1px solid rgba(186,145,66,.34); border-radius: 13px; background: linear-gradient(100deg, rgba(255,240,184,.52), rgba(219,241,231,.62)); color: #3e6556; font-size: 11px; font-weight: 800; line-height: 1.35; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); }
.gg-field-stack { display: grid; grid-template-columns: 1fr 1.6fr; align-items: center; gap: 10px; margin-top: 11px; }
.gg-field-stack select { width: 100%; padding: 10px 36px 10px 13px; border: 1px solid rgba(179,142,72,.35); border-radius: 12px; outline: 0; background: rgba(255,253,244,.82); color: #3d5148; font-weight: 700; }
.gg-method-panes { margin-top: 10px; }
.gg-method-pane { display: none; grid-template-columns: 1fr 86px; gap: 10px; min-height: 92px; padding: 10px 12px; border: 1px solid rgba(179,142,72,.32); border-radius: 13px; background: rgba(255,253,245,.7); }
.gg-method-pane.is-active { display: grid; }
.gg-method-pane small, .gg-method-pane strong { display: block; }
.gg-method-pane small { color: #7f806f; }
.gg-method-pane strong { margin: 1px 0 3px; color: #344d43; font-family: var(--gg-serif); }
.gg-method-pane p { color: #5c6d64; font-size: 11px; }
.gg-mini-qr { overflow: hidden; width: 80px; height: 80px; padding: 4px; border: 1px solid var(--gg-gold-light); border-radius: 10px; background: #fff; }
.gg-mini-qr img { width: 100%; height: 100%; object-fit: contain; }
.gg-payment-code { display: grid; grid-template-columns: 1fr auto; align-items: center; margin-top: 10px; padding: 8px 12px; border: 1px dashed rgba(72,113,96,.38); border-radius: 11px; background: rgba(220,238,228,.42); }
.gg-payment-code span { color: #68776f; font-size: 11px; }
.gg-payment-code strong { color: #27594b; letter-spacing: .08em; }
.gg-payment-code-note { margin: 7px 0 0 !important; padding: 8px 10px; border-left: 3px solid #c9543d; border-radius: 8px; background: #fff4ec; color: #5f5149; font-size: 11px; line-height: 1.5; }
.gg-payment-code-note strong, .gg-payment-code-note b { color: #a43f2f; }
.gg-contribute-submit { display: flex; align-items: center; justify-content: center; gap: 14px; width: 100%; margin-top: 12px; padding: 14px 16px; border: 2px solid #ffd86b; border-radius: 999px; background: linear-gradient(100deg,#f19a28,#ffd74f 48%,#ee7c2c); color: #fffdf3; font: 900 20px var(--gg-serif); text-shadow: 0 2px 3px #8c4d0c; box-shadow: inset 0 2px 0 rgba(255,255,255,.68),0 0 0 4px rgba(255,201,66,.14),0 9px 24px rgba(207,119,15,.32); }
.gg-contribute-submit:hover { filter: brightness(1.05); transform: translateY(-1px); }
.gg-payment-report-open { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; margin: 10px 0 0 !important; padding: 11px 14px !important; border: 2px solid rgba(55,152,202,.48) !important; border-radius: 999px !important; background: linear-gradient(100deg,rgba(222,248,255,.96),rgba(231,225,255,.96),rgba(255,230,244,.96)) !important; color: #185c83 !important; font: 900 14px/1.2 var(--gg-sans) !important; box-shadow: inset 0 1px 0 #fff,0 7px 18px rgba(65,117,164,.18),0 0 0 4px rgba(92,185,226,.08) !important; }
.gg-payment-report-open:hover { border-color: #3c9dd0 !important; color: #873c9d !important; transform: translateY(-1px); }
.gg-payment-report-open.is-loading { opacity: .68 !important; cursor: wait !important; }
.gg-payment-report-latest { display: grid !important; gap: 3px !important; width: 100% !important; margin: 9px 0 0 !important; padding: 10px 12px !important; border: 1px solid rgba(205,153,48,.36) !important; border-radius: 13px !important; background: rgba(255,248,211,.76) !important; color: #72511b !important; }
.gg-payment-report-latest[hidden] { display: none !important; }
.gg-payment-report-latest small { color: #7c735e !important; font: 750 10px/1.2 var(--gg-sans) !important; }
.gg-payment-report-latest strong { color: #9b670c !important; font: 900 13px/1.2 var(--gg-sans) !important; }
.gg-payment-report-latest span { color: #6d6d63 !important; font: 650 10.5px/1.25 var(--gg-sans) !important; }
.gg-payment-report-latest.is-approved { border-color: rgba(47,153,101,.38) !important; background: rgba(221,249,232,.8) !important; }
.gg-payment-report-latest.is-approved strong { color: #137044 !important; }
.gg-payment-report-latest.is-rejected { border-color: rgba(213,74,82,.35) !important; background: rgba(255,229,231,.78) !important; }
.gg-payment-report-latest.is-rejected strong { color: #ad2e3b !important; }
.gg-security-note { margin-top: 6px !important; color: #728078; font-size: 10px; text-align: center; }
.gg-contribute-benefits { width: 100% !important; margin: 18px 0 0 !important; padding: 14px !important; border: 1px solid rgba(183,137,44,.42) !important; border-radius: 18px !important; background: linear-gradient(145deg,rgba(255,244,187,.72),rgba(217,246,237,.76)) !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.5),0 8px 22px rgba(87,109,84,.12) !important; }
.gg-contribute-benefits > strong { display: block !important; margin-bottom: 9px !important; color: #7f5712 !important; font: 900 15px/1.2 var(--gg-sans) !important; text-align: center !important; text-transform: uppercase !important; letter-spacing: .04em !important; }
.gg-contribute-benefits > div { display: grid !important; grid-template-columns: 15px 1fr !important; align-items: start !important; gap: 8px !important; padding: 8px 5px !important; border-top: 1px solid rgba(162,130,60,.17) !important; }
.gg-contribute-benefits > div > span { width: 11px !important; height: 11px !important; margin-top: 4px !important; border: 2px solid #e3a826 !important; background: #fff6bd !important; box-shadow: 0 0 9px rgba(225,164,28,.55) !important; transform: rotate(45deg) !important; }
.gg-contribute-benefits p,.gg-contribute-benefits b,.gg-contribute-benefits small { display: block !important; margin: 0 !important; }
.gg-contribute-benefits b { color: #315b4d !important; font: 850 13px/1.25 var(--gg-sans) !important; }
.gg-contribute-benefits small { margin-top: 2px !important; color: #5e7068 !important; font: 650 11px/1.3 var(--gg-sans) !important; }

.gg-heading-ico { width: 29px !important; height: 26px !important; margin: -5px -3px -4px 0; }
.jlpt180-gg-wrap .gg-tianjiao { width: min(100%, 1540px) !important; margin: 16px auto 0 !important; padding: 18px !important; border: 2px solid #d6b06a !important; border-radius: 28px !important; background-color: #fff9ef !important; background-image: linear-gradient(180deg,#fffdf8 0%,#f9f1df 100%) !important; box-shadow: inset 0 0 0 5px rgba(255,255,255,.84),0 14px 32px rgba(137,101,34,.14) !important; overflow: hidden !important; font-family: "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif !important; }
.jlpt180-gg-wrap .gg-tianjiao h2, .jlpt180-gg-wrap .gg-tianjiao h2 *, .jlpt180-gg-wrap .gg-tianjiao .gg-tianjiao-note, .jlpt180-gg-wrap .gg-tianjiao .gg-tianjiao-head, .jlpt180-gg-wrap .gg-tianjiao .gg-tianjiao-row, .jlpt180-gg-wrap .gg-tianjiao .gg-tianjiao-row * { font-family: "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif !important; }
.gg-tianjiao-note { margin: 2px 0 14px !important; color: #68786f; font-size: 12.5px; line-height: 1.45; text-align: center; }
.jlpt180-gg-wrap .gg-tianjiao-table { display: grid !important; gap: 12px !important; width: 100% !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; padding: 12px !important; border: 1.5px solid rgba(214,176,107,.52) !important; border-radius: 24px !important; background-color: #fffdf7 !important; background-image: linear-gradient(180deg,rgba(255,251,242,.98),rgba(244,249,246,.95)) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.98),0 6px 18px rgba(129,103,58,.07) !important; box-sizing: border-box !important; }
.jlpt180-gg-wrap .gg-tianjiao-head, .jlpt180-gg-wrap .gg-tianjiao-row { display: grid !important; grid-template-columns: 70px minmax(0,1.7fr) minmax(190px,.9fr) 130px !important; align-items: center !important; gap: 12px !important; width: 100% !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; box-sizing: border-box !important; }
.jlpt180-gg-wrap .gg-tianjiao-head { min-height: 44px !important; padding: 0 16px !important; border: 1.5px solid rgba(203,161,82,.56) !important; border-radius: 18px !important; background-color: #fff1ce !important; background-image: linear-gradient(180deg,#fff7e0 0%,#f5e8c6 100%) !important; color: #5c6e63 !important; font: 800 10.5px/1.2 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif !important; letter-spacing: .03em !important; text-transform: none !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.92),0 4px 10px rgba(166,132,64,.08) !important; }
.gg-tianjiao-head span:last-child { text-align: right; }
.jlpt180-gg-wrap .gg-tianjiao-row { min-height: 66px !important; height: auto !important; padding: 10px 14px !important; border: 2px solid #b7d0c3 !important; border-radius: 20px !important; background-color: #f3fbf7 !important; background-image: linear-gradient(135deg,#fbfffc 0%,#edf8f1 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.98),0 7px 18px rgba(69,111,92,.1) !important; overflow: hidden !important; }
.jlpt180-gg-wrap article.gg-tianjiao-row { float: none !important; inset: auto !important; position: relative !important; transform: none !important; }
.jlpt180-gg-wrap .gg-tianjiao-row.is-top-1 { border: 2px solid #dfb256 !important; background-color: #fff3c9 !important; background-image: linear-gradient(135deg,#fff8db 0%,#f5e1a1 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.96),0 8px 18px rgba(177,128,28,.16) !important; }
.jlpt180-gg-wrap .gg-tianjiao-row.is-top-2 { border: 2px solid #8fb8ad !important; background-color: #e8f6f0 !important; background-image: linear-gradient(135deg,#f4fcf8 0%,#dbeee6 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.96),0 8px 18px rgba(72,120,108,.12) !important; }
.jlpt180-gg-wrap .gg-tianjiao-row.is-top-3 { border: 2px solid #d2a27a !important; background-color: #faede4 !important; background-image: linear-gradient(135deg,#fff8f1 0%,#efd9c6 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.96),0 8px 18px rgba(153,96,57,.12) !important; }
.gg-tianjiao-position { display: grid; place-items: center; width: 38px; height: 38px; border: 1.5px solid rgba(191,145,48,.55); border-radius: 13px; background: linear-gradient(145deg,#fff8dc,#f1dfa9); color: #7d5b19; font: 900 15px/1 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif; box-shadow: inset 0 1px 0 rgba(255,255,255,.9),0 3px 8px rgba(154,112,22,.1); }
.gg-tianjiao-row.is-top-1 .gg-tianjiao-position, .gg-tianjiao-row.is-top-2 .gg-tianjiao-position, .gg-tianjiao-row.is-top-3 .gg-tianjiao-position { box-shadow: inset 0 1px 0 rgba(255,255,255,.92),0 5px 16px rgba(154,112,22,.12); }
.gg-tianjiao-person { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 10px; min-width: 0; }
.gg-tianjiao-person > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1.5px solid rgba(73,132,107,.38); border-radius: 12px; background: linear-gradient(145deg,#f2fbf5,#dcece3); color: #3f6757; font: 800 14px/1 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif; box-shadow: inset 0 1px 0 rgba(255,255,255,.88); }
.gg-tianjiao-person strong { min-width: 0; overflow: hidden; color: #315448; font-size: 14px; font-weight: 800; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.gg-tianjiao-row em { justify-self: start; max-width: 100%; padding: 6px 11px; overflow: hidden; border: 1px solid rgba(82,137,113,.38); border-radius: 999px; background: linear-gradient(180deg,#eef8f2,#e2f0e8); color: #3f6656; font: 800 11.5px/1.25 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.gg-tianjiao-row.tier-2 em { border-color: rgba(74,140,105,.44); background-color: #e2f3e4; background-image: linear-gradient(180deg,#eff9f0,#dbefde); color: #356248; }
.gg-tianjiao-row.tier-3 em { border-color: rgba(187,142,47,.46); background-color: #fceec1; background-image: linear-gradient(180deg,#fff6dc,#f3e4b7); color: #7c5d1c; }
.gg-tianjiao-row.tier-4 em { border-color: rgba(172,113,47,.46); background-color: #f7dfbe; background-image: linear-gradient(180deg,#fff0dd,#edd3af); color: #7a4f1c; }
.gg-tianjiao-row.tier-5 em { border-color: rgba(129,91,156,.42); background-color: #eee2f6; background-image: linear-gradient(180deg,#f7effd,#e8daf1); color: #68477d; }
.gg-tianjiao-bricks { color: #8b6a2c; font: 900 15px/1.2 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif; text-align: right; white-space: nowrap; }
.gg-tianjiao-bricks small { color: #868d87; font: 700 11px/1.2 "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif; }
.gg-tianjiao-empty { padding: 28px 16px; border: 1px dashed rgba(190,170,132,.4); border-radius: 18px; color: #718178; text-align: center; background: rgba(255,255,255,.55); }
.gg-ledger-bottom { display: grid; grid-template-columns: 2fr 1fr; align-items: stretch; gap: clamp(14px, 1.6vw, 26px); width: min(100%, 1540px); margin: 16px auto 0; }
.jlpt180-gg-wrap .gg-allocation, .jlpt180-gg-wrap .gg-history { min-width: 0 !important; min-height: 260px !important; height: auto !important; padding: 13px 20px 14px !important; overflow: hidden !important; }
.jlpt180-gg-wrap .gg-allocation-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-auto-rows: 132px !important; align-items: stretch !important; gap: 10px !important; width: 100% !important; height: auto !important; margin: 11px 0 0 !important; padding: 0 !important; }
.jlpt180-gg-wrap .gg-allocation-grid article { display: grid !important; grid-template-columns: 62px minmax(0,1fr) !important; grid-template-rows: 1fr !important; align-items: center !important; align-content: center !important; gap: 10px !important; width: 100% !important; max-width: none !important; min-width: 0 !important; min-height: 132px !important; height: 132px !important; margin: 0 !important; padding: 11px 12px !important; overflow: hidden !important; border: 1px solid rgba(180,146,82,.3) !important; border-radius: 15px !important; background: linear-gradient(145deg, rgba(255,253,244,.72), rgba(228,241,234,.58)) !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.42) !important; }
.jlpt180-gg-wrap .gg-allocation-grid article > div { display: block !important; width: 100% !important; min-width: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; text-align: left !important; }
.jlpt180-gg-wrap .gg-allocation-grid .gg-ico { display: block !important; justify-self: center !important; width: 58px !important; min-width: 58px !important; height: auto !important; margin: 0 !important; }
.jlpt180-gg-wrap .gg-allocation-grid h3 { width: 100% !important; margin: 0 !important; color: #486454; font: 800 16px/1.1 var(--gg-serif) !important; white-space: normal !important; word-break: normal !important; }
.jlpt180-gg-wrap .gg-allocation-grid p { width: 100% !important; min-height: 0 !important; margin: 5px 0 7px !important; color: #687a70; font: 600 10px/1.32 var(--gg-sans) !important; white-space: normal !important; word-break: normal !important; overflow-wrap: break-word !important; }
.jlpt180-gg-wrap .gg-progress { display: inline-block !important; width: calc(100% - 43px) !important; max-width: none !important; height: 7px !important; min-height: 7px !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; border: 0 !important; border-radius: 99px !important; background: rgba(120,145,127,.2) !important; box-shadow: none !important; }
.jlpt180-gg-wrap .gg-progress span { display: block !important; height: 100% !important; min-height: 0 !important; border-radius: inherit; background: linear-gradient(90deg, #478c70, #d7b663); }
.jlpt180-gg-wrap .gg-allocation-grid b { float: right; color: #5d6a62; font-family: var(--gg-serif); }
.gg-view-all { display: block; margin: 4px auto 0; border: 0; background: transparent; color: #527569; font-family: var(--gg-serif); text-align: center; }
.jlpt180-gg-wrap .gg-history-list { display: grid !important; grid-template-columns: 1fr !important; grid-auto-rows: 39px !important; gap: 3px !important; width: 100% !important; height: auto !important; margin: 10px 0 0 !important; padding: 0 !important; }
.jlpt180-gg-wrap .gg-history-list article { display: grid !important; grid-template-columns: 30px minmax(90px,1fr) 70px 74px 58px !important; grid-template-rows: 1fr !important; align-items: center !important; align-content: center !important; gap: 7px !important; width: 100% !important; max-width: none !important; min-width: 0 !important; min-height: 39px !important; height: 39px !important; margin: 0 !important; padding: 3px 4px !important; overflow: hidden !important; border: 0 !important; border-bottom: 1px solid rgba(176,146,89,.2) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: #52675d; font: 700 10px/1.2 var(--gg-sans) !important; }
.gg-history-avatar { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--gg-gold-light); border-radius: 50%; background: #eff5ed; color: #49675b; font-family: var(--gg-serif); }
.jlpt180-gg-wrap .gg-history-list article strong { display: block !important; width: 100% !important; min-width: 0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.jlpt180-gg-wrap .gg-history-list article em { display: block !important; width: auto !important; padding: 3px 6px !important; overflow: hidden !important; border-radius: 99px; background: rgba(100,149,129,.12); color: #527164; font-style: normal; text-align: center; text-overflow: ellipsis; white-space: nowrap !important; }
.jlpt180-gg-wrap .gg-history-list article b { display: block !important; color: #907137; text-align: right; white-space: nowrap !important; }
.jlpt180-gg-wrap .gg-history-list article small { display: block !important; color: #8a918b; text-align: right; white-space: normal !important; }
.gg-empty-history { padding: 35px 0; color: #718178; text-align: center; }

.gg-ledger-extras { display: flex; gap: 12px; width: min(100%, 1540px); margin: 12px auto 0; }
.gg-ledger-extras details { flex: 1; padding: 9px 14px; border: 1px solid rgba(180,147,83,.28); border-radius: 12px; background: rgba(255,253,244,.57); color: #52675d; }
.gg-ledger-extras summary { cursor: pointer; color: #365b4e; font-weight: 700; }
.gg-ledger-extras p { margin-top: 7px !important; font-size: 12px; }

.jlpt180-gg-toast { position: fixed; z-index: 10020; right: 24px; bottom: 24px; max-width: 350px; padding: 11px 16px; border: 1px solid #d8bd78; border-radius: 13px; background: #fffaf0; color: #315448; box-shadow: 0 12px 32px rgba(36,61,50,.24); opacity: 0; transform: translateY(12px); transition: .2s ease; pointer-events: none; }
.jlpt180-gg-toast.is-visible { opacity: 1; transform: translateY(0); }
.jlpt180-gg-modal[hidden] { display: none; }
.jlpt180-gg-modal { position: fixed; z-index: 10030; inset: 0; display: grid; place-items: center; padding: 18px; }
.jlpt180-gg-modal__backdrop { position: absolute; inset: 0; background: rgba(21,37,31,.64); backdrop-filter: blur(5px); }
.jlpt180-gg-modal__panel { position: relative; width: min(420px,100%); padding: 24px; border: 1px solid #d8bd78; border-radius: 22px; background: #fffaf0; box-shadow: 0 22px 70px rgba(0,0,0,.28); text-align: center; }
.jlpt180-gg-modal__panel h2 { margin-bottom: 12px; color: #345d50; font: 700 26px var(--gg-serif); }
.jlpt180-gg-modal__panel img { width: min(280px,100%); border-radius: 14px; }
.jlpt180-gg-modal__panel p { margin: 9px 0 !important; color: #5b6c63; }
.jlpt180-gg-modal__panel .gg-modal-payment-note { display: grid; gap: 4px; margin: 10px 0 12px !important; padding: 10px 12px; border: 1px solid rgba(201,84,61,.28); border-radius: 11px; background: #fff1e9; text-align: left; }
.jlpt180-gg-modal__panel .gg-modal-payment-note strong { color: #a43f2f; font-size: 13px; line-height: 1.4; }
.jlpt180-gg-modal__panel .gg-modal-payment-note span { color: #675b54; font-size: 11px; line-height: 1.45; }
.jlpt180-gg-modal__close, .jlpt180-gg-modal__panel [data-modal-copy-btn] { padding: 8px 14px; border: 1px solid #d2b36b; border-radius: 999px; background: #fff7df; color: #44675b; font-weight: 700; }
.jlpt180-gg-modal__close { position: absolute; top: 10px; right: 10px; }

@media (max-width: 1500px) and (min-width: 1181px) {
    .gg-ledger-dashboard { grid-template-columns: minmax(225px,.65fr) minmax(610px,1.75fr) minmax(360px,1fr); gap: 14px; }
    .jlpt180-gg-wrap .gg-rank-row > div { max-width: none !important; }
    .jlpt180-gg-wrap .gg-rank-row strong { font-size: 24px !important; }
    .jlpt180-gg-wrap .gg-rank-row em { font-size: 13.5px !important; }
    .jlpt180-gg-wrap .gg-rank-row small { font-size: 13px !important; }
    .jlpt180-gg-wrap .gg-rank-benefits li > b { font-size: 13px !important; }
}

@media (max-width: 1180px) {
    .gg-ledger-dashboard { grid-template-columns: 280px 1fr; }
    .gg-contribute-card { grid-column: 1 / -1; min-height: auto; }
    .gg-method-panes { min-height: 92px; }
    .gg-ledger-bottom { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .jlpt180-gg-wrap { padding: 8px 10px 22px; background-attachment: scroll; }
    .gg-ledger-topbar { grid-template-columns: 1fr auto; padding: 0 4px; }
    .gg-ledger-trust { display: none; }
    .gg-ledger-title { padding: 9px 0 14px; }
    .gg-ledger-title h1 { font-size: 30px; }
    .gg-ledger-title p { font-size: 14px; }
    .gg-ledger-title p span { width: 28px; }
    .gg-learning-ribbon { flex-wrap: wrap; gap: 6px 9px; border-radius: 18px; }
    .gg-learning-ribbon b { font-size: 10px; }
    .gg-ledger-dashboard { grid-template-columns: 1fr; }
    .gg-contribute-card { grid-column: auto; }
    .gg-profile-card { min-height: auto; }
    .gg-rank-path { min-height: auto; padding-inline: 13px; }
    .gg-rank-value-strip { grid-template-columns: 1fr !important; }
    .gg-rank-list { grid-template-columns: 1fr !important; grid-auto-rows: auto; }
    .jlpt180-gg-wrap .gg-rank-row { grid-template-columns: minmax(0,1fr) !important; grid-template-rows: 1fr auto !important; min-height: 360px !important; height: auto !important; padding: 16px !important; background-position: 68% center !important; }
    .jlpt180-gg-wrap .gg-rank-row > div { grid-template-columns: 1fr !important; grid-template-areas: "name" "tagline" "benefits" !important; }
    .jlpt180-gg-wrap .gg-rank-row em,.jlpt180-gg-wrap .gg-rank-row small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
    .jlpt180-gg-wrap .gg-rank-benefits { grid-template-columns: 1fr !important; }
    .jlpt180-gg-wrap .gg-rank-benefits li:last-child:nth-child(odd) { grid-column: auto !important; }
    .gg-rank-row > b { grid-column: 1 / -1 !important; grid-row: 2 !important; flex-direction: row !important; justify-self: stretch !important; width: 100% !important; min-height: 30px !important; padding: 5px 8px !important; }
    .gg-rank-row > b i { margin: 0 7px 0 0 !important; }
    .jlpt180-gg-wrap .gg-rank-row strong { font-size: 24px !important; }
    .jlpt180-gg-wrap .gg-rank-row em { font-size: 14px !important; }
    .jlpt180-gg-wrap .gg-rank-row small { font-size: 12.5px !important; }
    .jlpt180-gg-wrap .gg-allocation-grid { grid-template-columns: 1fr !important; grid-auto-rows: 118px !important; }
    .jlpt180-gg-wrap .gg-allocation-grid article { min-height: 118px !important; height: 118px !important; }
    .gg-ledger-extras { flex-direction: column; }
    .jlpt180-gg-wrap .gg-tianjiao-head { display: none !important; }
    .jlpt180-gg-wrap .gg-tianjiao-table { padding: 7px !important; border-radius: 16px !important; }
    .jlpt180-gg-wrap .gg-tianjiao-row { grid-template-columns: 42px minmax(0,1fr) auto !important; grid-template-areas: "position person bricks" "position rank rank" !important; gap: 6px 9px !important; min-height: 72px !important; padding: 9px 10px !important; }
    .gg-tianjiao-position { grid-area: position; align-self: center; width: 36px; height: 36px; }
    .gg-tianjiao-person { grid-area: person; grid-template-columns: 34px minmax(0,1fr); gap: 8px; }
    .gg-tianjiao-person > span { width: 32px; height: 32px; border-radius: 10px; }
    .gg-tianjiao-person strong { font-size: 14px; white-space: normal; }
    .gg-tianjiao-row em { grid-area: rank; max-width: 100%; white-space: normal; }
    .gg-tianjiao-bricks { grid-area: bricks; align-self: center; font-size: 14px; }
}

@media (max-width: 430px) {
    .gg-ledger-home { padding: 7px 12px; }
    .gg-ledger-card > h2 > span { width: 24px; }
    .gg-money-brick-note { display: grid; gap: 3px; padding: 9px 10px; }
    .gg-money-brick-note strong { font-size: 14px; }
    .gg-payment-code { grid-template-columns: 1fr; gap: 3px; }
    .gg-payment-code strong { overflow-wrap: anywhere; }
    .gg-payment-code-note { font-size: 11px; }
    .gg-field-row, .gg-field-stack { grid-template-columns: 1fr; }
    .gg-stepper { justify-self: stretch; grid-template-columns: 50px 1fr 50px; }
    .gg-converted span { grid-column: auto; text-align: left; }
    .gg-method-pane { grid-template-columns: 1fr; }
    .gg-mini-qr { width: 100%; height: 120px; }
    .jlpt180-gg-wrap .gg-history-list article { grid-template-columns: 28px minmax(80px,1fr) 74px !important; }
    .jlpt180-gg-wrap .gg-history-list article em, .jlpt180-gg-wrap .gg-history-list article small { display: none !important; }
    .jlpt180-gg-wrap .gg-tianjiao { padding: 14px 10px 16px !important; border-radius: 20px !important; }
    .jlpt180-gg-wrap .gg-tianjiao-table { padding: 8px !important; border-radius: 16px !important; }
    .jlpt180-gg-wrap .gg-tianjiao-row { grid-template-columns: 38px minmax(0,1fr) !important; grid-template-areas: "position person" "rank rank" "bricks bricks" !important; gap: 6px 8px !important; min-height: 0 !important; padding: 10px !important; border-radius: 16px !important; }
    .gg-tianjiao-position { width: 36px; height: 36px; font-size: 14px; }
    .gg-tianjiao-person { grid-template-columns: 34px minmax(0,1fr); gap: 8px; }
    .gg-tianjiao-person > span { width: 32px; height: 32px; font-size: 13px; }
    .gg-tianjiao-person strong { font-size: 13px; }
    .gg-tianjiao-row em { width: fit-content; max-width: 100%; padding: 7px 12px; }
    .gg-tianjiao-bricks { font-size: 15px; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
    .jlpt180-gg-wrap *, .jlpt180-gg-wrap *::before, .jlpt180-gg-wrap *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* v2.5.0: monthly stipend is automatic; this is a status card, not a button. */
.gg-stipend-button.is-auto { cursor: default; }
.gg-stipend-button.is-auto:not(.is-claimed) { border-style: dashed; }


/* v2.5.7: copy controls for Japan transfer information */
.jlpt180-gg-wrap .gg-japan-transfer { display: grid; gap: 10px; width: 100%; min-width: 0; }
.jlpt180-gg-wrap .gg-japan-transfer > strong { color: #365b4e; font-family: var(--gg-serif); font-size: 18px; }
.jlpt180-gg-wrap .gg-transfer-group { display: grid; gap: 6px; padding: 10px; border: 1px solid rgba(180,146,82,.28); border-radius: 13px; background: rgba(255,255,255,.55); }
.jlpt180-gg-wrap .gg-transfer-group > b { color: #4c6559; font-size: 12px; }
.jlpt180-gg-wrap .gg-transfer-row { display: grid; grid-template-columns: minmax(96px,.85fr) minmax(0,1.15fr); align-items: center; gap: 8px; min-width: 0; padding-top: 6px; border-top: 1px solid rgba(180,146,82,.16); }
.jlpt180-gg-wrap .gg-transfer-row--copy { grid-template-columns: minmax(96px,.85fr) minmax(0,1fr); align-items: start; }
.jlpt180-gg-wrap .gg-transfer-row--copy button { grid-column: 2; justify-self: start; margin-top: 2px; }
.jlpt180-gg-wrap .gg-transfer-row span { color: #697a71; font-size: 12px; }
.jlpt180-gg-wrap .gg-transfer-row em { min-width: 0; color: #304f44; font-style: normal; font-weight: 800; font-family: "Hiragino Sans", "Yu Gothic", "Meiryo", var(--gg-sans); word-break: keep-all; overflow-wrap: break-word; line-height: 1.5; }
.jlpt180-gg-wrap .gg-transfer-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; border-top: 1px solid rgba(180,146,82,.16); }
.jlpt180-gg-wrap .gg-transfer-row button,.jlpt180-gg-wrap .gg-copy-all-transfer,.jlpt180-gg-wrap [data-copy-payment-code] { min-height: 38px; padding: 7px 11px; border: 1px solid #c9ad68; border-radius: 999px; background: #fff7df; color: #3f6658; font-weight: 800; cursor: pointer; }
.jlpt180-gg-wrap .gg-copy-all-transfer { width: 100%; }
.jlpt180-gg-wrap [data-copy-payment-code]:disabled { opacity: .48; cursor: not-allowed; }
.jlpt180-gg-wrap .gg-payment-code { grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; }
@media (max-width: 430px) {
    .jlpt180-gg-wrap .gg-transfer-row { grid-template-columns: minmax(90px,.8fr) minmax(0,1fr); align-items: start; }
    .jlpt180-gg-wrap .gg-transfer-row--copy { grid-template-columns: minmax(90px,.8fr) minmax(0,1fr); }
    .jlpt180-gg-wrap .gg-transfer-row--copy button { grid-column: 2; justify-self: start; margin-top: 2px; }
    .jlpt180-gg-wrap .gg-transfer-row em { font-size: 14px; }
    .jlpt180-gg-wrap .gg-transfer-actions .gg-copy-all-transfer { width: 100%; }
    .jlpt180-gg-wrap .gg-payment-code { grid-template-columns: 1fr; }
    .jlpt180-gg-wrap .gg-payment-code span,.jlpt180-gg-wrap .gg-payment-code strong,.jlpt180-gg-wrap [data-copy-payment-code] { width: 100%; }
}
.jlpt180-gg-wrap .gg-japan-rate { display: grid; gap: 3px; margin: 0 !important; padding: 9px 11px; border: 1px solid rgba(185,139,48,.3); border-radius: 12px; background: rgba(255,247,218,.78); }
.jlpt180-gg-wrap .gg-japan-rate b { color: #8a5b0b; font-size: 15px; }
.jlpt180-gg-wrap .gg-japan-rate span { color: #64746b; font-size: 12px; line-height: 1.4; }
