/* Brand palette and serif headings from mllml.com.tw; form controls retain readable sans-serif text. */
:root{--ink:#302526;--muted:#75686a;--accent:#a31d22;--line:#e8ded5;--canvas:#fdf9f3;--bs-primary:#a31d22;--bs-primary-rgb:163,29,34;--bs-link-color:#a31d22;--bs-link-hover-color:#7c161a;--bs-body-color:#302526}
body{background:var(--canvas);font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--ink)}
h1,h2,.brand-name{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:700;letter-spacing:.03em}
.app-header{border-top:5px solid #a31d22;background:#fff;border-bottom-color:#e8ded5}
.brand-mark{background:#a31d22;color:#fff;border:1px solid #c9a063}.brand-caption{color:#8d704b;letter-spacing:.13em}.brand-name{color:#a31d22}
.brand-logo{width:58px;height:58px;object-fit:contain}.navbar-nav .nav-link{border-radius:6px}.navbar-nav .nav-link:hover{background:#f9ece5;color:#a31d22!important}
.workspace-context{color:#8d704b;border-color:#e8ded5}.section-kicker,.module-number{color:#9a2528}
.btn-primary{--bs-btn-bg:#a31d22;--bs-btn-border-color:#a31d22;--bs-btn-hover-bg:#81181c;--bs-btn-hover-border-color:#81181c;--bs-btn-active-bg:#701519;--bs-btn-active-border-color:#701519;--bs-btn-disabled-bg:#9a5457;--bs-btn-disabled-border-color:#9a5457}
.btn-outline-primary{--bs-btn-color:#a31d22;--bs-btn-border-color:#a31d22;--bs-btn-hover-bg:#a31d22;--bs-btn-hover-border-color:#a31d22;--bs-btn-active-bg:#81181c;--bs-btn-active-border-color:#81181c}
a,a:hover{color:#a31d22}.card,.table-responsive{border-color:#e8ded5;border-radius:12px}.card-header,.table thead th{background:#f7efe3;color:#614a37;border-color:#e8ded5}.table{--bs-table-color:#302526;--bs-table-border-color:#e8ded5;--bs-table-striped-bg:#fcf8f2}.card-header{border-left:3px solid #c9a063}
.module-card:hover{border-color:#c9a063;box-shadow:0 6px 20px #6d3c1710}.module-link{border-color:#e8ded5}.support-panel{background:#f5eddf;border-color:#e8ded5}.form-control,.form-select{border-color:#d9cbbb;color:#302526}.form-control:focus,.form-select:focus{border-color:#c9a063;box-shadow:0 0 0 .2rem #c9a06330}.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a31d22;outline-offset:3px}.account-dot{background:#a31d22}.app-footer{border-color:#e8ded5;color:#75686a}.text-secondary{color:#75686a!important}
.alert-info{color:#594529;background:#f5eddf;border-color:#c9a063}.alert-warning{color:#744412;background:#fff2da;border-color:#c9a063}.alert-success{color:#1a4d3a;background:#eaf3ed;border-color:#1a4d3a}.form-control[readonly]{background:#f6f1e9}
@media(max-width:767px){.brand-logo{width:44px;height:44px}h1.h2{font-size:1.55rem}.table-responsive{max-width:100%}.btn{min-height:42px}.app-shell{padding-left:12px;padding-right:12px}}

.save-dock{position:sticky;bottom:0;z-index:5;padding:1rem;background:#fffaf2;border-top:1px solid #d8c7b2;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;box-shadow:0 -3px 12px #0000000b}
.table-filter-tools{max-width:36rem}.table-filter-tools label{font-weight:600;margin-bottom:.35rem}
@media(max-width:767.98px){
 .management-table{display:block;width:100%}.management-table thead{display:none}.management-table tbody{display:block}
 .management-table tbody tr{display:block;border:1px solid #dfd4c5;border-radius:12px;margin:.6rem 0;padding:.6rem;background:#fff}
 .management-table tbody tr[hidden]{display:none!important}
 .management-table tbody td{display:flex;gap:.6rem;flex-wrap:wrap;border:0;padding:.35rem;overflow-wrap:anywhere}
 .management-table tbody td::before{content:attr(data-label);font-weight:600;min-width:5rem;color:#675643}
 .management-table tbody td:last-child a{display:inline-block;padding:.45rem .25rem}
 .save-dock{padding:.65rem}.save-dock .btn{width:100%}
}
@media(max-width:767.98px){.table-responsive>.management-table{min-width:0;width:100%;max-width:100%}}
.header-shortcuts{display:flex;align-items:center;gap:6px;flex-shrink:0}
.header-home{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:#a31d22;border:1px solid #d6c8bb;border-radius:6px;text-decoration:none}
.header-home:hover,.header-home:focus-visible{background:#f9ece5;color:#80151a;outline:2px solid #a31d22;outline-offset:2px}
@media(max-width:359px){.navbar .brand-caption{display:none}.navbar .brand{gap:6px}.navbar .brand-name{font-size:16px}.header-shortcuts .navbar-toggler{padding:8px}}
@media(max-width:767px){.app-header .container-fluid{padding-inline:12px;gap:6px}.navbar .brand{margin-right:0}}
.dashboard-card{color:inherit;transition:border-color .15s,box-shadow .15s}.dashboard-card:hover,.dashboard-card:focus-visible{border-color:#a31d22;box-shadow:0 4px 16px #a31d2218;outline:2px solid #a31d22;outline-offset:2px}.dashboard-icon{display:block;font-size:1.7rem;margin-bottom:.6rem}
.session-banner{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;padding:.55rem 0;color:#675643;font-size:.9rem;overflow-wrap:anywhere}.session-banner strong{color:#362b25}
.app-header .container-fluid{flex-wrap:wrap!important}
.app-header .session-banner{flex:0 0 100%;order:2;padding:0;gap:.35rem 1.25rem}
.app-header .navbar-collapse{order:3}
.branch-overview{display:flex;flex-wrap:wrap;gap:12px 28px;padding:16px 20px;background:#f3eadf;border-radius:10px;margin-bottom:20px;color:#675643}.branch-overview strong{font-size:1.4rem;color:#362b25;margin-left:8px}
.branch-tools{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:16px;margin-bottom:12px}.branch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.branch-card{min-width:0;background:#fff;border:1px solid #ded2c3;border-top:4px solid #a31d22;border-radius:12px;box-shadow:0 3px 12px #46301e08;overflow:hidden}.branch-card[hidden]{display:none}.branch-card-heading{display:flex;align-items:center;gap:12px;padding:22px 22px 16px}.branch-symbol{font-size:1.8rem;background:#f9f1e7;border-radius:10px;padding:10px}.branch-card-heading>div{min-width:0;flex:1}.branch-type{font-size:.8rem;color:#857159}.branch-card h2{font-size:1.65rem;line-height:1.35;margin:3px 0 0;overflow-wrap:anywhere}.branch-status{font-size:.8rem;font-weight:650;padding:6px 10px;border-radius:30px;white-space:nowrap}.branch-status.is-active{background:#e7f2e9;color:#275c36}.branch-status.is-inactive{background:#eee;color:#666}.branch-details{margin:0;padding:0 22px 16px}.branch-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:10px 0;border-top:1px solid #f0e9e0}.branch-details dt{font-weight:500;color:#796b5d}.branch-details dd{margin:0;color:#362b25;overflow-wrap:anywhere}.branch-card-actions{display:flex;flex-wrap:wrap;gap:10px;background:#fcfaf7;border-top:1px solid #eee4d8;padding:16px 22px}.branch-card-actions .btn{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;white-space:nowrap}
@media(max-width:767px){.branch-grid{grid-template-columns:1fr;gap:18px}.branch-tools{grid-template-columns:1fr}.branch-card-heading{padding:18px 16px 14px;gap:8px}.branch-card h2{font-size:1.5rem}.branch-symbol{font-size:1.5rem;padding:8px}.branch-details{padding:0 16px 12px}.branch-details>div{grid-template-columns:76px minmax(0,1fr)}.branch-card-actions{padding:14px 16px;gap:8px}.branch-card-actions .btn{flex:1 1 100%}.branch-overview{gap:10px 20px;padding:14px 16px}}
.dashboard-card-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px;min-width:0}.dashboard-card-heading .dashboard-icon{margin:0;flex-shrink:0;line-height:1.2}.dashboard-card-heading h3{margin:0;min-width:0;overflow-wrap:anywhere}.dashboard-permissions{font-size:.9rem;line-height:1.7;color:#675643;background:#f8f2e9;border-radius:7px;padding:8px 10px;margin:0 0 12px;overflow-wrap:anywhere}.dashboard-permissions strong{color:#563f2e}
.header-install{background:#fff;padding:0;font-size:28px;line-height:1;cursor:pointer}.header-install[hidden]{display:none!important}.header-install:disabled{opacity:.5;cursor:wait}
@media(max-width:440px){.navbar .brand-caption{display:none}.navbar .brand{gap:6px}.navbar .brand-name{font-size:16px}}
.home-enter.btn{color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-bg:#146c43;--bs-btn-hover-border-color:#146c43;--bs-btn-active-bg:#115c39;--bs-btn-active-border-color:#115c39}.home-enter.btn:hover,.home-enter.btn:focus{color:#fff}
.connection-speed{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;min-width:48px;padding:3px 6px;border-radius:6px;background:#f0f0f0;color:#555;font-size:11px;line-height:1.3;white-space:nowrap}.connection-speed strong{font-size:15px}.connection-speed[data-speed=fast]{background:#e8f5ec;color:#146c43}.connection-speed[data-speed=medium]{background:#fff3cd;color:#755500}.connection-speed[data-speed=slow]{background:#fce8e8;color:#a31d22}
