.prediction-summary{padding:1rem}.prediction-summary h4{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.prediction-stats{display:flex;gap:1rem;margin-bottom:1.5rem}.prediction-stats .stat{flex:1;padding:.75rem 1rem;border-radius:8px;text-align:center;background:var(--bg-secondary, #f5f5f5);border-left:4px solid var(--border-color, #ddd)}.prediction-stats .stat.overdue{background:#fff5f5;border-left-color:#ef4444}.prediction-stats .stat.due-soon{background:#fffbeb;border-left-color:#f59e0b}.prediction-stats .stat .count{display:block;font-size:2rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1;margin-bottom:.25rem}.prediction-stats .stat .label{display:block;font-size:.875rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.05em}.boat-list{display:flex;flex-direction:column;gap:.75rem}.boat-prediction-item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;transition:all .2s ease;background:#fff}.boat-prediction-item:hover{border-color:var(--primary-color, #3b82f6);box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.boat-prediction-item.overdue{border-left:3px solid #ef4444;background:snow}.boat-prediction-item.due-soon{border-left:3px solid #f59e0b;background:#fffff5}.boat-info{display:flex;flex-direction:column;gap:.25rem}.boat-info strong{font-size:.95rem;color:var(--text-primary, #1a1a1a)}.boat-info .customer{font-size:.85rem;color:var(--text-secondary, #666)}.boat-info .service-month{font-size:.75rem;color:var(--text-tertiary, #999);font-weight:500}.prediction-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.deviation-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:10px;font-weight:600;white-space:nowrap}.deviation-perfect,.deviation-good{background:#d1fae5;color:#065f46}.deviation-ok{background:#fef3c7;color:#92400e}.deviation-warning{background:#fed7aa;color:#9a3412}.deviation-danger{background:#fee2e2;color:#991b1b}.prediction-type{font-size:.7rem;padding:.15rem .4rem;border-radius:8px;font-weight:600;background:#3b82f6;color:#fff}.prediction-type.history{background:#6b7280}.status-badge{font-size:.8rem;padding:.25rem .5rem;border-radius:12px;font-weight:500;white-space:nowrap}.status-badge.overdue{background:#fee2e2;color:#991b1b}.status-badge.due-soon{background:#fef3c7;color:#92400e}.status-badge.scheduled{background:#d1fae5;color:#065f46}.prediction-info .days{font-size:.8rem;color:var(--text-secondary, #666)}.view-all-link{display:inline-block;margin-top:1rem;padding:.5rem 1rem;color:var(--primary-color, #3b82f6);text-decoration:none;font-weight:500;font-size:.9rem;border:1px solid var(--primary-color, #3b82f6);border-radius:6px;transition:all .2s ease}.view-all-link:hover{background:var(--primary-color, #3b82f6);color:#fff}.no-predictions{text-align:center;padding:2rem 1rem;color:var(--text-secondary, #666);font-size:.95rem}.hint{text-align:center;font-size:.85rem;color:var(--text-tertiary, #999);margin-top:.5rem}.loading{text-align:center;padding:2rem 1rem;color:var(--text-secondary, #666)}.error{color:#dc2626;text-align:center;padding:1rem}.forecast-header{margin-bottom:2rem}.forecast-header h1{margin:0 0 .5rem;font-size:2rem;font-weight:700}.forecast-header .subtitle{color:var(--text-secondary, #666);margin:0 0 1.5rem}.forecast-controls{display:flex;gap:1rem;flex-wrap:wrap}.forecast-controls .btn{display:flex;align-items:center;gap:.5rem}.forecast-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{padding:1.5rem;background:#fff;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;text-align:center}.summary-card.highlight{background:#fffbeb;border-color:#f59e0b}.summary-card.alert{background:#fff5f5;border-color:#ef4444}.summary-card h3{margin:0 0 .5rem;font-size:2.5rem;font-weight:700;color:var(--text-primary, #1a1a1a)}.summary-card p{margin:0;font-size:.875rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.05em}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}.month-card{background:#fff;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1.5rem;transition:all .2s ease}.month-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.month-card.current-month{border-color:var(--primary-color, #3b82f6);border-width:2px}.month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.month-header h3{margin:0;font-size:1.25rem;font-weight:600}.current-badge{padding:.25rem .5rem;background:var(--primary-color, #3b82f6);color:#fff;font-size:.75rem;border-radius:12px;font-weight:500}.month-count{display:flex;flex-direction:column;align-items:center;padding:1rem 0;border-top:1px solid var(--border-color, #e5e7eb);border-bottom:1px solid var(--border-color, #e5e7eb);margin-bottom:1rem}.month-count .count{font-size:2.5rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1}.month-count .label{font-size:.875rem;color:var(--text-secondary, #666);margin-top:.25rem}.boat-preview{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.boat-preview-item{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;padding:.5rem;background:var(--bg-secondary, #f9fafb);border-radius:4px}.boat-preview-item .boat-name{font-weight:500}.status-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-indicator.overdue{background:#ef4444}.status-indicator.due-soon{background:#f59e0b}.status-indicator.scheduled{background:#10b981}.status-indicator.future{background:#9ca3af}.more-boats{text-align:center;font-size:.8rem;color:var(--text-tertiary, #999);margin:.5rem 0 0}.no-boats{text-align:center;color:var(--text-secondary, #666);font-size:.875rem;margin:1rem 0}.view-month-btn{width:100%;padding:.75rem;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.view-month-btn:hover{background:var(--primary-color, #3b82f6);color:#fff;border-color:var(--primary-color, #3b82f6)}.boat-details-section{background:#fff;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.table-header h2{margin:0;font-size:1.5rem;font-weight:600}.table-wrapper{overflow-x:auto}.forecast-table{width:100%;border-collapse:collapse;font-size:.9rem}.forecast-table thead{background:var(--bg-secondary, #f9fafb);border-bottom:2px solid var(--border-color, #e5e7eb)}.forecast-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-primary, #1a1a1a)}.forecast-table tbody tr{border-bottom:1px solid var(--border-color, #e5e7eb);transition:background .15s ease}.forecast-table tbody tr:hover{background:var(--bg-hover, #f9fafb)}.forecast-table tbody tr.overdue{background:snow}.forecast-table tbody tr.due-soon{background:#fffff5}.forecast-table td{padding:.875rem 1rem}.interval-badge{display:inline-block;padding:.25rem .5rem;background:var(--bg-secondary, #f3f4f6);border-radius:4px;font-size:.8rem;font-weight:500}.days-overdue{color:#dc2626;font-weight:600}.days-until{color:#6b7280}.btn-small{padding:.4rem .75rem;font-size:.85rem;border:1px solid var(--border-color, #e5e7eb);border-radius:4px;background:#fff;cursor:pointer;transition:all .2s ease;margin-right:.5rem}.btn-small:hover{background:var(--bg-hover, #f9fafb)}.btn-schedule{border-color:var(--primary-color, #3b82f6);color:var(--primary-color, #3b82f6)}.btn-schedule:hover{background:var(--primary-color, #3b82f6);color:#fff}@media (max-width: 768px){.prediction-stats{flex-direction:column}.boat-prediction-item{flex-direction:column;align-items:flex-start;gap:.5rem}.prediction-info{flex-direction:row;align-items:center;width:100%;justify-content:space-between}.forecast-grid{grid-template-columns:1fr}.forecast-summary-cards{grid-template-columns:repeat(2,1fr)}.forecast-header .btn{font-size:.85rem;padding:.5rem .75rem}.table-wrapper{overflow-x:scroll}.forecast-table{min-width:800px}}
