*,:before,:after{box-sizing:border-box}:root{--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--blue-50:#eff6ff;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--emerald-100:#d1fae5;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--emerald-700:#047857;--emerald-800:#065f46;--red-400:#f87171;--red-600:#dc2626;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-900:#78350f;--orange-100:#ffedd5;--orange-900:#7c2d12;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}html{-webkit-text-size-adjust:100%}body{color:var(--slate-800);background:var(--slate-50);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0;width:16px;height:16px}.icon-lg{width:20px;height:20px}.mono{font-family:var(--mono);font-size:12px}.text-right{text-align:right}.text-center{text-align:center}.nowrap{white-space:nowrap}.app-header{z-index:40;background:var(--slate-900);color:#fff;position:sticky;top:0;box-shadow:0 2px 6px #00000040}.container{max-width:1280px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));margin:0 auto}.header-inner{padding-top:max(8px, env(safe-area-inset-top));padding-bottom:8px}.header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.brand-logo{border-radius:7px;flex-shrink:0;width:30px;height:30px;display:block}.brand h1{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:1.2}.brand h1 small{color:var(--slate-400);margin-left:4px;font-size:12px;font-weight:500}.last-update{color:var(--slate-300);border:1px solid var(--slate-700);background:#1e293bcc;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.last-update .icon{width:12px;height:12px;color:var(--blue-500)}.last-update strong{color:var(--slate-200)}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.stat{background:var(--slate-800);border:1px solid #33415599;border-radius:8px;justify-content:space-between;align-items:center;min-width:0;padding:6px 12px;display:flex}.stat-balance{background:linear-gradient(135deg, var(--slate-800), #2a2318);border-color:#f59e0b59}.stat-text{min-width:0}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--slate-400);font-size:10px;font-weight:500;line-height:1.3}.stat-balance .stat-label{color:var(--amber-300)}.stat-value{white-space:normal;overflow-wrap:anywhere;font-size:14px;font-weight:700;line-height:1.3}.stat .icon{margin-left:8px}.c-red{color:var(--red-400)}.c-green{color:var(--emerald-400)}.c-blue{color:#60a5fa}.c-amber{color:var(--amber-400)}main.container{padding-top:12px;padding-bottom:48px}.stack>*+*,.stack-lg>*+*{margin-top:8px}.card{border:1px solid var(--slate-200);background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a0d}.card-pad{padding:16px;overflow:visible}.card-head{border-bottom:1px solid var(--slate-200);background:#f8fafc99;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;display:flex}.card-head h2,.card-head h3{color:var(--slate-800);font-size:14px;font-weight:600}.card-head .hint{color:var(--slate-500);font-size:12px}.card-head-lg{padding:12px 16px}.toolbar{border:1px solid var(--slate-200);background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex;box-shadow:0 1px 2px #0f172a0d}.toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input,.select{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:8px;outline:none;padding:6px 12px;font-size:14px}.input:focus,.select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px #3b82f633}.search-box{width:256px;max-width:100%;position:relative}.search-box .icon{color:var(--slate-400);pointer-events:none;margin-top:-8px;position:absolute;top:50%;left:10px}.search-box .input{width:100%;padding-left:34px}.filter-box{color:var(--slate-500);align-items:center;gap:8px;display:flex}.btn{border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-primary{color:#fff;background:var(--blue-600);box-shadow:0 1px 2px #00000026}.btn-primary:hover{background:var(--blue-700)}.btn-secondary{color:var(--slate-700);background:var(--slate-100);border-color:var(--slate-300)}.btn-secondary:hover{background:var(--slate-200)}.btn-ai{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);border-color:#0000;box-shadow:0 1px 2px #2563eb40}.btn-ai:hover{background:linear-gradient(135deg,#6d28d9,#1d4ed8)}.btn-outline{color:var(--slate-600);border-color:var(--slate-300);background:#fff}.btn-outline:hover{background:var(--slate-50)}.btn-icon{color:var(--slate-600);border-color:var(--slate-200);background:#fff;padding:8px}.btn-icon:hover{background:var(--slate-100)}.btn:focus-visible,.sortable:focus-visible,tr[tabindex]:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}.table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto hidden}table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}thead tr{background:var(--slate-100);color:var(--slate-700);border-bottom:1px solid var(--slate-200);font-weight:600}th,td{border-right:1px solid var(--slate-200)}th:last-child,td:last-child{border-right:none}th{padding:10px 12px;font-weight:600}td{padding:10px 12px}tbody tr{border-top:1px solid var(--slate-200);transition:background-color .15s}tbody tr:first-child{border-top:none}tbody tr:nth-child(odd){background:#fff}tbody tr:nth-child(2n){background:var(--slate-100)}tbody tr:hover{background:var(--blue-50)}tbody tr.highlighted{box-shadow:inset 3px 0 0 var(--amber-400)}tr.clickable{cursor:pointer}tr.clickable:hover .proj-name{text-decoration:underline}.proj-name{color:var(--blue-700);font-weight:500}.num{text-align:right;font-family:var(--mono);white-space:nowrap;font-size:12px}.empty-row td{text-align:center;color:var(--slate-400);padding:32px 12px}tbody tr.empty-row:hover{background:#fff}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .15s}th.sortable:hover{background:#cbd5e18c}.th-inner{align-items:center;gap:4px;display:flex}th.al-right .th-inner{justify-content:flex-end}th.al-center .th-inner{justify-content:center}.sort-ind{color:var(--slate-300);font-size:9px;line-height:1}th.sorted .sort-ind{color:var(--blue-600)}.cell-warn{color:var(--amber-900);font-weight:700;background:var(--amber-100)!important}.cell-neg{color:var(--orange-900);font-weight:700;background:var(--orange-100)!important}.cell-pos{color:var(--emerald-700);font-weight:700}.cell-plain-bold{color:var(--slate-800);font-weight:700}.c-withdrawal{color:var(--red-600)}.c-deposit{color:var(--emerald-600)}.c-transfer{color:var(--blue-600)}.badge{border:1px solid var(--slate-300);background:var(--slate-100);color:var(--slate-600);border-radius:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-open{background:var(--emerald-100);color:var(--emerald-800);border-color:var(--emerald-300)}.chip{color:var(--slate-700);background:var(--slate-100);border:1px solid var(--slate-200);border-radius:4px;padding:1px 8px;font-size:12px;font-weight:500;display:inline-block}.detail-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.detail-title{align-items:center;gap:12px;display:flex}.detail-title h2{color:var(--slate-800);font-size:20px;font-weight:700}.detail-meta{color:var(--slate-500);margin-top:2px;font-size:12px}.title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.detail-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;height:315px;display:grid}.panel{flex-direction:column;min-height:0;display:flex}.panel-scroll{flex:auto;min-height:0;overflow-y:auto}.panel-title{color:var(--slate-700);flex-shrink:0;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.panel-title .icon{width:16px;height:16px}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--slate-400);border-bottom:1px solid var(--slate-200);margin-bottom:4px;padding-bottom:8px;font-size:12px;font-weight:700}.sum-row{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.sum-row span:first-child{color:var(--slate-600)}.sum-row .v{font-family:var(--mono);font-weight:600}.pill-blue{color:var(--blue-600);background:var(--blue-50);border-radius:4px;padding:1px 8px;font-weight:700!important}.sum-balance{background:var(--amber-50);border:1px solid var(--amber-200);color:var(--amber-900);border-radius:8px;flex-shrink:0;justify-content:space-between;align-items:center;margin-top:10px;padding:10px;display:flex}.sum-balance strong{font-weight:700}.sum-balance .v{font-family:var(--mono);font-size:16px;font-weight:900}.cat-table thead tr{background:var(--amber-50);color:var(--slate-600)}.cat-table thead th{z-index:1;background:var(--amber-50);box-shadow:0 1px 0 var(--slate-200);position:sticky;top:0}.cat-table th,.cat-table td{padding:8px 12px}.cat-table td.idx{text-align:center;color:var(--slate-400);width:40px;font-size:12px}.cat-table td.cname{color:var(--slate-700);font-weight:500}.pie-wrap,.chart-box{flex-direction:column;flex:auto;min-height:0;display:flex}.chart-box svg{flex:auto;width:100%;min-height:0;display:block}.chart-empty{color:var(--slate-400);flex:auto;justify-content:center;align-items:center;font-size:12px;display:flex}.legend{color:var(--slate-600);flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:2px 12px;margin-top:4px;font-size:11px;display:flex}.legend i{border-radius:2px;width:8px;height:8px;margin-right:4px;display:inline-block}.pie-slice{transition:opacity .15s}.pie-slice:hover{opacity:.8}#tooltip{z-index:100;color:#fff;pointer-events:none;white-space:nowrap;background:#0f172aeb;border-radius:6px;padding:6px 10px;font-size:12px;position:fixed}.modal{z-index:50;padding-top:max(16px, env(safe-area-inset-top));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:max(16px, env(safe-area-inset-bottom));padding-left:max(16px, env(safe-area-inset-left));overscroll-behavior:contain;background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box{width:100%;max-width:448px;max-height:calc(100vh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--slate-200);background:#fff;border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000040}.modal-box-wide{max-width:1120px}.modal-head{background:var(--slate-50);border-bottom:1px solid var(--slate-200);flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 16px 10px 24px;display:flex}.modal-head h3{overflow-wrap:anywhere;min-width:0;font-size:16px;font-weight:700}.modal-close{width:40px;height:40px;color:var(--slate-400);background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;padding:0;display:grid}.modal-close:hover{color:var(--slate-700);background:var(--slate-100)}.modal-close:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:24px;overflow-y:auto}.field{margin-bottom:16px}.field label{text-transform:uppercase;color:var(--slate-600);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field .input,.field .select{width:100%}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.btn-lg{padding:8px 16px}@media (width<=1023px){.detail-row{grid-template-columns:minmax(0,1fr);height:auto}.detail-row .panel:nth-child(2) .panel-scroll{max-height:300px}.detail-row .panel:nth-child(3){height:340px}}@media (width<=767px){.app-header{position:static}.header-top{align-items:flex-start}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.stat{padding:6px 10px}.stat-value{font-size:13px}.input,.select{font-size:16px}.search-box{width:100%}.toolbar{align-items:stretch;padding:12px}.toolbar-group{width:100%}.toolbar-group>.btn{flex:calc(50% - 4px);justify-content:center}.toolbar>.btn{justify-content:center;width:100%}.filter-box{flex:100%}.filter-box .select{flex:auto;width:auto;min-width:0}.card-head,.card-head-lg{padding:10px 12px}main.container{padding-bottom:calc(40px + env(safe-area-inset-bottom))}}@media (width<=639px){.modal{padding-top:max(8px, env(safe-area-inset-top));padding-right:max(8px, env(safe-area-inset-right));padding-bottom:max(8px, env(safe-area-inset-bottom));padding-left:max(8px, env(safe-area-inset-left))}.modal-box{max-height:calc(100vh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:10px}.modal-head{min-height:52px;padding:4px 8px 4px 16px}.modal-close{width:44px;height:44px}.modal-body{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.field-row{grid-template-columns:minmax(0,1fr);gap:0}.modal-body .input,.modal-body .select{font-size:16px}.modal-actions>.btn{flex:100px;justify-content:center;min-height:40px}.modal-actions .actions-right{flex-wrap:wrap}.modal-actions .actions-right .btn{min-height:40px}}@media (width<=359px){.stats{grid-template-columns:minmax(0,1fr)}.toolbar-group>.btn{flex-basis:100%}.modal-actions>.btn,.modal-actions .actions-right .btn{padding-left:8px;padding-right:8px}}@media (height<=600px){.app-header{position:static}}@media (height<=480px){.modal{padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom));align-items:flex-start}.modal-box{max-height:calc(100vh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.modal-head{min-height:48px;padding-top:2px;padding-bottom:2px}.modal-body{padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}}@media (width>=640px){.container{padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}}@media (width>=1024px){.container{padding-left:max(32px, env(safe-area-inset-left));padding-right:max(32px, env(safe-area-inset-right))}}
