:root{--tap-min-size: 44px;--tap-gap: 8px;--gap-choice: 12px;--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--font-size-body: 17px;--font-size-sub: 16px;--font-size-lead: 18px;--font-size-stem: 21px;--font-size-title: 22px;--line-height-read: 1.9;--color-bg: #e9edf2;--color-surface: #ffffff;--color-dock: #ffffff;--color-text: #14171a;--color-text-muted: #4c5560;--color-border: #ccd4dd;--color-accent: #12513f;--color-accent-weak: #e4efea;--color-attention: #7a4a05;--color-attention-weak: #f4e6d2;--color-ok: #0b5c37;--color-ok-weak: #e4f3ea;--color-ng: #9a1c1c;--color-ng-weak: #fceaea;--radius: 12px;--radius-card: 14px;--radius-control: 12px;--shadow-card: 0 1px 3px rgba(20, 23, 26, .12);--shadow-dock: 0 -2px 8px rgba(20, 23, 26, .1);--control-height-primary: 64px;--control-height-quiet: 52px;--control-height-choice: 64px;--dock-clearance: calc(var(--control-height-primary) + var(--space-3) * 2);--content-max-width: 640px;--font-stack: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-stack);font-size:var(--font-size-body);line-height:1.8}h1,h2,h3{line-height:1.5;margin:0}a{color:var(--color-accent)}a[class*=tap-],button{min-height:var(--tap-min-size);min-width:var(--tap-min-size)}.screen{display:flex;flex-direction:column;gap:var(--space-2);margin:0 auto;max-width:var(--content-max-width);min-height:100vh;padding:var(--space-2)}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-2)}.card--plain{background:transparent;box-shadow:none;padding:0}.thumb-zone{display:flex;flex-direction:column;gap:var(--tap-gap);margin-top:auto;padding-top:var(--space-3)}.thumb-zone--dock{background:var(--color-dock);border-top:1px solid var(--color-border);bottom:0;box-shadow:var(--shadow-dock);margin:var(--space-3) calc(-1 * var(--space-2)) 0;padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom,0px));position:sticky;z-index:10}.tap-primary{background:var(--color-accent);border:none;border-radius:var(--radius-control);color:var(--color-surface);font-size:var(--font-size-lead);font-weight:700;min-height:var(--control-height-primary);padding:var(--space-1) var(--space-2);width:100%}.tap-primary:disabled{background:var(--color-border);color:var(--color-text-muted)}.tap-quiet{background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-control);color:var(--color-accent);font-size:var(--font-size-body);font-weight:700;min-height:var(--control-height-quiet);padding:var(--space-1) var(--space-2);width:100%}.tap-choice{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);box-shadow:var(--shadow-card);color:var(--color-text);display:flex;font-size:var(--font-size-body);min-height:var(--control-height-choice);padding:var(--space-1) var(--space-2);text-align:left;width:100%}.choice-list{display:flex;flex-direction:column;gap:var(--gap-choice);list-style:none;margin:0;padding:0}.diagnostic__body h1{font-size:var(--font-size-title)}.diagnostic__lead{color:var(--color-text-muted);margin:var(--space-1) 0 0}.diagnostic__note{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.diagnostic__body h2{font-size:var(--font-size-body);margin-bottom:var(--space-1)}.diagnostic__volume{font-size:var(--font-size-stem);font-weight:700;margin:0}.standard{border:none;margin:0}.standard legend{font-weight:700;padding:0}.standard__option{align-items:center;cursor:pointer;display:flex;gap:var(--space-1);min-height:var(--control-height-quiet)}.standard__option input{height:var(--space-3);width:var(--space-3)}.exam__progress{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:0}.exam__category{color:var(--color-accent);font-size:var(--font-size-sub);font-weight:700;margin:var(--space-1) 0 0}.exam__question{font-size:var(--font-size-stem);line-height:1.8;margin:var(--space-1) 0 0}.exam__chosen{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:0}.feedback{border-left:4px solid var(--color-border)}.feedback--correct{border-left-color:var(--color-ok)}.feedback--incorrect{border-left-color:var(--color-ng)}.feedback--unanswered{border-left-color:var(--color-text-muted)}.feedback__verdict{font-size:var(--font-size-title);font-weight:700;margin:0}.feedback--correct .feedback__verdict{color:var(--color-ok)}.feedback--incorrect .feedback__verdict{color:var(--color-ng)}.feedback__answer{border-left:4px solid var(--color-ok);font-weight:700;margin:var(--space-2) 0 0;padding-left:var(--space-1)}.feedback__explanation{border-top:1px solid var(--color-border);line-height:var(--line-height-read);margin:var(--space-2) 0 0;padding-top:var(--space-2)}.headline{border-left:4px solid var(--color-accent)}.headline--unmeasurable{border-left-color:var(--color-border)}.headline__text{font-size:var(--font-size-title);font-weight:700;margin:var(--space-1) 0 0}.headline__notes{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0;padding-left:var(--space-2)}.headline__comparison{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.steps{display:flex;flex-direction:column;gap:var(--tap-gap);list-style:none;margin:var(--space-1) 0 0;padding:0}.steps__item{align-items:flex-start;background:var(--color-accent-weak);border-radius:var(--radius-control);display:flex;gap:var(--space-1);padding:var(--space-2)}.steps__order{background:var(--color-accent);border-radius:999px;color:var(--color-surface);flex-shrink:0;font-weight:700;height:var(--space-3);line-height:var(--space-3);text-align:center;width:var(--space-3)}.steps__body{display:flex;flex-direction:column}.steps__title{font-weight:700}.steps__detail{color:var(--color-text-muted);font-size:var(--font-size-sub)}.standings{display:flex;flex-direction:column;gap:var(--tap-gap);list-style:none;margin:0;padding:0}.standings__item{background:var(--color-bg);border-left:4px solid var(--color-border);border-radius:var(--radius-control);display:grid;gap:0 var(--space-1);grid-template-columns:1fr auto;padding:var(--space-1) var(--space-2)}.standings__item--reached{border-left-color:var(--color-ok)}.standings__item--shaky{border-left-color:var(--color-attention)}.standings__item--gap{border-left-color:var(--color-text-muted)}.standings__name{font-weight:700}.standings__status{color:var(--color-text-muted);font-size:var(--font-size-sub);font-weight:700}.standings__detail{color:var(--color-text-muted);font-size:var(--font-size-sub);grid-column:1 / -1}.reviews{display:flex;flex-direction:column;gap:var(--tap-gap);list-style:none;margin:0;padding:0}.reviews__item{background:var(--color-bg);border-radius:var(--radius-control);padding:var(--space-2)}.reviews__meta{display:flex;gap:var(--space-1);margin:0 0 var(--space-1)}.reviews__category{color:var(--color-accent);font-size:var(--font-size-sub);font-weight:700}.reviews__outcome{color:var(--color-text-muted);font-size:var(--font-size-sub)}.reviews__question{margin:0}.reviews__chosen,.reviews__correct,.reviews__explanation{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.reviews__correct{color:var(--color-text);font-weight:700}.offline h1{font-size:var(--font-size-title)}.offline__state{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:0}.offline__count{font-size:var(--font-size-lead);font-weight:700;margin:var(--space-1) 0 0}.offline__failure{background:var(--color-attention-weak);border-left:4px solid var(--color-attention);color:var(--color-attention)}.offline__failure p{margin:0}.offline__reason{font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--font-size-sub);word-break:break-word}.offline__note{color:var(--color-text);margin-top:var(--space-1)!important}.offline .thumb-zone button{background:var(--color-accent);border:none;border-radius:var(--radius-control);color:var(--color-surface);font-size:var(--font-size-lead);font-weight:700;min-height:var(--control-height-primary);padding:var(--space-1) var(--space-2);width:100%}.offline .thumb-zone button:disabled{background:var(--color-border);color:var(--color-text-muted)}.practice__title{font-size:var(--font-size-title)}.practice__lead{font-size:var(--font-size-lead);font-weight:700;margin:var(--space-1) 0 0}.practice__note,.practice__loading{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.practice__loading{padding:var(--space-2)}.practice__progress{align-items:center;color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:var(--font-size-sub);gap:var(--space-1);margin:0}.practice__category{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.practice__badge{border-radius:999px;font-size:var(--font-size-sub);font-weight:700;padding:0 var(--space-1)}.practice__badge--missed{background:var(--color-attention-weak);color:var(--color-attention)}.practice__badge--review{background:var(--color-accent-weak);color:var(--color-accent)}.practice__stem{font-size:var(--font-size-stem);line-height:1.8;margin:var(--space-1) 0 0;white-space:pre-wrap}.practice__today h2{color:var(--color-accent);font-size:var(--font-size-body)}.practice__today-text{margin:var(--space-1) 0 0}.practice__storage-error{background:var(--color-attention-weak);border:1px solid var(--color-attention);border-radius:var(--radius-card);color:var(--color-attention);margin:0;padding:var(--space-2)}.practice__feedback{border-left:4px solid var(--color-border)}.practice__feedback--correct{border-left-color:var(--color-ok)}.practice__feedback--incorrect{border-left-color:var(--color-ng)}.practice__verdict{font-size:var(--font-size-title);font-weight:700;margin:0}.practice__feedback--correct .practice__verdict{color:var(--color-ok)}.practice__feedback--incorrect .practice__verdict{color:var(--color-ng)}.practice__chosen{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-2) 0 0}.practice__answer{border-left:4px solid var(--color-ok);font-weight:700;margin:var(--space-1) 0 0;padding-left:var(--space-1)}.practice__explanation{border-top:1px solid var(--color-border);line-height:var(--line-height-read);margin:var(--space-2) 0 0;padding-top:var(--space-2);white-space:pre-wrap}.practice__statutes{background:var(--color-bg);border-radius:var(--radius-control);margin-top:var(--space-2);padding:var(--space-1) var(--space-2)}.practice__statutes-title{font-size:var(--font-size-sub);margin:0}.practice__statutes-list{font-size:var(--font-size-body);list-style:none;margin:var(--space-1) 0 0;padding:0}.practice__citation{font-weight:700}.practice__enforcement{color:var(--color-text-muted);font-size:var(--font-size-sub)}.practice__schedule h2{font-size:var(--font-size-body)}.practice__schedule-list{display:flex;flex-direction:column;gap:var(--space-1);list-style:none;margin:var(--space-1) 0 0;padding:0}.practice__schedule-item{background:var(--color-bg);border-left:4px solid var(--color-attention);border-radius:var(--radius-control);padding:var(--space-1) var(--space-2)}.practice__schedule-due{color:var(--color-attention);font-size:var(--font-size-sub);font-weight:700;margin:0}.practice__schedule-stem{display:-webkit-box;margin:var(--space-1) 0 0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.roadmap{padding-bottom:var(--dock-clearance)}.roadmap h1{font-size:var(--font-size-title)}.roadmap__lead{color:var(--color-text-muted);margin:var(--space-1) 0 0}.roadmap h2{font-size:var(--font-size-body);margin-bottom:var(--space-1)}.deadline{background:var(--color-attention-weak);border-left:4px solid var(--color-attention)}.deadline--closed{background:var(--color-surface);border-left-color:var(--color-border)}.deadline__headline{font-size:var(--font-size-lead);font-weight:700;margin:0}.deadline__date{display:block;font-size:var(--font-size-title);font-weight:700}.deadline__remaining{color:var(--color-attention);font-weight:700;margin:var(--space-1) 0 0}.deadline--closed .deadline__remaining{color:var(--color-text-muted)}.schedule{display:flex;flex-direction:column;gap:var(--tap-gap);list-style:none;margin:0;padding:0}.schedule__item{background:var(--color-bg);border-left:4px solid var(--color-accent);border-radius:var(--radius-control);padding:var(--space-1) var(--space-2)}.schedule__item--finished{border-left-color:var(--color-border);color:var(--color-text-muted)}.schedule__item--examDay{border-left-color:var(--color-attention)}.schedule__order{color:var(--color-text-muted);font-size:var(--font-size-sub)}.schedule__name{font-size:var(--font-size-lead);font-weight:700;margin:0}.schedule__date{display:block;font-size:var(--font-size-lead)}.schedule__countdown{color:var(--color-text-muted);margin:0}.schedule__deadline{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:var(--space-1) 0 0}.transfer__summary{display:flex;flex-direction:column;gap:var(--tap-gap);list-style:none;margin:0 0 var(--space-2);padding:0}.transfer__summary li{background:var(--color-accent-weak);border-radius:var(--radius-control);padding:var(--space-1) var(--space-2)}.transfer__table{border-collapse:collapse;table-layout:fixed;width:100%}.transfer__table th,.transfer__table td{padding:var(--space-1) 0;text-align:left;vertical-align:top}.transfer__table thead th{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sub)}.transfer__table thead th:first-child{width:52%}.transfer__topic{font-size:var(--font-size-body);font-weight:700}.transfer__note{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sub);padding-top:0}.transfer__level{border-radius:999px;display:inline-block;font-size:var(--font-size-sub);font-weight:700;padding:0 var(--space-1)}.transfer__level--high{background:var(--color-accent-weak);color:var(--color-accent)}.transfer__level--partial{background:var(--color-bg);color:var(--color-text-muted)}.transfer__level--fresh{background:var(--color-attention-weak);color:var(--color-attention)}.transfer__caveat{color:var(--color-text-muted);font-size:var(--font-size-sub)}.line-cta{background:var(--color-dock);border-top:1px solid var(--color-border);bottom:0;box-shadow:var(--shadow-dock);left:0;padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom,0px));position:fixed;right:0;z-index:10}.line-cta__inner{margin:0 auto;max-width:var(--content-max-width)}.line-cta__note{color:var(--color-text-muted);font-size:var(--font-size-sub);margin:0 0 var(--tap-gap)}.tap-line-cta{align-items:center;background:var(--color-accent);border-radius:var(--radius-control);color:var(--color-surface);display:flex;font-size:var(--font-size-lead);font-weight:700;justify-content:center;min-height:var(--control-height-primary);padding:var(--space-1) var(--space-2);text-decoration:none;width:100%}.line-cta__pending{align-items:center;background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-control);color:var(--color-text-muted);display:flex;justify-content:center;min-height:var(--tap-min-size);padding:var(--space-1) var(--space-2);text-align:center}.line-cta__error{color:var(--color-ng);margin:0}
