*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:1080px;margin:0 auto;padding:20px 16px 32px}.header{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.header h1{margin:0;font-size:20px;font-weight:600}.header-meta{font-size:12px}.error{border:1px solid;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;transition:opacity .2s;display:grid}.tile{border:1px solid;border-radius:10px;padding:12px 14px}.tile-label{margin-bottom:4px;font-size:12px}.tile-note{font-size:10px}.tile-value{font-size:32px;font-weight:600;line-height:1.1}.tile-unit{margin-left:4px;font-size:14px;font-weight:400}.tile-status{margin-top:6px;font-size:12px}.filter-row{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.range-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.range-custom{align-items:center;gap:4px;display:flex}.range-custom input{border:1px solid;border-radius:8px;padding:4px 6px;font-family:inherit;font-size:13px}.filter-row button{cursor:pointer;border:1px solid;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px}.cmp-group{align-items:center;gap:8px;display:flex}.cmp-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.cmp-toggle input{cursor:pointer;width:16px;height:16px}.cmp-n{border:1px solid;border-radius:8px;width:56px;padding:5px 8px;font-family:inherit;font-size:13px}.cmp-group select{border:1px solid;border-radius:8px;padding:5px 8px;font-family:inherit;font-size:13px}.btn-icon{cursor:pointer;border:1px solid;border-radius:8px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.legend{gap:14px;margin-bottom:4px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-key{border-radius:1px;width:14px;height:2px;display:inline-block}.legend-key-dashed{border-top:2px dashed;width:14px;height:0;background:0 0!important}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:16px;transition:opacity .2s;display:grid}.card{border:1px solid;border-radius:10px;padding:14px 14px 8px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.card-head h2{margin:0;font-size:14px;font-weight:600}.card-stats{font-variant-numeric:tabular-nums;font-size:11px}.tooltip{border:1px solid;border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 2px 8px #0000001f}.tooltip-value{align-items:center;gap:6px;font-size:14px;display:flex}.tooltip-key{border-radius:1px;width:12px;height:2px;display:inline-block}.tooltip-time{margin-top:2px;font-size:11px}.table-wrap{padding-bottom:8px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}th{text-align:right;padding:6px 10px;font-weight:500}th:first-child{text-align:left}td{text-align:right;border-top:1px solid;border-color:inherit;padding:6px 10px}td:first-child{text-align:left}tbody tr{border-color:inherit}.footer{text-align:center;margin-top:20px;font-size:11px}.tooltip-cmp{margin-top:2px;font-size:12px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border:1px solid;border-radius:12px;width:100%;max-width:440px;max-height:90vh;padding:18px 20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-head h2{margin:0;font-size:16px}.modal-close{cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.modal section{margin-bottom:14px}.modal h3{margin:0 0 6px;font-size:12px;font-weight:500}.setting-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.setting-field{flex-direction:column;gap:4px;font-size:11px;display:flex}.setting-field input{border:1px solid;border-radius:8px;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.modal-error{margin-bottom:10px;font-size:12px}.modal-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.modal-actions-right{gap:8px;display:flex}.sim-sliders{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 20px;margin-bottom:12px;display:grid}.sim-slider{flex-direction:column;gap:4px;font-size:12px;display:flex}.sim-slider-label{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.sim-slider input{cursor:pointer;width:100%}.sim-presets{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.sim-presets button{cursor:pointer;border:1px solid;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px}.sim-presets button:disabled{cursor:default}.sim-result{border-top:1px solid;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 0 8px;display:flex}.sim-result-col{flex-direction:column;gap:2px;display:flex}.sim-result-label{font-size:11px}.sim-result-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1.1}.sim-badge{font-size:12px}.sim-arrow{font-size:20px}.sim-delta{font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;font-weight:600}.sim-note{margin:8px 0 4px;font-size:11px;line-height:1.6}.sim-empty{margin:4px 0 8px;font-size:13px}.btn-ghost,.btn-primary{cursor:pointer;border:1px solid;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px}.report-choice{gap:16px;font-size:13px;display:flex}.report-choice label{cursor:pointer;align-items:center;gap:6px;display:flex}.report-period{align-items:center;gap:8px;display:flex}.report-period input,.modal select{border:1px solid;border-radius:8px;padding:6px 8px;font-family:inherit;font-size:13px}.mascot-layer{z-index:50;pointer-events:none;height:0;position:fixed;bottom:0;left:0;right:0}.mascot-body{pointer-events:auto;cursor:pointer;transform-origin:50% 100%;width:70px;height:72px;transition:transform .2s;position:absolute;bottom:0}.mascot-bob svg{transform-origin:50% 100%;animation:.55s ease-in-out infinite mascot-bob}@keyframes mascot-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-4px)rotate(2deg)}}.mascot-weary svg{transform-origin:50% 100%;transform:scaleY(.88)skew(-4deg)}.mascot-weary.mascot-bob svg{animation:1.2s ease-in-out infinite mascot-wobble}@keyframes mascot-wobble{0%,to{transform:scaleY(.88)skew(-5deg)}50%{transform:scaleY(.85)skew(5deg)}}.mascot-melting svg{transform-origin:50% 100%;animation:3s ease-in-out infinite mascot-melt}@keyframes mascot-melt{0%,to{transform:scaleY(.55)scaleX(1.25)}50%{transform:scaleY(.45)scaleX(1.4)}}.mascot-prop{font-size:20px;animation:1.6s ease-in-out infinite mascot-float;position:absolute;top:-18px;right:-6px}.mascot-sweat{font-size:14px;animation:1s ease-in-out infinite mascot-float;position:absolute;top:2px;left:-10px}@keyframes mascot-float{0%,to{opacity:.95;transform:translateY(0)}50%{opacity:.65;transform:translateY(-5px)}}.mascot-restore{z-index:50;cursor:pointer;opacity:.5;background:0 0;border:none;font-size:20px;position:fixed;bottom:10px;right:10px}.mascot-switch{cursor:pointer;opacity:.75;background:#ffffffe6;border:1px solid #00000026;border-radius:50%;width:26px;height:26px;padding:0;font-size:14px;line-height:1;position:absolute;top:-22px;right:-20px;box-shadow:0 1px 3px #00000026}.mascot-switch:hover{opacity:1}
