/* Shared office palette: matches the client management system. */
:root{--ink:#243447;--muted:#687b8e;--brand:#1a3c5e;--bg:#f5f6fa;--line:#dfe6ed;--bs-primary:#1a3c5e;--bs-primary-rgb:26,60,94}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang TC','Microsoft JhengHei',sans-serif}a{color:var(--brand)}a:hover{text-decoration:none;color:#244f7a}h1,h2,h4,h5{color:var(--brand)}header{background:#1a3c5e;border:0;box-shadow:0 2px 8px #142d4614;gap:24px}.brand,header .brand{color:#fff}header .sub{color:#c8ddf0}header nav{margin-left:auto}header nav>a{color:#e0ecf7;padding:9px 12px;border-radius:6px;transition:background .15s}header nav>a:hover{color:white;background:#244f7a}header .pill{color:#e6f0fa;background:#315879}.wrap{max-width:1360px;margin:30px auto}.top{margin-bottom:22px}.top>div:last-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.top>nav{gap:6px;background:#eaf0f6;border:1px solid var(--line);padding:5px;border-radius:9px}.top>nav>a{display:inline-flex;align-items:center;min-height:38px;padding:7px 13px;border-radius:6px;font-weight:500;color:#365572;background:transparent}.top>nav>a:hover{background:white;box-shadow:0 1px 3px #1a3c5e12}.cards{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-items:start;gap:20px}.cards>.card{margin-bottom:0;min-width:0;height:auto}.card{border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 8px #1a3c5e08;padding:22px}.card h2{margin:8px 0 18px;font-size:19px}.metric{font-size:32px;letter-spacing:-.6px;line-height:1.35;margin:8px 0 3px}.cards .actions{padding-top:16px;margin-top:18px;border-top:1px solid #edf1f5;align-items:center}.actions{align-items:center;gap:8px}button,.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:9px 16px;border:1px solid transparent;border-radius:7px;font-size:14px;font-weight:600;line-height:1.4;white-space:normal;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s}.button,button,.btn-primary{background:#1a3c5e;color:#fff}.button:hover,button:hover,.btn-primary:hover{background:#244f7a;color:#fff;box-shadow:0 2px 5px #1a3c5e1f}.button.secondary,button.secondary,.actions>a:not(.button),.btn-outline-secondary,.btn-outline-primary{background:#fff;color:#1a3c5e;border:1px solid #c8d5e1}.secondary:hover,.actions>a:not(.button):hover,.btn-outline-secondary:hover,.btn-outline-primary:hover{background:#eaf0f6;color:#1a3c5e;border-color:#9db4c9}.danger,.btn-danger{background:#b73545;color:white}.danger:hover,.btn-danger:hover{background:#992c3a}.pill{background:#e7eef5;color:#365572}.pill.warn{background:#fff5d9;color:#886013}.alert:not(.error):not([class*=alert-]){background:#e8f0f7;color:#1a3c5e}th{background:#eef3f8;color:#47617a}tbody tr:hover{background:#f9fbfd}input,select,textarea,.form-control,.form-select{border-color:#cdd7e2;border-radius:7px}input:focus,select:focus,textarea:focus,.form-control:focus,.form-select:focus{outline:0;border-color:#668caf;box-shadow:0 0 0 3px #1a3c5e14}.field{margin-bottom:12px}.field label{font-weight:500}.table-wrap{border-color:var(--line)}.navbar{border-top:4px solid #1a3c5e}.navbar-brand{color:#1a3c5e!important}.tx-card{border-left:4px solid #1a3c5e!important}.btn-primary{--bs-btn-bg:#1a3c5e;--bs-btn-border-color:#1a3c5e;--bs-btn-hover-bg:#244f7a;--bs-btn-active-bg:#244f7a}.bg-primary{background-color:#1a3c5e!important}.btn-light{background:#eef3f8;color:#1a3c5e;border-color:#dfe6ed}.receipt-remove{background:#dc3545}.btn-close{background-color:transparent}.client-pagination{padding:12px 16px;border:1px solid #dfe6ed;background:#fff;border-radius:9px}.client-pagination .btn{min-width:100px}.client-pagination:has(a){display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
@media(min-width:768px){.cards>.card .actions{margin-bottom:0}.narrow{padding:28px}header{padding:16px 28px}.card .row{gap:24px}.card .metric{margin-bottom:5px}.actions>a:not(.button){display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:7px;min-height:40px;font-weight:600}.table-wrap td>a{display:inline-block;padding:3px 8px;background:#eef3f8;border:1px solid #dfe6ed;border-radius:5px;font-weight:500}.table-wrap td>a:hover{background:#e0eaf3}}
@media(max-width:767px){.cards{grid-template-columns:minmax(0,1fr);gap:16px}.card{padding:16px}.wrap{margin:20px auto}header{gap:12px}header nav{margin-left:0}header nav>a{background:#244f7a;color:#e0ecf7}.top>nav{padding:6px;gap:6px}.top>nav>a{min-height:44px;padding:9px 12px;background:#fff}.top>div:last-child{gap:8px}.top>div>a{margin:0}button,.button,.btn{min-height:44px;font-size:16px;padding:10px 14px}.actions>a:not(.button){background:#fff;border:1px solid #c8d5e1}.cards .actions{gap:8px;margin-top:14px;padding-top:14px}.field{margin-bottom:0}.mobile-cards tr{box-shadow:0 1px 5px #1a3c5e08}.mobile-cards td>a{border-radius:6px;background:#eef3f8;padding:10px 12px}.client-pagination{display:block!important}.client-pagination .d-flex{width:100%}.client-pagination .btn{flex:1}.client-pagination .small{display:block}.navbar .btn{font-size:15px}}
.btn-outline-danger{background:#fff;color:#b73545;border-color:#dbb2b8}.btn-outline-danger:hover{background:#b73545;color:#fff;border-color:#b73545}.btn-outline-warning{background:#fff;color:#91600b;border-color:#dec799}.btn-outline-warning:hover{background:#fff3d9;color:#795009;border-color:#d4b16a}.btn-outline-success{background:#fff;color:#16825c;border-color:#a9cebf}.btn-outline-success:hover{background:#e6f3ed;color:#146e4e;border-color:#7eb59e}
.mobile-cards tr[hidden]{display:none!important}.subject-picker input[type=search]{width:100%;margin-bottom:8px}.subject-picker select{width:100%}.subject-status{line-height:1.6}

.review-form{min-width:135px;max-width:240px;margin:0}.review-form select{width:100%;min-height:44px}.review-form .review-status{display:block;margin-top:4px}.review-form button{margin-top:6px}.review-form .review-status.error{background:none;color:#a53322}
.subject-code-row{display:flex;gap:6px;margin-top:4px;align-items:center}.subject-code-row input{min-width:0;flex:none;width:104px;font-size:16px;padding:6px 8px;min-height:36px}.subject-code-row button{flex:none;padding:6px 8px;min-height:36px;min-width:32px}.subject-inline-form{min-width:142px;max-width:180px}.subject-name{margin-top:5px;font-size:13px}.subject-status.error,.inline-status.error{background:none;color:#a53322}.subject-dialog{width:min(640px,calc(100% - 24px));max-height:85dvh;border:1px solid var(--line);border-radius:12px;padding:20px;color:var(--ink)}.subject-dialog::backdrop{background:rgba(15,23,42,.4)}.subject-dialog>input,.subject-dialog>select{width:100%;margin-bottom:10px;font-size:16px}.subject-dialog-list{max-height:48dvh;overflow:auto;margin-bottom:14px}.subject-option{display:block;width:100%;white-space:normal;text-align:left;background:white;color:var(--ink);border-bottom:1px solid var(--line);border-radius:0;min-height:44px}.subject-option:hover,.subject-option:focus{background:#eaf0f6}.inline-status{display:block}.subject-picker input[aria-invalid=true]{border-color:#a53322}

@media(max-width:650px){.subject-code-row input,.subject-code-row button{min-height:44px}.subject-code-row button{min-width:36px}}

/* Dense desktop ledger, keeping touch targets on the mobile cards. */
@media(min-width:768px){
 .ledger-table td{padding:6px 8px;vertical-align:middle;line-height:1.3}
 .ledger-table th{padding:8px;line-height:1.3}
 .ledger-table td:first-child,.ledger-table td:last-child,.ledger-table td.number{white-space:nowrap}
 .ledger-table td:last-child a{white-space:nowrap;padding:3px 7px}
 .ledger-table .sub{font-size:12px;line-height:1.3;overflow-wrap:normal}
 .ledger-table .review-form{min-width:112px;max-width:130px}
 .ledger-table .review-form select{min-height:30px;height:30px;padding:3px 6px;font-size:13px}
 .ledger-table .subject-inline-form{min-width:124px;max-width:170px;margin:0}
 .ledger-table .subject-code-row{gap:4px;margin-top:0}
 .ledger-table .subject-code-row input{width:88px;min-height:30px;height:30px;padding:3px 6px;font-size:13px}
 .ledger-table .subject-code-row button{min-width:28px;min-height:30px;height:30px;padding:3px 6px;font-size:13px}
 .ledger-table .subject-name{margin-top:2px;font-size:12px;line-height:1.3}
 .ledger-table .subject-name:empty,.ledger-table .subject-status:empty,.ledger-table .inline-status:empty,.ledger-table .review-status:empty{display:none}
 .ledger-table .receipt-cell{white-space:nowrap}
 .ledger-table .receipt-cell br{display:none}
 .ledger-table .receipt-cell a{padding:2px 5px;margin:2px 2px 2px 0;line-height:1.3;white-space:nowrap}
 .ledger-table .pill{white-space:nowrap;padding:2px 5px}
}
@media(min-width:768px){body:has(.ledger-table) .wrap{max-width:1680px}.ledger-table td:nth-child(2){min-width:200px}.ledger-table td:nth-child(3){min-width:240px}.ledger-table td:nth-child(8){min-width:150px}}
@media(min-width:768px){.ledger-table td:nth-child(9){min-width:220px}.ledger-table .subject-inline-form{max-width:210px}}

@media(min-width:768px){
 body:has(.ledger-table) .wrap{max-width:1840px}
 .ledger-table td:nth-child(9){min-width:340px}
 .ledger-table .subject-inline-form{display:flex;align-items:center;gap:6px;width:320px;min-width:320px;max-width:320px}
 .ledger-table .subject-picker.compact{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
 .ledger-table .subject-code-row{flex:none}
 .ledger-table .subject-name,.ledger-table .subject-name:empty{display:block;flex:1;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ledger-table .subject-inline-form .inline-status,.ledger-table .subject-inline-form .inline-status:empty{display:block;flex:none;width:52px;margin:0;white-space:nowrap;font-size:12px;line-height:1.3}
}

/* Consistent control sizing and alignment across management pages. */
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select{height:40px;min-height:40px;padding:8px 11px;font-size:14px;line-height:22px}
select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23687b8e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
button,.button{height:40px;min-height:40px;padding:8px 14px;font-size:14px;line-height:22px;white-space:nowrap}
.field{margin-bottom:0}.field label{line-height:20px;margin-bottom:6px}.card .row{gap:16px;align-items:flex-end}.card form>.row+.row{margin-top:16px}
.user-status{display:flex;align-items:center;gap:12px;white-space:nowrap}.user-status form.inline{display:inline-flex}.user-status button{height:32px;min-height:32px;padding:4px 12px;font-size:13px}
.category-create input{width:300px;max-width:100%}.category-create select{width:130px}.subject-year-filter .field{flex:0 1 240px}.subject-catalog-toolbar{align-items:flex-end}.subject-catalog-toolbar h2{margin:0;align-self:center}.subject-catalog-toolbar .field{flex:1 1 240px;max-width:400px}
.account-cards{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-items:stretch}.account-cards>.card{display:flex;flex-direction:column;height:100%}.account-cards .actions{margin-top:auto;padding-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.account-cards .actions>a{width:100%;padding:8px 6px;font-size:13px}.account-cards>.card>.sub:last-of-type{margin-bottom:16px}
@media(min-width:768px){
 .ledger-table input:not([type=hidden]):not([type=checkbox]):not([type=radio]),.ledger-table select,.ledger-table button{height:30px;min-height:30px;padding:3px 6px;font-size:13px;line-height:22px}
 .ledger-table select{padding-right:26px;background-position:right 6px center}
}
@media(max-width:767px){
 input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,button,.button{height:44px;min-height:44px;font-size:16px;line-height:24px;padding-top:9px;padding-bottom:9px}
 .category-create input,.category-create select{width:100%}.subject-year-filter .field,.subject-catalog-toolbar .field{flex:1 1 100%;max-width:none}.account-cards{grid-template-columns:minmax(0,1fr)}.account-cards .actions>a{font-size:14px}.user-status button{height:44px;min-height:44px;font-size:14px}
}
.subject-catalog-toolbar>.field{display:block}.account-cards .pill{align-self:flex-start}

.card .account-subject-row{align-items:flex-start}.account-subject-field .subject-code-row{margin-top:0;width:100%}.account-subject-field .subject-code-row input{flex:1;width:100%;min-width:0}.account-subject-field .subject-code-row button{flex:none}

.invoice-dialog{width:min(1100px,calc(100% - 24px));height:90dvh;border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink);overflow:auto}.invoice-dialog::backdrop{background:#142d4680}.invoice-toolbar,.invoice-fields{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.invoice-toolbar strong{flex:1;min-width:180px;overflow-wrap:anywhere}.invoice-fields label{display:flex;align-items:center;gap:8px}.invoice-fields input{width:180px}.invoice-fields select{width:180px}.invoice-document{display:block;width:100%;height:calc(100% - 130px);min-height:300px;object-fit:contain;border:1px solid var(--line);background:#f5f6fa}.invoice-label{font-size:12px;white-space:nowrap}@media(max-width:767px){.invoice-dialog{padding:12px}.invoice-toolbar strong{flex-basis:100%}.invoice-toolbar button,.invoice-toolbar a{flex:1}.invoice-fields label{width:100%}.invoice-fields input{flex:1;min-width:0}.invoice-fields select,.invoice-fields button{flex:1}.invoice-document{height:55dvh;min-height:220px}}

/* More compact desktop detail rows. */
@media(min-width:768px){
 .ledger-table{font-size:12px}
 .ledger-table th{padding:6px 8px;line-height:1.2}
 .ledger-table td{padding:4px 8px;line-height:1.2}
 .ledger-table .sub{font-size:11px;line-height:1.2}
 .ledger-table .number{font-size:13px}
 .ledger-table input:not([type=hidden]):not([type=checkbox]):not([type=radio]),.ledger-table select,.ledger-table button,.ledger-table .review-form select,.ledger-table .subject-code-row input,.ledger-table .subject-code-row button{height:26px;min-height:26px;padding:3px 6px;font-size:12px;line-height:18px}
 .ledger-table select,.ledger-table .review-form select{padding-right:25px}
 .ledger-table td:last-child a,.ledger-table .receipt-cell a{padding:2px 5px;margin-top:0;margin-bottom:0;font-size:12px;line-height:18px}
 .ledger-table .pill{padding:1px 5px;font-size:11px;line-height:18px}
}

.invoice-edit-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0}.invoice-cell{min-width:110px;white-space:nowrap}.invoice-cell>span+span{margin-left:8px}.invoice-edit-fields .sub{margin-top:3px;overflow-wrap:anywhere}@media(max-width:767px){.invoice-edit-fields{grid-template-columns:1fr}}

.invoice-dialog{display:none;flex-direction:column;overflow:hidden}.invoice-dialog[open]{display:flex}.invoice-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:10px;flex-shrink:0}.invoice-fields label{display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:13px}.invoice-fields input,.invoice-fields select{width:100%;min-width:0}.invoice-fields>span{grid-column:span 3}.invoice-toolbar{flex-shrink:0}.invoice-image-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;flex-shrink:0}.invoice-image-tools button{height:32px;min-height:32px;padding:4px 10px;font-size:13px}.invoice-viewport{flex:1;min-height:180px;overflow:auto;position:relative;background:#f0f3f7;border:1px solid var(--line);border-radius:8px}.invoice-document{border:0;margin:0;min-height:0}.invoice-viewport>iframe{width:100%;height:100%}.invoice-image-stage{position:relative;min-width:100%;min-height:100%}.invoice-image-stage>img{position:absolute;left:50%;top:50%;max-width:none;object-fit:contain;transform-origin:center}.invoice-filename{grid-column:1/-1}@media(max-width:767px){.invoice-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.invoice-fields label{width:auto}.invoice-fields>span{grid-column:1/-1}.invoice-image-tools button{height:44px;min-height:44px;font-size:14px}.invoice-dialog{height:94dvh}.invoice-toolbar{gap:6px}.invoice-image-tools{gap:6px}.invoice-viewport{min-height:140px}}

.invoice-fields>.invoice-actions{grid-column:span 2;display:flex;align-items:center;gap:8px}.invoice-actions button{width:auto;flex:none}.invoice-amount-cell{min-width:72px;white-space:nowrap}.invoice-amount-cell>span+span{margin-left:8px}
@media(min-width:768px){.ledger-table th.account-summary-cell,.ledger-table td.account-summary-cell{width:120px;min-width:120px;max-width:120px}.ledger-table th.counterparty-summary-cell,.ledger-table td.counterparty-summary-cell{width:170px;min-width:170px;max-width:170px}.ledger-summary-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary-cell .ledger-summary-text{max-width:120px}.counterparty-summary-cell .ledger-summary-text{max-width:170px}}
@media(max-width:767px){.invoice-fields>.invoice-actions{grid-column:1/-1}.invoice-actions button{flex:1}.invoice-amount-cell{min-width:76px}}
