*{box-sizing:border-box}body{margin:0;background:#f7f6f2;color:#303c39;font:15px 'Microsoft JhengHei',system-ui,sans-serif}aside{position:fixed;width:230px;height:100vh;background:#173f36;color:#e8eee8;padding:34px 22px}.brand{display:flex;gap:12px;font-size:32px;align-items:center}.brand strong{font-size:24px;letter-spacing:3px}.brand small{display:block;font-size:11px;letter-spacing:2px;font-weight:400;margin-top:6px;color:#b4c8bc}.navlabel{font-size:11px;color:#98b1a6;margin:48px 14px 16px;letter-spacing:2px}nav button{display:block;width:100%;text-align:left;border:0;background:none;color:#c7d8ce;padding:15px;border-radius:8px;margin:7px 0;font-size:14px}nav button.active{background:#31594d;color:#fff}nav button:hover{background:#294e43}.asidefoot{position:absolute;bottom:30px;font-size:12px;line-height:2;color:#c4d2c8}.asidefoot span{color:#8eaa9b}main{margin-left:230px}header{height:78px;border-bottom:1px solid #e6e7df;display:flex;justify-content:space-between;align-items:center;padding:0 42px;font-size:12px;color:#78827c}header b{padding:0 14px;color:#bac2bb}.profile{display:flex;align-items:center;gap:14px}.profile i{font-style:normal;border-radius:50%;background:#e4e9df;padding:10px;color:#34594a}section{padding:38px 42px;min-height:calc(100vh - 137px);max-width:1600px;margin:auto}.title{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.eyebrow{font-size:10px;letter-spacing:3px;color:#9d8250}h1{font-size:29px;margin:10px 0;font-weight:650;letter-spacing:1px}p{color:#859087;font-size:13px;margin:8px 0}button{cursor:pointer;background:#235446;color:white;border:1px solid transparent;padding:11px 17px;border-radius:6px;font:inherit;font-size:13px}button:hover{filter:brightness(1.08)}button.secondary{background:#fff;border-color:#dce2d9;color:#4c6054}.plain{background:none;color:#61766a;padding:5px 8px}.notice{background:#eeeee4;border:1px solid #e2e2d2;border-radius:6px;padding:12px 16px;font-size:12px;color:#7b775d;margin-bottom:25px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stat,.panel{background:#fff;border:1px solid #e2e6df;border-radius:9px}.stat{padding:24px}.stat span{font-size:12px;color:#79857c}.stat strong{display:block;font-size:28px;margin:16px 0 10px;font-weight:600}.stat small{color:#9c885f;font-size:11px}.grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px}.panel{padding:24px;margin-bottom:22px}.panel h2{font-size:16px;margin:0 0 22px;font-weight:600}.panelhead{display:flex;justify-content:space-between;align-items:center}.panelhead button{margin-top:-18px}.toolbar{display:flex;gap:12px;margin-bottom:20px;align-items:center;flex-wrap:wrap}input,select{border:1px solid #dce2d9;border-radius:5px;padding:11px 12px;font:inherit;font-size:13px;background:white;color:#35473d}input:focus,select:focus{outline:2px solid #8bac9b}input[type=search]{min-width:250px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{text-align:left;background:#f7f8f4;color:#8b948b;font-weight:400;padding:14px 12px}td{padding:17px 12px;border-bottom:1px solid #edf0e9}tbody tr:last-child td{border-bottom:0}.badge{font-size:11px;background:#edf4ec;color:#4c7858;padding:5px 9px;border-radius:4px}.badge.wait{background:#faf1e0;color:#a58143}.amount{font-variant-numeric:tabular-nums;font-weight:600}.event{padding:18px 0;border-top:1px solid #edf0e9;display:flex;gap:16px}.datebox{background:#f1f2e9;padding:10px;border-radius:6px;font-size:19px;color:#77754f;text-align:center;min-width:58px}.datebox small{display:block;font-size:10px;margin-bottom:3px}.event strong{font-size:13px}.event p{font-size:11px;line-height:1.8}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.quick button{background:#fff;border-color:#e0e5dc;color:#456453;text-align:left;padding:19px}.quick span{font-size:11px;color:#8d978d;display:block;margin-top:8px}.bars{display:flex;height:165px;gap:18px;align-items:end;padding:0 12px;margin-bottom:30px}.bar{flex:1;background:#769681;border-radius:4px 4px 0 0;position:relative;min-height:3px}.bar span{position:absolute;bottom:-24px;left:0;width:100%;text-align:center;font-size:10px;color:#8b948a}.empty{text-align:center;padding:45px;color:#929b91}.dialoghead,.dialogfoot{display:flex;align-items:center;justify-content:space-between}.dialoghead h2{font-size:19px}.dialogfoot{justify-content:flex-end;gap:12px;margin-top:24px}dialog{border:0;border-radius:12px;padding:24px 30px;width:530px;max-width:94vw;color:#35473d}dialog::backdrop{background:#14372b70}label{display:block;font-size:12px;color:#768478;margin-top:17px}label input,label select{display:block;width:100%;margin-top:7px}footer{padding:22px 42px;border-top:1px solid #e0e4da;color:#778779;font-size:11px}footer span{float:right;color:#a6afa3}#toast{position:fixed;bottom:24px;left:55%;background:#234f40;color:white;padding:14px 24px;border-radius:8px;display:none}.reportline{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid #edf0e9}.negative{color:#ae795f}@media(max-width:1000px){aside{width:185px;padding:28px 14px}main{margin-left:185px}section{padding:28px 24px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}header{padding:0 24px}}@media(max-width:650px){aside{position:relative;width:100%;height:auto;padding:17px}.brand{font-size:22px}.brand strong{font-size:20px}.brand small,.navlabel,.asidefoot{display:none}nav{display:flex;overflow:auto;gap:4px;margin-top:13px}nav button{width:auto;white-space:nowrap;padding:9px;font-size:12px}main{margin:0}header{height:50px}section{padding:24px 16px}.title{align-items:start;gap:12px}h1{font-size:24px}.stats{gap:10px}.stat{padding:17px}.stat strong{font-size:24px}.quick{grid-template-columns:1fr}.panel{padding:16px}footer span{display:none}input[type=search]{min-width:0;width:100%}}
/* 宮廟意象：朱紅、古金、米紙與傳統窗櫺。 */
:root{--ink:#493d34;--vermilion:#843f34;--gold:#b38c50}body{background-color:#f6f2e9;background-image:radial-gradient(#ac977719 .65px,transparent .65px);background-size:6px 6px;color:var(--ink)}aside{background-color:#542f2b;background-image:linear-gradient(135deg,#d4ad6610 25%,transparent 25%),linear-gradient(225deg,#d4ad6609 25%,transparent 25%);background-size:32px 32px;border-right:3px solid #bc9659}.brand{color:#edd5a2}.brand small{color:#c9af92}.navlabel{color:#bf9d7f}nav button{color:#dec7af}nav button.active{background:#855044;box-shadow:inset 3px 0 #dbb679;color:#fff1d6}nav button:hover{background:#714137}.asidefoot{color:#d6bd9c}.asidefoot span{color:#b1957e}header{background:#fcfaf5cc;border-color:#e6ddd0;color:#9b8c7b}.profile i{background:#e9ddcb;color:#85513b}.eyebrow{color:#a87b3d}button{background:#853f34}.secondary{color:#815944!important;border-color:#dfd2bf!important}.plain{color:#926247}.notice{background:#eee6d7;border-color:#e5dac7;color:#978165}.stat,.panel{border-color:#e8dfd1;background:#fffdf9;box-shadow:0 3px 12px #6f4c241f}.stat{border-top:3px solid #bba076;position:relative;overflow:hidden}.stat:after{content:'✧';position:absolute;right:16px;top:12px;color:#cbb18455;font-size:29px}.stat strong{color:#744b39}.stat small{color:#aa8d62}.stat span{color:#998976}.panel h2{color:#654b3a;border-left:3px solid #bb8c48;padding-left:11px}th{background:#f6f0e6;color:#9a8a76}td{border-color:#efe8dd}.badge{background:#eaf0e3;color:#62744f}.badge.wait{background:#f5e8cf;color:#a57a36}.quick button{border-color:#e5d7c3;color:#855338;background:#fffcf5}.quick button:hover{background:#f4ecdf}.quick span{color:#a3937c}.datebox{background:#f2e7d4;color:#98683d}.event{border-color:#eee3d4}.reportline{border-color:#eee3d4}footer{border-color:#e5d8c5;color:#9e8262}#toast{background:#713c31}.temple-banner{position:relative;overflow:hidden;border-radius:10px;background:#402c2b;margin:0 0 25px;height:256px;box-shadow:0 8px 24px #66422520;border:1px solid #9a744b}.temple-banner:after{content:'';position:absolute;inset:9px;border:1px solid #dab27740;border-radius:3px;pointer-events:none}.temple-banner img{height:100%;width:66%;position:absolute;right:0;top:0;object-fit:cover;object-position:64% 65%;opacity:.97;mask-image:linear-gradient(to right,transparent,#000 25%)}.banner-copy{position:relative;z-index:1;padding:30px 38px;color:#f0dec0;width:58%}.banner-kicker{font-size:10px;letter-spacing:4px;color:#d0b17d}.banner-copy h2{font-family:'Noto Serif TC','PMingLiU',serif;font-size:27px;line-height:1.5;font-weight:500;letter-spacing:3px;margin:13px 0 9px}.banner-copy p{font-size:11px;color:#c5af98}.banner-tags{display:flex;gap:16px;margin-top:18px;font-size:10px;color:#d8bd90;letter-spacing:1px}.banner-tags span+span{border-left:1px solid #b48c4f66;padding-left:16px}.seal{position:absolute;right:32px;top:30px;border:1px solid #cc9e65;color:#dfb57f;padding:5px;font:17px serif;opacity:.7}input,select{border-color:#e1d6c6;background:#fffefa;color:#65503f}input:focus,select:focus{outline-color:#bb9b6a}dialog{background:#fffcf6;color:#664a35}dialog::backdrop{background:#2d211f88}@media(min-width:1500px){.temple-banner img{object-position:center 64%}}@media(max-width:1000px){.temple-banner{height:230px}.banner-copy{padding:27px;width:65%}.banner-copy h2{font-size:24px}.banner-copy p{max-width:220px;line-height:1.8}.seal{display:none}.temple-banner img{width:70%;object-position:65% center}}@media(max-width:650px){.temple-banner{height:230px}.banner-copy{padding:26px 22px;width:85%}.banner-copy h2{font-size:23px}.temple-banner img{width:100%;opacity:.5;object-position:60% center;mask-image:linear-gradient(to right,transparent,#000)}.banner-copy p{color:#d1bda6;font-size:10px}.banner-tags{font-size:9px}}
