/* Achievement collection and rank details share one layout on web and iOS. */
.ma-ach-collection{display:grid;gap:24px;min-width:0;}
.ma-ach-collection-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:22px;padding:8px 0 20px;border-bottom:1px solid var(--ma-border);}
.ma-ach-eyebrow{margin:0 0 9px;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;font-weight:750;color:var(--ma-muted);}
.ma-ach-collection-hero h3{margin:0;font:750 clamp(1.35rem,3vw,2.1rem)/1.2 var(--ma-font-display);letter-spacing:-.04em;color:var(--ma-text-strong);}
.ma-ach-collection-total{margin:10px 0 0;color:var(--ma-muted);font-size:.85rem;}
.ma-ach-collection-art{width:100%;height:140px;object-fit:contain;}
.ma-ach-definition{margin-top:10px;max-width:480px;color:var(--ma-muted);font-size:.73rem;line-height:1.6;}
.ma-ach-definition summary{min-height:32px;cursor:pointer;align-content:center;text-decoration:underline;text-underline-offset:3px;}
.ma-ach-definition p{margin:6px 0 0;}
.ma-ach-controls{display:grid;gap:12px;min-width:0;}
.ma-ach-switch{display:flex;gap:7px;overflow:auto;scrollbar-width:thin;}
.ma-ach-switch button{appearance:none;flex:none;min-height:44px;border:0;border-radius:10px;padding:9px 15px;background:transparent;color:var(--ma-muted);font:650 .78rem/1.35 var(--ma-font-ui);cursor:pointer;}
.ma-ach-switch--category{border-bottom:1px solid var(--ma-border);gap:8px;}
.ma-ach-switch--category button{border-radius:0;border-bottom:3px solid transparent;padding-inline:12px;}
.ma-ach-switch--category button[aria-pressed="true"]{border-color:var(--ma-primary);color:var(--ma-text-strong);}
.ma-ach-switch--filter{width:max-content;max-width:100%;padding:3px;background:var(--ma-surface-inset);border-radius:12px;}
.ma-ach-switch--filter button[aria-pressed="true"]{background:var(--ma-primary);color:var(--ma-primary-text);}
.ma-ach-switch button:focus-visible,.ma-ach-definition summary:focus-visible{outline:3px solid var(--ma-focus-ring);outline-offset:-3px;}
.ma-achievement-section{min-width:0;}
.ma-ach-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;}
.ma-ach-section-head h3{margin:0;font:700 1rem/1.35 var(--ma-font-display);color:var(--ma-text-strong);}
.ma-ach-section-count{flex:none;color:var(--ma-muted);font-size:.7rem;}
.ma-achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;}
.ma-achievement-tile{display:flex;flex-direction:column;align-items:center;min-width:0;min-height:235px;padding:14px 16px 16px;border:1px solid var(--ma-border);border-radius:18px;background:var(--ma-card);color:var(--ma-text-strong);font:inherit;text-align:center;cursor:pointer;transition:border-color .15s,transform .15s;}
.ma-achievement-tile:hover{border-color:var(--ma-border-strong);transform:translateY(-2px);}
.ma-achievement-tile:focus-visible{outline:3px solid var(--ma-focus-ring);outline-offset:2px;}
.ma-achievement-tile.done{border-color:color-mix(in srgb,var(--ma-stage-mastered) 55%,var(--ma-border));}
.ma-ach-graphic{display:block;width:100px;height:112px;flex:none;margin:0 0 12px;}
.ma-ach-art{display:block;width:100%;height:100%;overflow:visible;--ma-badge-metal:#bcc8d5;}
.ma-ach-art[data-rank="2"]{--ma-badge-metal:#73b8e0;}.ma-ach-art[data-rank="3"]{--ma-badge-metal:#efcc7d;}.ma-ach-art[data-rank="4"]{--ma-badge-metal:#91d5ba;}.ma-ach-art[data-rank="5"]{--ma-badge-metal:#c4a0ef;}
.ma-ach-art[data-earned="false"]{opacity:.75;}
.ma-ach-copy{display:grid;gap:6px;width:100%;min-width:0;flex:1;}
.ma-ach-copy strong{font:700 .94rem/1.25 var(--ma-font-display);overflow-wrap:anywhere;}
.ma-ach-copy small{font-size:.72rem;line-height:1.5;color:var(--ma-muted);}
.ma-ach-tile-foot{display:flex;justify-content:space-between;gap:8px;width:100%;margin-top:14px;font-size:.65rem;color:var(--ma-muted);}
.ma-ach-meter{display:block;width:100%;height:4px;margin-top:7px;border-radius:4px;overflow:hidden;background:var(--ma-control);}
.ma-ach-meter-fill{display:block;height:100%;width:var(--ma-progress,0%);background:var(--ma-atlas);}
.ma-ach-empty{grid-column:1/-1;padding:32px 16px;margin:0;color:var(--ma-muted);font-size:.85rem;line-height:1.6;text-align:center;}
.ma-ach-info-topbar{margin:0 0 20px;}
.ma-ach-info-hero{display:flex;align-items:center;gap:24px;min-width:0;}
.ma-ach-info-symbol{display:grid;place-items:center;flex:none;width:128px;height:144px;font:700 2rem var(--ma-font-jp);color:var(--ma-text-strong);}
.ma-ach-info-hero>div{min-width:0;}
.ma-ach-info-kicker{font-size:.68rem;color:var(--ma-muted);font-weight:700;}
.ma-ach-info-body h3{font:750 1.7rem/1.2 var(--ma-font-display);letter-spacing:-.03em;color:var(--ma-text-strong);margin:8px 0 0;}
.ma-ach-info-body h3 em{display:block;margin-top:8px;font:650 .85rem var(--ma-font-ui);color:var(--ma-muted);}
.ma-ach-info-copy{font-size:.9rem;line-height:1.7;color:var(--ma-text-soft);margin:12px 0 24px;}
.ma-ach-info-progress{padding:16px 0;border-block:1px solid var(--ma-border);}
.ma-ach-info-progress-row{display:flex;justify-content:space-between;gap:12px;font-size:.85rem;color:var(--ma-text-strong);}
.ma-ach-info-progress i{display:block;height:6px;background:var(--ma-control);border-radius:6px;overflow:hidden;margin-top:12px;}
.ma-ach-info-progress i b{display:block;width:var(--ma-progress,0%);height:100%;background:var(--ma-atlas);}
.ma-ach-rank-history{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.ma-ach-rank-step{min-height:44px;min-width:44px;padding:9px 13px;background:var(--ma-surface-inset);color:var(--ma-muted);border:1px solid var(--ma-border);border-radius:10px;font:650 .76rem var(--ma-font-ui);cursor:pointer;}
.ma-ach-rank-step.done{color:var(--ma-text-strong);border-color:var(--ma-stage-mastered);}
.ma-ach-rank-step.current{background:var(--ma-primary);color:var(--ma-primary-text);border-color:var(--ma-primary);}
@media(max-width:600px){.ma-ach-collection{gap:18px;}.ma-ach-collection-hero{grid-template-columns:minmax(0,1fr) 100px;gap:10px;}.ma-ach-collection-art{height:100px;}.ma-ach-collection-hero h3{font-size:1.4rem;}.ma-ach-collection-total{font-size:.75rem;}.ma-achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.ma-achievement-tile{padding:12px 10px;min-height:215px;}.ma-ach-graphic{width:84px;height:94px;}.ma-ach-copy strong{font-size:.8rem;}.ma-ach-copy small{font-size:.66rem;}.ma-ach-info-symbol{width:96px;height:108px;}.ma-ach-info-hero{gap:16px;}.ma-ach-info-body h3{font-size:1.35rem;}.ma-ach-switch button{padding-inline:11px;font-size:.71rem;}}
html[data-ma-large-text] .ma-ach-collection-hero{grid-template-columns:1fr;}
html[data-ma-large-text] .ma-ach-collection-art{display:none;}
html[data-ma-large-text] .ma-achievement-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));}
@media(prefers-reduced-motion:reduce){.ma-achievement-tile{transition:none;}.ma-achievement-tile:hover{transform:none;}}
/* Mastery Map remains a separate Kana analysis feature within the same shared dialog owner. */
.ma-mastery-guide{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--ma-border);border-radius:14px;background:color-mix(in srgb,var(--ma-card-3) 48%,transparent)}
.ma-mastery-guide::before{content:"i";flex:0 0 auto;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--ma-control);color:var(--ma-text);font-size:.72rem;font-weight:950}
.ma-mastery-guide p{margin:0;color:var(--ma-muted);font-size:.8rem;line-height:1.35}
.ma-mastery-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ma-mastery-next{padding:12px;border:1px solid var(--ma-border);border-radius:14px;display:grid;gap:10px;}
.ma-mastery-cell strong,.ma-mastery-detail .ma-ach-info-symbol,.ma-mastery-detail .ma-ach-info-hero h3{font-family:var(--ma-font-jp);}
.ma-mastery-next h4{margin:0;font-size:.95rem;}
.ma-mastery-checks{display:grid;gap:6px;margin:0;padding-left:20px;font-size:.8rem;line-height:1.5;}
.ma-mastery-checks [data-complete="true"]{color:var(--ma-text-strong);}
.ma-mastery-checks [data-met="true"]{color:var(--ma-success);}
.ma-mastery-checks [data-met="false"]{color:var(--ma-danger);}
.ma-mastery-stage{position:relative;min-width:0;padding:10px 11px 10px 14px;border:1px solid var(--ma-border);border-radius:14px;background:var(--ma-surface-soft);overflow:hidden}
.ma-mastery-stage::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--ma-border-strong)}
.ma-mastery-stage.learning::before{background:var(--ma-stage-learning)}.ma-mastery-stage.reviewing::before{background:var(--ma-stage-confident)}.ma-mastery-stage.mastered::before{background:var(--ma-stage-mastered)}
.ma-mastery-stage b{display:block;color:var(--ma-text-strong);font-size:1.35rem;line-height:1;font-variant-numeric:tabular-nums}
.ma-mastery-stage strong{display:block;margin-top:4px;color:var(--ma-text);font-size:.78rem}
.ma-mastery-stage span{display:block;margin-top:3px;color:var(--ma-muted);font-size:.67rem;line-height:1.25}
.ma-mastery-group{margin-top:18px}.ma-mastery-group h3{margin:0 0 10px;color:var(--ma-text);font-size:1rem}
.ma-mastery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px}
.ma-mastery-cell{position:relative;appearance:none;border:1px solid var(--ma-border);border-radius:15px;min-height:68px;background:var(--ma-surface-soft);color:var(--ma-text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;overflow:hidden}
.ma-mastery-cell::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ma-border-strong)}
.ma-mastery-cell.learning::before{background:var(--ma-warning)}.ma-mastery-cell.reviewing::before{background:var(--ma-writing)}.ma-mastery-cell.mastered::before{background:var(--ma-success)}
.ma-mastery-cell:hover,.ma-mastery-cell:focus-visible{outline:none;border-color:var(--ma-control-active-border);box-shadow:0 0 0 3px var(--ma-focus-ring)}
.ma-mastery-cell strong{font-size:1.38rem}.ma-mastery-cell span{color:var(--ma-muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.ma-mastery-cell.new{opacity:.7}.ma-mastery-cell.learning{background:color-mix(in srgb,var(--ma-warning) 10%,var(--ma-card));border-color:color-mix(in srgb,var(--ma-warning) 32%,var(--ma-border))}.ma-mastery-cell.reviewing{background:color-mix(in srgb,var(--ma-writing) 10%,var(--ma-card));border-color:color-mix(in srgb,var(--ma-writing) 32%,var(--ma-border))}.ma-mastery-cell.mastered{background:color-mix(in srgb,var(--ma-success) 10%,var(--ma-card));border-color:color-mix(in srgb,var(--ma-success) 32%,var(--ma-border))}
.ma-ach-info-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.ma-ach-info-stats>div{padding:12px;border-radius:16px;background:var(--ma-surface-soft);border:1px solid var(--ma-border)}.ma-ach-info-stats b,.ma-ach-info-stats span{display:block}.ma-ach-info-stats span{margin-top:5px;color:var(--ma-muted);font-size:.78rem}
.ma-kana-pro-head .ma-mastery-open-btn{margin-top:0;align-self:flex-start;white-space:nowrap}
.ma-mastery-breakdown{grid-template-columns:repeat(4,minmax(0,1fr))}

@media(max-width:760px){.ma-mastery-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ma-mastery-stage{padding:9px 9px 9px 12px}.ma-mastery-stage b{font-size:1.18rem}.ma-mastery-stage span{font-size:.63rem}.ma-mastery-grid{grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:7px}.ma-mastery-cell{min-height:58px;border-radius:13px}.ma-mastery-cell strong{font-size:1.15rem}.ma-mastery-cell span{font-size:.56rem}.ma-ach-info-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.ma-mastery-guide{padding:8px 10px}.ma-mastery-guide p{font-size:.73rem}.ma-mastery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
