:root{font-family:"Microsoft JhengHei","PingFang TC",sans-serif;color:#233b49;background:#edf2f5;font-size:16px;--blue:#244f70;--muted:#586e7c;--line:#d8e2e8}*{box-sizing:border-box}body{margin:0}main{max-width:1160px;margin:auto;padding:30px 36px 22px}header{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #cbd8e1}.wordmark{font-weight:700;font-size:20px}.wordmark span{color:var(--blue);font-size:26px;margin-right:8px}.edition{font-size:13px;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:38px 0 27px}h1{font-family:"Noto Serif TC","PMingLiU",serif;font-size:34px;letter-spacing:.04em;font-weight:700;margin:0 0 10px}.intro p{margin:0;color:var(--muted);line-height:1.7}.month-label{min-width:175px}label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}input,select,button{font:inherit}input,select{width:100%;min-width:0;border:1px solid #afc2cf;border-radius:7px;padding:11px 12px;background:#fff;color:#233b49;min-height:46px}input::placeholder{color:#7b8c96}button{cursor:pointer;min-height:44px;padding:10px 16px;border:1px solid #afc2cf;background:white;border-radius:7px;color:var(--blue);font-weight:600}button:hover{background:#e8f0f5}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid #5386b5;outline-offset:3px}.summary{display:grid;grid-template-columns:1fr 1fr 1.15fr;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:28px}.summary>div{padding:23px 28px;display:flex;flex-direction:column;gap:12px}.summary>div+div{border-left:1px solid var(--line)}.summary span{font-size:14px;color:var(--muted)}.summary strong{font-size:30px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:-.03em}.summary .balance{background:#244f70;color:white}.balance span,.balance small{color:#dbe8f1}.balance small{font-size:12px}.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:28px;align-items:start}h2{font-size:20px;margin:0}.entry{background:white;border:1px solid var(--line);padding:24px;border-radius:12px}.hint{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0 20px}#entry-form{display:grid;gap:18px}fieldset{margin:0;border:0;padding:0;min-width:0}legend{font-size:14px;font-weight:600;margin-bottom:8px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.type-switch label{flex-direction:row;align-items:center;justify-content:center;background:#f2f6f8;border:1px solid var(--line);border-radius:7px;padding:10px;cursor:pointer}.type-switch label:has(input:checked){border-color:var(--blue);background:#e6eff5;color:var(--blue)}.type-switch input{width:16px;min-height:16px;margin:0;accent-color:var(--blue)}.form-row{display:grid;grid-template-columns:1fr 1.15fr;gap:12px}.form-actions{display:flex;gap:8px;flex-wrap:wrap}.primary{background:var(--blue);color:white;border-color:var(--blue);flex:1}.primary:hover{background:#193d58}#status{font-size:14px;line-height:1.6;margin:16px 0 0;color:#246144}#status:empty{display:none}.ledger{min-width:0}.ledger-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 0 18px;border-bottom:2px solid #aec1ce}.ledger-heading span{font-size:13px;color:var(--muted)}.empty{padding:65px 12px;text-align:center;line-height:2;color:var(--muted)}.empty span{font-size:14px}#records{list-style:none;padding:0;margin:0}.record{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:20px 0;border-bottom:1px solid #cbd8e1}.record p{margin:6px 0 0;line-height:1.5;overflow-wrap:anywhere}.record .meta{font-size:12px;color:var(--muted)}.record-title{font-weight:700}.record-amount{text-align:right;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.record-amount.income{color:#246144}.record-actions{display:flex;gap:8px;margin-top:8px;justify-content:flex-end}.record-actions button{min-height:36px;font-size:13px;padding:6px 10px}.record-right{max-width:200px}footer{margin-top:36px;padding-top:20px;border-top:1px solid #cbd8e1;font-size:12px;color:var(--muted);line-height:1.9}footer strong{color:#344f60}dialog{max-width:420px;width:calc(100% - 32px);border:0;border-radius:12px;padding:28px;color:#233b49;box-shadow:0 20px 70px #20384b44}dialog::backdrop{background:#172e4666}dialog p{line-height:1.7;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.danger{background:#a53236;color:white;border-color:#a53236}.danger:hover{background:#82262a}[hidden]{display:none!important}@media(max-width:760px){main{padding:20px}.edition{font-size:11px}.intro{align-items:flex-start;flex-direction:column;margin:28px 0 22px;gap:20px}h1{font-size:28px}.month-label{width:100%}.workspace{grid-template-columns:1fr;gap:28px}.summary>div{padding:18px 12px}.summary strong{font-size:23px}.summary{grid-template-columns:1fr 1fr}.summary .balance{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px}.balance small{grid-column:1/-1}.entry{padding:22px}.record-right{max-width:160px}}@media(max-width:360px){main{padding:14px}.edition{max-width:110px;text-align:right;line-height:1.5}h1{font-size:25px}.summary strong{font-size:21px}.record{gap:8px}.record-amount{font-size:17px}.record-right{max-width:140px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
