@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap');
:root{--paper:#f4f2e9;--panel:#faf9f3;--ink:#283b32;--muted:#7d8377;--line:#dfe0d5;--green:#3e604b;--red:#aa5340;--serif:'Noto Serif SC','Songti SC','SimSun',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}button,a{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);padding:7px 13px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#e7ebdf;border-color:#a1b09d}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}button:disabled{cursor:not-allowed;color:#9c9e91;background:#edece4;border-color:#e3e3d9}button.primary{background:var(--green);border-color:var(--green);color:white}button.primary:hover:not(:disabled){background:#294834}button.primary:disabled{background:#cbd2c4;border-color:#cbd2c4;color:#fff}header{height:96px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1380px)/2));position:relative;z-index:2;background:#f4f2e9e8}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--ink);font:600 27px var(--serif);letter-spacing:4px}.seal{display:block;border:2px solid var(--red);padding:4px 8px;color:var(--red);font:600 16px/1.1 var(--serif);letter-spacing:0;transform:rotate(-3deg)}.brand small{display:block;font:10px/2.4 sans-serif;letter-spacing:2px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.live-dot{width:6px;height:6px;background:#789467;border-radius:50%}.text-button{border:0;margin-left:20px;font-size:12px}.text-button span{margin-left:7px}.landscape{height:140px;width:55%;position:absolute;top:99px;right:0;opacity:.5;pointer-events:none}.landscape svg{width:100%;height:100%}main{max-width:1380px;margin:auto;padding:0 32px}.intro{display:flex;justify-content:space-between;align-items:center;position:relative;padding:35px 0 30px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--green)}h1{font:500 28px/1.6 var(--serif);letter-spacing:1px;margin:7px 0}p{margin:5px 0;color:var(--muted);font-size:12px}.mountain-stat{text-align:right;padding-right:12px}.mountain-stat span,.mountain-stat small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px}.mountain-stat strong{font:500 18px/2.2 var(--serif)}.layout{display:grid;grid-template-columns:255px minmax(400px,1fr) 285px;gap:20px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:21px;margin-bottom:18px;box-shadow:0 2px 3px #253b2f03}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.section-head h2{font:600 15px var(--serif);margin:0;letter-spacing:1px}.section-head>span{font-size:10px;color:var(--muted)}.resource-row{padding:11px 0;border-top:1px solid #e8e8df}.resource-top{display:flex;align-items:center;justify-content:space-between}.res-name{font-size:12px;display:flex;align-items:center;gap:9px}.res-mark{font:12px var(--serif);color:#6e806a;background:#e9eddf;width:23px;height:23px;display:grid;place-items:center;border-radius:3px}.res-number{font:500 16px ui-monospace,'SFMono-Regular',monospace;font-variant-numeric:tabular-nums}.res-number small{font:10px sans-serif;color:var(--muted)}.resource-bottom{margin-left:32px;display:flex;align-items:center;gap:10px;margin-top:4px}.resource-track{height:3px;background:#e6e8dd;flex:1;overflow:hidden}.resource-track i{height:100%;display:block;background:#9aaa83}.res-rate{font:10px ui-monospace,monospace;color:#708469;min-width:65px;text-align:right}.res-rate.negative{color:var(--red)}.supply-note{font-size:10px;color:#8c8c7b;margin:12px 0}.full-button{width:100%}.full-button small{display:block;font-size:10px;color:var(--muted)}.outline{border-color:#c8cfc0;font-size:12px}.tiny{font-size:10px;color:var(--muted);margin-top:10px;line-height:1.8}.tag{background:#e7ecdf;padding:3px 7px;color:var(--green)!important;border-radius:3px}.cultivation-number{margin:16px 0 8px}.cultivation-number strong{font:30px var(--serif)}.cultivation-number span{font-size:11px;margin-left:6px;color:var(--muted)}.progress{height:5px;background:#e3e7db;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green);transition:width .2s}.cultivation p{font-size:11px;margin:11px 0 14px}.quiet-quote{text-align:center;font:11px var(--serif);color:#999d8b;margin-top:17px}.speed-box{padding:0 3px;font-size:11px;color:var(--muted)}.segmented{display:flex;margin:10px 0 6px;gap:5px}.segmented button{flex:1;font-size:11px;padding:6px}.segmented .selected{background:#e2e8d9;border-color:#9dab8d;color:var(--green)}.speed-box small{font-size:9px}.disciples .section-head{align-items:start;margin-bottom:11px}.section-head h2 span{font:12px sans-serif;letter-spacing:0;margin-left:5px;color:var(--muted)}.section-head p{font-size:11px;margin-top:7px}.disciples .primary{font-size:11px;white-space:nowrap}.disciple-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;font-size:10px;color:var(--muted)}.disciple-meta span:first-child{color:var(--green)}.job-row{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.job-name{font-size:12px}.job-name small{display:block;font-size:10px;color:var(--muted)}.stepper{display:flex;align-items:center;gap:9px}.stepper button{width:26px;height:26px;padding:0;font-size:14px}.stepper span{min-width:16px;text-align:center;font:13px ui-monospace,monospace}.management{padding:0;overflow:hidden}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 15px;background:#f1f2e8}.tabs button{border:0;border-radius:0;font-size:12px;padding:15px 13px;position:relative;color:var(--muted)}.tabs button.active{color:var(--ink)}.tabs .active:after{content:'';height:2px;background:var(--green);bottom:0;left:13px;right:13px;position:absolute}.tabs span{font-size:10px;margin-left:4px;color:#96a18b}#management-content{padding:6px 21px 13px}.building-row{border-bottom:1px solid #e6e7dd;padding:16px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.building-row:last-child{border:0}.item-title{font:500 14px var(--serif);display:flex;align-items:center;gap:8px}.item-title .count{font:10px sans-serif;background:#e9ecdf;border-radius:3px;padding:1px 6px;color:#6e7a62}.building-row p{font-size:10px;margin:5px 0}.cost{display:flex;flex-wrap:wrap;gap:8px;font:10px/1.7 sans-serif;color:#748265}.cost .missing{color:#ae715e}.build-action{text-align:right;min-width:70px}.build-action button{font-size:11px;min-width:66px}.build-action small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.locked{opacity:.63}.locked .build-action small{max-width:80px}.done-label{color:var(--green);font-size:11px}.goal h3{font:500 21px var(--serif);margin:15px 0 8px}.goal p{font-size:11px}.red-label{color:var(--red)!important}.milestone{display:flex;gap:10px;margin:16px 0;font-size:11px;color:var(--muted)}.check{width:17px;height:17px;flex-shrink:0;border:1px solid #d0d4c6;border-radius:50%;display:grid;place-items:center;font-size:10px;margin-top:1px}.milestone.complete{color:var(--green)}.milestone.complete .check{color:#fff;background:#758b61;border-color:#758b61}.milestone small{display:block;font-size:10px;color:#929685}.next-goal{background:#eef0e5;border-left:2px solid #9daa88;padding:12px;font-size:11px;margin:18px 0}.next-goal strong{display:block;font-size:10px;font-weight:500;color:var(--green);margin-bottom:4px}.goal .primary{font-size:12px;padding:10px}.journal{padding-bottom:12px}.journal-mark{border:1px solid #c4cabc;padding:0 5px;font-family:var(--serif)}#logs{max-height:350px;overflow:auto;scrollbar-width:thin}.log-item{border-left:1px solid #dbe0d0;padding:0 0 17px 14px;margin-left:2px;position:relative}.log-item:before{content:'';width:5px;height:5px;border-radius:50%;background:#bdc8ae;position:absolute;left:-3px;top:5px}.log-item small{font-size:9px;color:#99a08e}.log-item p{font-size:11px;line-height:1.9;color:#7d8375}.log-item.good p{color:var(--green)}footer{display:flex;justify-content:space-between;padding:28px 0;color:#969b8c;font-size:10px;letter-spacing:1px}.footer-dot{margin:0 8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(80px);background:#304636;color:white;z-index:8;padding:11px 22px;border-radius:5px;font-size:12px;transition:transform .2s;pointer-events:none;max-width:90vw}#toast.visible{transform:translateX(-50%) translateY(0)}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:26px;width:460px;max-width:calc(100vw - 30px);box-shadow:0 20px 80px #243a2b28}dialog::backdrop{background:#20312866;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.modal-head h2{font:600 20px var(--serif);margin:0}.modal-head button{font-size:23px;border:0;padding:0 6px}.modal-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.modal-note{border-top:1px solid var(--line);padding-top:14px}.offline-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;font-size:12px}.offline-row strong{color:var(--green);font-family:monospace}.alchemy-box{padding:23px 0}.alchemy-box h3{font:18px var(--serif)}.alchemy-box .primary{margin:18px 0}.alchemy-box .progress{margin:16px 0}.victory{font:18px/2 var(--serif);color:var(--green)}@media(min-width:1600px){main{padding:0}.layout{grid-template-columns:265px 1fr 300px}}@media(max-width:1150px){.layout{grid-template-columns:230px minmax(340px,1fr)}.right-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.right-column .panel{margin:0}.goal h3{font-size:19px}.milestone{margin:10px 0}}@media(max-width:700px){header{height:78px;padding:0 18px}.brand{font-size:22px;gap:10px}.brand small{font-size:8px}.header-right>#save-status,.live-dot{display:none}.text-button{margin-left:0;padding:5px;font-size:10px}main{padding:0 16px}.intro{padding:25px 0 22px}.intro h1{font-size:21px;letter-spacing:0}.intro p{font-size:10px}.mountain-stat{display:none}.landscape{top:78px;width:85%;height:115px;opacity:.35}.layout{display:flex;flex-direction:column;gap:0}.left-column,.center-column,.right-column{width:100%}.left-column{display:grid;grid-template-columns:1fr 1fr;gap:12px}.resource-panel{grid-column:1/-1}.resource-panel #resources{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.resource-panel .section-head{margin-bottom:6px}.resource-row{padding:9px 0}.resource-panel .tiny{display:none}.resource-panel .full-button small{display:inline;margin-left:8px}.panel{padding:18px;margin-bottom:14px}.cultivation{margin-bottom:14px}.speed-box{padding:15px 8px}.segmented{flex-direction:column}.right-column{display:flex;flex-direction:column;gap:14px}.right-column .panel{margin:0}.tabs{padding:0 6px}#management-content{padding:4px 18px}.tabs button{padding:14px 11px}footer{display:block;font-size:9px}footer>span{display:block;margin:6px 0}.res-number{font-size:15px}.resource-bottom{margin-left:0;margin-top:6px}.res-rate{min-width:58px}.cultivation .section-head{flex-wrap:wrap}.quiet-quote{font-size:10px}}
/* Current task stays near the controls, including in a narrow Codex panel. */
[hidden]{display:none!important}
.task-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;padding:14px 18px;background:#edf0e4;border:1px solid #d3dbc8;border-left:3px solid #81966a;border-radius:5px}
.task-strip .next-goal{margin:0;padding:0;background:transparent;border:0;font-size:12px;line-height:1.8;flex:1;min-width:0}
.task-strip .next-goal strong{font-size:10px;letter-spacing:1px;margin:0 0 3px}
.task-strip button{flex-shrink:0;background:#fafbf3;font-size:11px}
.benefit{color:#526d48!important;font-size:11px!important;line-height:1.8}
.building-row{gap:6px 12px}
.item-status{grid-column:1/-1;display:block;font-size:10px;line-height:1.8;color:#7e816f}
.build-action{min-width:66px}
.alchemy-material-status{margin-top:12px;color:#9d6b50;font-size:12px}
.step-highlight{outline:2px solid #98aa7d;outline-offset:4px;background-color:#edf2e4!important}
.goal .primary{margin-top:12px}
@media(max-width:1150px){.task-strip{position:sticky;top:0;z-index:5;box-shadow:0 4px 12px #34462a12}}
@media(max-width:700px){.task-strip{gap:12px;padding:12px;margin-bottom:14px}.task-strip .next-goal{font-size:11px}.task-strip button{font-size:10px;padding:7px 8px;max-width:100px;white-space:normal}.building-row p.benefit{font-size:10px!important}.disciple-meta{gap:6px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Sect doctrines and expeditions remain text-first, with the same stable controls. */
.tabs{flex-wrap:wrap}
.tabs button{padding:14px 10px}
.section-note{padding:18px 0;border-bottom:1px solid var(--line)}
.section-note h3{font:500 19px var(--serif);margin:0 0 10px}
.section-note .progress{margin:12px 0}
.adventure-modes{max-width:320px;margin-top:14px}
.adventure-modes button{font-size:11px}
.alchemy-box+.alchemy-box{border-top:1px solid var(--line)}
.adventure-row p{line-height:1.9}
@media(max-width:700px){.tabs button{padding:13px 8px;font-size:11px}.adventure-modes{flex-direction:row}.section-note p{font-size:11px}}
.branch-card{padding:20px 0;border-bottom:1px solid var(--line)}
.branch-card:last-child{border:0}
.branch-card p{line-height:1.9}
.branch-card .cost{margin-top:12px}
.branch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.branch-actions button{font-size:11px}
.survey-targets{max-width:100%;flex-wrap:wrap}
@media(max-width:700px){.survey-targets{flex-direction:row}.tabs button{font-size:10px;padding:12px 7px}}

.shield-number{font:20px var(--serif);color:var(--green);margin:16px 0 8px}.shield{height:8px;margin-bottom:12px}.trial-waves{border-left:2px solid var(--line);padding-left:12px;margin:16px 0}.trial-waves .wave-done{color:var(--green)}.trial-strategies,.diplomacy-modes{flex-wrap:wrap}.trial-strategies button,.diplomacy-modes button{min-width:82px}.section-note button{font-size:11px}
/* Shared governance forms and overview stay compact within the paper panels. */
.management-groups{display:flex;flex-wrap:wrap;gap:5px;padding:12px 16px;border-bottom:1px solid var(--line)}
.management-groups button{font-size:11px;padding:5px 9px}
.management-groups .selected{background:var(--green);border-color:var(--green);color:white}
.policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.policy-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:var(--muted)}
.policy-field input,.policy-field select{min-width:0;width:100%;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:inherit;padding:8px}
.policy-field input:focus-visible,.policy-field select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.business-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.business-metrics strong,.business-metrics span{display:block}.business-metrics strong{font:22px var(--serif)}.business-metrics span{font-size:10px;color:var(--muted)}
.business-row{display:grid;grid-template-columns:1.1fr .8fr 1.3fr;gap:8px;border-top:1px solid var(--line);padding:10px 0;font-size:11px}
.business-row small,.event-row small{display:block;font-size:10px;color:var(--muted)}
.table-heading{color:var(--muted);font-size:10px}.negative{color:var(--red)}
.event-row{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:10px 0;font-size:11px}.event-row>span{min-width:0}.event-row button{flex-shrink:0;font-size:11px}
.elder-appointments{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.elder-appointments button{font-size:10px;padding:6px 8px}
dialog{max-height:calc(100dvh - 32px);overflow:auto}
@media(max-width:450px){.policy-grid{grid-template-columns:1fr}.business-metrics{grid-template-columns:repeat(2,1fr)}.business-row{grid-template-columns:1fr .65fr 1fr}.event-row{align-items:flex-start}}
@media(max-width:450px){
 .resource-top{gap:8px;align-items:flex-start}
 .res-name{min-width:0}
 .res-number{flex-shrink:0;text-align:right;font-size:14px}
 .res-number small{display:block;font-size:9px;line-height:1.3}
}
