:root{font-family:"Segoe UI","Microsoft JhengHei",sans-serif;color:#21332f;background:#f4f6f3;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #d3ddd6;border-radius:8px;padding:10px 16px;background:white;color:#294b40}button:hover{background:#e9f1eb}button:disabled{opacity:.5;cursor:default}.primary{background:#1f634f;color:white;border-color:#1f634f}.primary:hover{background:#154735}input,select{border:1px solid #d0dbd3;border-radius:7px;background:white;padding:10px;min-width:0}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}aside{position:fixed;inset:0 auto 0 0;width:225px;background:#163f34;color:#fff;padding:34px 22px}.brand{font-size:25px;font-weight:700;letter-spacing:2px}.brand span{display:block;font-size:13px;letter-spacing:1px;color:#bcd7c9;margin-top:10px}nav{display:grid;gap:9px;margin-top:50px}nav button{background:transparent;border:0;color:#c8dcd2;text-align:left;padding:14px}nav button.active{background:#326352;color:white}.asidefoot{position:absolute;bottom:26px;color:#a7c8b8;font-size:12px;line-height:2}.asidefoot button{display:block;margin-top:12px;background:transparent;color:white}main{margin-left:225px;padding:36px 42px;max-width:1550px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}h1{font-size:30px;margin:7px 0}h2{font-size:19px}small,.muted{color:#77867d}header small{letter-spacing:1px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards>div,.panel{background:#fff;border:1px solid #e0e7df;border-radius:12px;padding:24px}.cards strong{display:block;font-size:36px;margin-top:14px;color:#235f4b}.intro{margin-top:24px;border-left:4px solid #b2c58e}.intro p{color:#64776c;line-height:1.8}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.toolbar>input{min-width:250px}.tablewrap{overflow:auto;border:1px solid #e0e7df;border-radius:10px;background:white}table{width:100%;border-collapse:collapse;font-size:14px}th{background:#edf2ec;text-align:left;padding:13px;color:#607266;white-space:nowrap}td{padding:12px 13px;border-bottom:1px solid #edf1ec}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-block;background:#f5eedc;color:#88702a;padding:4px 9px;border-radius:20px;font-size:12px}.badge.posted{background:#e4f0e7;color:#296846}.tabs{display:flex;gap:6px;margin:25px 0}.tabs button.active{background:#1f634f;color:white}.fields{display:flex;gap:16px;margin:20px 0}.grow{flex:1}dialog{width:min(1100px,94vw);max-height:92vh;border:0;border-radius:14px;padding:26px;box-shadow:0 25px 100px #0004}dialog::backdrop{background:#122c2566}.dialoghead,.dialogfoot{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialoghead h2{margin:5px 0}.dialogfoot{justify-content:flex-end;border-top:1px solid #dde6de;margin-top:20px;padding-top:20px}#lines select{width:250px}#lines input{width:100%}#lines .money{min-width:105px;width:130px}.attachments{padding:15px;background:#f5f7f2;border-radius:10px;margin:20px 0}#attachmentList{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}#notice,#editorError,#loginError{color:#ab4235}#notice:not(:empty){background:#f7ebde;padding:12px;margin-bottom:15px;border-radius:8px}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 10%,#d9e9d9,transparent 60%),#f4f6f3}.loginbox{background:white;border:1px solid #dbe6d9;border-radius:18px;padding:40px;width:min(470px,92vw)}.loginbox .brand{font-size:16px;color:#2c6c52}.loginbox h1{font-size:27px;margin-top:25px}.loginbox p{color:#758578;line-height:1.8}.loginbox form{display:grid;gap:18px;margin-top:25px}[hidden]{display:none!important}.reportTotal{font-size:21px;padding:18px;background:#eff4e9;margin-top:20px;border-radius:8px}.empty{text-align:center;color:#849185;padding:35px}.negative{color:#a94735}@media(max-width:800px){aside{position:static;width:auto;padding:18px}aside .brand span,.asidefoot{display:none}nav{display:flex;margin-top:15px;gap:3px;flex-wrap:wrap}nav button{padding:9px}main{margin:0;padding:20px}.cards{gap:8px}.cards>div{padding:15px}.cards strong{font-size:26px}.fields{flex-direction:column}.tabs{flex-wrap:wrap}header{gap:10px}h1{font-size:24px}}@media print{aside,header button,.toolbar,.tabs,#ledgerFilter,#notice{display:none!important}main{margin:0;padding:0}.page:not(#reports){display:none!important}#reports{display:block!important}.panel{border:0;padding:0}body{background:white}.tablewrap{overflow:visible}th{background:#eee}dialog{display:none}}

.uploadButton{display:inline-block;cursor:pointer;border:1px solid #d3ddd6;border-radius:8px;padding:10px 16px;background:white;font-size:15px;font-weight:400}.uploadButton:hover{background:#e9f1eb}#accountEditor{max-width:800px}#importPreview{max-height:45vh;overflow:auto}#accountError,#importError{color:#ab4235}.actions{white-space:nowrap}.actions button{padding:6px 12px}

.actions .account-edit-btn{background:#1f634f;color:#fff;border:2px solid #174b3c;font-weight:700;padding:2px 8px;width:56px;height:22px;min-width:56px;min-height:22px;font-size:12px;line-height:16px;border-radius:6px;box-shadow:0 2px 3px #163f341a}.actions .account-edit-btn:hover{background:#144734}.actions .account-edit-btn:focus-visible{outline:3px solid #e3af36;outline-offset:3px}

.invoice-link{display:inline-block;background:#1f634f;color:white;padding:12px 20px;border-radius:8px;text-decoration:none;font-weight:700}.invoice-link:hover{background:#144734}#invoices .panel{margin-bottom:20px}

.accounting-brand{font-size:26px;letter-spacing:-.4px}.accounting-brand span{font-size:18px;letter-spacing:1px}.accounting-brand small{display:block;font-size:12px;font-weight:400;letter-spacing:0;line-height:1.7;color:#c7dfd5;margin-top:8px}

/* Keep sidebar branding compact and all sections in normal flow. */
aside{display:flex;flex-direction:column;gap:24px;overflow-y:auto;padding:26px 18px}
aside .accounting-brand{font-size:21px;line-height:1.3;letter-spacing:0;white-space:nowrap;flex-shrink:0}
aside .accounting-brand span{font-size:13px;line-height:1.5;margin-top:8px;white-space:normal}
aside .accounting-brand small{font-size:11px;line-height:1.6;letter-spacing:0;margin-top:6px;white-space:normal}
aside nav{margin-top:0;flex-shrink:0;gap:6px}
aside nav button{padding:12px 10px;line-height:1.5}
aside .asidefoot{position:static;margin-top:auto;padding-top:16px;flex-shrink:0;font-size:11px;line-height:1.8}
@media(max-width:800px){aside{gap:0;padding:18px}aside nav{margin-top:15px}aside nav button{padding:9px}aside .accounting-brand small{display:none}aside .asidefoot{display:none}}

button.danger{background:#bc3030;color:white;border-color:#bc3030}button.danger:hover{background:#962424;border-color:#962424}button.danger:focus-visible{outline:3px solid #e7a3a3;outline-offset:3px}
