:root{color-scheme:light dark;--bg:#faf8f3;--surface:#fff;--text:#20201d;--muted:#5d625f;--accent:#805520;--border:#d9d3c8;--warn:#8a4b08;--focus:#0b6fcb}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:absolute;left:1rem;top:0;transform:translateY(-100%);min-height:44px;display:inline-flex;align-items:center}.skip-link:focus{top:1rem;transform:none;background:var(--surface);padding:.75rem;z-index:2}.site-header,main{width:min(100% - 2rem,68rem);margin-inline:auto}.site-header{padding:1rem 0}.site-header .brand{font-size:1.35rem;font-weight:750;margin:0}.brand a,.breadcrumbs a,.action-link{min-height:44px;display:inline-flex;align-items:center;padding-block:.45rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav{display:flex;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;margin-top:.75rem}.nav form{margin-left:auto}.nav a,.nav button,.button,button{min-height:44px;display:inline-flex;align-items:center;padding:.55rem .85rem;border-radius:.45rem}.nav button,button,.button{border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;font:inherit;cursor:pointer}.secondary{background:transparent;color:var(--accent)}main{padding-bottom:4rem}h1,h2,h3,h4{line-height:1.2;overflow-wrap:anywhere}h2{margin-top:2rem}.lede{font-size:1.1rem;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:750;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem;margin-block:1rem;overflow-wrap:anywhere;min-width:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1rem}.card-grid .card{margin:0}.hanzi{font-size:2.4rem;line-height:1;margin:.5rem 0}.hanzi-inline{font-size:1.3em}.badge{display:inline-block;border:1px solid currentColor;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:700;vertical-align:middle}.badge-ok{color:#27633a}.badge-warn{color:var(--warn)}.badge-muted{color:var(--muted)}.badge-row{display:flex;gap:.5rem;flex-wrap:wrap}.badge-source{color:var(--accent)}.badge-confidence,.confidence-text{color:var(--muted)}.inline-list{display:flex;gap:.5rem 1.25rem;flex-wrap:wrap;padding-left:1.2rem}dl{display:grid;grid-template-columns:minmax(7rem,12rem) minmax(0,1fr);gap:.35rem 1rem}dt{font-weight:700}dd{margin:0}summary{cursor:pointer;min-height:44px;padding:.5rem 0;font-weight:700}label{display:block;margin-block:1rem;font-weight:650}input,select{display:block;width:100%;max-width:32rem;min-height:44px;padding:.55rem;border:1px solid var(--border);border-radius:.35rem;background:var(--surface);color:var(--text);font:inherit}fieldset label{font-weight:400;min-height:44px;display:flex;align-items:center;gap:.5rem}fieldset input{display:inline;width:auto;min-height:auto}.help{color:var(--muted);max-width:65ch}[role=alert]{border-left:4px solid var(--warn);padding:.75rem;background:var(--surface)}code{overflow-wrap:anywhere}.reading-grid{display:grid;grid-template-columns:1fr;gap:1rem}.reading-grid>.card{margin:0}.reading-card{container-type:inline-size}.reading-header{border-bottom:1px solid var(--border);padding-bottom:1rem}.period-label{font-size:1.05rem}.loading-state{border-left:3px solid var(--accent);padding:.65rem .8rem;color:var(--muted)}.factor-list{display:grid;grid-template-columns:1fr;gap:.75rem}.factor{border-top:1px solid var(--border);padding-top:.5rem;min-width:0}.factor:first-child{border-top:0}.day-list{display:grid;gap:.75rem;padding-left:1.25rem}.day-list li{padding-left:.25rem}.day-list span{display:block}.notice{border-left:4px solid var(--warn);padding-left:1rem}.period-nav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.25rem}.breadcrumbs{margin-block:1rem}.reading-receipt{margin-top:1rem}.unavailable{border-style:dashed}@media(min-width:48rem){.reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-grid>.reading-shell:first-child{grid-column:1/-1}.factor-list{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-card{padding:1.5rem}}@media(min-width:64rem){.reading-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reading-grid>.reading-shell:first-child{grid-column:auto}}@media(max-width:34rem){.site-header,main{width:min(100% - 1rem,68rem)}dl{grid-template-columns:1fr}.nav form{margin-left:0;width:100%}.nav a,.nav button{width:100%;justify-content:center}.card{padding:.85rem}.period-nav a{flex:1;justify-content:center}.badge{white-space:normal}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:root{--bg:#171816;--surface:#222420;--text:#f2f0e9;--muted:#c3c5bf;--accent:#e8b870;--border:#555950;--warn:#f2ad63}.badge-ok{color:#90d5a3}}@media print{.site-header,.period-nav,.breadcrumbs,.loading-state{display:none!important}body{background:#fff;color:#000;font-size:11pt}.site-header,main{width:100%}.card{border:0;padding:0;box-shadow:none}details>*{display:block}a{color:#000;text-decoration:none}}.feedback-panel{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.feedback-panel form{display:grid;gap:.75rem;margin-block:1rem}.feedback-panel fieldset{display:grid;gap:.4rem;border:1px solid var(--border);border-radius:.45rem}.feedback-panel label{min-height:44px;display:flex;align-items:center;gap:.5rem}.feedback-panel textarea{width:100%;font:inherit;padding:.7rem;border:1px solid var(--border);border-radius:.45rem;background:var(--surface);color:var(--text)}.history-list h2 a{min-height:44px;display:inline-flex;align-items:center}.history-list details p{white-space:pre-wrap;overflow-wrap:anywhere}.admin-form{display:grid;gap:.65rem;max-width:34rem}.admin-form input{min-height:44px;width:100%;padding:.55rem;border:1px solid var(--border);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit}.admin-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem}.admin-list .card{margin:0}.admin-list form{margin-top:.75rem}.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2rem}.admin-list code{overflow-wrap:anywhere}
