/* Shared application rhythm. Inherits the existing appearance and typography settings. */
:root{--density-gap:14px;--density-padding:18px;--density-row:10px;--density-radius:8px}
.content{width:min(1350px,100%);padding:24px clamp(18px,2.8vw,36px) 32px}
.topbar{height:60px;padding-inline:clamp(18px,2.8vw,36px)}
.welcome-row,.page-heading,#page-profile .page-heading,#page-mnemonics .page-heading,#page-my-words .page-heading{margin-bottom:18px;gap:16px;align-items:center}
.page-heading h1,.welcome-row h1,#page-mnemonics .page-heading h1{font-size:clamp(28px,2.6vw,36px);line-height:1.18;margin:5px 0;letter-spacing:-.6px}
.page-heading .eyebrow,.welcome-row .eyebrow{margin:0;font-size:10px}
.page-heading .lede,.welcome-row .lede{font-size:13px;line-height:1.45}
.date-card{width:auto;height:auto;min-width:92px;padding:10px 12px;gap:4px}
.date-card>span{display:none}.date-card strong{font-size:16px}
.panel,.metric-card,.mini-stat-card,.practice-aside>div{padding:var(--density-padding);border-radius:var(--density-radius);box-shadow:none}
.panel-heading{margin-bottom:12px;gap:12px}.panel-heading h2{font-size:20px;margin-top:4px}
.panel h3{font-size:16px}.panel>.muted{line-height:1.5}
.metric-grid,.rank-panels,.progress-columns,.dashboard-sections,.feedback-grid,.profile-grid{gap:var(--density-gap)}
.metric-card{min-height:0}.metric-card>strong{font-size:28px;margin-block:8px}
.progress-columns>.panel,.dashboard-sections>.panel,.settings-panel>.panel,.profile-grid>.panel{margin-bottom:var(--density-gap)}
.progress-view-tabs,.achievement-categories,.task-categories{margin-bottom:14px}
.progress-view-tabs{max-width:100%;width:max-content;overflow-x:auto;scrollbar-width:thin}
.progress-view-tabs button{flex:0 0 auto}
.progress-view-tabs button,.achievement-categories button,.task-categories button{padding:10px 12px;font-size:12px}
.density-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--density-gap)}
.density-grid>*{min-width:0}.density-wide{grid-column:1/-1}
.compact-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.compact-heading h2{font:600 20px/1.2 var(--serif);margin:0}
.compact-heading>span{font-size:12px;color:var(--muted)}
.compact-heading .text-button{font-size:12px;margin:0;white-space:nowrap}
.density-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.density-metric{display:flex;flex-direction:column;gap:4px;min-width:0;padding:9px 10px;background:color-mix(in srgb,var(--paper) 80%,var(--card));border:1px solid var(--line);border-radius:6px}
.density-metric strong{font:600 25px/1.15 var(--serif);color:var(--ink);overflow-wrap:anywhere}
.density-metric span{font-size:12px;color:var(--muted)}.density-metric small{font-size:11px;color:var(--muted);line-height:1.4}
.overview-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.density-tabs{display:flex;flex-wrap:wrap;gap:4px}
.density-tabs button{background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:7px 10px;font-size:12px;min-height:32px}
.density-tabs button[aria-pressed=true]{background:var(--mint);border-color:var(--green);color:var(--ink)}
.density-tabs button:focus-visible,.density-heat-cell:focus-visible,.heat-year button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.analytics-toolbar,.heat-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.analytics-toolbar>.muted,.analytics-scope{font-size:12px;line-height:1.5}.analytics-scope{color:var(--muted);margin:0 0 14px;max-width:90ch}
.chart-card{display:flex;flex-direction:column;gap:0}.chart-card>.compact-heading{margin-bottom:4px}
.chart-card>p,.chart-card>p.muted{font-size:13px;line-height:1.5}
.chart-note,.chart-summary{color:var(--muted);font-size:12px;line-height:1.5;margin:6px 0 10px}
.chart-summary{margin:10px 0 0;color:var(--ink)}
.chart-frame{position:relative;height:220px;min-width:0;margin-top:6px}.chart-donut{height:225px}
.chart-data{margin-top:12px;font-size:12px;color:var(--muted)}.chart-data summary{cursor:pointer;padding-block:4px}
.chart-empty{display:grid;place-items:center;text-align:center;min-height:130px;background:var(--paper);border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:13px;margin-top:8px;padding:18px}
.chart-toolbar{margin:0}.chart-toolbar+.chart-card{margin-top:-4px}
.density-table{overflow-x:auto;max-width:100%;margin-top:12px}
.density-table table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;line-height:1.45}
.density-table th,.density-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;white-space:normal;min-width:95px;overflow-wrap:anywhere}
.density-table th{font-size:12px;color:var(--muted);font-weight:600}.density-table tr:last-child td{border-bottom:0}
.home-study-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--density-gap);margin-bottom:var(--density-gap)}
.home-study-row .feature-card{min-height:0;padding:18px 20px;border-radius:var(--density-radius);gap:8px}
.home-study-row .feature-card:after{font-size:160px;bottom:0}
.home-study-row .feature-top{gap:8px}.home-study-row .feature-mark{font-size:20px}
.home-study-row .feature-copy{margin:0}.home-study-row .feature-copy>.eyebrow,.home-study-row .feature-foot{display:none}
.home-study-row .feature-copy h2{font-size:24px;margin:3px 0 6px}.home-study-row .feature-copy p{font-size:13px;line-height:1.45;margin-bottom:12px;max-width:42ch}
.home-study-row .daily-card{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;gap:10px 14px;padding:18px 20px}
.home-study-row .daily-card>.text-button{grid-column:2;justify-self:start;margin:0}.home-study-row .daily-body h3{font-size:22px;margin:5px 0 6px}.home-study-row .daily-body p{font-size:13px;line-height:1.45;margin:0}
.home-dashboard .hub-card{padding:16px 18px}.hub-card>.text-button{margin-top:10px;font-size:12px}
@media(min-width:1280px){.home-dashboard{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hub-card p.muted,.hub-card .empty-state{font-size:13px;line-height:1.5;margin:10px 0}.hub-card .empty-state{min-height:42px}
.hub-task{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}
.hub-task:last-child{border-bottom:0}.hub-task strong{display:block;font-size:13px;line-height:1.4;font-weight:600}.hub-task small{display:block;font-size:12px;margin-top:3px;color:var(--muted)}
.hub-task-mark{color:var(--green)}.hub-task meter{display:block;width:100%;height:5px;margin-top:6px;accent-color:var(--green)}
.hub-task meter::-webkit-meter-bar{background:var(--line);border:0}.hub-task meter::-webkit-meter-optimum-value{background:var(--green)}
.task-status{font-size:11px;color:var(--muted);text-align:right;max-width:70px}.task-status .text-button{font-size:12px;white-space:nowrap}
.mastery-strip,.hub-level-track{display:flex;height:7px;border-radius:4px;overflow:hidden;background:var(--line);margin:12px 0}
.mastery-strip>span{min-width:2px}.hub-level-track>span{background:var(--gold)}
.mastery-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 7px;font-size:12px;color:var(--muted);margin:12px 0}
.mastery-legend span{display:flex;align-items:center;gap:5px}.mastery-legend b{color:var(--ink);margin-left:auto}.mastery-legend i{width:7px;height:7px;flex:none;border-radius:2px}
.stage-new{background:var(--line)}.stage-weak{background:#b56c69}.stage-developing{background:var(--gold)}.stage-strong{background:#8e81b8}.stage-very_strong{background:#6e95a6}.stage-mature{background:var(--green)}
.hub-streak{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}.hub-streak>strong{font:600 20px var(--serif);color:var(--ink)}
.hub-streak>span{white-space:nowrap}.hub-streak .week-dots{margin:0 0 0 auto;gap:4px;flex-shrink:0}.hub-streak .week-dots span{width:20px;height:20px;font-size:10px}
.hub-activity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.hub-activity:last-child{border-bottom:0}.hub-activity strong{font-weight:600}.hub-activity>span{color:var(--green);font-size:12px}.hub-activity small{grid-column:1/-1;color:var(--muted);font-size:12px}
.density-nav-count{margin-left:auto;min-width:20px;max-width:46px;border-radius:5px;background:color-mix(in srgb,var(--green) 10%,var(--card));padding:2px 5px;color:var(--green);font-size:11px;text-align:center}
.nav-link #achievements-nav-dot,.nav-link #tasks-nav-dot{display:none}
.density-heatmap{--heat-cell:13px;--heat-gap:3px;overflow-x:auto;padding:2px 2px 6px;max-width:100%}
.density-months{display:grid;grid-template-columns:repeat(var(--heat-columns),var(--heat-cell));gap:var(--heat-gap);width:max-content;min-width:100%;padding-left:24px;height:21px;color:var(--muted);font-size:11px}
.density-months span{overflow:visible;white-space:nowrap}
.density-heat-scroll{display:flex;gap:10px;width:max-content;min-width:100%}
.density-heat-days{display:grid;grid-template-rows:repeat(7,var(--heat-cell));row-gap:var(--heat-gap);width:14px;flex:none;color:var(--muted);font-size:10px;text-align:center;align-items:center}
.density-heat-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,var(--heat-cell));grid-template-columns:repeat(var(--heat-columns),var(--heat-cell));gap:var(--heat-gap)}
.density-heat-cell,.heat-key i{display:block;width:var(--heat-cell,10px);height:var(--heat-cell,10px);border:1px solid color-mix(in srgb,var(--green) 6%,var(--line));padding:0;border-radius:2px;background:var(--line)}
.density-heat-cell[data-level="1"],.heat-key i[data-level="1"]{background:color-mix(in srgb,var(--green) 25%,var(--card))}
.density-heat-cell[data-level="2"],.heat-key i[data-level="2"]{background:color-mix(in srgb,var(--green) 45%,var(--card))}
.density-heat-cell[data-level="3"],.heat-key i[data-level="3"]{background:color-mix(in srgb,var(--green) 70%,var(--card))}
.density-heat-cell[data-level="4"],.heat-key i[data-level="4"]{background:var(--green)}
.density-heat-cell.outside{visibility:hidden}.density-heat-cell.future{opacity:.35}
.heatmap-compact{--heat-cell:14px;--heat-gap:4px}.heatmap-compact .density-heat-grid{grid-template-columns:repeat(var(--heat-columns),minmax(14px,1fr));flex:1}.heatmap-compact .density-heat-cell{width:100%}.heatmap-compact .density-months{grid-template-columns:repeat(var(--heat-columns),minmax(14px,1fr));width:100%}
.heat-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:8px;color:var(--muted);font-size:11px}
.heat-key{display:flex;align-items:center;gap:3px}.heat-year{display:flex;align-items:center;gap:8px;font-size:13px}.heat-year button{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:5px 9px;border-radius:4px}.heat-toolbar{margin:8px 0 12px}
.plan-action{display:flex;align-items:center;gap:14px;margin:14px 0}.plan-action p{font-size:13px}
#page-schedule .overview-metrics,#page-calendar .overview-metrics,#page-study-load .overview-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
#shop-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--density-gap)}
#shop-content>p{grid-column:1/-1;margin:0}#shop-content>.panel{margin:0}
.practice-layout{max-width:820px;gap:var(--density-gap)}
.practice-card{padding:24px;min-height:0;box-shadow:none}.practice-card .word-wrap,.daily-practice-card .word-wrap{padding:24px 0}
.practice-aside .aside-note{padding:16px}.aside-note h3{font-size:20px}.practice-meta{flex-wrap:wrap;gap:8px}
.focus-panel{max-width:820px;padding:24px}.focus-clock{font-size:clamp(54px,7vw,76px);margin:20px 0}.focus-context p{margin:8px 0}
.setting-row{padding:16px 18px;gap:16px}.settings-panel>.panel-heading{margin-bottom:12px}.setting-row h2{font-size:18px}.setting-row p{font-size:13px;line-height:1.5}.settings-layout{gap:var(--density-gap)}
.theme-grid,.font-options,.avatar-grid{gap:10px}.theme-card{padding:12px}.settings-subheading{margin:16px 0 10px}
.word-row{padding:12px 15px;gap:12px}.word-row-def{font-size:13px}.word-row-name{font-size:20px}.word-row-def small{font-size:12px}
.rank-panel-heading h2{font-size:24px}.rank-ladder{gap:8px}.rank-ladder li{padding-block:8px}
#page-achievements .achievement-row,#page-tasks .task-row{min-height:80px;padding:12px 14px}
#page-achievements .achievement-copy>p,.task-copy>p{font-size:12px}
#page-achievements .achievement-copy h2,.task-copy h2{font-size:18px}
.functional-panel h2{font:600 21px var(--serif)}.functional-panel h3{margin:14px 0 8px}.functional-panel label{font-size:13px;margin:8px 0}.functional-panel input:not([type=file]),.functional-panel textarea,.functional-panel select{font-size:13px}
.functional-actions{gap:8px;margin-block:12px}.functional-table{font-size:13px}.functional-table td,.functional-table th{padding:9px}
#wordwise-admin-controls{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 18px}
#wordwise-admin-controls>h2,#wordwise-admin-controls>p{grid-column:1/-1;margin:0}
#wordwise-admin-controls>.admin-tabs{display:flex;flex-direction:column;align-items:stretch;grid-column:1;grid-row:4;gap:6px;margin:0;align-self:start}
#wordwise-admin-controls .admin-tabs button{padding:9px;text-align:left;font-size:12px}
#wordwise-admin-controls>[data-admin-section]{grid-column:2;grid-row:4;min-width:0;border-left:1px solid var(--line);padding-left:18px;align-self:start}
#wordwise-admin-controls pre{max-width:100%;overflow:auto;font-size:12px}
.admin-progression-row{padding:10px 0}.admin-progression-row .functional-actions{margin:0}
html[data-text-size="large"] .density-table table,html[data-text-size="large"] .hub-task strong,html[data-text-size="large"] .hub-card p.muted{font-size:15px}
html[data-text-size="large"] .density-metric span,html[data-text-size="large"] .chart-note,html[data-text-size="large"] .chart-summary{font-size:14px}
@media(max-width:1100px){.overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.mastery-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-heading{flex-wrap:wrap;gap:6px}.home-study-row .feature-copy h2{font-size:22px}}
@media(max-width:1100px){.admin-progression-row{grid-template-columns:minmax(0,1fr) 85px}.admin-progression-row .functional-actions{grid-column:1/-1}}
@media(max-width:600px){#wordwise-admin-controls{grid-template-columns:minmax(0,1fr)}#wordwise-admin-controls>.admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:auto;grid-row:auto}#wordwise-admin-controls>[data-admin-section]{grid-column:auto;grid-row:auto;border-left:0;border-top:1px solid var(--line);padding:8px 0 0}}
@media(max-width:760px){.content{padding:20px 18px 28px}.topbar{padding-inline:16px}.settings-layout{grid-template-columns:1fr}.page-heading h1,.welcome-row h1,#page-mnemonics .page-heading h1{font-size:30px}.rank-panels{grid-template-columns:repeat(2,minmax(0,1fr))}.density-metric{padding:8px}.density-metric strong{font-size:23px}.density-grid{gap:12px}.home-dashboard .hub-card{padding:14px}.hub-task{grid-template-columns:16px minmax(0,1fr)}.task-status{grid-column:2;text-align:left;max-width:none}.chart-frame{height:210px}}
@media(max-width:600px){:root{--density-padding:16px}.content{padding:18px 14px 26px}.density-grid,.home-study-row,.rank-panels,#shop-content{grid-template-columns:1fr}.page-heading,.welcome-row{align-items:flex-start}.date-card{min-width:74px;padding:9px}.welcome-row h1,.page-heading h1,#page-mnemonics .page-heading h1{font-size:28px}.density-wide{grid-column:auto}.density-metric strong{font-size:25px}.overview-metrics,#page-schedule .overview-metrics,#page-calendar .overview-metrics,#page-study-load .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.mastery-legend{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-task{grid-template-columns:16px minmax(0,1fr) auto}.task-status{grid-column:auto;text-align:right;max-width:70px}.analytics-toolbar{align-items:start}.density-table td,.density-table th{padding:8px;min-width:92px}.practice-card{padding:18px 16px}.practice-card .word-wrap,.daily-practice-card .word-wrap{padding:22px 0}.focus-panel{padding:20px 16px}.plan-action{align-items:flex-start;flex-direction:column;gap:6px}.plan-action p{margin:0}.heat-summary{font-size:12px}#page-achievements .achievement-row,#page-tasks .task-row{grid-template-columns:28px minmax(0,1fr);min-height:0}.compact-heading h2{font-size:20px}}
