:root{color:#12203b;font-synthesis:none;text-rendering:optimizelegibility;--blue:#1264e8;--blue-soft:#eff6ff;--green:#159657;--orange:#f27713;--red:#f1494f;--text:#12203b;--muted:#66748c;--border:#d9e0ea;--border-soft:#e8edf3;--surface:#fff;--work:#f5f7fa;--radius:10px;background:#f5f7fa;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--work);min-width:760px;color:var(--text);margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:1px;outline:2px solid #1264e83d}.app-shell{min-height:100vh}.sticky-overview{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#f5f7faf2;position:sticky;top:0}.topbar{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;height:68px;padding:0 24px;display:flex}.brand{align-items:center;min-width:0;display:flex}.brand-mark{color:#fff;background:#164dcc;border-radius:8px;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 5px 12px #164dcc2e}.brand-name{letter-spacing:-.04em;margin-left:12px;font-size:22px;font-weight:780}.brand-divider{background:var(--border);width:1px;height:26px;margin:0 20px}.brand-subtitle{white-space:nowrap;font-size:17px;font-weight:700}.top-actions{align-items:center;gap:18px;display:flex}.period-switcher{background:#fff;border:1px solid #bdc7d5;border-radius:6px;display:flex;overflow:hidden}.period-switcher button{color:#3d4a60;cursor:pointer;background:#fff;border:0;border-right:1px solid #d2d9e3;min-width:67px;height:34px;font-size:13px;font-weight:600}.period-switcher button:last-child{border-right:0}.period-switcher button.active{color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:#f7faff}.export-button,.secondary-button{cursor:pointer;background:#fff;border:1px solid #bdc7d5;border-radius:6px;align-items:center;gap:7px;height:36px;padding:0 15px;font-size:13px;font-weight:600;display:inline-flex}.export-button:hover,.secondary-button:hover{background:#f8fafc;border-color:#8795a9}.export-button:disabled{opacity:.55;cursor:wait}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:1800px;margin:auto;padding:14px 24px 16px;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:8px;min-height:102px;padding:15px 18px 12px 24px;position:relative;overflow:hidden}.metric-card:before{content:"";background:currentColor;width:5px;position:absolute;inset:0 auto 0 0}.metric-card.revenue{color:var(--green)}.metric-card.cost{color:#657185}.metric-card.profit{color:var(--blue)}.metric-card.open{color:var(--orange)}.metric-label{color:var(--text);font-size:14px;font-weight:700;display:block}.metric-card strong{font-variant-numeric:tabular-nums;letter-spacing:-.025em;margin-top:4px;font-size:clamp(25px,2vw,34px);line-height:1.14;display:block}.metric-card strong small{margin-left:2px;font-size:.58em}.metric-caption{color:#79869a;margin-top:4px;font-size:11px;display:block}.workspace{grid-template-columns:minmax(560px,.96fr) minmax(650px,1.04fr);align-items:stretch;gap:16px;max-width:1800px;margin:16px auto 0;padding:0 24px;display:grid}.group-panel,.detail-panel,.chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.group-panel{flex-direction:column;min-width:0;display:flex}.section-toolbar{justify-content:space-between;align-items:center;padding:15px 16px 10px;display:flex}.section-toolbar h1,.panel-heading h2{letter-spacing:-.02em;margin:0;font-size:17px}.new-tour-button{background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:6px;align-items:center;gap:5px;height:34px;padding:0 15px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 4px 10px #f1494f29}.new-tour-button:hover{background:#dc343d}.filters{grid-template-columns:minmax(172px,1.25fr) repeat(3,minmax(110px,.72fr));gap:8px;padding:0 16px 12px;display:grid}.filters label{background:#fff;border:1px solid #ccd5e1;border-radius:6px;align-items:center;height:34px;display:flex;overflow:hidden}.filters label>span{color:#6c788c;white-space:nowrap;padding-left:10px;font-size:11px}.filters input,.filters select{color:#334159;background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;padding:0 7px;font-size:11px}.filters .search-field{color:#68758a;padding-left:10px}.filters .search-field input{padding-left:8px}.table-scroll{scrollbar-width:thin;scrollbar-color:#c7d0dc transparent;overflow:auto}.group-table-scroll{border-top:1px solid var(--border);min-height:362px}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11px}.data-table th{border-bottom:1px solid var(--border);color:#3c4960;text-align:left;white-space:nowrap;background:#fafbfd;height:39px;padding:0 9px;font-weight:700}.data-table td{border-bottom:1px solid var(--border-soft);white-space:nowrap;padding:0 9px}.group-table{min-width:690px}.group-table td{height:50px}.group-table tbody tr{cursor:pointer;transition:background .15s}.group-table tbody tr:hover{background:#f8fbff}.group-table tbody tr.selected{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue), inset 0 1px 0 var(--blue), inset 0 -1px 0 var(--blue)}.row-selector{vertical-align:middle;color:#fff;border:1px solid #adbacb;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:7px;display:inline-grid}.selected .row-selector{background:var(--blue);border-color:var(--blue)}.route-name{color:#26354e;font-weight:650}.positive{color:var(--green)!important}.negative{color:#df3e47!important}.status{border:1px solid;border-radius:4px;align-items:center;height:24px;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.status.active{color:var(--blue);background:#f3f8ff;border-color:#8fb8f3}.status.settled{color:var(--green);background:#f0fbf5;border-color:#95dab8}.status.pending{color:var(--orange);background:#fff8f1;border-color:#ffc594}.text-button,.add-line{color:var(--blue);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:650}.text-button:hover,.add-line:hover{text-decoration:underline}.table-footer{color:#7b8799;justify-content:space-between;align-items:center;min-height:47px;margin-top:auto;padding:0 16px;font-size:11px;display:flex}.empty-state,.empty-detail{color:var(--muted);place-items:center;min-height:250px;display:grid}.detail-panel{min-width:0;padding-bottom:4px;overflow:hidden}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:15px;min-height:67px;padding:10px 14px;display:flex}.detail-header h2{letter-spacing:-.01em;margin:0;font-size:15px}.detail-header p{color:#647187;align-items:center;gap:6px;margin:6px 0 0;font-size:11px;display:flex}.detail-header .status{margin-left:4px}.settle-toggle{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #bfc9d6;border-radius:5px;align-items:center;gap:7px;height:32px;padding:0 10px;font-size:11px;display:flex}.settle-toggle input{opacity:0;pointer-events:none;position:absolute}.settle-toggle>span{border:1px solid #a8b4c5;border-radius:4px;place-items:center;width:15px;height:15px;display:grid}.settle-toggle.checked{color:var(--green);background:#f5fcf8;border-color:#8fcfac}.settle-toggle.checked>span{background:var(--green);border-color:var(--green);color:#fff}.entry-section{padding:10px 10px 0}.expense-section{padding-top:9px}.entry-heading{justify-content:space-between;align-items:center;height:26px;padding:0 4px 6px;display:flex}.entry-heading h3{align-items:center;gap:7px;margin:0;font-size:12px;display:flex}.entry-heading h3>span{background:var(--blue);border-radius:3px;width:3px;height:15px}.entry-heading h3 small{font-size:10px}.add-line{align-items:center;gap:3px;display:inline-flex}.editor-scroll{border:1px solid #d4dce7;border-radius:6px}.editor-table{table-layout:fixed;min-width:650px}.editor-table th{height:27px;padding:0 6px;font-size:10px}.editor-table td{height:31px;padding:2px 5px}.income-table th:first-child{width:16%}.income-table th:nth-child(2){width:17%}.income-table th:nth-child(3){width:22%}.income-table th:nth-child(4){width:38%}.income-table th:nth-child(5){width:7%}.expense-table{min-width:720px}.expense-table th:first-child,.expense-table th:nth-child(2),.expense-table th:nth-child(3),.expense-table th:nth-child(4){width:12%}.expense-table th:nth-child(5){width:25%}.expense-table th:nth-child(6){width:20%}.expense-table th:nth-child(7){width:7%}.cell-input{color:#27354d;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;height:25px;padding:0 5px;font-size:10px;transition:border-color .15s,background .15s}.editor-table tr:hover .cell-input{background:#fbfcfe;border-color:#e0e6ef}.cell-input:hover{background:#fff!important;border-color:#cbd5e1!important}.cell-input:focus{outline:2px solid #1264e81a;border-color:var(--blue)!important;background:#fff!important}.cell-input[type=number]::-webkit-inner-spin-button{display:none}.select-cell{display:block;position:relative}.select-cell select{appearance:none;padding-right:20px}.select-cell svg{pointer-events:none;color:#718097;position:absolute;top:6px;right:5px}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;width:28px;height:28px;display:inline-grid}.icon-button:hover{background:#eef2f7}.icon-button.danger{color:#8090a5}.icon-button.danger:hover{color:#e13e48;background:#fff1f2}.unpaid{color:var(--orange);text-align:center;font-weight:650}.paid{color:var(--green);text-align:center}.editor-table tfoot td{background:#fbfcfd;border-bottom:0;height:31px;font-weight:700}.editor-table tfoot .subtotal{text-align:right;padding-right:10px;font-size:15px}.profit-strip{border:1px solid var(--blue);background:#f8fbff;border-radius:7px;grid-template-columns:1fr 1px 1fr auto;align-items:center;gap:14px;min-height:58px;margin:10px;padding:8px 12px;display:grid}.profit-strip>span{color:var(--blue);align-items:center;gap:10px;display:flex}.profit-strip>span>svg{background:#e4efff;border-radius:50%;width:34px;height:34px;padding:7px}.profit-strip span span{flex-direction:column;display:flex}.profit-strip small{color:#4c5b72;font-size:10px;font-style:normal}.profit-strip strong{color:#0b8549;font-variant-numeric:tabular-nums;font-size:22px;line-height:1.2}.profit-strip>i{background:#cbd6e5;width:1px;height:35px}.primary-button{color:#fff;background:var(--blue);cursor:pointer;border:0;border-radius:5px;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.primary-button:hover{background:#0d54c8}.primary-button:disabled{opacity:.4;cursor:not-allowed}.analytics{grid-template-columns:1fr 1fr;gap:16px;max-width:1800px;margin:16px auto 28px;padding:0 24px;display:grid}.chart-panel{min-height:238px;padding:16px 18px 12px}.panel-heading{justify-content:space-between;align-items:flex-start;display:flex}.panel-heading h2{font-size:15px}.panel-heading p{color:#7a8798;margin:4px 0 0;font-size:10px}.legend-label{color:#6f7c8f;align-items:center;gap:5px;font-size:10px;display:flex}.legend-label i{background:var(--blue);width:8px;height:8px}.bar-chart{border-bottom:1px solid #aeb9c9;align-items:flex-end;gap:clamp(8px,1.8vw,24px);height:155px;padding:22px 12px 0 20px;display:flex}.bar-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:16px;height:132px;display:flex;position:relative}.bar{background:#96c0f9;width:min(28px,70%);transition:height .3s;display:block}.bar.highlight{background:var(--blue)}.bar-value{color:#0000;min-height:18px;font-size:9px}.bar-value.visible{color:var(--blue);font-weight:700}.bar-column small{color:#728096;white-space:nowrap;font-size:9px;position:absolute;top:137px}.donut-wrap{justify-content:center;align-items:center;gap:60px;min-height:166px;display:flex}.donut{border-radius:50%;width:128px;height:128px;position:relative;transform:rotate(20deg)}.donut:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:25px}.donut>span{z-index:1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:35px;transform:rotate(-20deg)}.donut strong{font-size:16px}.donut small{color:#748197;white-space:nowrap;font-size:9px}.chart-legend{flex-direction:column;gap:14px;font-size:10px;display:flex}.chart-legend span{color:#526077;grid-template-columns:10px 60px auto;align-items:center;gap:7px;display:grid}.chart-legend i{width:9px;height:9px}.chart-legend strong{color:#28364d;font-weight:600}.legend-revenue{background:var(--blue)}.legend-cost{background:#20b26b}.legend-misc{background:#f59a3d}.analytics-summary{border:1px solid var(--border);border-radius:var(--radius);background:#fff;grid-column:1/-1;justify-content:center;align-items:center;gap:65px;min-height:72px;display:flex}.analytics-summary>span{color:var(--blue);align-items:center;gap:14px;display:flex}.analytics-summary small{color:#344258;font-size:13px;font-weight:650}.analytics-summary strong{font-size:22px}.analytics-summary>i{background:var(--border);width:1px;height:36px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0d19306b;place-items:center;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:430px;padding:22px;animation:.18s ease-out modal-in;box-shadow:0 24px 65px #10213d3d}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.modal h2{margin:0;font-size:20px}.modal p{color:var(--muted);margin:5px 0 0;font-size:12px}.modal>label{flex-direction:column;gap:7px;margin-top:14px;font-size:12px;font-weight:700;display:flex}.modal .cell-input{border-color:#cbd5e1;height:40px;padding:0 10px;font-size:13px}.modal footer{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.modal footer button{min-width:78px}@media (width<=1190px){.workspace{grid-template-columns:1fr}.group-table-scroll{min-height:auto}.detail-panel{min-height:600px}.workspace,.analytics,.metrics{padding-left:16px;padding-right:16px}.metrics{gap:10px}}@media (width<=900px){body{min-width:720px}.brand-subtitle,.brand-divider{display:none}.metrics{grid-template-columns:1fr 1fr}.sticky-overview{position:static}.analytics{grid-template-columns:1fr}.analytics-summary{grid-column:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
