.dashboard-item{position:relative;cursor:default;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);transition:all .2s ease-in-out}.dashboard-item:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.dashboard-drag-handle{opacity:.4;transition:all .2s ease-in-out;z-index:10;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:grab;position:absolute;top:8px;right:8px;padding:8px;border-radius:6px;background-color:rgba(255,255,255,.95);border:1px solid rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.1)}.dashboard-drag-handle:active{cursor:grabbing}.dashboard-item:hover .dashboard-drag-handle{opacity:1;background-color:rgba(255,255,255,1);transform:scale(1.05);box-shadow:0 2px 8px rgba(0,0,0,.15)}.dashboard-item-col-span-2{grid-column:span 2}.dashboard-item-col-span-3{grid-column:span 3}@media (max-width:767px){.dashboard-item-col-span-2,.dashboard-item-col-span-3{grid-column:span 1}.dashboard-drag-handle{opacity:.6;padding:12px;top:4px;right:4px}.dashboard-drag-handle:active,.dashboard-item:hover .dashboard-drag-handle{opacity:1}}.dashboard-drag-handle:hover{background-color:rgba(0,0,0,.05);box-shadow:0 2px 4px rgba(0,0,0,.1)}.dashboard-drag-handle svg{color:#6b7280!important;font-size:16px!important}.dashboard-drag-handle:hover svg{color:#374151!important}.dashboard-drag-handle.dragging,.dashboard-drag-handle:active{cursor:grabbing;transform:scale(.95);background-color:rgba(59,130,246,.1);border-color:rgba(59,130,246,.3)}.dashboard-drag-handle:focus{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.dashboard-filter-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.dashboard-filter-label{font-size:.75rem;color:#4b5563;margin-bottom:.25rem}.dashboard-date-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.25rem 1.75rem .25rem .5rem;min-width:80px;width:120px;max-width:160px;box-sizing:border-box;transition:width .2s}.dashboard-date-input:focus{outline:1px solid #2563eb;border-color:#2563eb}.dashboard-calendar-btn{position:absolute;right:.5rem;color:#6b7280;background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.dashboard-calendar-btn:hover{color:#2563eb}.dashboard-btn-today{border-radius:.375rem;border:1px solid #bfdbfe;background:#dbeafe;color:#1d4ed8;font-size:.875rem;padding:.25rem .5rem;margin-left:.5rem;transition:background .2s}.dashboard-btn-today:hover{background:#bae6fd}.dashboard-btn-thismonth{border-radius:.375rem;border:1px solid #bfdbfe;background:#dbeafe;color:#1d4ed8;font-size:.875rem;padding:.25rem .5rem;margin-left:.5rem;transition:background .2s}.dashboard-btn-thismonth:hover{background:#bae6fd}.dashboard-btn-reset{border-radius:.375rem;border:1px solid #e5e7eb;background:#e5e7eb;color:#374151;font-size:.875rem;padding:.25rem .5rem;margin-left:.25rem;transition:background .2s}.dashboard-btn-reset:hover{background:#d1d5db}.dashboard-date-range-sep{margin:0 .25rem}.dashboard-error-msg{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem}.dashboard-error-msg,.dashboard-info-msg{padding:.75rem 1rem;font-size:.95rem;margin:.5rem 0;text-align:center}.dashboard-info-msg{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem}.dashboard-input,.dashboard-select{border:1px solid #d1d5db;border-radius:.375rem;padding:.25rem .5rem;font-size:.875rem;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;min-width:80px;width:auto;max-width:180px}.dashboard-input:focus,.dashboard-select:focus{outline:1px solid #2563eb;border-color:#2563eb}.dashboard-input,.dashboard-select{min-width:80px;width:auto;max-width:180px}.dashboard-btn-toggle{background:var(--chart-toggle-bg,#f3f4f6);color:var(--chart-toggle-color,#333);border:1px solid var(--chart-toggle-border,#d1d5db);border-radius:0;padding:.15rem .7rem;font-size:.95rem;cursor:pointer;transition:background .2s,color .2s,border .2s;margin:0!important;position:relative;z-index:1}.dashboard-btn-toggle:first-child{border-top-left-radius:10;border-bottom-left-radius:10px}.dashboard-btn-toggle:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}.dashboard-btn-toggle+.dashboard-btn-toggle{margin-left:-1px!important}.dashboard-btn-toggle.active{background:#2563eb;color:#fff;border-color:#2563eb;z-index:2;box-shadow:0 2px 8px rgba(37,99,235,.08)}.dashboard-btn-toggle-group{display:flex;gap:0}:root{--chart-1:rgb(255,128,0);--chart-2:rgb(0,128,255);--chart-3:rgb(0,64,128);--chart-4:rgb(211,128,64);--chart-5:rgb(196,128,64)}.violation-type-chart-container{position:relative;width:100%;background:white}.violation-type-chart-container .chart-date-range,.violation-type-chart-container .chart-summary{font-family:TH Sarabun New,Arial,sans-serif}@keyframes status-blink{0%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.status-blink{animation:status-blink 1.2s ease-in-out infinite;will-change:opacity,transform}[data-for-report=true] .violation-type-chart-container .chart-summary{font-size:1.125rem;font-weight:600;color:#1d4ed8;margin-top:.5rem;margin-bottom:.5rem}[data-for-report=true] .violation-type-chart-container .chart-date-range{font-size:.875rem;color:#4b5563;margin-top:.25rem;margin-bottom:.5rem}[data-for-report=true] .chart-title{font-family:TH Sarabun New,Arial,sans-serif;font-size:1.25rem;font-weight:700;text-align:center;margin-bottom:1rem;color:#1f2937}[data-for-report=true] .violation-type-chart-container{padding:1rem;background:white;border-radius:.5rem}[data-for-report=true]{min-width:800px;min-height:500px;background:white;padding:20px}[data-for-report=true] svg{background:white}[data-for-report=true] .chart-summary{font-size:1.125rem!important;font-weight:600!important;color:#1d4ed8!important;margin:.5rem 0!important}[data-for-report=true] .chart-date-range,[data-for-report=true] .chart-summary{font-family:TH Sarabun New,Arial,sans-serif!important;text-align:center!important}[data-for-report=true] .chart-date-range{font-size:.875rem!important;color:#4b5563!important;margin:.25rem 0 .5rem!important}[data-for-report=true] .legend-container,[data-for-report=true] .legend-item{font-family:TH Sarabun New,Arial,sans-serif!important}.processing-time-chart-container{position:relative;width:100%;background:white}.processing-time-chart-container .chart-date-range,.processing-time-chart-container .chart-summary{font-family:TH Sarabun New,Arial,sans-serif}[data-for-report=true] .processing-time-chart-container .chart-summary{font-size:1.125rem;font-weight:600;color:#059669;margin-top:.5rem;margin-bottom:.5rem}[data-for-report=true] .processing-time-chart-container .chart-date-range{font-size:.875rem;color:#4b5563;margin-top:.25rem;margin-bottom:.5rem}[data-for-report=true] .processing-time-chart-container{padding:1rem;background:white;border-radius:.5rem}.daily-ai-chart-container,.daily-violation-chart-container{position:relative;width:100%;background:white}.daily-ai-chart-container .chart-date-range,.daily-ai-chart-container .chart-summary,.daily-violation-chart-container .chart-date-range,.daily-violation-chart-container .chart-summary{font-family:TH Sarabun New,Arial,sans-serif}.monthly-ai-chart-container{position:relative;width:100%;background:white}.monthly-ai-chart-container .chart-date-range,.monthly-ai-chart-container .chart-summary{font-family:TH Sarabun New,Arial,sans-serif}[data-for-report=true] .daily-ai-chart-container .chart-summary,[data-for-report=true] .daily-violation-chart-container .chart-summary,[data-for-report=true] .monthly-ai-chart-container .chart-summary{font-size:1.125rem;font-weight:600;color:#1d4ed8;margin-top:.5rem;margin-bottom:.5rem}[data-for-report=true] .daily-ai-chart-container .chart-date-range,[data-for-report=true] .daily-violation-chart-container .chart-date-range,[data-for-report=true] .monthly-ai-chart-container .chart-date-range{font-size:.875rem;color:#4b5563;margin-top:.25rem;margin-bottom:.5rem}[data-for-report=true] .daily-ai-chart-container,[data-for-report=true] .daily-violation-chart-container,[data-for-report=true] .monthly-ai-chart-container{padding:1rem;background:white;border-radius:.5rem}.monthly-violation-chart-container{position:relative;width:100%;background:white}.monthly-violation-chart-container .chart-date-range,.monthly-violation-chart-container .chart-summary{font-family:TH Sarabun New,Arial,sans-serif}[data-for-report=true] .monthly-violation-chart-container .chart-summary{font-size:1.125rem;font-weight:600;color:#1d4ed8;margin-top:.5rem;margin-bottom:.5rem}[data-for-report=true] .monthly-violation-chart-container .chart-date-range{font-size:.875rem;color:#4b5563;margin-top:.25rem;margin-bottom:.5rem}[data-for-report=true] .monthly-violation-chart-container{padding:1rem;background:white;border-radius:.5rem}[data-for-report=true] .dashboard-drag-handle,[data-for-report=true] .dashboard-filter-row,[data-for-report=true] .flex.justify-between.items-center>.flex.items-center.gap-2,[data-for-report=true] .report-hide,[data-for-report=true] button[aria-label*="ขยาย"],[data-for-report=true] button[aria-label*="ย่อ"],[data-for-report=true] button[title*="ขยาย"],[data-for-report=true] button[title*="ย่อ"],[data-for-report=true] button[title*="รายงาน"],[data-for-report=true] h3.chart-name{display:none!important}[data-for-report=true] *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}