:root{color-scheme:light;--paper:#f7f3eb;--ink:#282721;--red:#ae4032;--line:#d5cbbd;--muted:#777167;--teal:#397374}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #357f80;outline-offset:3px}.page{max-width:620px;margin:auto;padding:24px 24px 42px}.serif{font-family:"Songti SC",SimSun,serif}.brand{font:38px/1.4 SimSun,serif;display:flex;gap:16px;align-items:center;margin:16px 0}.brand span{color:var(--red);font:46px sans-serif}.rule{border-top:1px solid var(--line);margin:22px 0}.slogan{font:600 23px/1.8 SimSun,serif;white-space:nowrap;margin:28px 0 20px}.date-card{border:1px solid var(--line);border-radius:12px;padding:15px 20px;background:#f2ece4}.red{color:var(--red)}.muted{color:var(--muted)}.small{font-size:14px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.date{font:42px/1.6 SimSun,serif}.lunar{border-top:1px solid var(--line);padding-top:8px}.instruction{text-align:center;margin:24px 0 18px}.steps{display:flex;justify-content:space-between;position:relative}.steps:before{content:"";height:1px;background:#a89d8d;left:22px;right:22px;position:absolute;top:24px}.step{position:relative;width:48px;height:48px;border:1px solid #aa9e8d;border-radius:50%;text-align:center;line-height:46px;background:var(--paper);color:var(--muted)}.step.active,.step.done{border-color:var(--red);color:var(--red)}.step.done{background:#f1dfd4}.status{margin:14px 0}.coins{display:flex;justify-content:space-around;margin:22px 0}.coin{border:1px solid #b9ac9c;outline:1px solid #e0d7cb;outline-offset:-6px;border-radius:50%;width:86px;height:86px;line-height:84px;text-align:center;color:var(--muted);background:#f2eee6}.coin.tossing{animation:toss .65s ease-in-out 4}@keyframes toss{50%{transform:rotateY(180deg)}}.primary{display:block;width:100%;border-radius:11px;color:#fff;background:var(--red);padding:14px;font-weight:600}.primary small{display:block;opacity:.82;font-weight:400}.primary:disabled{background:#bbae9e;cursor:default}.entries{display:flex;justify-content:center;gap:22px;padding:14px 0}.link{color:var(--red);background:transparent;text-decoration:none;padding:6px}.footer{border-top:1px solid var(--line);padding-top:18px;text-align:center;color:var(--muted);font-size:14px;margin-top:26px}.demo{text-align:center;color:#867b6b;font-size:12px;margin-top:9px}.notice{background:#ece1d2;border-radius:9px;padding:12px 14px;font-size:14px;margin:16px 0}.error{color:#953e2c;font-size:14px}.back{display:inline-block;color:#776e60;text-decoration:none;margin-bottom:16px}h1{font:600 28px/1.5 SimSun,serif;margin:0 0 20px}h2{font-size:21px}.search{width:100%;border:1px solid var(--line);border-radius:10px;background:#f1ebe1;padding:15px;margin:12px 0 20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.card{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:11px;padding:18px 16px;background:transparent;color:inherit;min-height:130px}.card strong{font:38px SimSun,serif;display:block}.graphic{width:235px;margin:25px auto}.gualine{display:flex;align-items:center;margin:9px 0;min-height:14px}.stroke{height:9px;flex:1;background:#292824}.gap{width:21px}.line-name{width:40px;margin-left:16px;font-size:16px}.moving .stroke{background:var(--red)}.mini{width:108px;margin:0}.mini .gualine{margin:6px 0;min-height:8px}.mini .stroke{height:6px}.mini .gap{width:13px}.mini .line-name{display:none}.switch{display:flex;border-radius:8px;padding:3px;background:#eae2d6;margin-bottom:25px}.switch button{flex:1;background:transparent;color:var(--muted);padding:8px}.switch .selected{background:var(--red);color:#fff;border-radius:7px}.moving-note{text-align:center;font-size:14px}.original{font:21px/1.9 SimSun,serif;margin:14px 0}.paraphrase{color:var(--teal);font-size:16px;margin:12px 0 22px}.line-section{border-top:1px solid var(--line);padding-top:24px;margin-top:26px}.line-title{font-weight:600;font-size:23px}.history-card{border:1px solid var(--line);border-radius:10px;padding:16px 18px;display:block;width:100%;background:none;text-align:left;margin:16px 0;color:inherit}.history-card strong{display:block;font:24px/1.8 SimSun,serif}.source{border-top:1px solid var(--line);padding:14px 0}dialog{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;max-width:340px;color:var(--ink)}dialog::backdrop{background:#0005}.dialog-buttons{display:flex;gap:12px}.records{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.outline{border:1px solid var(--line);padding:10px 15px;background:transparent;border-radius:8px}@media(max-width:380px){.page{padding:18px}.brand{font-size:28px}.brand span{font-size:36px}.slogan{font-size:18px}.date{font-size:36px}.grid{gap:12px}.card{padding:14px 10px}.card strong{font-size:30px}.mini{width:80px}.row.small{font-size:12px}.step{width:40px;height:40px;line-height:38px}.steps:before{top:20px}}@media(min-width:800px){.page{margin:30px auto;background:#faf7f0;padding:32px 40px;border:1px solid #e4dbce;border-radius:16px}.slogan{font-size:27px}}

.page.home-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;margin:0 auto;border:0;border-radius:0;background:var(--paper);padding-bottom:calc(16px + env(safe-area-inset-bottom))}.home-head,.home-bottom{flex-shrink:0}.home-main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}.home-controls{width:100%}.home-controls .instruction{margin-top:0}.home-bottom .entries{padding:14px 0;margin:0}.home-bottom .footer{margin-top:0}.home-bottom .demo{margin-bottom:0}

.page.history-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;margin:0 auto;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.history-main{flex:1}.history-bottom{flex-shrink:0;padding-top:24px}.history-bottom .footer{margin-top:0}

.home-identity{display:flex;flex-direction:column;align-items:center;margin:4px 0 20px}.home-logo{width:100px;height:100px;border-radius:14px}.home-identity .slogan{font-size:20px;line-height:1.7;white-space:normal;text-align:center;margin:10px 0 0}.home-identity .slogan span{display:block}

.search-row{display:flex;align-items:center;gap:8px}.search-row .search{flex:1;min-width:0}.manual-entry{flex-shrink:0;background:transparent;border:1px solid #d4c9b9;color:#a83b2e;padding:10px 8px;border-radius:6px;font-size:14px}.manual-dialog{width:min(414px,100%);max-width:100%;max-height:94dvh;padding:16px 24px 20px;border-radius:24px 24px 0 0;box-sizing:border-box;margin:auto auto 0;background:#f7f3eb}.manual-dialog h2{margin:0}.manual-dialog::backdrop{background:rgba(40,39,33,.3)}.manual-scroll{max-height:60dvh;overflow-y:auto;margin:12px 0}.manual-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e5ddcf;padding:9px 0;font-size:13px}.manual-coin{text-align:center}.manual-coin small,.manual-value small{display:block}.coin-face{width:40px;height:40px;border-radius:50%;border:1px solid #cbbb98;background:#f6ecd7;color:#795b37;padding:0}.manual-value{text-align:center;min-width:32px}.manual-dialog .primary{width:100%}.manual-note{text-align:center;margin-top:8px}.manual-result-card{border-top:1px solid #d9d0c3;margin-top:20px;padding-top:16px}.detail-link{display:block;text-align:center;text-decoration:none;padding:10px}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{min-width:0}.card .mini{flex-shrink:0}@media(max-width:350px){.card .mini{width:55px}.card{gap:6px}.card strong{font-size:27px}.name-pinyin{font-size:11px}}

.detail-link{color:var(--red)}

.manual-dialog .manual-scroll{max-height:min(60dvh,calc(94dvh - 230px))}

.search-row{align-items:stretch;margin:12px 0 20px}.search-row .search{width:0;flex:1 1 0%;height:44px;padding:0 12px;margin:0}.manual-entry{flex:0 0 auto;display:flex;align-items:center;justify-content:center;white-space:nowrap;width:auto;height:44px;margin:0;padding:0 10px;line-height:1;border-radius:7px}.manual-dialog{height:min(94dvh,640px);max-height:94dvh;padding:12px 18px;overflow:hidden}.manual-dialog[open]{display:flex;flex-direction:column}.manual-dialog>.row{flex:0 0 auto;min-height:30px}.manual-dialog h2{flex:1;min-width:0}.manual-dialog #manualClose{flex:0 0 28px;width:28px;height:28px;min-width:28px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1}.manual-dialog .manual-scroll{flex:1 1 0%;min-height:0;max-height:none;overflow-y:auto;margin:9px 0;padding-bottom:16px}.manual-row{display:grid;grid-template-columns:35px repeat(3,minmax(0,1fr)) 35px;gap:4px;padding:6px 0}.manual-row>span{white-space:nowrap}.manual-coin{min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}.coin-face{flex:0 0 38px;width:38px;min-width:38px;max-width:38px;height:38px;min-height:38px;max-height:38px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;line-height:1}.manual-dialog .primary,.manual-dialog .manual-note{flex:0 0 auto}

.manual-entry{width:calc(4em + 22px);min-width:calc(4em + 22px);max-width:calc(4em + 22px)}.manual-dialog .manual-scroll{padding-bottom:0;overscroll-behavior:contain}.manual-dialog>.row,.manual-dialog>.muted{touch-action:none}.manual-dialog .manual-scroll{touch-action:pan-y}

/* Approved B homepage; app content only, native navigation stays platform-owned. */
.page.home-page{max-width:450px;min-height:100vh;margin:0 auto;padding:0 26px calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#f8f5ee;color:#292923;font-family:-apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif}
.home-stage{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;padding:64px 0}
.home-composition{position:relative;width:100%;flex:0 0 auto}
.home-hero{display:flex;justify-content:space-between;align-items:center;gap:14px}
.home-slogan{flex:1;min-width:0;font-size:18px;font-weight:500;line-height:1.35;letter-spacing:.35px;color:#46483e}
.home-slogan span{display:block}
.home-date{text-align:right;flex-shrink:0}
.home-date-label{display:block;font-family:Georgia,serif;font-size:24px;line-height:1.15;letter-spacing:1px;color:#46483e}
.home-calendar{display:block;font-size:10px;line-height:1.5;color:#81796c;margin-top:5px;white-space:nowrap}
.home-paper{position:relative;min-height:414px;margin-top:20px;padding:24px 22px 22px;border:1px solid #d5c6ad;border-radius:21px;background:#fcf9f0 url('assets/home-paper.png') repeat;background-size:320px 320px;box-shadow:0 2px 0 #e2d9c9,0 4px 0 #f4efe4,0 5px 0 #ded3c2,0 15px 25px -13px #66523255,inset 0 1px 0 #fffefbd9,inset 1px 0 0 #ffffff70}
.home-paper::before{content:"";position:absolute;inset:2px;border-radius:18px;pointer-events:none;box-shadow:inset 0 1px 0 #ffffff80}
.home-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#787064}
.home-completed{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:14px;font-weight:500;color:#303329}
.home-seal{width:16px;height:16px;flex-shrink:0}
.home-tag{padding:3px 7px;border:1px solid #ddbcab;border-radius:4px;font-size:11px;line-height:normal;white-space:nowrap;color:#a94030;background:#fffdf470}
.home-segments{display:flex;gap:8px;justify-content:space-between;margin-top:19px}
.home-segment{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;font-family:Georgia,serif;font-size:11px;line-height:normal;color:#9c9385}
.home-segment::before{content:"";height:4px;width:100%;background:#e4dacb;border-radius:2px;margin-bottom:9px}
.home-segment.active::before,.home-segment.done::before{background:#aa4634}
.home-segment.active,.home-segment.done{color:#a84130}
.home-scene{height:177px;display:flex;justify-content:center;align-items:center;gap:15px}
.home-coin{box-sizing:border-box;flex-shrink:0;width:18.4vw;min-width:54px;max-width:76px;height:18.4vw;min-height:54px;max-height:76px;display:flex;align-items:center;justify-content:center;border:1px solid #c7b9a6;outline:1px solid #e8d6bd;outline-offset:-6px;border-radius:50%;color:#867454;font-size:15px;line-height:1;background:#f8eddd;box-shadow:inset 0 1px 0 #fff8e4,0 3px 5px #80654514}
.home-paper .home-action{width:100%;height:56px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:11px;font-size:17px;line-height:1.6;font-weight:500;background:#a84230;color:#fff;box-shadow:inset 0 1px 0 #c9796290,0 2px 0 #87372330}
.home-paper .home-action[disabled]{background:#bbae9e;box-shadow:none}
.home-action-note{padding-top:14px;text-align:center;font-size:10px;line-height:1.8;color:#8a8175}
.home-result-graphic{flex-shrink:0;width:28vw;min-width:88px;max-width:116px}
.home-result-graphic .graphic{width:100%;margin:0}
.home-result-graphic .gualine{margin:0 0 11px;min-height:8px;gap:0}
.home-result-graphic .gualine:last-child{margin-bottom:0}
.home-result-graphic .stroke{height:8px;background:#35352d}
.home-result-graphic .gap{width:16px}
.home-result-graphic .line-name{display:none}
.home-result-name{font-size:68px;color:#30352c;margin-left:13px;line-height:normal;text-align:center}
.home-result-number{display:block;margin-top:10px;font-family:-apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif;font-size:12px;line-height:normal;color:#887c6b}
.home-quick.entries{position:absolute;top:calc(100% + 22px);left:0;right:0;display:flex;align-items:center;justify-content:space-between;margin:0;padding:0 3px;color:#705e49;font-size:13px;line-height:1.7}
.home-quick>a{display:flex;align-items:center;gap:8px;padding:1px 2px}
.home-quick img{width:15px;height:15px}
.home-bottom{flex:0 0 auto}
.home-bottom .footer{margin:0;padding:18px 0 0;border-top:1px solid #d7cdc0;text-align:center;font-size:11px;line-height:1.7;letter-spacing:.4px;color:#847e72}
.home-paper .records{margin-top:18px;border-top:1px solid #ddd1c2;padding-top:12px}
.home-paper .records .small{font-size:12px}
.tossing{animation:toss .65s ease-in-out 4}@keyframes toss{0%,100%{transform:rotateY(0)}50%{transform:rotateY(180deg)}}
@media(max-width:380px){.home-slogan{font-size:16px}.home-date-label{font-size:22px}.home-result-name{font-size:56px}.home-result-graphic .gualine{margin-bottom:9px}}

.page.home-page{min-height:max(690px,100svh)}.home-quick a{color:inherit;text-decoration:none}.home-date-label{font-weight:400}

/* Fixed six paper flags and coin display: reviewing never changes real progress. */
.home-segments{height:70px;margin-top:19px;gap:8px;align-items:flex-start}
.home-flag{position:relative;flex:1;min-width:0;max-width:44px;height:66px;margin:0;padding:0;background:transparent;border:0;line-height:1;font-family:Georgia,serif;font-size:17px;color:#958a78;overflow:visible;box-shadow:none}
.home-flag[disabled]{background:transparent;color:#958a78;opacity:1}
.home-flag.done,.home-flag.done[disabled]{color:#a84230}
.home-flag.selected{font-weight:700}
.flag-paper{position:absolute;left:0;top:0;width:100%;height:100%;filter:drop-shadow(1px 2px 2px #725d3a30)}
.home-flag span{position:absolute;left:0;right:0;top:24px;text-align:center}
.flag-dot{position:absolute;top:-6px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#a84230}
.home-scene{height:142px;gap:15px}
.home-coin-unit{width:18.4vw;min-width:54px;max-width:76px;display:flex;flex-direction:column;align-items:center;gap:8px}
.home-ancient-coin{width:100%;height:18.4vw;min-height:54px;max-height:76px;filter:drop-shadow(0 2px 2px #59442930)}
.home-ancient-coin.waiting{opacity:.4;filter:grayscale(.5)}
.home-coin-label{display:block;font-size:12px;line-height:18px;color:#8b6a48;white-space:nowrap}
.home-review-label{height:28px;line-height:18px;font-size:11px;text-align:center;color:#a84230;white-space:nowrap}
.home-paper{min-height:452px}

.page.footer-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;margin:0 auto;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.footer-page .page-content{flex:1 0 auto;min-width:0}
.footer-page .page-bottom{flex:0 0 auto;padding-top:20px}
.footer-page .page-bottom .footer{margin:0;padding-top:18px}

.manual-dialog .primary.manual-unavailable{background:#bbae9e;color:#fff}
