.scroller-widget .scroller-widget-content{height:calc(100% - 26px);padding-top:4px;padding-right:6px;overflow-x:hidden;overflow-y:auto}.scroller-widget .dashboard-widget-header.clickable{cursor:pointer;transition:all .2s}.scroller-widget .dashboard-widget-header.clickable:hover{background:#ffffff1a}.scroller-item{border-bottom:1px solid var(--color-border);border-radius:8px;margin:0 -10px;padding:10px;transition:all .2s}.scroller-item.clickable{cursor:pointer}.scroller-item.clickable:hover{background-color:#ffffff0d;transform:translate(4px)}.scroller-item:first-child{padding-top:0}.scroller-item:last-child{border-bottom:none}.scroller-empty{text-align:center;color:var(--color-gray-400);padding:20px 0;font-style:italic}.scroller-widget-content::-webkit-scrollbar{width:6px}.scroller-widget-content::-webkit-scrollbar-track{background:0 0}.scroller-widget-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.scroller-widget-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.scroller-widget-content{scrollbar-width:thin;scrollbar-color:#fff3 transparent}@media (max-width:768px){.scroller-item{margin:0 -8px;padding:8px}.scroller-widget-content{padding-right:4px}}@media (min-width:769px){.scroller-item{margin:0 -12px;padding:12px}.scroller-widget-content{padding-right:8px}}
.slider-widget .slider-widget-content{touch-action:pan-y;flex:1;height:140px;position:relative;overflow:hidden}.slider-widget-slide{opacity:1;box-sizing:border-box;justify-content:center;align-items:center;height:100%;padding-bottom:30px;transition:all .3s ease-out;display:flex;transform:translate(0)}.slider-widget-slide.animating{opacity:.6;transform:translate(-20px)}.slider-widget-slide.animating.slide-left{opacity:.7;transform:translate(-20px)}.slider-widget-slide.animating.slide-right{opacity:.7;transform:translate(20px)}.slider-widget-dots{z-index:10;background:0 0;justify-content:center;gap:8px;height:25px;padding:5px 0;display:flex;position:absolute;bottom:5px;left:0;right:0}.slider-widget-dot{background-color:var(--color-gray-500);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:all .2s}.slider-widget-dot:hover{background-color:var(--color-gray-400);transform:scale(1.2)}.slider-widget-dot.active{background-color:var(--color-primary);transform:scale(1.3)}.slider-widget .dashboard-widget-header.clickable{cursor:pointer;transition:all .2s}.slider-widget .dashboard-widget-header.clickable:hover{background:#ffffff1a}@media (max-width:768px){.slider-widget .slider-widget-content{height:120px}.slider-widget-slide{padding-bottom:25px!important}.slider-widget-dots{height:20px!important;bottom:3px!important}.slider-widget-dot{width:6px;height:6px}}@media (min-width:769px){.slider-widget .slider-widget-content{height:200px!important}.slider-widget-slide{padding-bottom:30px!important}.slider-widget-dots{height:25px!important;bottom:5px!important}.slider-widget-dot{width:10px!important;height:10px!important}}@media (min-width:1024px){.slider-widget .slider-widget-content{height:240px!important}.slider-widget-slide{padding-bottom:35px!important}.slider-widget-dots{height:30px!important;bottom:8px!important}.slider-widget-dot{width:12px!important;height:12px!important}}
.dashboard-widget-airport{flex-direction:column;display:flex}.dashboard-widget-airport .dashboard-widget-header{cursor:pointer;transition:all .2s}.dashboard-widget-airport .dashboard-widget-content{text-align:center;flex:1;position:relative;overflow:hidden}.airport-slide-content{flex-direction:column;justify-content:center;height:100%;padding:10px;display:flex}@media (min-width:769px){.dashboard-widget-airport .airport-slide-content{padding:15px!important}}@media (min-width:1024px){.dashboard-widget-airport .airport-slide-content{padding:20px!important}}.slide-label{color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.5px;text-align:center;margin-bottom:8px;font-size:.8rem;font-weight:600}.next-flight{text-align:center}.next-flight .flight-time{color:var(--color-primary);margin-bottom:8px;font-size:1.5rem;font-weight:700}.next-flight .flight-destination{color:var(--color-white);margin-bottom:4px;font-size:.8rem}.next-flight .flight-airline{color:var(--color-gray-400);margin-bottom:8px;font-size:.8rem;font-style:italic}.next-flight .flight-status{color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.5px;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;font-size:.9rem;display:flex}.status-label{color:var(--color-gray-400);text-transform:none;letter-spacing:normal;font-size:.9rem;font-style:italic;font-weight:400}.status-time{color:var(--color-gray-400);font-style:italic;font-weight:400}.airport-placeholder{justify-content:center;align-items:center;height:100%;display:flex}.airport-placeholder-text{color:var(--color-gray-400);text-align:center;font-style:italic}.loading,.error,.no-flights{text-align:center;color:var(--color-gray-400);padding:40px 20px;font-size:1rem}.error{color:var(--color-error)}@media (max-width:768px){.slide-label{margin-bottom:6px;font-size:.75rem}.next-flight .flight-time{margin-bottom:6px;font-size:1.3rem}.next-flight .flight-destination,.next-flight .flight-airline{font-size:.75rem}.next-flight .flight-status{margin-bottom:8px;font-size:.8rem}.flight-status .status-label{font-size:.7rem}.flight-status .status-time{font-size:.75rem}.loading,.error,.no-flights{padding:30px 15px;font-size:.9rem}}@media (min-width:769px){.dashboard-widget-airport .slide-label{margin-bottom:12px!important;font-size:1rem!important}.dashboard-widget-airport .next-flight .flight-time{margin-bottom:12px!important;font-size:2.2rem!important}.dashboard-widget-airport .next-flight .flight-destination{margin-bottom:6px!important;font-size:1rem!important}.dashboard-widget-airport .next-flight .flight-airline{margin-bottom:10px!important;font-size:1.1rem!important}.dashboard-widget-airport .next-flight .flight-status{margin-bottom:15px!important;font-size:1rem!important}.dashboard-widget-airport .flight-status .status-label{font-size:.9rem!important}.dashboard-widget-airport .flight-status .status-time{font-size:1rem!important}}@media (min-width:1024px){.dashboard-widget-airport .slide-label{margin-bottom:15px!important;font-size:1.1rem!important}.dashboard-widget-airport .next-flight .flight-time{margin-bottom:15px!important;font-size:2.8rem!important}.dashboard-widget-airport .next-flight .flight-destination{margin-bottom:8px!important;font-size:1.1rem!important}.dashboard-widget-airport .next-flight .flight-airline{margin-bottom:12px!important;font-size:1.2rem!important}.dashboard-widget-airport .next-flight .flight-status{margin-bottom:18px!important;font-size:1.1rem!important}.dashboard-widget-airport .flight-status .status-label{font-size:1rem!important}.dashboard-widget-airport .flight-status .status-time{font-size:1.1rem!important}}
.morrisons-slide-content{flex-direction:column;justify-content:space-between;height:100%;padding:0 15px;display:flex}.morrisons-slide-header{justify-content:space-between;align-items:center;margin-top:8px;margin-bottom:10px;display:flex}.morrisons-slide-date{color:var(--color-white);font-size:.9rem;font-weight:600}.morrisons-slide-status{align-items:center;display:flex}.morrisons-status-indicator{text-transform:uppercase;letter-spacing:.5px;border-radius:12px;padding:2px 8px;font-size:.8rem;font-weight:500}.morrisons-status-indicator.open{background-color:var(--color-success);color:#fff}.morrisons-status-indicator.closed{background-color:var(--color-error);color:#fff}.morrisons-opening-times{flex-direction:column;flex:1;justify-content:center;display:flex}.morrisons-placeholder{height:100%;color:var(--color-gray-400);justify-content:center;align-items:center;display:flex}.morrisons-placeholder-text{text-align:center;font-size:.9rem}.morrisons-opening-time-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;min-height:24px;padding:4px 0;display:flex}.morrisons-opening-time-item.closed{opacity:.6}.morrisons-opening-time-item:last-child{border-bottom:none}.morrisons-time-label{color:var(--color-white);text-align:left;flex:1;margin-right:10px;font-size:.8rem;font-weight:500}.morrisons-time-values{text-align:right;flex-direction:column;flex-shrink:0;gap:2px;min-width:80px;display:flex}.morrisons-time-open,.morrisons-time-close{color:var(--color-gray-400);font-size:.6rem}.morrisons-time-value{color:var(--color-gray-400);font-size:.8rem;font-weight:500}.dashboard-widget-morrisons .dashboard-widget-header{cursor:pointer;transition:all .2s}.dashboard-widget-morrisons .dashboard-widget-header:hover{background:#ffffff1a}.dashboard-widget-morrisons .slider-widget-dots{bottom:8px}.dashboard-widget-morrisons .slider-widget-dot{background-color:var(--color-gray-500);width:8px;height:8px}.dashboard-widget-morrisons .slider-widget-dot.active{background-color:var(--color-primary);transform:scale(1.2)}.morrisons-loading{text-align:center;color:var(--color-gray-400);padding:20px 0;font-style:italic}.morrisons-error{text-align:center;color:var(--color-error);padding:20px 0;font-style:italic}@media (max-width:768px){.morrisons-slide-header{margin-bottom:8px}.morrisons-slide-date{font-size:.8rem}.morrisons-status-indicator{padding:2px 6px;font-size:.7rem}.morrisons-opening-time-item{padding:1px 0}.morrisons-time-label{font-size:.75rem}.morrisons-time-open,.morrisons-time-close{font-size:.6rem}.morrisons-time-value{font-size:.75rem}.morrisons-loading,.morrisons-error{padding:15px 0;font-size:.9rem}}@media (min-width:769px){.morrisons-slide-content{padding:0 20px!important}.morrisons-slide-header{margin-top:10px!important;margin-bottom:15px!important}.morrisons-slide-date{font-size:1.1rem!important}.morrisons-status-indicator{padding:4px 10px!important;font-size:.9rem!important}.morrisons-opening-time-item{min-height:28px!important;padding:6px 0!important}.morrisons-time-label{margin-right:15px!important;font-size:1rem!important}.morrisons-time-values{min-width:90px!important}.morrisons-time-open,.morrisons-time-close{font-size:.9rem!important}.morrisons-time-value{font-size:1rem!important}}@media (min-width:1024px){.morrisons-slide-content{padding:0 25px!important}.morrisons-slide-header{margin-top:12px!important;margin-bottom:18px!important}.morrisons-slide-date{font-size:1.2rem!important}.morrisons-status-indicator{padding:5px 12px!important;font-size:1rem!important}.morrisons-opening-time-item{min-height:32px!important;padding:8px 0!important}.morrisons-time-label{margin-right:20px!important;font-size:1.1rem!important}.morrisons-time-values{min-width:100px!important}.morrisons-time-open,.morrisons-time-close{font-size:1rem!important}.morrisons-time-value{font-size:1.1rem!important}}
.dashboard-widget-pharmacy .pharmacy-info{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.dashboard-widget-pharmacy .pharmacy-intro-text{color:var(--color-gray-400);text-align:center;max-width:180px;font-size:.8rem;font-style:italic;line-height:1.4}.dashboard-widget-pharmacy .pharmacy-name{color:var(--color-primary);text-align:center;margin:5px 0;font-size:.9rem;font-weight:700;line-height:1.2}.dashboard-widget-pharmacy .pharmacy-address{color:var(--color-gray-400);text-align:center;font-size:.9rem;font-weight:400;line-height:1.3}.dashboard-widget-pharmacy .pharmacy-phone{text-align:center;margin-top:8px;font-size:.8rem;font-weight:400;line-height:1.3}.dashboard-widget-pharmacy .phone-link{color:var(--color-primary);background:#3b82f61a;border:1px solid #3b82f633;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.dashboard-widget-pharmacy .phone-link:hover{background:#3b82f626;border-color:#3b82f64d;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f633}.dashboard-widget-pharmacy .phone-link:active{transform:translateY(0)}@media (max-width:768px){.dashboard-widget-pharmacy .pharmacy-intro-text{font-size:.75rem}.dashboard-widget-pharmacy .pharmacy-name{font-size:.85rem}.dashboard-widget-pharmacy .pharmacy-address{font-size:.8rem}.dashboard-widget-pharmacy .pharmacy-phone{font-size:.75rem}.dashboard-widget-pharmacy .phone-link{padding:4px 6px;font-size:.75rem}}@media (min-width:769px){.dashboard-widget-pharmacy .pharmacy-info{height:calc(100% - 26px)}.dashboard-widget-pharmacy .pharmacy-name{font-size:1.1rem!important}.dashboard-widget-pharmacy .pharmacy-address,.dashboard-widget-pharmacy .pharmacy-phone{font-size:1rem!important}.dashboard-widget-pharmacy .phone-link{padding:8px 12px!important;font-size:1rem!important}.dashboard-widget-pharmacy .pharmacy-intro-text{font-size:.9rem!important}}@media (min-width:1024px){.dashboard-widget-pharmacy .pharmacy-name{font-size:1.2rem!important}.dashboard-widget-pharmacy .pharmacy-address,.dashboard-widget-pharmacy .pharmacy-phone{font-size:1.1rem!important}.dashboard-widget-pharmacy .phone-link{padding:10px 16px!important;font-size:1.1rem!important}.dashboard-widget-pharmacy .pharmacy-intro-text{font-size:1rem!important}}
.dashboard-widget-events .scroller-widget-content{padding:8px 12px 0}.dashboard-widget-events .event-title{color:var(--color-white);margin-bottom:3px;font-size:.8rem;font-weight:600;line-height:1.3}.dashboard-widget-events .event-venue{color:var(--color-gray-400);margin-bottom:3px;font-size:.8rem;font-style:italic}.dashboard-widget-events .event-date{color:var(--color-gray-400);font-size:.8rem}.dashboard-widget-events .event-time{color:var(--color-gray-500);margin-top:2px;font-size:.7rem}@media (max-width:768px){.dashboard-widget-events .scroller-widget-content{padding:6px 10px 0}.dashboard-widget-events .event-title,.dashboard-widget-events .event-venue,.dashboard-widget-events .event-date{font-size:.75rem}.dashboard-widget-events .event-time{font-size:.65rem}}@media (min-width:769px){.dashboard-widget-events .scroller-widget-content{padding:10px 15px 0!important}.dashboard-widget-events .event-title{font-size:1rem!important}.dashboard-widget-events .event-venue,.dashboard-widget-events .event-date{font-size:.9rem!important}.dashboard-widget-events .event-time{font-size:.8rem!important}}@media (min-width:1024px){.dashboard-widget-events .scroller-widget-content{padding:12px 18px 0!important}.dashboard-widget-events .event-title{font-size:1.1rem!important}.dashboard-widget-events .event-venue,.dashboard-widget-events .event-date{font-size:1rem!important}.dashboard-widget-events .event-time{font-size:.9rem!important}}
.dashboard-widget-cameras .slider-widget-content{padding:8px 12px 15px}.cameras-slide-content{background:#000;border-radius:8px;flex-direction:column;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.camera-video-container{background:#000;justify-content:center;align-items:center;width:100%;height:100%;min-height:120px;display:flex;position:relative}.camera-video{object-fit:cover;background:#000;width:100%}.stream-placeholder{text-align:center;color:var(--color-gray-400);flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:20px;display:flex}.placeholder-icon{opacity:.5;margin-bottom:12px;font-size:36px}.stream-placeholder p{margin:6px 0;font-size:.8rem}.stream-url{word-break:break-all;background:#ffffff1a;border-radius:4px;max-width:200px;padding:6px;font-family:monospace;font-size:.7rem}.stream-loading{text-align:center;color:var(--color-gray-400);flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:30px 20px;display:flex}.loading-spinner{margin-bottom:12px;font-size:36px;animation:2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stream-error{text-align:center;color:var(--color-error);flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:30px 20px;display:flex}.error-icon{opacity:.8;margin-bottom:12px;font-size:36px}.error-message{color:var(--color-gray-400);word-break:break-word;max-width:250px;margin:6px 0 12px;font-size:.8rem}.retry-button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:.8rem;transition:background-color .2s}.retry-button:hover{background:var(--color-primary-dark,#2563eb)}.camera-overlay{display:none}.camera-id{color:var(--color-primary);font-weight:600}.camera-region{opacity:.8;font-size:.65rem}@media (max-width:768px){.dashboard-widget-cameras .slider-widget-content{padding:6px 10px 12px}.camera-video-container{min-height:100px}.stream-placeholder{min-height:100px;padding:15px}.placeholder-icon{margin-bottom:8px;font-size:28px}.stream-placeholder p{font-size:.75rem}.stream-url{max-width:150px;font-size:.65rem}.stream-loading{min-height:100px;padding:20px 15px}.loading-spinner{margin-bottom:8px;font-size:28px}.stream-error{min-height:100px;padding:20px 15px}.error-icon{margin-bottom:8px;font-size:28px}.error-message{max-width:200px;font-size:.75rem}.retry-button{padding:5px 10px;font-size:.75rem}.camera-overlay{padding:3px 6px;font-size:.65rem;top:6px;left:6px}.camera-region{font-size:.6rem}}@media (min-width:769px){.dashboard-widget-cameras .slider-widget-content{padding:10px 15px 18px!important}.camera-video-container{min-height:140px!important}.stream-placeholder{min-height:140px!important;padding:25px!important}.placeholder-icon{margin-bottom:15px!important;font-size:42px!important}.stream-placeholder p{font-size:.9rem!important}.stream-url{max-width:250px!important;font-size:.8rem!important}.stream-loading{min-height:140px!important;padding:35px 25px!important}.loading-spinner{margin-bottom:15px!important;font-size:42px!important}.stream-error{min-height:140px!important;padding:35px 25px!important}.error-icon{margin-bottom:15px!important;font-size:42px!important}.error-message{max-width:300px!important;font-size:.9rem!important}.retry-button{padding:8px 16px!important;font-size:.9rem!important}.camera-overlay{padding:6px 10px!important;font-size:.8rem!important;top:10px!important;left:10px!important}.camera-region{font-size:.7rem!important}}@media (min-width:1024px){.dashboard-widget-cameras .slider-widget-content{padding:12px 18px 20px!important}.camera-video-container{min-height:160px!important}.stream-placeholder{min-height:160px!important;padding:30px!important}.placeholder-icon{margin-bottom:18px!important;font-size:48px!important}.stream-placeholder p{font-size:1rem!important}.stream-url{max-width:300px!important;font-size:.9rem!important}.stream-loading{min-height:160px!important;padding:40px 30px!important}.loading-spinner{margin-bottom:18px!important;font-size:48px!important}.stream-error{min-height:160px!important;padding:40px 30px!important}.error-icon{margin-bottom:18px!important;font-size:48px!important}.error-message{max-width:350px!important;font-size:1rem!important}.retry-button{padding:10px 20px!important;font-size:1rem!important}.camera-overlay{padding:8px 12px!important;font-size:.9rem!important;top:12px!important;left:12px!important}.camera-region{font-size:.8rem!important}}
.dashboard-widget-weather .slider-widget-content{padding:8px 12px 15px}.weather-slide-content{flex-direction:column;justify-content:space-between;height:100%;padding:12px;display:flex}.weather-main{text-align:center}.weather-label{color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.8rem;font-weight:600}.weather-temp{color:var(--color-text);margin-bottom:6px;font-size:1.8rem;font-weight:700;line-height:1}.weather-temp-max{color:var(--color-primary)}.weather-temp-separator{color:var(--color-gray-500);margin:0 4px}.weather-temp-min{color:var(--color-gray-500)}.weather-temp-unit{color:var(--color-gray-500);margin-left:4px;font-size:1.1rem}.weather-condition{justify-content:center;align-items:center;gap:6px;margin-bottom:8px;display:flex}.weather-icon{font-size:1.2rem}.weather-text{color:var(--color-text);font-size:.8rem;font-weight:500}.weather-details{border-top:1px solid var(--color-border);justify-content:space-around;gap:12px;padding:8px 0;display:flex}.weather-detail{color:var(--color-gray-500);flex-direction:column;align-items:center;gap:2px;font-size:.7rem;display:flex}.weather-detail span{font-weight:500}.weather-placeholder{height:100%;color:var(--color-gray-500);flex-direction:column;justify-content:center;align-items:center;display:flex}.weather-placeholder-icon{opacity:.5;margin-bottom:12px;font-size:2.4rem}.weather-placeholder-text{text-align:center;font-size:.8rem}.loading{height:100%;color:var(--color-gray-500);justify-content:center;align-items:center;font-size:.8rem;font-style:italic;display:flex}.weather-error{height:100%;color:var(--color-error);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.8rem;display:flex}.retry-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:.7rem;transition:all .2s}.retry-btn:hover{background:var(--color-primary-dark,#2563eb);transform:translateY(-1px)}@media (max-width:768px){.dashboard-widget-weather .slider-widget-content{padding:6px 10px 12px}.weather-slide-content{padding:8px}.weather-temp{font-size:1.5rem}.weather-icon{font-size:1rem}.weather-text{font-size:.75rem}.weather-details{gap:8px;padding:6px 0}.weather-detail{font-size:.65rem}.weather-placeholder-icon{margin-bottom:8px;font-size:2rem}.weather-placeholder-text,.loading{font-size:.75rem}.weather-error{gap:6px;font-size:.75rem}.retry-btn{padding:5px 10px;font-size:.65rem}}@media (min-width:769px){.dashboard-widget-weather .slider-widget-content{padding:10px 15px 18px!important}.weather-slide-content{padding:16px!important}.weather-label{font-size:.9rem!important}.weather-temp{margin-top:8px!important;font-size:2.1rem!important}.weather-text{font-size:.9rem!important}.weather-details{gap:16px!important;margin-top:8px!important;padding:12px 0!important}.weather-detail{font-size:.8rem!important}.weather-placeholder-icon{margin-bottom:16px!important;font-size:2.8rem!important}.weather-placeholder-text,.loading{font-size:.9rem!important}.weather-error{gap:10px!important;font-size:.9rem!important}.retry-btn{padding:8px 16px!important;font-size:.8rem!important}}@media (min-width:1024px){.dashboard-widget-weather .slider-widget-content{padding:12px 18px 20px!important}.weather-slide-content{padding:20px!important}.weather-label{font-size:1rem!important}.weather-temp{margin-top:10px!important;font-size:2.5rem!important}.weather-text{font-size:1rem!important}.weather-details{gap:20px!important;margin-top:10px!important;padding:15px 0!important}.weather-detail{font-size:.9rem!important}.weather-placeholder-icon{margin-bottom:20px!important;font-size:3.2rem!important}.weather-placeholder-text,.loading{font-size:1rem!important}.weather-error{gap:12px!important;font-size:1rem!important}.retry-btn{padding:10px 20px!important;font-size:.9rem!important}}
.dashboard-widget-reports .scroller-widget-content{padding:8px 12px 0}.dashboard-widget-reports .scroller-item{background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;margin-bottom:8px;padding:12px;transition:all .2s}.dashboard-widget-reports .scroller-item.clickable:hover{background:#ffffff0a;border-color:#ffffff1a}.report-title{color:var(--color-white);margin-bottom:8px;font-size:.85rem;font-weight:600;line-height:1.3;transition:color .2s}.dashboard-widget-reports .scroller-item.clickable:hover .report-title{color:var(--color-primary)}.report-meta{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;font-size:.75rem;display:flex}.report-category-info{flex:1;align-items:center;display:flex}.report-time-info{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.report-category{background-color:var(--color-gray-800);color:var(--color-gray-200);text-transform:uppercase;letter-spacing:.3px;border:1px solid #ffffff1a;border-radius:12px;padding:3px 8px;font-size:.7rem;font-weight:500}.report-distance{color:var(--color-gray-400);align-items:center;gap:3px;font-size:.7rem;font-weight:500;display:flex}.report-timestamp{color:var(--color-gray-500);white-space:nowrap;flex-shrink:0;font-size:.7rem}.report-description{color:var(--color-gray-400);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.report-content{align-items:flex-start;gap:12px;display:flex}.report-text{flex:1;min-width:0}.report-thumbnail{background:var(--color-gray-800);border:1px solid #ffffff1a;border-radius:8px;flex-shrink:0;width:60px;height:60px;position:relative;overflow:hidden}.thumbnail-image{object-fit:cover;width:100%;height:100%;transition:transform .2s}.dashboard-widget-reports .scroller-item.clickable:hover .thumbnail-image{transform:scale(1.05)}.thumbnail-count{color:#fff;background:#000c;border-radius:10px;padding:2px 6px;font-size:.6rem;font-weight:600;line-height:1;position:absolute;top:4px;right:4px}@media (max-width:768px){.dashboard-widget-reports .scroller-widget-content{padding:6px 10px 0}.dashboard-widget-reports .scroller-item{margin-bottom:6px;padding:10px}.report-title{margin-bottom:6px;font-size:.8rem}.report-meta{gap:6px;margin-bottom:4px;font-size:.7rem}.report-time-info{gap:1px}.report-category{padding:2px 6px;font-size:.65rem}.report-distance,.report-timestamp{font-size:.65rem}.report-description{margin-top:4px;font-size:.7rem}.report-content{gap:8px}.report-thumbnail{width:50px;height:50px}.thumbnail-count{padding:1px 4px;font-size:.55rem}}@media (min-width:769px){.dashboard-widget-reports .scroller-widget-content{padding:8px 12px 0}}
.draggable-dashboard{width:100%}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:20px;width:100%;transition:all .3s cubic-bezier(.4,0,.2,1);display:grid}@media (max-width:768px){.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:12px}}@media (min-width:769px) and (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media (min-width:1025px) and (max-width:1440px){.dashboard-grid{grid-template-columns:repeat(3,1fr);gap:20px}}@media (min-width:1441px){.dashboard-grid{grid-template-columns:repeat(4,1fr);gap:24px}}.dashboard-column{flex-direction:column;flex:1;gap:20px;min-width:0;display:flex}.dashboard-widget-container{background:var(--color-surface);border:1px solid var(--color-border);will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;flex-shrink:0;width:100%;transition:all .2s;position:relative;box-shadow:0 2px 8px #0000001a}.dashboard-widget-container.editing{cursor:grab;-webkit-user-select:none;user-select:none}.dashboard-widget-container.editing:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.dashboard-widget-container.dragging{cursor:grabbing;z-index:1000;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transform:translateZ(0);box-shadow:0 8px 20px #00000026;transition:none!important;animation:.3s ease-out editModeEnter!important}.dashboard-widget-container:not(.dragging){transition:transform .2s,box-shadow .2s}.dashboard-widget-container.editing:not(.dragging):hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.widget-content{width:100%;height:100%;overflow:hidden}.widget-edit-controls{z-index:10;gap:8px;display:flex;position:absolute;top:8px;right:8px}.widget-drag-overlay{cursor:grab;z-index:5;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.widget-drag-overlay:active{cursor:grabbing}.edit-mode-popup{z-index:1000;animation:.4s ease-out popupFallDown;position:fixed;top:0;left:50%;transform:translate(-50%)}.popup-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:0 0 16px 16px;flex-direction:column;align-items:center;padding:16px 24px;display:flex;box-shadow:0 8px 32px #0000001a}.popup-buttons{gap:12px;margin-bottom:0;display:flex}.popup-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:600;transition:all .2s}.exit-edit-btn{color:#fff;background:#6c757d}.exit-edit-btn:hover{background:#545b62;transform:translateY(-1px)}.remove-widget-btn{background:var(--color-error);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 2px 8px #dc35454d}.remove-widget-btn:hover{background:#c82333;transform:scale(1.1)}.dashboard-widget-container:active{transform:scale(.98)}@media (max-width:768px){.dashboard-column{gap:12px}.widget-edit-controls{top:4px;right:4px}.remove-widget-btn{width:20px;height:20px;font-size:14px}}@media (min-width:769px) and (max-width:1024px){.dashboard-column{gap:16px}}@media (min-width:1025px) and (max-width:1440px){.dashboard-column{gap:20px}}@media (min-width:1441px){.dashboard-column{gap:24px}}@media (prefers-color-scheme:dark){.popup-content{background:#212529f2;border-color:#ffffff1a}.exit-edit-btn{background:#6c757d}.exit-edit-btn:hover{background:#5a6268}}@keyframes popupFallDown{0%{opacity:0;transform:translate(-50%)translateY(-100%)}to{opacity:1;transform:translate(-50%)translateY(0)}}.dashboard-widget-container{transition:all .3s cubic-bezier(.4,0,.2,1)}.dashboard-widget-container.editing{animation:.3s ease-out editModeEnter,.4s ease-in-out infinite editModeWobble}.draggable-dashboard.any-widget-dragging .dashboard-widget-container.editing:not(.dragging){animation:.3s ease-out editModeEnter!important}.dashboard-widget-container.editing.dragging{animation:.3s ease-out editModeEnter;animation:.3s ease-out editModeEnter!important}.dashboard-widget-container:not(.editing){animation:none!important;transform:rotate(0)!important}.dashboard-widget-container:not(.editing):not(.dragging){transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes editModeEnter{0%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes editModeWobble{0%,to{transform:rotate(0)}25%{transform:rotate(-.5deg)}75%{transform:rotate(.5deg)}}.exit-edit-btn:focus,.remove-widget-btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}
/*# sourceMappingURL=95613bcefc24ff33.css.map*/