:root{--page-bg:#f1f1f1;--card-bg:#fff;--border:#e0e0e0;--text:#4a4a4a;--text-light:#9b9b9b;--text-heading:#2f2f2f;--accent:#4fa8e0;--accent-hover:#3b8fc4;--link:#5b9bd5;color:var(--text);background:var(--page-bg);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--page-bg);min-height:100vh;margin:0}a{color:var(--link);text-decoration:none}button{font-family:inherit}.page{max-width:1200px;margin:0 auto;padding:24px}.page-title{color:var(--text-heading);margin:0 0 20px;font-size:22px;font-weight:500}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:4px;padding:24px}.btn{letter-spacing:.5px;text-transform:uppercase;cursor:pointer;border:none;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:12.5px;font-weight:700;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#fff}.icon-btn{width:32px;height:32px;color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text);background:#f3f3f3}.report-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width<=720px){.report-grid{grid-template-columns:1fr}}.report-card{background:var(--card-bg);border:1px solid var(--border);color:inherit;border-radius:4px;padding:18px 20px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:block}.report-card--active{cursor:pointer}.report-card--active:hover{border-color:var(--accent);box-shadow:0 1px 6px #00000014}.report-card--disabled{cursor:default;opacity:.6}.report-card__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.report-card h3{color:var(--text-heading);margin:0 0 8px;font-size:16px;font-weight:600}.report-card p{color:var(--text-light);margin:0;font-size:13px;line-height:1.5}.report-card__icons{color:var(--text-light);flex-shrink:0;gap:6px;font-size:15px;display:flex}.report-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.report-header__back{color:var(--text-light);margin-bottom:4px;font-size:12px;display:inline-block}.report-header .page-title{margin:4px 0 20px}.report-header__actions{align-items:center;gap:10px;display:flex}.btn-icon{font-size:15px;line-height:1}.btn-secondary{border:1px solid var(--border);text-transform:none;letter-spacing:normal;color:var(--text);padding:8px 14px;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.btn-secondary:hover{border-color:var(--accent);color:var(--accent-hover);background:#f2f9fd}.filter-bar__row{flex-wrap:wrap;align-items:flex-end;gap:24px;display:flex}.filter-field{flex-direction:column;gap:6px;display:flex}.filter-field label{color:var(--text-heading);font-size:12px;font-weight:600}.filter-bar__buttons{align-items:center;gap:10px;margin-left:auto;display:flex}.select{min-width:200px;position:relative}.select__control{border:1px solid var(--border);width:100%;color:var(--text-heading);cursor:pointer;background:#fff;border-radius:3px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.select__arrow{color:var(--text-light);font-size:11px}.select__dropdown{z-index:20;border:1px solid var(--border);background:#fff;border-radius:3px;max-height:260px;padding:6px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.select__option{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.select__option:hover{background:#f5f5f5}.select__divider{background:var(--border);height:1px;margin:4px 0}.period-picker{position:relative}.period-picker__row{align-items:center;gap:14px;display:flex}.period-field{border:1px solid var(--border);color:var(--text-heading);cursor:pointer;white-space:nowrap;background:#fff;border-radius:3px;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;transition:border-color .15s;display:flex}.period-field:hover{border-color:var(--accent)}.period-field__icon{color:var(--text-light);display:flex}.period-time{color:var(--text-light);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.period-time__label{color:var(--text-heading);font-weight:600}.period-time select{border:1px solid var(--border);color:var(--text-heading);cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;border-radius:3px;padding:6px 8px;font-size:12.5px;transition:border-color .15s}.period-time select:hover,.period-time select:focus{border-color:var(--accent);outline:none}.period-time__sep{color:var(--text-light)}.period-panel{z-index:30;border:1px solid var(--border);background:#fff;border-radius:4px;gap:16px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000001f}.period-panel__presets{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:170px;padding-right:14px;display:flex}.period-panel__preset{text-align:left;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:3px;padding:7px 10px;font-size:12.5px}.period-panel__preset:hover{color:var(--accent-hover);background:#f5f5f5}.period-panel__calendars{gap:16px;display:flex}.period-panel__calendar-col{flex-direction:column;gap:6px;display:flex}.period-panel__calendar-label{color:var(--text-light);font-size:12px;font-weight:600}.period-calendar{width:220px}.period-calendar__header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.period-calendar__title{color:var(--text-heading);font-size:13px;font-weight:600}.period-calendar__nav{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 8px;font-size:14px;line-height:1}.period-calendar__nav:hover{color:var(--accent-hover);background:#f5f5f5}.period-calendar__weekdays,.period-calendar__days{grid-template-columns:repeat(7,1fr);display:grid}.period-calendar__weekdays span{text-align:center;color:var(--text-light);padding:4px 0;font-size:11px}.period-calendar__day{color:var(--text);cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:3px;padding:6px 0;font-size:12.5px}.period-calendar__day:hover{background:#f0f0f0}.period-calendar__day--muted{color:#ccc}.period-calendar__day--in-range{background:#e3f2fb;border-radius:0}.period-calendar__day--edge{background:var(--accent);color:#fff;border-radius:3px;font-weight:600}.period-calendar__day--today:not(.period-calendar__day--edge){box-shadow:inset 0 0 0 1px var(--accent)}.period-panel__footer{align-items:flex-end;display:flex}.period-panel__confirm{padding:8px 24px}.export-buttons{gap:4px;margin-top:4px;display:flex}.export-buttons .icon-btn{border:1px solid var(--border);background:#fff;width:auto;padding:6px 10px;font-size:11px;font-weight:700}.export-buttons .icon-btn:disabled{opacity:.5;cursor:not-allowed}.report-error{color:#c0392b;margin-bottom:12px;font-size:13px}.report-table-wrap{max-height:calc(100vh - 260px);margin-top:8px;overflow:auto}.report-table{border-collapse:collapse;width:100%;font-size:12.5px}.report-table th,.report-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #eee;padding:6px 8px}.report-table thead th{color:var(--text-heading);z-index:2;cursor:grab;-webkit-user-select:none;user-select:none;background:#fafafa;font-weight:600;position:sticky;top:0}.report-table thead th:active{cursor:grabbing}.report-table__col--frozen{z-index:1;cursor:default;background:#fff;position:sticky;left:0;box-shadow:2px 0 4px -2px #00000026}.report-table thead th.report-table__col--frozen{z-index:3;cursor:default}.report-table__totals-row td.report-table__col--frozen{background:#f7fbfd}.report-table__th--dragging{opacity:.4}.report-table__th--drop-target{box-shadow:inset 3px 0 0 var(--accent)}.report-table__empty{text-align:center;color:var(--text-light);padding:48px 16px;font-size:13px}.report-table__totals-row td{border-top:2px solid var(--border);border-bottom:2px solid var(--border);background:#f7fbfd;font-weight:600}.report-table__group-spacer td{border:none;height:10px;padding:0}.report-table__date-row td{color:var(--text);z-index:2;background:#fff;border:none;padding:12px 8px 6px;font-size:14px;font-weight:600;position:sticky;top:29px}.report-table__date-row--divider td{border-top:1px solid #f0f0f0}.report-table__date-row__label{position:sticky;left:8px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:4px;flex-direction:column;width:360px;max-height:80vh;display:flex;box-shadow:0 10px 30px #0003}.modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modal__header h2{color:var(--text-heading);margin:0;font-size:16px;font-weight:600}.modal__body{padding:0 16px;overflow-y:auto}.modal__row{cursor:pointer;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.modal__row-main{align-items:center;gap:8px;display:flex}.modal__drag-handle{color:var(--text-light);cursor:grab;font-size:15px;line-height:1}.modal__row--draggable:active .modal__drag-handle{cursor:grabbing}.modal__row--dragging{opacity:.4}.modal__row--head{color:var(--text-light);cursor:default;background:#fff;font-size:12px;font-weight:600;position:sticky;top:0}.modal__footer{border-top:1px solid var(--border);text-align:right;padding:14px 16px}.report-table__address-link{font:inherit;color:var(--accent-hover);cursor:pointer;text-align:left;white-space:inherit;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s}.report-table__address-link:hover{text-decoration-color:currentColor}.report-table__fuel-positive{color:#2e9e3f;font-weight:600}.report-table__fuel-negative{color:#c0392b;font-weight:600}.report-table__fuel-zero{color:#2f6fb3;font-weight:600}.map-modal{background:#fff;border-radius:4px;flex-direction:column;width:64vw;min-width:320px;height:64vh;min-height:280px;display:flex;box-shadow:0 10px 30px #0003}.map-modal__title{color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;margin:0;padding-right:12px;font-size:14px;font-weight:600;overflow:hidden}.map-modal__body{flex:1;min-height:0}.map-modal__iframe{border:0;width:100%;height:100%;display:block}@media (width<=900px){.map-modal{width:81vw;height:68vh}}.admin-card{margin-bottom:16px}.admin-card__title{color:var(--text-heading);margin:0 0 12px;font-size:15px;font-weight:600}.admin-field{flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.admin-field__row{gap:8px;display:flex}.admin-field input,.admin-field__row input{border:1px solid var(--border);border-radius:3px;flex:1;padding:8px 10px;font-family:inherit;font-size:13px}.admin-hint{color:var(--text-light);margin:8px 0 0;font-size:12px}.admin-error{color:#b3261e;background:#fdecea;border:1px solid #f5c6c2;border-radius:3px;margin-bottom:16px;padding:8px 12px;font-size:13px}.admin-toolbar{gap:8px;margin-bottom:16px;display:flex}.section-card{background:var(--card-bg);border:1px solid var(--border);border-radius:4px;margin-bottom:16px;overflow:hidden}.section-header{border-bottom:1px solid var(--border);color:var(--text-heading);padding:12px 16px;font-size:14px;font-weight:600}.admin-empty{color:var(--text-light);margin:0;padding:16px}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--page-bg)}.admin-table tr.row-selected td{background:#eef6fc}.admin-link{cursor:pointer;color:var(--text-heading);font-weight:500}.admin-link:hover{color:var(--accent)}.btn-load{padding:6px 12px;font-size:11.5px}.admin-status-hint{color:var(--text-light);margin-top:4px;font-size:11px}.admin-grid{grid-template-columns:repeat(2,1fr);gap:0 16px;display:grid}.admin-grid .admin-field{margin-bottom:12px}.admin-actions{gap:8px;margin-top:4px;display:flex}.price-input{border:1px solid var(--border);border-radius:3px;width:100px;padding:6px 8px;font-family:inherit;font-size:13px}.admin-list{margin:0;padding-left:20px;font-size:13px}.admin-url{background:var(--page-bg);border:1px solid var(--border);word-break:break-all;border-radius:3px;padding:8px 10px;font-size:12px;display:block}
