:root{font-family:Inter,"Noto Sans SC","Noto Sans JP",system-ui,sans-serif;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}header{height:64px;background:#fff;border-bottom:1px solid #e7eaf0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:2}header strong{font-size:20px}header span{margin-left:14px;color:#778196;font-size:13px}main{max-width:1280px;margin:28px auto;padding:0 20px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cards article,.panel{background:#fff;border:1px solid #e7eaf0;border-radius:12px}.cards article{padding:18px}.cards span{display:block;color:#778196;font-size:13px;margin-bottom:9px}.cards b{font-size:25px}.panel{margin-top:18px;padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.panel-head small,.notes small{color:#667085}.notes{display:flex;flex-direction:column;gap:4px;text-align:right}.panel h2{margin:0 0 16px;font-size:17px}.grid,.search-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid label,.search-grid label{font-size:12px;color:#667085}.grid input,.grid select,.search-grid input,.search-grid select,header select{width:100%;margin-top:5px;border:1px solid #d8dde7;border-radius:8px;padding:9px;background:#fff}.grid .wide{grid-column:span 3}.search-grid{grid-template-columns:2fr repeat(4,1fr);align-items:end}.search-grid .check{display:flex;align-items:center;gap:7px;padding:9px 0;color:#475467}.search-grid .check input{width:auto;margin:0}.search-actions{display:flex;gap:8px}button{border:0;border-radius:8px;padding:10px 15px;background:#2457d6;color:#fff;cursor:pointer;align-self:end}.secondary{background:#eef2ff;color:#2457d6}.link{padding:0;background:transparent;color:#2457d6}.danger{color:#b42318}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 9px;border-top:1px solid #eef0f4;white-space:nowrap}th{color:#667085;font-weight:500}.upload{font-size:12px;color:#2457d6;cursor:pointer}.mini{font-size:12px;padding:4px;border:1px solid #d8dde7;border-radius:6px;background:#fff}.status{display:inline-block;padding:3px 7px;border-radius:999px;font-size:11px}.status.active{background:#ecfdf3;color:#027a48}.status.void{background:#f2f4f7;color:#667085}.row-void{opacity:.62}.void-reason{font-size:12px;color:#667085}.asset-check{width:16px;height:16px;cursor:pointer}.selection-box{margin-top:16px;padding:14px;border:1px dashed #b9c2d0;border-radius:10px;background:#fafbff;color:#475467;font-size:13px}.selection-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.selection-head span{color:#667085;font-size:12px}.selection-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-top:1px solid #eef0f4;align-items:center}.selection-row label{white-space:nowrap;color:#667085;font-size:12px}.selection-row input{width:110px;border:1px solid #d8dde7;border-radius:7px;padding:6px;background:#fff}.asset-table-wrap{margin-top:14px}.muted{color:#98a2b3;text-align:center}.login{min-height:100vh;display:grid;place-items:center}.login-card{width:min(380px,90vw);background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:30px}.login-card h1{margin:0}.login-card p{color:#778196}.login-card label{display:block;font-size:13px}.login-card input{display:block;width:100%;margin:8px 0 14px;padding:11px;border:1px solid #d8dde7;border-radius:8px}.login-card button{width:100%}.error{padding:10px;background:#fff1f2;color:#b42318;border-radius:8px;margin:12px 0}@media(max-width:1050px){.search-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.cards{grid-template-columns:repeat(2,1fr)}.grid,.search-grid{grid-template-columns:1fr 1fr}.grid .wide{grid-column:span 2}.selection-head,.selection-row{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}header span{display:none}.grid,.search-grid{grid-template-columns:1fr}.grid .wide{grid-column:span 1}.panel-head{align-items:flex-start;flex-direction:column}.notes{text-align:left}.search-actions{width:100%}.search-actions button{flex:1}.selection-row label{white-space:normal}}


/* Workspace split: overview is read-first, /entry contains persistent inputs. */
.page-overview .view-entry:not(.view-shared){display:none!important}
.page-entry .view-overview:not(.view-shared){display:none!important}

.app-header{height:auto;min-height:64px;gap:20px}
.brand{display:flex;align-items:baseline;flex:0 0 auto;white-space:nowrap;text-decoration:none;color:#172033}
.brand strong{font-size:20px}
.brand span{margin-left:14px;color:#778196;font-size:13px;white-space:nowrap}
.top-nav{display:flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap}
.top-nav a{padding:8px 10px;border-radius:8px;text-decoration:none;color:#475467;font-size:13px}
.top-nav a:hover{background:#f2f4f7}
.page-overview .top-nav .nav-overview,.page-entry .top-nav .nav-entry{background:#eef2ff;color:#2457d6;font-weight:600}
.year-picker{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:#667085;font-size:12px;white-space:nowrap}
.year-picker span{margin:0;color:#667085;font-size:12px}
.year-picker #year{width:104px;min-width:104px;margin:0;padding:9px 30px 9px 10px}

.workspace-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:15px 18px;background:#fff;border:1px solid #e7eaf0;border-radius:12px}
.workspace-banner>div:first-child{display:flex;flex-direction:column;gap:4px}
.workspace-banner strong{font-size:15px}
.workspace-banner span{font-size:12px;color:#667085}
.workspace-actions,.entry-shortcuts{display:flex;gap:8px;flex-wrap:wrap}
.button-link{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:10px 14px;background:#2457d6;color:#fff;text-decoration:none;font-size:13px}
.secondary-link{background:#eef2ff;color:#2457d6}
.text-link{color:#2457d6;text-decoration:none;font-size:13px;white-space:nowrap}
.entry-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:3px solid #2457d6}
.entry-hero h2{margin-bottom:6px}
.entry-hero p{margin:0;color:#667085;font-size:13px;line-height:1.55}
#manual-entry{scroll-margin-top:86px}
#stripe-settings,#tax-settings{scroll-margin-top:86px}
#stripe-settings>.stripe-api-form{margin-top:14px}
#stripe-settings>.stripe-monthly{margin-top:16px}
#tax-settings>.tax-settings{margin-top:12px}
.page-entry .view-shared{margin-top:18px}

@media(max-width:980px){
  .app-header{flex-wrap:wrap;padding:12px 18px}
  .brand{order:1}
  .year-picker{order:2;margin-left:auto}
  .top-nav{order:3;width:100%;margin-left:0;overflow-x:auto;padding-top:2px}
  .workspace-banner,.entry-hero{align-items:flex-start;flex-direction:column}
}
@media(max-width:560px){
  .brand span{display:none}
  .year-picker span{display:inline}
  .year-picker #year{width:92px;min-width:92px}
  .workspace-actions,.entry-shortcuts{width:100%}
  .button-link{flex:1 1 auto}
}

.entry-mode-switch{display:flex;gap:6px;margin:14px 0 16px;padding:4px;background:#f2f4f7;border-radius:10px;width:max-content;max-width:100%}
.entry-mode-switch .mode-button{background:transparent;color:#475467;padding:8px 13px}
.entry-mode-switch .mode-button.active{background:#fff;color:#2457d6;box-shadow:0 1px 2px rgba(16,24,40,.08)}
#one-off-entry[hidden],#recurring-entry[hidden]{display:none}
.recurring-help{margin:2px 0 14px;padding:11px 13px;border-radius:9px;background:#fffaeb;color:#7a2e0e;font-size:12px;line-height:1.6}
.recurring-form{align-items:end}
.recurring-actions{display:flex;gap:8px;align-items:end}
.recurring-message{margin-top:12px;text-align:left;min-height:18px}
.recurring-table-wrap{margin-top:12px}
.status.missing-doc{background:#fffaeb;color:#b54708}
@media(max-width:800px){.entry-mode-switch{width:100%}.entry-mode-switch .mode-button{flex:1}.recurring-actions{grid-column:1/-1}}
@media(max-width:520px){.recurring-actions{flex-direction:column;align-items:stretch}.recurring-actions button{width:100%}}

.manual-save-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.manual-save-actions button:disabled{opacity:.65;cursor:wait}
#tx-save-status{min-height:18px}

button,.button-link,.upload,.top-nav a{transition:transform .06s ease,filter .06s ease,opacity .12s ease,background-color .12s ease}
button:active,.button-link:active,.upload:active,.top-nav a:active{transform:translateY(1px);filter:brightness(.96)}
button:disabled{opacity:.6;cursor:wait}
.recent-entry-panel{border-top:3px solid #dbe4ff}
.recent-entry-panel h2{margin-bottom:4px}
.recent-entry-wrap{margin-top:12px}
.recent-entry-wrap td strong{font-weight:600}
.recent-entry-wrap td small{color:#667085}
#ledger-records{scroll-margin-top:86px}
