:root{--bg:#f5f7f8;--panel:#fff;--ink:#16202c;--muted:#6f7b88;--line:#e2e8eb;--green:#176b5b;--green2:#e9f5f1;--red:#b23a48;--amber:#fff6dc;--nav:#17212d;--shadow:0 10px 30px rgba(21,33,44,.07);font-family:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:var(--nav);color:white;padding:28px 16px;display:flex;flex-direction:column}.brand{padding:0 10px 32px}.brand strong{font-size:18px;letter-spacing:.8px;display:block}.brand span{font-size:12px;color:#aeb9c6}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-btn{border:0;background:transparent;color:#d8e0e9;text-align:left;padding:12px 14px;border-radius:9px}.nav-btn:hover,.nav-btn.active{background:#253344;color:white}.side-footer{margin-top:auto;color:#aeb9c6;font-size:12px;padding:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#39b980;margin-right:7px}main{margin-left:220px;min-height:100vh}header{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}h1{margin:0;font-size:26px}header p{margin:4px 0 0;color:var(--muted);font-size:13px}.header-actions{display:flex;gap:10px}.btn{border:1px solid var(--line);background:white;color:var(--ink);padding:10px 16px;border-radius:8px;text-decoration:none}.btn:hover{background:#f7f9fa}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.danger{color:var(--red)}.btn:disabled{opacity:.42;cursor:not-allowed}#content{padding:24px 28px}.cards{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:14px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;min-height:95px}.card .label{color:var(--muted);font-size:12px}.card .value{font-size:25px;font-weight:700;margin-top:10px;color:var(--green)}.card.wide{grid-column:span 3}.panel{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.input,.select,textarea{border:1px solid #cad4da;background:white;border-radius:8px;padding:9px 11px;outline:none}.input:focus,.select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,107,91,.08)}.search{min-width:300px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:calc(100vh - 180px)}table{border-collapse:collapse;width:100%;font-size:13px}th{position:sticky;top:0;background:#f7f9fa;text-align:left;padding:10px 12px;color:#52606d;border-bottom:1px solid var(--line);z-index:2}td{padding:10px 12px;border-bottom:1px solid #edf1f3;white-space:nowrap}tr[data-id]{cursor:pointer}tbody tr:hover{background:#f5fbf8}tbody tr.selected{background:#dff1eb!important}tbody tr.review{background:var(--amber)}.badge{padding:4px 8px;border-radius:999px;font-size:11px;background:#eef2f4}.badge.good{background:#e2f4ec;color:#12604f}.badge.warn{background:#fff0c8;color:#805b00}.dropzone{border:2px dashed #b9c7c3;background:#eff8f5;border-radius:14px;padding:30px;text-align:center;margin-bottom:16px}.dropzone.drag{border-color:var(--green);background:#e3f5ef}.dropzone h3{margin:0 0 6px}.muted{color:var(--muted)}.reconcile-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.selection-bar{display:flex;gap:10px;align-items:center;margin-bottom:16px;padding:12px 14px;background:#eef4f2;border-radius:10px}.selection-bar .grow{flex:1}.taxbox{display:flex;align-items:center;gap:12px}.money{font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;inset:0;background:rgba(10,18,25,.45);display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:min(680px,calc(100vw - 40px));max-height:90vh;overflow:auto;background:white;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.22)}.modal-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:20px 22px}.modal-foot{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#52606d;font-weight:600}.tax-summary{background:#f4f8f6;border:1px solid #dce9e4;border-radius:10px;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}.tax-summary small{display:block;color:var(--muted)}#toast{position:fixed;right:22px;bottom:22px;z-index:200}.toast{background:#17212d;color:white;padding:12px 15px;border-radius:10px;margin-top:8px;box-shadow:var(--shadow);max-width:430px}.toast.error{background:#7f2632}.empty{padding:36px;text-align:center;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:minmax(360px,720px) 1fr;gap:20px}.note{padding:14px;border-radius:10px;background:#edf6f3;color:#35564e}.page-actions{display:flex;gap:10px;margin-bottom:16px}@media(max-width:1150px){.cards{grid-template-columns:repeat(3,1fr)}.reconcile-layout,.grid2,.settings-grid{grid-template-columns:1fr}.sidebar{width:190px}main{margin-left:190px}}@media(max-width:760px){.sidebar{position:static;width:auto}.sidebar nav{flex-direction:row;overflow:auto}.side-footer{display:none}main{margin:0}header{position:static;padding:15px;height:auto}.header-actions{display:none}#app{display:block}.cards{grid-template-columns:repeat(2,1fr)}#content{padding:14px}.search{min-width:180px}.form-grid{grid-template-columns:1fr}}
.finance-history{margin-top:18px}.finance-history-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.finance-history-head h3{margin:0 0 4px}.finance-history-controls{display:flex;align-items:center;gap:8px}.btn.compact{padding:8px 12px;font-size:20px;line-height:1}.history-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin:14px 0 8px}.history-kpis>div{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fbfcfc}.history-kpis span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.history-kpis strong{font-size:18px}.history-kpis .negative{color:var(--red)}.chart-legend{display:flex;gap:18px;justify-content:flex-end;margin:8px 2px;color:var(--muted);font-size:12px}.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.legend-swatch.income,.chart-income{fill:#2d8f78;background:#2d8f78}.legend-swatch.expense,.chart-expense{fill:#9aa8b5;background:#9aa8b5}.finance-chart-wrap{width:100%;overflow-x:auto}.finance-chart{display:block;width:100%;min-width:720px;height:auto}.chart-grid{stroke:#e8edef;stroke-width:1}.chart-axis{fill:#74808c;font-size:11px}.chart-income,.chart-expense{transition:opacity .15s}.chart-income:hover,.chart-expense:hover{opacity:.75}@media(max-width:760px){.finance-history-head{align-items:flex-start;flex-direction:column}.finance-history-controls{width:100%;flex-wrap:wrap}.history-kpis{grid-template-columns:repeat(2,1fr)}}
.nav-label-mobile{display:none}
@media(max-width:760px){
  :root{font-size:15px}
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .sidebar{position:fixed;inset:auto 0 0 0;width:100%;height:calc(68px + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);background:rgba(23,33,45,.98);border-top:1px solid rgba(255,255,255,.08);z-index:90;display:block}
  .brand,.side-footer{display:none}
  .sidebar nav{height:68px;display:flex;flex-direction:row;gap:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sidebar nav::-webkit-scrollbar{display:none}
  .nav-btn{flex:0 0 88px;min-width:88px;height:68px;border-radius:0;padding:9px 7px;text-align:center;font-size:11px;line-height:1.2;display:flex;align-items:center;justify-content:center;color:#bac5d0}
  .nav-btn.active{background:#253344;color:#fff;box-shadow:inset 0 3px 0 #39b980}
  .nav-label-full{display:none}.nav-label-mobile{display:block}
  main{margin:0;min-width:0}
  header{position:sticky;top:0;height:auto;min-height:72px;padding:10px 12px;display:block;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:50}
  h1{font-size:21px;line-height:1.2}
  header p{font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-actions{display:flex;gap:8px;margin-top:9px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
  .header-actions::-webkit-scrollbar{display:none}
  .header-actions .btn{flex:0 0 auto;padding:8px 11px;min-height:40px;font-size:13px}
  #content{padding:12px 12px 20px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .card{min-height:78px;padding:12px;border-radius:11px}
  .card .label{font-size:11px;line-height:1.25}
  .card .value{font-size:20px;margin-top:7px;overflow-wrap:anywhere}
  .panel{padding:14px;border-radius:12px}
  .grid2,.settings-grid,.reconcile-layout{grid-template-columns:1fr;gap:12px}
  .grid2{margin-top:12px}
  .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}
  .toolbar .search{grid-column:1/-1;min-width:0;width:100%}
  .toolbar .input,.toolbar .select,.toolbar .btn{width:100%;min-width:0}
  .input,.select,textarea{font-size:16px;min-height:44px;width:100%}
  textarea{min-height:104px}
  .btn{min-height:44px;padding:10px 13px}
  .dropzone{padding:20px 14px;border-radius:12px}
  .dropzone .btn{width:100%}
  .table-wrap{background:transparent;border:0;border-radius:0;overflow:visible;max-height:none}
  table.mobile-card-table{display:block;width:100%;font-size:13px}
  .mobile-card-table thead{display:none}
  .mobile-card-table tbody{display:grid;gap:10px}
  .mobile-card-table tbody tr{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 16px rgba(21,33,44,.04);overflow:hidden}
  .mobile-card-table tbody tr.selected{border-color:#72ad9d;box-shadow:0 0 0 2px rgba(23,107,91,.09)}
  .mobile-card-table tbody tr.review{background:var(--amber)}
  .mobile-card-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:9px 12px;border-bottom:1px solid #edf1f3;white-space:normal;text-align:right;overflow-wrap:anywhere}
  .mobile-card-table td:last-child{border-bottom:0}
  .mobile-card-table td::before{content:attr(data-label);flex:0 0 38%;font-size:11px;font-weight:700;color:var(--muted);text-align:left}
  .mobile-card-table td.empty{display:block;text-align:center;padding:28px}
  .mobile-card-table td.empty::before{display:none}
  .mobile-card-table td .btn{min-height:38px;padding:7px 10px;max-width:100%;white-space:normal}
  .mobile-card-table .money{font-size:15px;font-weight:700}
  .selection-bar{position:sticky;top:101px;z-index:35;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;background:rgba(238,244,242,.97);backdrop-filter:blur(10px);box-shadow:0 4px 12px rgba(21,33,44,.08)}
  .selection-bar .selection-help,.selection-bar .grow{display:none}
  .selection-bar .select,.selection-bar .btn{width:100%;min-width:0;font-size:13px}
  .selection-bar #recGo{grid-column:1/-1}
  .reconcile-layout>div>h3{margin:10px 0 8px;font-size:15px}
  #recSummary{font-size:12px;line-height:1.45}
  .form-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .tax-summary{grid-template-columns:repeat(2,1fr)}
  .page-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .page-actions .btn{width:100%;text-align:center}
  .modal-backdrop{align-items:stretch;justify-content:stretch;background:#fff}
  .modal,.modal[style]{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important;box-shadow:none!important;display:flex!important;flex-direction:column!important}
  .modal-head{padding:14px 14px 12px;position:sticky;top:0;background:#fff;z-index:2}
  .modal-head h2{font-size:19px;margin:0}
  .modal-body{padding:14px;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}
  .modal-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom));position:sticky;bottom:0;background:#fff;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .modal-foot .btn{width:100%;text-align:center}
  #toast{right:10px;left:10px;bottom:calc(80px + env(safe-area-inset-bottom))}
  .toast{max-width:none;width:100%;margin-left:0}
  .finance-history{margin-top:12px;padding:13px 10px}
  .finance-history-head{align-items:flex-start;flex-direction:column;gap:10px}
  .finance-history-controls{display:grid;grid-template-columns:44px 1fr 44px;width:100%;gap:7px}
  .finance-history-controls #historyToday{grid-column:1/-1;width:100%}
  .history-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .history-kpis>div{padding:10px}
  .history-kpis strong{font-size:16px;overflow-wrap:anywhere}
  .chart-legend{justify-content:flex-start;margin-top:12px}
  .finance-chart-wrap{margin:0 -4px;padding-bottom:5px}
  .finance-chart{min-width:620px}
}
@media(max-width:390px){
  .cards{grid-template-columns:1fr 1fr}
  .toolbar{grid-template-columns:1fr}
  .toolbar .search{grid-column:auto}
  .selection-bar{grid-template-columns:1fr}
  .selection-bar #recGo{grid-column:auto}
  .history-kpis{grid-template-columns:1fr 1fr}
  .nav-btn{flex-basis:82px;min-width:82px}
}

.kaboo-kpis .value.negative,.negative{color:var(--red)!important}.positive{color:var(--green)!important}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title h3{margin:0}.panel-title p{margin:4px 0 0}
.mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.mini-kpis>div{border:1px solid var(--line);border-radius:10px;padding:12px}.mini-kpis span{display:block;color:var(--muted);font-size:11px}.mini-kpis strong{display:block;margin-top:5px;font-size:17px}
.summary-lines{display:grid;gap:10px}.summary-lines>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0}.summary-lines>div:last-child{border-bottom:0}
.forecast-panel{margin-top:18px}.note-panel{margin-bottom:16px}.match-list{display:grid;gap:8px}.match-card{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
@media(max-width:760px){.mini-kpis{grid-template-columns:repeat(2,1fr)}.panel-title{align-items:flex-start;flex-direction:column}.forecast-panel .table-wrap{overflow:auto}.forecast-panel table{min-width:680px}.kaboo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
