.record-word,.status-counter strong,.daily-metric-head strong,.stepper input,.word-total strong{font-family:Georgia,serif}
.progress-page{font-size:16px;line-height:1.65}
.progress-page h2{font-size:24px;line-height:1.4}
.progress-page h3{font-size:18px}
.progress-page .tiny,.progress-page .note{font-size:13px}
.flash-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.daily-metric-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:11px}
.daily-metric-head>span{font-size:18px}
.daily-metric-head strong{font-size:29px;line-height:1.3;white-space:nowrap}
.daily-metric-head small,.word-total small{font-size:15px;color:var(--muted)}
.daily-metric .bar{height:9px}
.word-total{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid #ffffffa6;padding-top:22px;gap:10px}
.word-total strong{font-size:26px;white-space:nowrap}
.aside-footer .secondary{width:100%;margin-top:12px}
.aside-footer>.tiny{display:block;text-align:center;margin-top:14px}
.progress-page{display:flex;flex-direction:column;gap:20px}
.progress-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:stretch}
.dashboard-card{position:relative;min-width:0;padding:26px 30px;background:linear-gradient(135deg,rgba(251,255,255,.48),rgba(238,251,253,.30));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:26px}
.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.dashboard-heading h1,.dashboard-heading h2{margin:0}
.dashboard-heading h1{font-size:30px}
.date-label{font-size:14px;color:var(--muted)}
.today-card{display:flex;flex-direction:column;gap:12px}
.today-card .dashboard-heading{margin-bottom:2px}
.today-card .daily-metric{padding:12px 18px;background:linear-gradient(130deg,#ffffff50,#f2fbfc35);border:1px solid #ffffffc7;border-radius:18px}
.today-card .daily-metric-head{margin-bottom:8px}
.today-card .daily-metric-head strong{font-size:32px}
.today-bottom{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:auto}
.today-bottom .primary{min-width:188px}
.goals-card{display:flex;align-items:stretch}
#goals-form{width:100%;display:flex;flex-direction:column;gap:16px}
.goal-heading{display:flex;align-items:center;justify-content:space-between}
#goals-form h2{margin:0}
.goal-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #ffffffba;background:#ffffff38;border-radius:18px;padding:10px 16px}
.goal-row>label{font-size:18px;white-space:nowrap}
.stepper{display:grid;grid-template-columns:44px minmax(45px,80px) 44px;align-items:center;gap:6px}
.goal-step{width:44px;height:44px;border:1px solid #fff;background:linear-gradient(145deg,#ffffff79,#def2f342);border-radius:50%;box-shadow:inset 0 1px 2px white,0 3px 9px #426c7610;font-size:25px;line-height:1;padding:0;color:#245e6a}
.stepper input{background:none;border:0;min-width:0;width:100%;text-align:center;padding:8px 0;color:var(--ink);font-size:25px;appearance:textfield;-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{appearance:none;margin:0}
.goal-presets{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.goal-presets .tiny{margin-left:auto}
.goal-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto}
.goal-bottom .primary{min-width:158px}
.mobile-goals,.close-goals{display:none}
#goal-backdrop{display:none}
.book-overview{padding-top:23px;padding-bottom:23px}
.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.status-counter{padding:13px 20px;border-radius:17px;border:1px solid #ffffffc7;background:#ffffff32;text-align:left;transition:background .2s,border-color .2s}
.status-counter:hover,.status-counter.selected{background:#ffffff83;border-color:#92cbd0}
.status-counter>span{display:flex;align-items:center;gap:10px;font-size:15px}
.status-counter strong{font-size:34px;line-height:1.3;display:block;margin:3px 0 0 20px}
.status-counter i,.status-badge i{display:inline-block;flex-shrink:0;width:10px;height:10px;border-radius:50%;background:#97a6ab;box-shadow:inset 0 1px 2px #fff9}
.status-counter.learning i,.status-badge.learning i{background:#72afe1}
.status-counter.weak i,.status-badge.weak i{background:#e6a16d}
.status-counter.stable i,.status-badge.stable i{background:#62b4a7}
.criteria-help{position:relative;font-size:13px;color:var(--muted);flex-shrink:0}
.criteria-help>summary{cursor:pointer;list-style:none;padding:6px 9px;border:1px solid #ffffff9e;border-radius:10px}
.criteria-help>summary::-webkit-details-marker{display:none}
.criteria-popover{position:absolute;z-index:12;top:calc(100% + 10px);right:0;width:320px;background:#f5fbfaf5;border:1px solid white;box-shadow:0 12px 34px #1e4b6221;border-radius:17px;padding:16px 20px;color:var(--ink)}
.criteria-popover p{margin:0 0 10px;line-height:1.8}
.criteria-popover p:last-child{margin:0}
.record-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:17px}
.record-heading h2{margin:0 auto 0 0}
.record-heading .search{width:clamp(220px,25vw,360px);max-width:100%;font-size:15px;min-height:44px;background:#ffffff43;border:1px solid #ffffffbd;border-radius:14px}
.record-filters{display:flex;gap:5px;padding:4px;background:#ffffff45;border:1px solid #ffffffb8;border-radius:16px;flex-shrink:0}
.record-filters .chip{padding:7px 13px;font-size:14px;min-height:34px;border-radius:12px;border:0;background:none;box-shadow:none}
.record-filters .chip.active{background:#c6e9eb9e;color:#225c65;box-shadow:inset 0 1px 2px #fff9}
.record-columns,.word-row{display:grid;grid-template-columns:minmax(150px,2fr) minmax(82px,.85fr) minmax(58px,.6fr) minmax(58px,.6fr) minmax(92px,.95fr) minmax(108px,1fr) 20px;align-items:center;gap:16px}
.record-columns{font-size:14px;color:var(--muted);padding:11px 18px;border-radius:15px 15px 0 0;background:#ffffff38;border:1px solid #ffffffae;border-bottom:0}
.record-columns>span:not(:first-child){text-align:center}
.records-body{border:1px solid #ffffffae;border-radius:0 0 17px 17px;overflow:hidden}
.word-record{background:#ffffff20;border-bottom:1px solid #ffffff9e}
.word-record:last-child{border-bottom:0}
.word-row{padding:14px 18px;min-height:64px;cursor:pointer;list-style:none;transition:background .2s;font-size:17px}
.word-row:hover,.word-record[open]>.word-row{background:#ffffff4a}
.word-row::-webkit-details-marker{display:none}
.record-word{font-size:25px;line-height:1.35;overflow-wrap:anywhere;min-width:0}
.record-rounds,.record-meaning,.record-relation,.record-due,.record-state{text-align:center}
.record-rounds,.record-due{font-size:16px}
.fraction{font-size:22px}
.fraction small{font-size:17px;color:var(--muted)}
.fraction.complete{color:#28716e}
.due-now{color:#1e7785}
.status-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #fff9;background:#dce5e878;padding:5px 12px;border-radius:30px;font-size:14px;white-space:nowrap}
.status-badge.learning{background:#d4e9fa8a;color:#3b7296}
.status-badge.weak{background:#fce8d792;color:#996235}
.status-badge.stable{background:#caeae490;color:#2f746c}
.record-chevron{font-size:30px;text-align:center;color:#608c94;transition:transform .2s}
.word-record[open]>.word-row .record-chevron{transform:rotate(90deg)}
.mobile-label{display:none}
.word-detail{padding:0 20px 20px;border-top:1px solid #ffffff9e;background:#ffffff2b}
.detail-summary{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted);padding:17px 0}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.detail-block{min-width:0;border:1px solid #ffffffb5;background:#ffffff32;border-radius:17px;padding:16px 18px}
.detail-block h3{margin:0 0 12px}
.target-line{display:flex;align-items:baseline;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid #ffffff9b}
.target-line>span:first-child{overflow-wrap:anywhere}
.item-state{display:inline-block;font-size:13px;white-space:nowrap;border-radius:20px;padding:3px 9px}
.item-state.new{color:#69828a;background:#e5edf16e}
.item-state.weak{color:#9d643c;background:#ffe7d683}
.item-state.stable{color:#27766d;background:#ccece57e}
.relation-line{padding:10px 0;border-top:1px solid #ffffff9e}
.relation-line strong{font-size:20px;overflow-wrap:anywhere}
.relation-line>.tiny{display:block}
.direction-states{display:flex;gap:12px;flex-wrap:wrap;margin-top:5px;font-size:13px;color:#567982}
.direction-states b{font-weight:400;color:#315f6b;margin-left:4px}
.weak-line{margin:0 -8px;padding:10px 8px;border-radius:10px;background:#fae8d750}
.round-history{border-top:1px solid #ffffff9b}
.round-history summary{list-style:none;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0;cursor:pointer;font-size:14px}
.round-history summary::-webkit-details-marker{display:none}
.round-content{padding:5px 10px 12px;font-size:13px;color:#7f644c}
.history-line{font-size:14px;padding:6px 0 10px;color:var(--muted)}
.recent-answer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;font-size:14px;border-top:1px solid #ffffff85}
.recent-answer>span:first-child{overflow-wrap:anywhere}
.context-status{font-size:13px;color:var(--muted);margin-top:14px}
.detail-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.detail-actions>.tiny{margin-left:auto}
.empty-records{text-align:center;padding:42px 16px;color:var(--muted)}
.records-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;font-size:13px;color:var(--muted)}
.records-caption .secondary{font-size:14px}
@media(min-width:851px){.aside-metrics{display:flex;flex-direction:column;justify-content:center}.aside .daily-metric-head{flex-wrap:wrap;gap:4px}.aside .daily-metric-head strong{font-size:27px}.aside .word-total{flex-wrap:wrap}}
@media(min-width:851px) and (max-width:1100px){.dashboard-card{padding:23px 24px}.progress-top{grid-template-columns:1.1fr 1fr}.goal-row{padding:10px 12px;gap:8px}.stepper{grid-template-columns:40px 54px 40px;gap:3px}.goal-step{width:40px;height:40px}.goal-presets .tiny{width:100%;margin:0}.today-bottom{flex-wrap:wrap}.today-bottom .primary{margin-left:auto}.record-columns,.word-row{gap:10px;grid-template-columns:minmax(128px,1.8fr) 76px 55px 55px 76px 96px 16px}.status-badge{padding:5px 9px;font-size:13px}}
@media(max-width:850px){
 .dashboard-card{padding:22px;border-radius:23px}.progress-top{grid-template-columns:1fr 1fr;gap:16px}.progress-page{gap:16px}
 .goal-row{padding:10px;gap:8px}.goal-row>label{font-size:16px}.stepper{grid-template-columns:38px 46px 38px;gap:2px}.goal-step{width:38px;height:38px}
 .today-bottom{flex-wrap:wrap}.today-bottom .primary{width:100%}.goal-presets .tiny{width:100%;margin:0}
 .record-heading .search{width:calc(100% - 110px)}.record-filters{width:100%;justify-content:space-around}
 .record-columns,.word-row{gap:8px;grid-template-columns:minmax(105px,1.7fr) 64px 45px 45px 64px 80px 14px}.word-row{padding:13px 12px}.record-columns{padding:10px 12px}.record-word{font-size:22px}.record-rounds,.record-due{font-size:14px}.status-badge{font-size:12px;padding:5px 7px;gap:5px}.status-badge i{width:7px;height:7px}
 .aside-metrics{display:grid;grid-template-columns:1fr 1fr;gap:18px}.aside .word-total{grid-column:1/-1;padding-top:14px}
 .aside .primary{font-size:16px!important}.aside-footer .secondary{font-size:14px}.aside-footer>.tiny{text-align:left}
 .status-counter{padding:12px}.status-counter>span{font-size:14px}
}
@media(max-width:600px){
 main.progress-view{margin:20px auto 24px;padding:0 14px}.progress-page{gap:14px}.progress-top{display:block}.dashboard-card{padding:20px 16px;border-radius:23px;background:linear-gradient(135deg,#f9ffff78,#ecfafd4b)}
 .dashboard-heading{gap:10px;margin-bottom:14px}.dashboard-heading h1{font-size:27px}.dashboard-heading h2{font-size:24px}.date-label{display:none}.mobile-goals{display:block;font-size:14px;padding:9px 13px;min-height:42px}
 .today-card{gap:11px}.today-card .daily-metric{padding:12px 14px}.daily-metric-head>span{font-size:17px}.today-card .daily-metric-head strong{font-size:29px}.daily-metric-head small{font-size:14px}
 .today-bottom{gap:12px;margin-top:1px}.today-bottom .tiny{font-size:12px}.today-bottom .primary{width:100%;min-height:49px;font-size:17px}
 .goals-card{display:none}.goal-sheet-open{overflow:hidden}.goal-sheet-open #goal-backdrop{display:block;position:fixed;inset:0;background:#153d4b33;backdrop-filter:blur(3px);z-index:90}
 .goal-sheet-open .goals-card{display:block;position:fixed;z-index:100;bottom:12px;left:12px;right:12px;max-height:calc(100dvh - 50px);overflow:auto;background:linear-gradient(135deg,#f4ffffed,#e4f4f6ed);padding:23px 20px 24px;border-radius:27px;box-shadow:0 -4px 44px #204e682e}
 .close-goals{display:block;border:1px solid white;border-radius:50%;background:#ffffff9c;width:44px;height:44px;font-size:24px;color:var(--ink)}.goal-row{padding:12px 14px}.goal-row>label{font-size:18px}.stepper{grid-template-columns:44px minmax(50px,76px) 44px;gap:4px}.goal-step{width:44px;height:44px}.goal-presets .tiny{width:100%;margin:0}.goal-bottom .primary{min-height:48px}
 .status-grid{grid-template-columns:1fr 1fr;gap:10px}.status-counter{padding:12px 15px}.status-counter>span{font-size:15px;gap:9px}.status-counter strong{font-size:32px;margin-left:19px}
 .criteria-help{font-size:12px}.criteria-popover{width:min(300px,calc(100vw - 62px));font-size:13px}
 .record-heading{gap:12px;margin-bottom:13px}.record-heading h2{font-size:25px}.record-heading .search{width:100%;order:3;font-size:15px;padding:11px 14px;min-height:46px}.record-filters{width:100%;order:2;gap:2px;justify-content:space-between}.record-filters .chip{font-size:14px;padding:7px 11px;min-height:38px;flex:1}
 .record-columns{display:none}.records-body{border:0;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:10px}
 .word-record{border:1px solid #ffffffbf!important;border-radius:17px;background:#ffffff32;overflow:hidden}
 .word-row{grid-template-columns:repeat(4,minmax(0,1fr)) 16px;grid-template-areas:"word word state state chev" "rounds meaning relation due due";gap:12px 8px;padding:14px;min-height:105px}
 .record-word{grid-area:word;font-size:25px}.record-rounds{grid-area:rounds}.record-meaning{grid-area:meaning}.record-relation{grid-area:relation}.record-due{grid-area:due}.record-state{grid-area:state;text-align:right}.record-chevron{grid-area:chev;font-size:28px}.record-rounds,.record-meaning,.record-relation,.record-due{text-align:left;font-size:15px}.fraction{font-size:19px}.fraction small{font-size:15px}
 .mobile-label{display:block;font-size:12px;color:var(--muted);line-height:1.3;margin-bottom:4px}.status-badge{font-size:13px;padding:5px 10px;gap:6px}.status-badge i{width:8px;height:8px}
 .word-detail{padding:0 13px 15px}.detail-summary{font-size:12px;padding:13px 0;flex-wrap:wrap;gap:4px}.detail-grid{grid-template-columns:1fr;gap:10px;margin-bottom:10px}.detail-block{padding:14px;border-radius:15px}.detail-block h3{font-size:19px;margin-bottom:10px}.target-line{font-size:15px;gap:10px}.item-state{font-size:12px;padding:3px 7px}.relation-line strong{font-size:21px}.direction-states{display:flex;flex-direction:column;gap:2px;font-size:13px}.round-history summary,.recent-answer{font-size:14px}.detail-actions{gap:10px}.detail-actions .primary,.detail-actions .secondary{width:100%;min-height:46px;font-size:16px}.detail-actions>.tiny{margin:0}
 .records-caption{flex-wrap:wrap;gap:12px;font-size:12px;margin-top:16px}.records-caption .secondary{width:100%;min-height:44px}
 .aside-metrics{gap:18px}.aside .daily-metric-head strong{font-size:25px}.aside .daily-metric-head>span{font-size:16px}.aside .daily-metric-head small{font-size:13px}
 .flash-actions>*{width:100%}
}
@media(max-width:360px){.dashboard-card{padding:18px 13px}.record-filters .chip{font-size:13px;padding:7px 8px}.word-row{padding:12px;gap:10px 6px}.record-word{font-size:23px}.record-rounds,.record-due{font-size:14px}.mobile-goals{padding:9px 10px}.status-counter{padding:11px}.status-counter>span{font-size:14px}.today-card .daily-metric-head strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){.bar i,.record-chevron,.status-counter,.word-row{transition:none}}
