/* base.css：由 index.html 內嵌樣式按原有順序搬出（層疊順序不變）。 */

/* ---- main ---- */
:root{--navy:#0B1F3A;--navy2:#102B4E;--gold:#C9A96A;--green:#0F9D7A;--greenbg:#E8F8F3;--amber:#D9822B;--amberbg:#FFF4E8;--bg:#F4F7FB;--line:#E3E9F1;--text:#182B42;--mute:#728197}*[hidden]{display:none!important}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,'Noto Sans TC','Segoe UI','Microsoft JhengHei',sans-serif}button{font:inherit;cursor:pointer}.app{display:flex;min-height:100vh}.side{background:linear-gradient(165deg,#0B1F3A,#102B4E);width:250px;flex-shrink:0;color:#fff;padding:28px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 10px 30px;font-weight:700;letter-spacing:.4px}.logo{background:linear-gradient(135deg,#C9A96A,#f1deaa);color:#112b47;width:39px;height:39px;border-radius:12px;display:grid;place-items:center}.small{font-size:12px;color:#a7bad1}.navtitle{margin:28px 12px 8px;color:#8ba5bf;font-size:12px;letter-spacing:2px;font-weight:700}.navtitle.income{color:#69d4b1}.navtitle.outgoing{color:#ecc189}.nav{display:block;width:100%;text-align:left;background:transparent;color:#d2ddeb;border:0;border-radius:10px;padding:12px;margin:3px 0}.nav.active{background:#203f63;color:white;border-left:3px solid var(--gold)}.main{flex:1;min-width:0;padding:28px clamp(18px,3vw,48px) 70px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#7d8ca1}.heading{font-size:28px;margin:8px 0 5px;letter-spacing:-.5px}.muted{color:var(--mute);font-size:13px}.pill{padding:8px 12px;border:1px solid var(--line);background:#fff;border-radius:20px;font-size:12px}.hero{background:linear-gradient(110deg,#0B1F3A,#1B4169);border-radius:18px;padding:28px;color:white;margin-bottom:26px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 32px #102b4e19}.hero h2{font-size:24px;margin:8px 0}.hero p{color:#c8d8e7;margin:0}.hero .accent{color:#f0d79e;font-weight:700;font-size:12px;letter-spacing:1.6px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 8px 24px #102b4e06}.card .value{font-size:28px;font-weight:700;margin-top:14px;letter-spacing:-.6px}.label{font-size:12px;color:var(--mute);font-weight:700}.meta{color:var(--mute);font-size:12px;margin-top:10px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:29px 0 15px}.section-heading h2{font-size:19px;margin:0}.section-heading .kicker{font-size:12px;letter-spacing:1.5px;color:var(--mute);font-weight:700}.section-heading.income h2:before,.section-heading.outgoing h2:before{content:'';display:inline-block;width:5px;height:20px;border-radius:3px;vertical-align:-4px;margin-right:11px;background:var(--green)}.section-heading.outgoing h2:before{background:var(--amber)}.income-grid .card{border-top:3px solid var(--green)}.outgoing-grid .card{border-top:3px solid var(--amber)}.value.income{color:var(--green)}.value.outgoing{color:var(--amber)}.actions{display:flex;gap:12px;flex-wrap:wrap}.action{background:white;border:1px solid var(--line);border-radius:11px;padding:13px 17px;color:var(--navy2);font-weight:600}.action.primary{background:var(--navy2);color:#fff;border-color:var(--navy2)}.tablewrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}.table th{text-align:left;color:var(--mute);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line)}.table td{padding:14px;border-bottom:1px solid #eef1f5}.tag{border-radius:16px;padding:5px 10px;font-size:12px;font-weight:700;background:#f1f4f9;color:#63738a}.tag.green{background:var(--greenbg);color:var(--green)}.tag.amber{background:var(--amberbg);color:#9d631b}.tag.red{background:#fdeceb;color:#c62828}.status-warning{color:#d93025;font-weight:700;margin-right:5px}.status-pending{color:#c62828;font-weight:700}.nav-alert{display:inline-flex;min-width:23px;height:23px;align-items:center;justify-content:center;padding:0 6px;margin-left:7px;border-radius:12px;background:#ffdf85;color:#563500;font-size:12px;font-weight:700;border:1px solid #f0bc49}.nav-alert.error{background:#ffe0dd;color:#9c211b}.today-total{font-size:23px!important;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.today-total .currency-line{display:block}.today-total .currency-line:first-child{font-size:26px}.today-total .currency-line:not(:first-child){font-size:19px}.today-total .no-total{font-size:24px}.today-total .pending-note{font-size:12px;color:#9a611c;font-weight:600;display:block;margin-top:3px}.direction-badge{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 12px;border-radius:9px;font-size:13px;font-weight:700;letter-spacing:.2px;border:1px solid transparent}.direction-badge.income{background:#d9f8e9;color:#075c3b;border-color:#65c99b}.direction-badge.expense{background:#ffe2dc;color:#9c211b;border-color:#f5a097}.direction-detail.income{color:#087a4e}.direction-detail.expense{color:#b42318}.mobile{display:none}.status{font-size:12px;color:#8795a6}footer{margin-top:30px;color:#8995a6;font-size:12px}.money{font-variant-numeric:tabular-nums}body[data-tab='income'] .only-overview,body[data-tab='outgoing'] .only-overview,body[data-tab='reconcile'] .only-overview,body[data-tab='add-income'] .only-overview,body[data-tab='add-outgoing'] .only-overview,body[data-tab='permissions'] .only-overview,body[data-tab='approvals'] .only-overview,body[data-tab='fps-review'] .only-overview,body[data-tab='recycle'] .only-overview{display:none}body[data-tab='income'] .outgoing-block,body[data-tab='outgoing'] .income-block,body[data-tab='reconcile'] .income-block,body[data-tab='reconcile'] .outgoing-block,body[data-tab='add-income'] .income-block,body[data-tab='add-income'] .outgoing-block,body[data-tab='add-outgoing'] .income-block,body[data-tab='add-outgoing'] .outgoing-block,body[data-tab='permissions'] .income-block,body[data-tab='permissions'] .outgoing-block,body[data-tab='approvals'] .income-block,body[data-tab='approvals'] .outgoing-block,body[data-tab='fps-review'] .income-block,body[data-tab='fps-review'] .outgoing-block,body[data-tab='recycle'] .income-block,body[data-tab='recycle'] .outgoing-block{display:none}body[data-tab='add-income'] #recentRecords,body[data-tab='add-outgoing'] #recentRecords,body[data-tab='permissions'] #recentRecords,body[data-tab='approvals'] #recentRecords,body[data-tab='fps-review'] #recentRecords,body[data-tab='recycle'] #recentRecords{display:none}@media(max-width:860px){.side{display:none}.main{padding:20px 16px 94px}.hero{padding:22px;display:block}.grid{grid-template-columns:repeat(2,1fr);gap:10px}.card{padding:16px}.card .value{font-size:22px}.mobile{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;z-index:20;background:#fff;border-top:1px solid var(--line);padding:9px 6px max(9px,env(safe-area-inset-bottom))}.mobile button{border:0;background:transparent;color:#687a91;font-size:12px;display:grid;gap:3px;place-items:center}.mobile button.active{color:var(--navy2);font-weight:700}.heading{font-size:24px}.desktoponly{display:none}}@media(max-width:480px){.grid{grid-template-columns:1fr 1fr}.top .pill{display:none}.card .value{font-size:20px}.actions .action{flex:1 1 40%;font-size:12px}.tablewrap .table{min-width:560px}.hero h2{font-size:21px}}.authgate{position:fixed;inset:0;z-index:80;background:linear-gradient(135deg,#081a32,#1e3e61);display:grid;place-items:center;padding:20px}.authpanel{width:min(440px,100%);padding:36px;background:white;border-radius:20px;box-shadow:0 30px 70px #0005}.authpanel h2{font-size:26px;margin:0 0 10px}.authpanel label{display:block;font-size:13px;font-weight:700;color:#53677f;margin-top:20px}.authpanel input{width:100%;border:1px solid #cfd8e5;border-radius:11px;padding:14px;font-size:16px;margin-top:7px;background:#fff}.authpanel button{margin-top:22px;padding:14px;width:100%;background:#143654;border:0;border-radius:11px;color:white;font-weight:700}.authpanel button:disabled{opacity:.55}.autherror{color:#c14343;font-size:13px;margin-top:12px}.hidden{display:none!important}.health{font-size:12px;color:#667b90;margin-top:8px}.readtag{font-size:12px;border-radius:20px;border:1px solid #b9d5ed;padding:5px 10px;color:#35668e;background:#f0f7ff}.topright{display:flex;align-items:center;gap:8px}.logout{padding:8px 12px;border:1px solid #dce5ef;border-radius:10px;background:white}.empty{padding:24px;color:#6e8094;text-align:center}.detail-note{border-left:3px solid #c9a96a;padding:10px 13px;background:#f9f8f3;font-size:12px;color:#5a6879;margin-top:14px}@media(max-width:860px){.authpanel{padding:24px}.topright{gap:5px}.topright .readtag{display:none}}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.filters input,.filters select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;font:inherit;color:var(--text);min-height:44px}.filters input{flex:1;min-width:180px}.filters select{min-width:132px}.mobile-cards{display:none}.txn-card{border:1px solid var(--line);border-left:4px solid var(--green);padding:16px;border-radius:13px;margin:9px 0;background:#fff}.txn-card.expense{border-left-color:var(--amber)}.txn-top{display:flex;align-items:center;justify-content:space-between;gap:9px}.txn-sum{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.txn-meta{font-size:12px;color:var(--mute);margin-top:9px;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:680px){.tablewrap{display:none}.mobile-cards{display:block}.filters{display:grid;grid-template-columns:1fr 1fr}.filters input{grid-column:span 2;min-width:0}.filters select{min-width:0;width:100%}.hero{margin-bottom:19px}}
body:not([data-tab="bank-statements"]) #hwSettingsBtn{display:none}.hw-cell{min-width:150px;cursor:cell}.hw-cell:hover{background:#eef5ff}
.details-backdrop{position:fixed;inset:0;background:#102b4e77;z-index:50;display:none}.details-backdrop.open{display:block}.details-panel{position:absolute;right:0;top:0;bottom:0;width:min(500px,100%);overflow:auto;background:white;padding:30px 26px;box-shadow:-15px 0 40px #0002}.details-panel h2{font-size:23px;margin:16px 0}.detail-row{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.detail-row span:first-child{color:var(--mute)}.detail-row strong{text-align:right;overflow-wrap:anywhere}.close-detail{border:1px solid var(--line);background:white;padding:10px 14px;border-radius:10px}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:#f7fafc}.txn-card{cursor:pointer}@media(max-width:680px){.details-panel{padding:22px 18px 80px}}
.pay-chain{margin:8px 0 14px}.pay-chain-h{font-weight:700;margin:10px 0 4px}.pay-chain-table{width:100%;border-collapse:collapse;font-size:13px}.pay-chain-table th,.pay-chain-table td{padding:6px 8px;border-bottom:1px solid #e3e9f1;text-align:left}.pay-chain-cur{background:#f3f8f5;font-weight:700}
.form-section{display:none}.form-section.active-form{display:block}.form-card{max-width:920px;padding:30px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:#455a74}.form-field input,.form-field select,.form-field textarea{font:inherit;font-size:15px;font-weight:400;color:#1b2e45;background:#fff;border:1px solid #cbd6e3;border-radius:10px;padding:12px;min-height:46px;width:100%}.form-field textarea{min-height:88px;resize:vertical}.form-field.full{grid-column:1/-1}.form-field small{font-size:12px;color:#77869a}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid #c9a96a;border-color:#b89255}.form-action{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}.form-action button{min-height:46px}.required{color:#b35335}.toast-message{padding:12px 16px;background:#f3f8f5;border-left:4px solid #0f9d7a;border-radius:8px;color:#275948;margin-top:14px}.toast-message.error{background:#fff3f1;border-left-color:#c14343;color:#a52b2b}.records-note{padding:12px 16px;background:#f8fafc;color:#53677f;border:1px solid #e3e9f1;border-radius:10px;font-size:12px}.bankwarn{background:#fff8e9;color:#835a24;border-color:#f0dcb9}.form-segment{font-size:12px;letter-spacing:1.5px;color:#8a9aaf;font-weight:700;margin:10px 0 16px}.details-panel .detail-row{align-items:baseline}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-card{padding:18px}.form-action button{flex:1}}
.date-presets{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.date-preset{border:1px solid #dbe4ee;background:white;border-radius:10px;padding:9px 12px;color:#51647c;font-weight:600;font-size:12px;min-height:40px}.date-preset.active{background:#193e61;color:white;border-color:#193e61}.date-custom{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:12px;border-radius:12px;background:#f1f5fa;margin-bottom:12px}.date-custom label{display:grid;gap:5px;color:#61748b;font-size:12px}.date-custom input{border:1px solid #d4dfeb;border-radius:9px;padding:10px;font:inherit;background:white}.date-note{font-size:12px;color:#71849a;margin:5px 0 12px}.staff-layout{display:grid;grid-template-columns:minmax(190px,255px) 1fr;gap:17px}.staff-directory{display:grid;gap:8px;align-content:start}.staff-entry{border:1px solid #e0e8f2;background:#fff;border-radius:10px;text-align:left;padding:14px;font-size:13px;color:#243c5c}.staff-entry.active{border-color:#c9a96a;background:#fffcf3}.staff-entry small{display:block;color:#7a8ca1;font-size:12px;margin-top:5px}.staff-editor{min-width:0}.staff-matrix{display:grid;grid-template-columns:minmax(130px,1fr) 95px 110px;gap:0;margin:15px 0}.staff-matrix>*{border-bottom:1px solid #e6edf4;padding:11px 8px;display:flex;align-items:center}.staff-matrix input[type=checkbox]{width:20px;height:20px;accent-color:#153c5c;justify-self:center;margin:auto}.staff-editor label{font-size:13px;color:#51647c}.staff-editor select,.staff-editor input[type=tel]{border:1px solid #cbd8e5;padding:10px;border-radius:9px;background:white;width:100%;max-width:320px}.staff-more{display:grid;gap:16px;margin:16px 0}.staff-more label{display:flex;align-items:center;gap:8px}.staff-more input[type=checkbox]{width:19px;height:19px}.warnline{font-size:12px;color:#926b34;background:#fff9ed;border:1px solid #eddcbd;padding:12px;border-radius:10px}@media(max-width:730px){.staff-layout{grid-template-columns:1fr}.staff-directory{display:flex;overflow:auto}.staff-entry{min-width:175px}.staff-matrix{grid-template-columns:minmax(110px,1fr) 80px 92px}.date-preset{flex:1 0 auto}}
body[data-no-expense='true'] .outgoing-block{display:none!important}body[data-no-expense='true'] [data-expense-view],body[data-no-expense='true'] [data-expense-add]{display:none!important}

/* Visual polish only: keep all existing data and permissions behaviour. */
:root{--bg:#f3f6fa;--text:#192e46;--mute:#65788e;--line:#dfe7ef}
body{line-height:1.5;-webkit-font-smoothing:antialiased}
.side{overflow-y:auto;background:linear-gradient(165deg,#0a1b32,#102e4d);box-shadow:8px 0 30px #102b4e12}
.brand{border-bottom:1px solid #ffffff17;margin-bottom:18px;padding-bottom:22px}.logo{box-shadow:0 5px 18px #0003}
.nav{min-height:44px;transition:background .16s ease,color .16s ease}.nav:hover{background:#ffffff12}.nav.active{background:#ffffff17;color:#f7e4b6}
.main{max-width:1800px;margin:0 auto}.top{gap:14px}.heading{letter-spacing:-.025em}
.hero{background:radial-gradient(circle at 88% 20%,#315979 0,transparent 36%),linear-gradient(115deg,#0b2038,#163b5b);border:1px solid #ffffff18;box-shadow:0 16px 38px #122b4920}
.card{box-shadow:0 8px 28px #173a5c0a;border-color:#e0e7ef}.income-grid .card,.outgoing-grid .card{border-top-width:2px}
.card .value,.txn-sum{font-variant-numeric:tabular-nums}.meta,.muted,.records-note,.detail-note{line-height:1.65}
.action,.logout,.close-detail,.date-preset{min-height:44px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.action:hover,.logout:hover,.close-detail:hover{border-color:#b9c9d9;background:#f7fafc}.action.primary:hover{background:#214b70;color:#fff}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ba9147;outline-offset:2px}
.filters input,.filters select,.date-custom input{border-color:#cbd8e5}.filters input:focus,.filters select:focus{border-color:#b99556}
.date-preset.active{background:#143b5b;box-shadow:0 4px 12px #173b5a22}
.records-note{font-size:13px;border-left:3px solid #7394b2;background:#f5f8fb}.bankwarn{background:#fff9ed;border-left-color:#d7a34e}.field-hint{font-weight:400;font-size:12px;color:#65788e;line-height:1.45}
.authgate{background:radial-gradient(circle at 75% 20%,#254d6c,transparent 40%),linear-gradient(135deg,#07182e,#123550)}.authpanel{border:1px solid #ffffff80;box-shadow:0 28px 80px #06162b66}
.details-panel{box-shadow:-20px 0 55px #102b4e26}.txn-card{box-shadow:0 4px 16px #102b4e0b}.table tbody tr:focus-within{background:#f4f8fc}
@media(max-width:860px){.mobile{box-shadow:0 -8px 25px #102b4e12}.mobile button{min-width:44px;min-height:44px}.main{padding-bottom:calc(105px + env(safe-area-inset-bottom))}.top{align-items:flex-start}.hero{border-radius:15px}.section-heading{gap:10px;flex-wrap:wrap}}
@media(max-width:680px){.date-presets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:7px}.date-preset{flex:0 0 auto;white-space:nowrap}.form-field input,.form-field select,.form-field textarea{font-size:16px}.form-action button{min-height:48px}.details-panel{padding-bottom:calc(90px + env(safe-area-inset-bottom))}}
@media(max-width:380px){.grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.filters input{grid-column:auto}.actions .action{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}


@media(max-width:860px){
 .mobile{background:#0b2038;border-top:1px solid #29445d;padding:5px 6px max(7px,env(safe-area-inset-bottom));align-items:stretch;justify-content:space-around;gap:2px}
 .mobile>button,.mobile-more>summary{flex:1;min-width:0;min-height:54px;padding:5px 2px;border:0;border-radius:10px;background:transparent;color:#c2cfdb;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.2;cursor:pointer}
 .mobile>button.active,.mobile-more.active>summary,.mobile-more[open]>summary{color:#efd398;background:#ffffff0e;font-weight:700}
 .mobile-icon{font-size:22px;line-height:24px;font-weight:600}.mobile-more{flex:1;min-width:0}.mobile-more>summary{width:100%;list-style:none}.mobile-more>summary::-webkit-details-marker{display:none}
 .mobile-more-menu{position:absolute;bottom:calc(70px + env(safe-area-inset-bottom));right:12px;width:min(300px,calc(100vw - 24px));max-height:min(60vh,420px);overflow:auto;padding:10px;background:white;border:1px solid #dfe7ef;border-radius:16px;box-shadow:0 16px 45px #061a3050}
 .mobile-menu-title{padding:8px 12px;color:#6b7e92;font-size:12px;font-weight:700}.mobile .mobile-more-menu button{display:block;width:100%;min-height:46px;padding:11px 12px;text-align:left;border-radius:9px;background:#fff;color:#163650;font-size:14px}.mobile .mobile-more-menu button:hover,.mobile .mobile-more-menu button.active{background:#edf3f8;color:#123d60}
}


/* Mobile refinements: visual layout only, preserving the existing controls. */
@media(max-width:680px){
 .main{padding-left:14px;padding-right:14px}
 .top{margin-bottom:18px}.eyebrow{font-size:12px;letter-spacing:1.35px}.heading{font-size:23px;line-height:1.25}
 .hero{padding:20px;border-radius:16px}.hero h2{font-size:21px;line-height:1.3}.hero p{font-size:13px;line-height:1.6}
 .grid{gap:10px}.grid .card{padding:16px 14px;min-width:0}.card .value{overflow-wrap:anywhere}.card .meta{line-height:1.5}
 .section-heading{margin:24px 0 12px}.section-heading h2{font-size:18px}.section-heading .actions{width:100%;gap:7px}.section-heading .actions .action{flex:1 1 auto;padding:10px 11px;min-height:44px}
 .date-presets{margin-top:4px;scroll-snap-type:x proximity}.date-preset{scroll-snap-align:start;border-radius:999px;padding:9px 14px}.date-preset.active{box-shadow:0 3px 10px #173b5a30}
 .filters{gap:8px}.filters input,.filters select{min-height:48px;background:#fff;border-color:#cbd8e5;font-size:16px}.filters input{padding-left:14px}
 .txn-card{position:relative;padding:16px;margin:10px 0;border-radius:14px;background:#fff;box-shadow:0 5px 18px #173a5c0c}.txn-card:focus-visible{outline:3px solid #ba9147;outline-offset:2px}
 .txn-top{align-items:flex-start;gap:10px}.txn-sum{font-size:19px;line-height:1.3;overflow-wrap:anywhere}.txn-meta{line-height:1.55;color:#61748a;margin-bottom:0}.direction-badge{min-width:58px;padding:6px 9px;font-size:12px}
 .detail-row{align-items:flex-start;gap:18px;line-height:1.55}.detail-row strong{max-width:65%}.close-detail{min-height:46px}.form-card{padding:18px 16px}
 .mobile-more-menu{overscroll-behavior:contain}.mobile-more-menu button:focus-visible,.mobile-more>summary:focus-visible{outline:3px solid #ba9147;outline-offset:-3px}
}
@media(max-width:380px){.section-heading .actions .action{flex:1 1 44%}.txn-top{flex-wrap:wrap}.detail-row strong{max-width:60%}}


/* Consistent direction cues: green for incoming, burgundy for outgoing. */
.action[data-tab="income"],.action[data-tab="add-income"],#incomeSubmit{background:#087154;color:#fff;border-color:#087154}
.action[data-tab="outgoing"],.action[data-tab="add-outgoing"],#outgoingSubmit{background:#a1382a;color:#fff;border-color:#a1382a}
.action[data-tab="income"]:hover,.action[data-tab="add-income"]:hover,#incomeSubmit:hover{background:#06543f;color:#fff;border-color:#06543f}
.action[data-tab="outgoing"]:hover,.action[data-tab="add-outgoing"]:hover,#outgoingSubmit:hover{background:#802a20;color:#fff;border-color:#802a20}
.side .nav[data-tab="income"],.side .nav[data-tab="add-income"]{color:#94e7c3}
.side .nav[data-tab="outgoing"],.side .nav[data-tab="add-outgoing"]{color:#ffc1ae}
.side .nav[data-tab="income"].active,.side .nav[data-tab="add-income"].active{border-left-color:#48c99a;background:#0c624b66;color:#fff}
.side .nav[data-tab="outgoing"].active,.side .nav[data-tab="add-outgoing"].active{border-left-color:#ff9d82;background:#963b3066;color:#fff}
@media(max-width:860px){
 .mobile>button[data-tab="income"],.mobile>button[data-tab="add-income"]{color:#92dfc1}
 .mobile>button[data-tab="outgoing"]{color:#ffb29f}
 .mobile>button[data-tab="income"].active,.mobile>button[data-tab="add-income"].active{color:#fff;background:#087154}
 .mobile>button[data-tab="outgoing"].active{color:#fff;background:#a1382a}
 .mobile .mobile-more-menu button[data-tab="income"]{color:#075e47;border-left:3px solid #087154}
 .mobile .mobile-more-menu button[data-tab="add-outgoing"]{color:#8d3025;border-left:3px solid #a1382a}
}


/* On entry pages, keep quick actions relevant to the current transaction direction. */
body[data-tab='add-income'] #quickActions [data-tab='outgoing'],body[data-tab='add-income'] #quickActions [data-tab='add-outgoing'],body[data-tab='add-outgoing'] #quickActions [data-tab='income'],body[data-tab='add-outgoing'] #quickActions [data-tab='add-income']{display:none!important}

/* Refined financial actions; labels remain explicit for clarity. */
.action[data-tab="income"],.action[data-tab="add-income"],#incomeSubmit{background:#075b4a;border-color:#075b4a;color:#fff}
.action[data-tab="outgoing"],.action[data-tab="add-outgoing"],#outgoingSubmit{background:#87392d;border-color:#87392d;color:#fff}
.action[data-tab="income"]:hover,.action[data-tab="add-income"]:hover,#incomeSubmit:hover{background:#06493c;border-color:#06493c;color:#fff}
.action[data-tab="outgoing"]:hover,.action[data-tab="add-outgoing"]:hover,#outgoingSubmit:hover{background:#6b2b23;border-color:#6b2b23;color:#fff}
@media(min-width:861px){.table{font-size:14px}.table .direction-badge{font-size:14px}.table .tag{font-size:12px}.staff-matrix,.staff-editor label{font-size:14px}}
@media(max-width:860px){.mobile>button[data-tab="income"].active,.mobile>button[data-tab="add-income"].active{background:#075b4a;color:#fff}.mobile>button[data-tab="outgoing"].active{background:#87392d;color:#fff}}


/* Keep shortcut actions relevant inside each transaction centre. */
body[data-tab='income'] #quickActions [data-tab='outgoing'],body[data-tab='income'] #quickActions [data-tab='add-outgoing'],body[data-tab='outgoing'] #quickActions [data-tab='income'],body[data-tab='outgoing'] #quickActions [data-tab='add-income']{display:none!important}
/* Reference typography on desktop; keep mobile type unchanged. */
@media(min-width:861px){.table,.staff-matrix,.staff-editor label{font-family:Inter,'Noto Sans TC','Segoe UI','Microsoft JhengHei',sans-serif}.table th{font-weight:600}.table td{font-weight:500}.table td[data-column-key="3"]{font-weight:700;font-variant-numeric:tabular-nums}}


/* Refined, minimal sign-in */
.authgate{background:radial-gradient(ellipse at 16% 12%,#223c55 0,transparent 48%),radial-gradient(ellipse at 90% 95%,#1c354c 0,transparent 48%),#081727;padding:32px 20px;overflow-y:auto;isolation:isolate}
.authgate::before{content:"";position:fixed;inset:22px;border:1px solid #c9a96a22;border-radius:24px;pointer-events:none;z-index:-1}
.authpanel{width:min(100%,440px);max-width:440px;padding:44px 42px 30px;border:1px solid #ffffff66;border-radius:24px;background:#fcfcfb;box-shadow:0 32px 100px #0005;color:#122a42}
.login-brandmark{position:relative;display:grid;place-items:center;width:52px;height:52px;border:1px solid #cdb47d;border-radius:15px;background:linear-gradient(140deg,#f2e6ca,#d7bc83);color:#17314b;font-size:26px;font-weight:700;box-shadow:inset 0 1px 0 #fff9;margin-bottom:25px}
.login-brandmark span{position:absolute;width:5px;height:5px;border-radius:50%;background:#17314b;right:10px;bottom:11px}
.login-company{font-size:12px;font-weight:700;letter-spacing:1.6px;line-height:1.8;text-wrap:balance;color:#8d7550;margin:0 0 12px}
.authpanel h1{font-family:Inter,'Noto Sans TC','Segoe UI','Microsoft JhengHei',sans-serif;font-size:35px;font-weight:600;line-height:1.15;letter-spacing:-1.1px;margin:0;color:#10283f}
.login-title-dot{color:#b69557}
.login-slogan{font-size:14px;color:#75818b;letter-spacing:1.2px;margin:16px 0 30px}
.authpanel label{display:block;font-size:12px;font-weight:600;color:#405469;letter-spacing:.3px;margin:0 0 18px}
.authpanel input{display:block;width:100%;min-height:52px;border:1px solid #dbe1e6;border-radius:11px;background:#fff;color:#122a42;font:inherit;font-size:16px;padding:13px 15px;margin-top:8px;box-shadow:0 2px 4px #142c4203;transition:border-color .15s,box-shadow .15s}
.authpanel input::placeholder{color:#9ba4ad;font-size:14px;font-weight:400}
.authpanel input:focus{outline:none;border-color:#ab8e54;box-shadow:0 0 0 3px #c9a96a25}
.authpanel button{width:100%;min-height:52px;margin-top:5px;border:1px solid #183652;border-radius:11px;background:linear-gradient(110deg,#10283f,#1c3b57);color:#f7f1e3;font-size:15px;font-weight:600;letter-spacing:2px;box-shadow:0 7px 16px #112b4518;transition:background .15s,transform .15s}
.authpanel button:hover:not(:disabled){background:#254962;transform:translateY(-1px)}
.authpanel button:focus-visible{outline:3px solid #c9a96a;outline-offset:4px}
.authpanel button:disabled{opacity:.65;cursor:wait}
.authpanel .autherror{font-size:13px;line-height:1.6;margin:16px 0 0;color:#a92e2e;overflow-wrap:anywhere}
.authpanel .autherror:empty{display:none}
@media(max-width:480px){.authgate{padding:24px 18px}.authgate::before{inset:10px;border-radius:20px}.authpanel{padding:34px 26px 30px;border-radius:20px}.authpanel h1{font-size:32px}.login-brandmark{margin-bottom:22px}.login-slogan{margin-bottom:27px}}
@media(max-height:650px){.authgate{align-items:start}.authpanel{margin:auto}}
@media(prefers-reduced-motion:reduce){.authpanel input,.authpanel button{transition:none}}


.treasury-controls{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0;align-items:end}.treasury-controls .form-field{flex:1;min-width:180px}.treasury-controls input,.treasury-controls select{width:100%;padding:11px;border:1px solid #cddaea;border-radius:9px;background:#fff;color:#182B42}.currency-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:18px 0 26px}.currency-grid .income{color:#075b4a;font-weight:700}.currency-grid .expense{color:#873d2e;font-weight:700}#statementPanel{margin:22px 0}#statementPanel>summary{font-size:18px;font-weight:700;cursor:pointer;color:#102B4E}#statementPanel .table{min-width:900px}body[data-tab='treasury'] .only-overview,body[data-tab='treasury'] .income-block,body[data-tab='treasury'] .outgoing-block{display:none}@media(max-width:600px){.treasury-controls{display:grid;grid-template-columns:1fr}.treasury-controls .form-field{min-width:0}.currency-grid{grid-template-columns:1fr 1fr}.currency-grid .card{padding:14px}}

.recon-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.recon-form-grid .action{align-self:end}.match-card{padding:18px;margin:12px 0;border:1px solid var(--line);border-radius:12px}.match-card>summary{cursor:pointer;font-weight:700;white-space:normal}.match-card details{margin:14px 0;padding:14px;background:#f7f9fc;border-radius:8px}.recon-detail{border-top:2px solid var(--line);padding-top:15px}.event-history{padding-left:20px;line-height:1.8}.recon-allocation{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 0}.source-caption{display:block;font-size:12px;color:var(--mute);margin-top:5px}.donut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:14px 0 28px}.donut-card svg{display:block;width:160px;height:160px;margin:auto}.donut-card h3{font-size:15px}.legend-item{border:0;background:transparent;display:flex;gap:8px;align-items:center;width:100%;padding:9px 0;text-align:left;font-size:12px;color:var(--text)}.legend-item strong{margin-left:auto}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.currency-summary{display:flex;gap:15px;flex-wrap:wrap;align-items:center;padding:18px;background:#eef3f8;border-radius:12px}.currency-summary details{flex-basis:100%;font-size:13px}.reconciliation-panel input,.reconciliation-panel select{padding:10px;border:1px solid #cddaea;border-radius:8px;width:100%}body[data-tab='bank-match'] #recentRecords,body[data-tab='bank-match'] .only-overview,body[data-tab='bank-match'] .income-block,body[data-tab='bank-match'] .outgoing-block,body[data-tab='bank-statements'] .only-overview,body[data-tab='bank-statements'] .income-block,body[data-tab='bank-statements'] .outgoing-block{display:none}body[data-tab='bank-statements'] #settlementFilter,body[data-tab='bank-statements'] #reconciliationFilter{display:none}@media(max-width:640px){.recon-form-grid{grid-template-columns:1fr}.donut-grid{grid-template-columns:1fr}.currency-summary{gap:10px}.match-card{padding:12px}}
.account-acl-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.account-acl-row input{width:auto}.date-group{background:#edf2f8;color:#415770;font-weight:700;padding:10px!important;font-size:12px}@media(max-width:640px){.account-acl-row{grid-template-columns:1fr 1fr}.account-acl-row>span{grid-column:1/-1}}

.multi-select{position:relative;min-width:160px;max-width:100%;background:white;border:1px solid #cbd7e5;border-radius:10px;font-size:13px}.multi-select>summary{padding:12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:330px}.multi-options{position:absolute;top:100%;left:0;min-width:240px;max-width:340px;max-height:340px;overflow:auto;background:#fff;box-shadow:0 10px 28px #102b4e33;border:1px solid #cbd7e5;padding:8px;z-index:50;border-radius:10px}.multi-options label{display:flex;align-items:center;gap:8px;padding:10px;white-space:normal}.multi-options input{min-width:0;flex:none;width:18px;height:18px;min-height:0;padding:0}.multi-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;min-height:0!important;opacity:.01;pointer-events:none}.income-amount{color:#087a60;text-align:right!important}.expense-amount{color:#ad3e2c;text-align:right!important}.amount-cell{font-variant-numeric:tabular-nums;font-weight:700}.statement-month-footer{background:#dfebf5;color:#173b63;font-weight:700}.statement-month-footer td{border-top:2px solid #a9c2da;vertical-align:top;white-space:normal}.month-closing-balance{display:block;color:#173b63;white-space:nowrap}.month-summary{background:#dfebf5;color:#173b63;font-weight:700;padding:16px!important;white-space:normal}.donut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.currency-summary{display:flex;flex-wrap:wrap;gap:15px;align-items:center;margin:26px 0 12px}.currency-summary p{flex-basis:100%}#transactionRows td[data-column-key="8"]{white-space:normal;min-width:170px;max-width:300px}.reconciliation-panel .tablewrap{display:block!important}@media(max-width:680px){.donut-grid{grid-template-columns:1fr}.multi-select>summary{max-width:180px}.currency-summary{gap:9px}.multi-options{min-width:220px}}
.permission-table-wrap{overflow-x:auto}.permission-matrix{min-width:620px}.import-review .card{margin-top:14px;padding:16px}.import-review select,.import-review input{display:block;width:100%;max-width:100%;min-height:44px;margin:8px 0}.import-review pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-size:12px}.import-review button{margin:4px 6px 4px 0}.import-review p,#importPendingBanner p{overflow-wrap:anywhere}.import-review .card h3{font-size:16px}

/* Currency totals follow the existing white cards and green/orange direction accents. */
.income-grid,.outgoing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.income-grid>.card:first-child,.outgoing-grid>.card:first-child{grid-column:1/-1}
.currency-total-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;letter-spacing:normal!important}
.currency-total-tile{min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}
.currency-code{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--mute);margin-bottom:6px}
.currency-total-tile strong{display:block;font-size:clamp(15px,1.3vw,21px);font-weight:700;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.currency-summary{display:block;padding:0;background:transparent}
.currency-summary>h3{font-size:17px;margin:0 0 12px}
.currency-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.currency-metric{padding:20px;border-top:2px solid #7691ac}
.currency-metric.income{border-top-color:var(--green)}.currency-metric.expense{border-top-color:var(--amber)}
.currency-metric strong{display:block;margin-top:12px;font-size:clamp(18px,1.5vw,26px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.currency-metric.income strong{color:#087a60}.currency-metric.expense strong{color:#c86a20}
.currency-summary>.muted,.currency-summary>.bank-statistics{font-size:12px;line-height:1.65;padding:0 2px}
@media(max-width:1000px){.currency-total-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.currency-metric-grid{grid-template-columns:1fr}.currency-total-grid{gap:8px}.currency-total-tile{padding:12px 10px}.currency-total-tile strong{font-size:16px}.currency-metric{padding:16px}}
@media(min-width:1100px){.details-panel{width:min(1240px,94vw)!important}.details-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.details-panel .detail-items-host{margin-top:22px}}@media(max-width:820px){#permissionPanel table,#staffEditor table{display:block;max-width:100%;overflow-x:auto}}.detail-save-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-start;padding:10px 0;background:linear-gradient(transparent,var(--bg,#fff) 30%)}.detail-save-bar button{min-width:160px}

/* ---- main ---- */
body[data-tab='reports'] .only-overview,body[data-tab='reports'] .income-block,body[data-tab='reports'] .outgoing-block,body[data-tab='reports'] #recentRecords{display:none!important}
