.export-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:flex-start;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:40px 20px;box-sizing:border-box;overflow-y:auto}.export-modal{background:#1e1e2e;border-radius:12px;width:90%;max-width:500px;box-shadow:0 20px 40px #0006;border:1px solid #333;flex-shrink:0}.export-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#252536;border-bottom:1px solid #333}.export-modal-header h2{margin:0;font-size:1.25rem;color:#fff;font-weight:600}.export-modal-close{background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.export-modal-close:hover{color:#fff}.export-modal-body{padding:20px}.export-status{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.export-status-success{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.export-status-error{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.export-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:#252536;border-radius:8px}.export-option-info{flex:1}.export-option-info h3{margin:0 0 6px;font-size:1rem;color:#fff;font-weight:600}.export-option-info p{margin:0;font-size:.85rem;color:#999;line-height:1.4}.export-divider{height:1px;background:#333;margin:16px 0}.export-btn{padding:10px 20px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s;white-space:nowrap}.export-btn:disabled{opacity:.6;cursor:not-allowed}.export-btn-primary{background:#3b82f6;color:#fff}.export-btn-primary:hover:not(:disabled){background:#2563eb}.export-btn-secondary{background:#4b5563;color:#fff}.export-btn-secondary:hover:not(:disabled){background:#374151}.export-btn-cancel{background:transparent;color:#999;border:1px solid #444}.export-btn-cancel:hover{background:#333;color:#fff}.export-btn-import{background:#10b981;color:#fff}.export-btn-import:hover:not(:disabled){background:#059669}.export-btn-import:disabled{background:#065f46;color:#888}.import-mode-selector{display:flex;gap:16px;margin-top:12px}.import-mode-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;padding:8px 12px;background:#2a2a3c;border-radius:6px;border:1px solid #3a3a4c;transition:all .2s}.import-mode-option:hover{border-color:#4a4a5c}.import-mode-option:has(input:checked){border-color:#10b981;background:#1a2a2c}.import-mode-option input{margin-right:6px}.import-mode-option span{color:#fff;font-size:.9rem;font-weight:500;display:flex;align-items:center}.import-mode-option small{color:#888;font-size:.75rem;margin-left:20px}.export-modal-footer{padding:16px 20px;background:#252536;border-top:1px solid #333;display:flex;justify-content:flex-end}@media(max-width:480px){.export-option{flex-direction:column;align-items:stretch;text-align:center}.export-btn{width:100%;margin-top:12px}}.site-footer{background-color:#2c3e50;color:#ecf0f1;padding:40px 20px 20px;margin-top:auto;border-top:1px solid #34495e}.footer-wrap{max-width:1200px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px}.footer-col{padding:0 10px}.footer-col h4{font-size:1.2em;font-weight:600;margin:0 0 10px;color:#3498db}.footer-col h5{font-size:1em;font-weight:600;margin:0 0 15px;color:#3498db}.footer-col p{margin:5px 0;font-size:.95em;line-height:1.5}.footer-col ul{list-style:none;padding:0;margin:0}.footer-col ul li{margin:8px 0}.footer-col a{color:#ecf0f1;text-decoration:none;transition:color .3s ease;font-size:.95em}.footer-col a:hover{color:#3498db;text-decoration:underline}.footer-bottom{max-width:1200px;margin:0 auto;padding:20px 10px 0;border-top:1px solid #34495e;text-align:center;font-size:.9em;color:#95a5a6}@media(max-width:768px){.site-footer{padding:30px 15px 15px}.footer-wrap{grid-template-columns:1fr;gap:20px}.footer-col{padding:0}}.category-reorder-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:flex-start;justify-content:center;z-index:10000;padding:40px 20px;box-sizing:border-box;overflow-y:auto}.category-reorder-modal{background:#1e1e2e;border-radius:12px;width:90%;max-width:500px;box-shadow:0 20px 40px #0006;border:1px solid #333;flex-shrink:0}.category-reorder-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#252536;border-bottom:1px solid #333;border-radius:12px 12px 0 0}.category-reorder-header h2{margin:0;font-size:1.25rem;color:#fff;font-weight:600}.category-reorder-close{background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.category-reorder-close:hover{color:#fff}.category-reorder-body{padding:20px;max-height:60vh;overflow-y:auto}.category-reorder-instructions{color:#aaa;font-size:.9rem;margin:0 0 16px}.category-reorder-list{display:flex;flex-direction:column;gap:8px}.category-reorder-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#2a2a3c;border:1px solid #3a3a4c;border-radius:8px;cursor:grab;transition:all .2s;-webkit-user-select:none;user-select:none}.category-reorder-item:hover{background:#333346;border-color:#4a4a5c}.category-reorder-item.is-dragging{background:#3a3a4c;border-color:#5a8dee;box-shadow:0 8px 16px #0000004d;cursor:grabbing}.category-reorder-handle{color:#666;font-size:1rem;flex-shrink:0}.category-reorder-index{color:#888;font-size:.85rem;font-weight:600;min-width:24px;text-align:center;flex-shrink:0}.category-reorder-thumb{width:40px;height:40px;object-fit:cover;border-radius:4px;flex-shrink:0}.category-reorder-name{color:#fff;font-size:.95rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-reorder-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;background:#252536;border-top:1px solid #333;border-radius:0 0 12px 12px}.category-reorder-btn{padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.category-reorder-btn-cancel{background:#3a3a4c;color:#ccc}.category-reorder-btn-cancel:hover{background:#4a4a5c;color:#fff}.category-reorder-btn-save{background:#5a8dee;color:#fff}.category-reorder-btn-save:hover:not(:disabled){background:#4a7dde}.category-reorder-btn-save:disabled{background:#3a5a8e;color:#888;cursor:not-allowed}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:"";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}.maintenance-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.maintenance-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:3rem 2rem;max-width:600px;width:100%;text-align:center}.maintenance-icon{margin-bottom:2rem}.icon-primary{color:#667eea}.icon-warning{color:#f59e0b}.maintenance-title{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;color:#1f2937}.maintenance-message{font-size:1.125rem;line-height:1.75;color:#6b7280;margin-bottom:2rem}.info-box{background-color:#dbeafe;border-left:4px solid #3b82f6;padding:1rem;margin-bottom:2rem;border-radius:.5rem;text-align:left}.info-box strong{color:#1e40af}.status-indicator{display:flex;align-items:center;justify-content:center;gap:.75rem;padding-top:2rem;border-top:1px solid #e5e7eb;margin-top:2rem;color:#9ca3af;font-size:.875rem}.staff-notice{background-color:#d1fae5;border-left:4px solid #10b981;padding:1rem;margin-top:2rem;border-radius:.5rem;text-align:left}.staff-notice strong{color:#047857}.staff-link{color:#059669;font-weight:600;text-decoration:none}.staff-link:hover{text-decoration:underline}.support-info{margin-top:2rem;color:#9ca3af;font-size:.875rem}.support-info a{color:#667eea;text-decoration:none}.support-info a:hover{text-decoration:underline}.error-box{background-color:#fee2e2;border-left:4px solid #ef4444;padding:1.5rem;border-radius:.5rem}.error-box h2{color:#991b1b;margin-bottom:.5rem}.error-box p{color:#7f1d1d}.maintenance-spinner{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#fff}.spinner{border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top:4px solid white;width:50px;height:50px;animation:spin 1s linear infinite}.spinner-small{border:2px solid rgba(156,163,175,.3);border-radius:50%;border-top:2px solid #9ca3af;width:16px;height:16px;animation:spin 1s linear infinite}@media(max-width:640px){.maintenance-card{padding:2rem 1.5rem}.maintenance-title{font-size:2rem}.maintenance-icon svg{width:80px;height:80px}}.multi-image-upload{width:100%;position:relative}.resizing-indicator{position:absolute;top:0;left:0;right:0;background:#0a4ba3f2;color:#fff;padding:12px;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;font-weight:600;z-index:10;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.resizing-indicator .spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.upload-buttons{display:flex;gap:12px;margin-bottom:16px;margin-top:16px}.btn-camera,.btn-gallery{flex:1;padding:12px 16px;border:2px solid #0a4ba3;background:#fff;color:#0a4ba3;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;transition:all .2s}.btn-camera:active:not(:disabled),.btn-gallery:active:not(:disabled){background:#0a4ba3;color:#fff}.btn-camera:disabled,.btn-gallery:disabled{opacity:.5;cursor:not-allowed}.image-count{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#6c757d;margin-bottom:12px;padding:8px 12px;background:#f8f9fa;border-radius:6px}.btn-clear-all{background:transparent;border:1px solid #dc3545;color:#dc3545;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer}.btn-clear-all:active{background:#dc3545;color:#fff}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:16px}.image-preview-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:2px solid #dee2e6;background:#f8f9fa}.image-preview-item img{width:100%;height:100%;object-fit:cover;display:block}.image-controls{position:absolute;top:4px;right:4px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.image-preview-item:hover .image-controls,.image-preview-item:active .image-controls{opacity:1}@media(max-width:768px){.image-controls{opacity:1}}.btn-icon,.btn-remove{background:#000000b3;border:none;color:#fff;padding:4px;border-radius:4px;cursor:pointer;font-size:12px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.btn-icon:active:not(:disabled){background:#0a4ba3e6}.btn-remove:active{background:#dc3545e6}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.primary-badge{position:absolute;bottom:4px;left:4px;background:#0a4ba3e6;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.featured-badge{position:absolute;bottom:8px;left:8px;background:#0a4ba3e6;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;border:none;cursor:pointer;transition:all .2s}.featured-badge:not(.is-featured){background:#6c757dcc;font-size:10px;padding:3px 6px}.featured-badge:not(.is-featured):hover:not(:disabled){background:#0a4ba3e6;transform:scale(1.05)}.featured-badge.is-featured{background:linear-gradient(135deg,gold,#ffed4e);color:#333;box-shadow:0 2px 8px #ffd70066}.featured-badge:disabled{cursor:not-allowed;opacity:.7}.empty-state{text-align:center;padding:32px 16px;color:#6c757d;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px}.empty-state p{margin:4px 0}.empty-state .hint{font-size:13px;color:#adb5bd}@media(max-width:768px){.upload-buttons{flex-direction:column}.btn-camera,.btn-gallery{width:100%}.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.btn-icon,.btn-remove{min-width:32px;min-height:32px;font-size:14px}}@media(min-width:769px){.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.existing-image-thumbnail{position:relative;background:var(--bs-body-bg);border:2px solid var(--bs-border-color);border-radius:8px;overflow:hidden;transition:all .2s ease;display:flex;flex-direction:column;cursor:grab}.existing-image-thumbnail:hover{border-color:var(--bs-primary);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.existing-image-thumbnail.featured{border-color:var(--bs-warning);border-width:3px;box-shadow:0 0 12px #ffc1074d}.existing-image-thumbnail.dragging{cursor:grabbing;opacity:.5;box-shadow:0 8px 16px #0003;z-index:1000}.drag-handle{position:absolute;bottom:44px;right:8px;background:#6c757de6;color:#fff;width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:grab;z-index:25;transition:all .2s ease;box-shadow:0 2px 6px #0006}.drag-handle:hover{background:#6c757d;transform:scale(1.05)}.drag-handle:active{cursor:grabbing}.drag-handle i{font-size:1rem;pointer-events:none}.featured-badge{position:absolute;top:8px;left:8px;background:#f9ff00cc!important;color:var(--bs-dark);width:28px;height:28px;border-radius:50%;font-size:.875rem;font-weight:600;z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d}.featured-badge i{font-size:.875rem}.new-image-badge{position:absolute;bottom:8px;left:8px;background:#198754e5!important;color:#fff;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:600;z-index:10;box-shadow:0 2px 4px #0000004d;letter-spacing:.5px}.reorder-buttons{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:4px;z-index:15}.btn-move-up,.btn-move-down{display:flex!important;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#0dcaf0e6!important;background-color:#0dcaf0e6!important;color:var(--bs-dark)!important;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .2s ease;font-weight:500;opacity:1!important;visibility:visible!important;pointer-events:auto!important;box-shadow:0 2px 4px #0000004d}.btn-move-up:hover:not(:disabled),.btn-move-down:hover:not(:disabled){background:#0aa2c0f2!important;background-color:#0aa2c0f2!important;transform:scale(1.1);box-shadow:0 3px 6px #0006}.btn-move-up:disabled,.btn-move-down:disabled{opacity:.3!important;cursor:not-allowed!important;background-color:#6c757d80!important}.btn-move-up i,.btn-move-down i{font-size:.875rem}.thumbnail-wrapper{position:relative;width:100%;padding-top:100%;background:var(--bs-secondary-bg);overflow:hidden}.thumbnail-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.existing-image-thumbnail:hover .thumbnail-image{transform:scale(1.05)}.image-info{padding:8px;background:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);min-height:60px}.image-order{font-size:.75rem;font-weight:600;color:var(--bs-gray-700, #6c757d);margin-bottom:4px}.image-caption{font-size:.875rem;color:var(--bs-gray-900, #212529);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.image-caption.no-caption{color:var(--bs-gray-600, #6c757d);font-style:italic;opacity:.8}.caption-edit-container{display:flex;flex-direction:column;gap:6px;width:100%}.caption-input{width:100%;padding:6px 8px;font-size:.875rem;border:2px solid var(--bs-primary);border-radius:4px;background:var(--bs-body-bg);color:var(--bs-gray-900, #212529)!important;outline:none;transition:border-color .2s}[data-bs-theme=dark] .caption-input{color:var(--bs-gray-100, #f8f9fa)!important}.caption-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px #0d6efd1a}.caption-edit-actions{display:flex;gap:4px;justify-content:flex-end}.btn-caption-save,.btn-caption-cancel{padding:4px 10px;border:none;border-radius:3px;font-size:.75rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.btn-caption-save{background:var(--bs-success)!important;background-color:#198754!important;color:#fff!important}.btn-caption-save:hover{background:var(--bs-success-dark, #157347)!important;background-color:#157347!important}.btn-caption-cancel{background:var(--bs-secondary)!important;background-color:#6c757d!important;color:#fff!important}.btn-caption-cancel:hover{background:var(--bs-secondary-dark, #5c636a)!important;background-color:#5c636a!important}.image-actions{position:relative;padding:6px 44px 6px 6px;background:var(--bs-secondary-bg);border-top:1px solid var(--bs-border-color);display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center;min-height:60px;opacity:1!important;visibility:visible!important;z-index:20}.btn-delete{display:flex!important;align-items:center;gap:4px;padding:6px 10px;background:var(--bs-danger)!important;background-color:#dc3545!important;color:#fff!important;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease;font-weight:500;opacity:1!important;visibility:visible!important;pointer-events:auto!important}.btn-edit-caption{display:flex!important;align-items:center;gap:4px;padding:6px 10px;background:var(--bs-primary)!important;background-color:#0d6efd!important;color:#fff!important;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease;font-weight:500;opacity:1!important;visibility:visible!important;pointer-events:auto!important}.btn-edit-caption:hover{background:var(--bs-primary-dark, #0a58ca)!important;background-color:#0a58ca!important;transform:translateY(-1px);box-shadow:0 2px 4px #0d6efd4d}.btn-delete:hover{background:var(--bs-danger-dark, #b02a37)!important;background-color:#b02a37!important;transform:translateY(-1px);box-shadow:0 2px 4px #dc35454d}.btn-delete.confirm{background:var(--bs-warning)!important;background-color:#ffc107!important;color:var(--bs-dark);animation:pulse .5s ease-in-out}.btn-delete.confirm:hover{background:var(--bs-warning-dark, #d39e00)!important;background-color:#d39e00!important}.confirm-text{font-size:.75rem;font-weight:600}.btn-set-featured{display:flex!important;align-items:center;gap:4px;padding:6px 10px;background:var(--bs-light)!important;background-color:#f8f9fa!important;color:var(--bs-dark)!important;border:2px solid var(--bs-gray-400)!important;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease;font-weight:500;opacity:1!important;visibility:visible!important;pointer-events:auto!important}.btn-set-featured:hover{background:var(--bs-warning-light, #fff3cd)!important;background-color:#fff3cd!important;border-color:var(--bs-warning)!important;transform:translateY(-1px);box-shadow:0 2px 4px #ffc1074d}.btn-set-featured.is-featured{background:var(--bs-warning)!important;background-color:#ffc107!important;color:var(--bs-dark)!important;border-color:var(--bs-warning-dark)!important}.btn-set-featured.is-featured:hover{background:var(--bs-warning-dark, #d39e00)!important;background-color:#d39e00!important;border-color:#b38600!important}.btn-set-featured i{font-size:1rem}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}[data-bs-theme=dark] .existing-image-thumbnail{background:var(--bs-dark)}[data-bs-theme=dark] .thumbnail-wrapper{background:var(--bs-gray-800)}[data-bs-theme=dark] .existing-image-thumbnail:hover{box-shadow:0 4px 8px #ffffff1a}[data-bs-theme=dark] .existing-image-thumbnail.featured{box-shadow:0 0 12px #ffc10766}[data-bs-theme=dark] .image-order{color:var(--bs-gray-400, #adb5bd)}[data-bs-theme=dark] .image-caption{color:var(--bs-gray-100, #f8f9fa)}[data-bs-theme=dark] .image-caption.no-caption{color:var(--bs-gray-500, #6c757d)}.form-field{margin-bottom:20px}.field-label{display:block;font-size:14px;font-weight:600;color:#333;margin-bottom:6px}.required-indicator{color:#dc3545;font-weight:700}.field-input{position:relative}.field-hint{font-size:13px;color:#6c757d;margin-top:4px;line-height:1.4}.field-error{font-size:13px;color:#dc3545;margin-top:4px;font-weight:500;display:flex;align-items:center;gap:4px}.field-error:before{content:"⚠️";font-size:14px}.form-field.has-error .field-input input,.form-field.has-error .field-input select,.form-field.has-error .field-input textarea{border-color:#dc3545}.form-field.has-error .field-input input:focus,.form-field.has-error .field-input select:focus,.form-field.has-error .field-input textarea:focus{box-shadow:0 0 0 3px #dc35451a}@media(max-width:768px){.form-field{margin-bottom:16px}.field-label{font-size:13px}.field-hint,.field-error{font-size:12px}}.metadata-selector{margin-bottom:20px}.selector-label{display:block;font-size:14px;font-weight:600;color:#333;margin-bottom:6px}.selector-wrapper{position:relative;display:flex;gap:8px;align-items:center}.selector-native{flex:1;padding:12px 40px 12px 12px;border:1px solid #ced4da;border-radius:8px;font-size:16px;font-family:inherit;background:#fff;color:#333;-webkit-appearance:none;appearance:none;min-height:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.btn-add-new{padding:8px 12px;background:#0a4ba3;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:44px;transition:background .2s}.btn-add-new:hover{background:#083a82}.btn-add-new:active{background:#062d66}.add-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.add-dialog{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:100%;box-shadow:0 10px 40px #0003}.add-dialog h3{margin:0 0 16px;font-size:20px;color:#333}.add-dialog-input{width:100%;padding:12px;border:1px solid #ced4da;border-radius:8px;font-size:16px;font-family:inherit;min-height:44px;margin-bottom:16px}.add-dialog-input:focus{outline:none;border-color:#0a4ba3;box-shadow:0 0 0 3px #0a4ba31a}.add-dialog-buttons{display:flex;gap:12px;justify-content:flex-end}.add-dialog-buttons button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;min-height:44px;min-width:80px}.btn-cancel{background:#e9ecef;color:#333}.btn-cancel:hover{background:#dee2e6}.btn-save{background:#0a4ba3;color:#fff}.btn-save:hover:not(:disabled){background:#083a82}.btn-save:disabled{background:#ccc;cursor:not-allowed}.selector-native:focus{outline:none;border-color:#0a4ba3;box-shadow:0 0 0 3px #0a4ba31a}.selector-native:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.selector-native option{padding:12px}.btn-clear{position:absolute;right:36px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#6c757d;font-size:18px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;padding:0}.btn-clear:hover{background:#f8f9fa;color:#333}.btn-clear:active{background:#e9ecef}.metadata-selector.has-error .selector-native{border-color:#dc3545}.metadata-selector.has-error .selector-native:focus{box-shadow:0 0 0 3px #dc35451a}.selector-error{font-size:13px;color:#dc3545;margin-top:4px;font-weight:500;display:flex;align-items:center;gap:4px}.selector-error:before{content:"⚠️";font-size:14px}@media(max-width:768px){.metadata-selector{margin-bottom:16px}.selector-label{font-size:13px}.selector-native{font-size:16px}.selector-error{font-size:12px}}.selector-native:focus-visible{outline:2px solid #0a4ba3;outline-offset:2px}.rich-text-editor{margin-bottom:1rem}.rich-text-editor .tox-tinymce{border:1px solid #ced4da;border-radius:.375rem}.rich-text-editor .tox-tinymce:focus-within{border-color:#0a4ba3;box-shadow:0 0 0 .2rem #0a4ba340}.rich-text-editor .tox .tox-toolbar{background-color:#f8f9fa}.rich-text-editor .tox .tox-edit-area{background-color:#fff}.description-text,.notes-text{line-height:1.6}.description-text h1,.notes-text h1{font-size:2rem;font-weight:600;margin-top:1.5rem;margin-bottom:1rem}.description-text h2,.notes-text h2{font-size:1.75rem;font-weight:600;margin-top:1.25rem;margin-bottom:.875rem}.description-text h3,.notes-text h3{font-size:1.5rem;font-weight:600;margin-top:1rem;margin-bottom:.75rem}.description-text h4,.notes-text h4{font-size:1.25rem;font-weight:600;margin-top:.875rem;margin-bottom:.625rem}.description-text p,.notes-text p{margin-bottom:1rem}.description-text ul,.description-text ol,.notes-text ul,.notes-text ol{margin-bottom:1rem;padding-left:2rem}.description-text li,.notes-text li{margin-bottom:.5rem}.description-text blockquote,.notes-text blockquote{border-left:4px solid #0a4ba3;padding-left:1rem;margin:1rem 0;font-style:italic;color:#6c757d}.description-text img,.notes-text img{max-width:100%;height:auto;border-radius:.375rem;margin:1rem 0}.description-text table,.notes-text table{width:100%;margin:1rem 0;border-collapse:collapse}.description-text table td,.description-text table th,.notes-text table td,.notes-text table th{border:1px solid #dee2e6;padding:.75rem}.description-text table th,.notes-text table th{background-color:#f8f9fa;font-weight:600}.description-text a,.notes-text a{color:#0a4ba3;text-decoration:none}.description-text a:hover,.notes-text a:hover{text-decoration:underline}.description-text code,.notes-text code{background-color:#f8f9fa;padding:.2rem .4rem;border-radius:.25rem;font-family:Courier New,monospace;font-size:.875em}.description-text pre,.notes-text pre{background-color:#f8f9fa;padding:1rem;border-radius:.375rem;overflow-x:auto;margin:1rem 0}.description-text pre code,.notes-text pre code{background-color:transparent;padding:0}.description-text hr,.notes-text hr{margin:1.5rem 0;border:none;border-top:2px solid #dee2e6}@media(max-width:768px){.rich-text-editor .ck.ck-editor__editable{min-height:150px}.description-text h1,.notes-text h1{font-size:1.75rem}.description-text h2,.notes-text h2{font-size:1.5rem}.description-text h3,.notes-text h3{font-size:1.25rem}}.scan-results-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.scan-results-panel{background:var(--bs-body-bg, #fff);border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:800px;width:90%;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.scan-results-header{padding:1.5rem;border-bottom:2px solid var(--bs-border-color, #dee2e6);display:flex;justify-content:space-between;align-items:center}.scan-results-header h3{margin:0;font-size:1.5rem;color:var(--bs-primary, #0d6efd)}.close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--bs-secondary, #6c757d);padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background:var(--bs-light, #f8f9fa);color:var(--bs-dark, #212529)}.scan-results-content{flex:1;overflow-y:auto;padding:1.5rem}.results-section{margin-bottom:1.5rem;padding:1rem;background:var(--bs-light, #f8f9fa);border-radius:8px;border-left:4px solid var(--bs-primary, #0d6efd)}.results-section h4{margin:0 0 1rem;font-size:1.1rem;color:var(--bs-dark, #212529)}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.result-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#fff;border-radius:6px}.result-label{font-weight:500;color:var(--bs-secondary, #6c757d)}.result-value{font-weight:600;color:var(--bs-dark, #212529)}.result-value.highlight{color:var(--bs-success, #198754);font-size:1.1em}.confidence-badge{padding:.25rem .75rem;border-radius:20px;font-size:.9em}.confidence-high{background:#d1e7dd;color:#0f5132}.confidence-medium{background:#fff3cd;color:#997404}.confidence-low{background:#f8d7da;color:#842029}.results-list{display:flex;flex-direction:column;gap:.5rem}.result-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:6px;border-left:3px solid transparent}.field-name{font-weight:500;color:var(--bs-secondary, #6c757d)}.field-success{color:var(--bs-success, #198754);font-weight:600}.field-success:before{content:"✅ "}.field-missing{color:var(--bs-danger, #dc3545);font-style:italic}.gmail-section{border-left-color:#ea4335!important}.cache-hit-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border-radius:6px;text-align:center;font-weight:600;margin-bottom:1rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.gmail-query{margin-top:1rem;padding:.75rem;background:#fff;border-radius:6px;font-size:.9em;color:#212529}.gmail-query strong{color:#212529}.gmail-query code{background:#f8f9fa;padding:.25rem .5rem;border-radius:4px;display:block;margin-top:.5rem;word-break:break-all;color:#495057}.purchase-info-success{margin-top:1rem;padding:1rem;background:#d1e7dd;border-radius:6px;border:2px solid #badbcc}.purchase-info-success h5{margin:0 0 1rem;color:#0f5132}.purchase-details{display:flex;flex-direction:column;gap:.5rem}.purchase-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#fff;border-radius:4px}.purchase-row span{color:#495057;font-size:.95rem}.purchase-row strong{color:#212529;font-weight:600}.purchase-info-missing{margin-top:1rem;padding:1rem;background:#f8d7da;border-radius:6px;border:2px solid #f5c2c7;color:#842029;text-align:center}.ml-section{border-left-color:#9b59b6!important}.ml-stores{margin-top:1rem}.ml-stores strong{color:#212529}.ml-stores ul{list-style:none;padding:0;margin:.5rem 0 0}.ml-stores li{padding:.5rem;background:#fff;border-radius:4px;margin-bottom:.25rem;display:flex;justify-content:space-between;color:#212529}.probability{font-weight:600;color:var(--bs-primary, #0d6efd)}.summary-section{border-left-color:#28a745!important}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.stat-box{background:#fff;padding:1rem;border-radius:8px;text-align:center;box-shadow:0 2px 4px #0000001a}.stat-value{font-size:2rem;font-weight:700;color:var(--bs-primary, #0d6efd);margin-bottom:.5rem}.stat-label{font-size:.85rem;color:var(--bs-secondary, #6c757d);text-transform:uppercase;letter-spacing:.5px}.scan-results-footer{padding:1rem 1.5rem;border-top:2px solid var(--bs-border-color, #dee2e6);display:flex;justify-content:flex-end}.close-button-footer{padding:.75rem 2rem;background:var(--bs-primary, #0d6efd);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.close-button-footer:hover{background:var(--bs-primary-dark, #0b5ed7);transform:translateY(-2px);box-shadow:0 4px 8px #0003}@media(prefers-color-scheme:dark){.scan-results-panel{background:#212529}.results-section{background:#343a40}.result-item,.result-row,.purchase-row,.ml-stores li,.stat-box,.gmail-query code{background:#2c3136}}@media(max-width:768px){.scan-results-panel{width:95%;max-height:95vh}.scan-results-header,.scan-results-content{padding:1rem}.results-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}}.gmail-refinement-section{margin-top:1rem}.failed-query{margin:.5rem 0;padding:.75rem;background:var(--bs-light, #f8f9fa);border-radius:6px;font-size:.9em}.failed-query code{display:block;margin-top:.5rem;padding:.5rem;background:#fff;border-radius:4px;word-break:break-all;font-family:Courier New,monospace;font-size:.85em}.refinement-form{margin-top:1rem;padding:1rem;background:var(--bs-light, #f8f9fa);border-radius:8px;border:2px dashed var(--bs-primary, #0d6efd)}.refinement-form label{display:block;margin-bottom:.75rem;color:var(--bs-dark, #212529)}.refinement-form label small{color:var(--bs-secondary, #6c757d);font-weight:400}.refinement-input-group{display:flex;gap:.5rem;margin-bottom:1rem}.refinement-input{flex:1;padding:.75rem;border:2px solid var(--bs-border-color, #dee2e6);border-radius:6px;font-size:1em;font-family:Courier New,monospace}.refinement-input:focus{outline:none;border-color:var(--bs-primary, #0d6efd);box-shadow:0 0 0 3px #0d6efd1a}.refinement-input:disabled{background:var(--bs-light, #f8f9fa);cursor:not-allowed}.refinement-button{padding:.75rem 1.5rem;background:var(--bs-primary, #0d6efd);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.refinement-button:hover:not(:disabled){background:var(--bs-primary-dark, #0b5ed7);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.refinement-button:disabled{background:var(--bs-secondary, #6c757d);cursor:not-allowed;opacity:.6}.refinement-error{padding:.75rem;background:#f8d7da;color:#842029;border-radius:6px;margin-top:.5rem;font-weight:500}.refinement-tips li{margin-bottom:.25rem;color:var(--bs-secondary, #6c757d)}.refinement-tips code{padding:.125rem .375rem;background:var(--bs-light, #f8f9fa);border-radius:3px;font-family:Courier New,monospace;font-size:.9em}.refinement-success{margin-top:1rem;padding:1rem;background:#d1e7dd;border-radius:8px;border:2px solid #badbcc}.refinement-success h5{margin:0 0 1rem;color:#0f5132}.learned-info{padding:.5rem;margin-bottom:.5rem;background:#fff;border-radius:4px;font-size:.9em}.learned-info strong{color:var(--bs-dark, #212529);margin-right:.5rem}.learned-message{margin-top:1rem;padding:.75rem;background:#fff;border-radius:4px;border-left:4px solid #198754;font-style:italic;color:var(--bs-success, #198754);font-weight:500}.ocr-refinement-section{margin-top:1.5rem;padding:1.5rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;border:2px solid var(--bs-primary, #0d6efd)}.ocr-refinement-section h4{margin:0 0 .5rem;color:var(--bs-primary, #0d6efd);font-size:1.1em}.refinement-help{margin:0 0 1rem;color:var(--bs-secondary, #6c757d);font-size:.9em;line-height:1.5}.editable-fields-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.editable-field-row{background:#fff;padding:.75rem;border-radius:6px;border:1px solid var(--bs-border-color, #dee2e6);transition:all .2s}.editable-field-row:hover{border-color:var(--bs-primary, #0d6efd);box-shadow:0 2px 8px #0d6efd1a}.field-label-section{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.field-label-section strong{color:var(--bs-dark, #212529);font-size:.95em}.refined-badge{display:inline-block;padding:.125rem .5rem;background:#d1e7dd;color:#0f5132;border-radius:12px;font-size:.75em;font-weight:600}.field-display-section{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.field-value{flex:1;font-family:Courier New,monospace;font-size:.95em;color:var(--bs-dark, #212529)}.edit-field-button{padding:.375rem .75rem;background:var(--bs-primary, #0d6efd);color:#fff;border:none;border-radius:4px;font-size:.85em;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.edit-field-button:hover{background:var(--bs-primary-dark, #0b5ed7);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.field-edit-section{margin-top:.5rem;padding:.75rem;background:var(--bs-light, #f8f9fa);border-radius:4px}.edit-input-group{display:flex;gap:.5rem;margin-bottom:.5rem}.field-edit-input{flex:1;padding:.5rem;border:2px solid var(--bs-border-color, #dee2e6);border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.field-edit-input:focus{outline:none;border-color:var(--bs-primary, #0d6efd);box-shadow:0 0 0 3px #0d6efd1a}.field-edit-input:disabled{background:var(--bs-light, #f8f9fa);cursor:not-allowed;opacity:.6}.save-correction-button{padding:.5rem 1rem;background:#198754;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.save-correction-button:hover:not(:disabled){background:#157347;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.save-correction-button:disabled{background:var(--bs-secondary, #6c757d);cursor:not-allowed;opacity:.6}.cancel-edit-button{padding:.5rem .75rem;background:var(--bs-secondary, #6c757d);color:#fff;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-edit-button:hover:not(:disabled){background:#5c636a}.cancel-edit-button:disabled{opacity:.6;cursor:not-allowed}.field-refinement-error{padding:.5rem;background:#f8d7da;color:#842029;border-radius:4px;font-size:.85em;font-weight:500}.field-refinement-success{margin-top:.75rem;padding:1rem;background:#d1e7dd;border-radius:6px;border:2px solid #badbcc}.success-header{margin-bottom:.75rem;color:#0f5132}.learned-details{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.learned-item{padding:.375rem .5rem;background:#fff;border-radius:4px;font-size:.85em}.learned-item strong{color:var(--bs-dark, #212529);margin-right:.5rem}.learned-message{padding:.75rem;background:#fff;border-radius:4px;border-left:4px solid #198754;font-style:italic;color:#198754;font-weight:500;font-size:.9em}.refinement-tips{margin-top:1rem;padding:1rem;background:#fff;border-radius:6px;border-left:4px solid var(--bs-info, #0dcaf0)}.refinement-tips strong{display:block;margin-bottom:.5rem;color:var(--bs-info, #0dcaf0)}.refinement-tips ul{margin:0;padding-left:1.5rem;list-style-type:disc}.refinement-tips li{margin-bottom:.25rem;color:var(--bs-secondary, #6c757d);font-size:.9em}.refinement-tips kbd{display:inline-block;padding:.125rem .375rem;background:var(--bs-light, #f8f9fa);border:1px solid var(--bs-border-color, #dee2e6);border-radius:3px;font-family:monospace;font-size:.85em;box-shadow:0 1px 2px #0000001a}.box-label-scanner{margin:20px 0;padding:16px;background:#f8f9fa;border-radius:12px;border:2px dashed #007bff}.scanner-buttons{display:flex;gap:12px;justify-content:center}.btn-scanner{flex:1;max-width:200px;padding:16px;background:#fff;border:2px solid #007bff;border-radius:12px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:8px}.btn-scanner:hover:not(:disabled){background:#007bff;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #007bff4d}.btn-scanner:disabled{opacity:.5;cursor:not-allowed}.btn-scanner .icon{font-size:32px}.btn-scanner .label{font-size:16px;font-weight:600}.btn-scanner .hint{font-size:12px;color:#666}.btn-scanner:hover:not(:disabled) .hint{color:#fff}.scanner-progress{display:flex;flex-direction:column;gap:16px;align-items:center}.scanner-preview{width:100%;max-width:400px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #0000001a}.scanner-preview img{width:100%;height:auto;display:block}.progress-info{width:100%;max-width:400px}.progress-text{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#007bff;margin-bottom:8px}.progress-text .icon{font-size:20px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.progress-bar{height:12px;background:#e9ecef;border-radius:6px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);border-radius:6px;transition:width .3s ease;box-shadow:0 0 8px #007bff80}.scanner-success{text-align:center;padding:20px;animation:fadeIn .5s ease}.success-icon{font-size:48px;margin-bottom:12px;animation:bounceIn .6s ease}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.scanner-success p{font-size:18px;font-weight:600;color:#28a745;margin:0 0 8px}.scanner-success small{color:#666;font-size:14px}@media(max-width:768px){.scanner-buttons{flex-direction:column}.btn-scanner{max-width:none}.btn-scanner .icon{font-size:40px}.btn-scanner .label{font-size:18px}}.train-model-form{background:#fff;min-height:100vh}.mode-toggle{display:flex;gap:0;padding:16px;background:#fff;border-bottom:1px solid #dee2e6;position:sticky;top:56px;z-index:99}.mode-toggle button{flex:1;padding:12px;border:1px solid #0a4ba3;background:#fff;color:#0a4ba3;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px}.mode-toggle button:first-child{border-radius:8px 0 0 8px}.mode-toggle button:last-child{border-radius:0 8px 8px 0}.mode-toggle button.active{background:#0a4ba3;color:#fff}.mode-toggle button:not(.active):active{background:#f0f0f0}.form-section{padding:20px 16px;border-bottom:1px solid #e9ecef}.form-section h2{font-size:18px;font-weight:600;color:#333;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #0a4ba3}.section-hint{font-size:13px;color:#6c757d;margin:-8px 0 16px}input,select,textarea{width:100%;padding:12px;border:1px solid #ced4da;border-radius:8px;font-size:16px;font-family:inherit;background:#fff;color:#333;-webkit-appearance:none;appearance:none;min-height:44px}input:focus,select:focus,textarea:focus{outline:none;border-color:#0a4ba3;box-shadow:0 0 0 3px #0a4ba31a}input:disabled,select:disabled,textarea:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}textarea{resize:vertical;min-height:100px;line-height:1.5}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.checkbox-group{display:flex;flex-direction:column;gap:12px;margin:16px 0}.checkbox-group label{display:flex;align-items:center;gap:12px;cursor:pointer;padding:12px;min-height:44px;background:#f8f9fa;border-radius:8px;border:2px solid #dee2e6;transition:all .2s;position:relative}.checkbox-group label:hover{background:#e9ecef;border-color:#0a4ba3}.checkbox-group label:has(input[type=checkbox]:checked){background:#e7f3ff;border-color:#0a4ba3}.checkbox-group input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.checkbox-group input[type=checkbox]+span:before{content:"";display:inline-block;width:24px;height:24px;min-width:24px;min-height:24px;margin-right:12px;border:2px solid #6c757d;border-radius:4px;background:#fff;vertical-align:middle;transition:all .2s;position:relative;flex-shrink:0}.checkbox-group input[type=checkbox]:checked+span:before{background-color:#0a4ba3;border-color:#0a4ba3}.checkbox-group input[type=checkbox]:checked+span:after{content:"";position:absolute;left:9px;top:50%;width:6px;height:12px;border:solid white;border-width:0 3px 3px 0;transform:translateY(-60%) rotate(45deg)}.checkbox-group input[type=checkbox]:checked+span{font-weight:600;color:#0a4ba3}.checkbox-group span{flex:1;font-size:15px;color:#333;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center}.form-actions{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:12px 16px;box-shadow:0 -2px 8px #0000001a;display:flex;gap:12px;z-index:100}.form-actions button{flex:1;padding:14px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;min-height:48px;transition:all .2s}.btn-cancel{background:#fff;color:#6c757d;border:2px solid #6c757d}.btn-cancel:active:not(:disabled){background:#f8f9fa}.btn-submit{background:#0a4ba3;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-submit:active:not(:disabled){background:#083a7e}.btn-submitting{background:#0a4ba3}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-submit:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.form-section{padding:16px}.form-section h2,input,select,textarea{font-size:16px}}@media(min-width:769px){.train-model-form{max-width:800px;margin:0 auto;border-radius:0 0 12px 12px;box-shadow:0 2px 8px #0000001a}.form-actions{position:static;box-shadow:none;border-top:1px solid #e9ecef;justify-content:flex-end}.form-actions button{flex:0 0 auto;min-width:140px}}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #0a4ba3;outline-offset:2px}.gmail-connect{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;margin:1rem 0}.gmail-header{margin-bottom:1.5rem}.gmail-header h3{font-size:1.25rem;margin-bottom:.5rem;color:#212529}.gmail-description{font-size:.9rem;color:#495057;margin:0}.gmail-status{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:6px;margin-bottom:1rem}.gmail-status.loading{background:#f8f9fa;justify-content:center}.gmail-status.connected{background:#d4edda;border:1px solid #c3e6cb}.gmail-status.disconnected{background:#f8f9fa;border:1px solid #dee2e6}.status-indicator{display:flex;align-items:flex-start;gap:.75rem;flex:1}.status-icon{font-size:1.5rem;line-height:1}.status-details{flex:1}.status-details strong{display:block;font-size:1rem;margin-bottom:.25rem;color:#212529}.status-details p{margin:.25rem 0 0;font-size:.875rem;color:#495057}.gmail-email{font-weight:500;color:#212529}.status-valid{color:#28a745}.status-invalid{color:#dc3545;font-weight:500}.last-used{font-size:.8rem;color:#6c757d}.gmail-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;margin-bottom:1rem;font-size:.9rem}.error-icon{font-size:1.2rem}.gmail-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #dee2e6}.gmail-info h4{font-size:1rem;margin-bottom:.75rem;color:#212529}.gmail-info ul{list-style:none;padding:0;margin:0}.gmail-info li{font-size:.875rem;color:#495057;padding:.25rem 0 .25rem 1.25rem;position:relative}.gmail-info li:before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700}.spinner-small{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(0,0,0,.1);border-left-color:#007bff;border-radius:50%;animation:spin .8s linear infinite}.gmail-connect-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;margin:1rem 0}.gmail-connect-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.gmail-icon{width:32px;height:32px;color:#ea4335}.gmail-connect-header h3{margin:0;font-size:1.25rem;color:#333}.status-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:600}.status-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.status-dot.connected{background:#34a853;box-shadow:0 0 8px #34a85366}.status-dot.disconnected{background:#9e9e9e}.status-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:.75rem;margin-bottom:1rem;color:#856404;font-size:.9rem}.gmail-help-text{color:#666;font-size:.95rem;line-height:1.5;margin-bottom:1rem}.gmail-benefits{list-style:none;padding:0;margin:1rem 0}.gmail-benefits li{padding:.5rem 0;color:#555;font-size:.9rem}.btn-connect,.btn-disconnect{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-connect{background:#4285f4;color:#fff}.btn-connect:hover{background:#357ae8;transform:translateY(-1px);box-shadow:0 4px 12px #4285f44d}.btn-connect:active{transform:translateY(0)}.btn-disconnect{background:#f8f9fa;color:#666;border:1px solid #ddd}.btn-disconnect:hover{background:#e9ecef;color:#333;border-color:#adb5bd}.btn-icon{width:20px;height:20px;fill:currentColor}@media(prefers-color-scheme:dark){.gmail-connect-card{background:#2b2b2b;box-shadow:0 2px 8px #0006}.gmail-connect-header{border-bottom-color:#444}.gmail-connect-header h3{color:#e0e0e0}.gmail-help-text,.gmail-benefits li{color:#b0b0b0}.btn-disconnect{background:#333;color:#e0e0e0;border-color:#555}.btn-disconnect:hover{background:#404040;border-color:#666}.status-warning{background:#3d3315;border-color:#651;color:#ffca28}}@media(max-width:768px){.gmail-connect-card{padding:1rem}.gmail-connect-header h3{font-size:1.1rem}.btn-connect,.btn-disconnect{font-size:.95rem;padding:.65rem 1.25rem}}.add-train-container{min-height:100vh;background:#f5f5f5;padding-bottom:80px}.add-train-header{position:sticky;top:0;z-index:100;background:#0a4ba3;color:#fff;padding:12px 16px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 4px #0000001a}.add-train-header h1{margin:0;font-size:20px;font-weight:600;flex:1}.back-button{background:transparent;border:none;color:#fff;font-size:18px;padding:8px;cursor:pointer;display:flex;align-items:center;min-width:44px;min-height:44px;justify-content:center}.back-button:active{opacity:.7}.add-train-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;text-align:center}.spinner{width:48px;height:48px;border:4px solid #f3f3f3;border-top:4px solid #0a4ba3;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(10,75,163,.3);border-top-color:#0a4ba3;border-radius:50%;animation:spin .8s linear infinite}.add-train-error{padding:24px;text-align:center;max-width:500px;margin:40px auto}.add-train-error h2{color:#dc3545;margin-bottom:16px}.add-train-error p{color:#666;margin-bottom:24px}.btn-retry,.btn-cancel{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;min-width:120px;min-height:44px;margin:8px}.btn-retry{background:#0a4ba3;color:#fff}.btn-retry:active{background:#083a7e}.btn-cancel{background:#6c757d;color:#fff}.btn-cancel:active{background:#5a6268}.add-train-success{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;text-align:center;animation:fadeIn .3s ease-in}.success-icon{font-size:64px;margin-bottom:24px;animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.add-train-success h2{color:#28a745;margin-bottom:8px}.add-train-success p{color:#666}.error-banner{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px 16px;margin:16px;border-radius:8px;font-size:14px}.error-banner strong{font-weight:600}.upload-progress-banner{background:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:12px 16px;margin:16px;border-radius:8px;font-size:14px}.upload-progress-banner .progress-text{font-weight:600;margin-bottom:8px}.upload-progress-banner .progress-bar{height:8px;background:#c3e6cb;border-radius:4px;overflow:hidden}.upload-progress-banner .progress-fill{height:100%;background:#28a745;border-radius:4px;transition:width .3s ease}.upload-progress-banner .progress-fill-pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@media(max-width:768px){.add-train-container{padding-bottom:100px}.add-train-header h1{font-size:18px}}@media(min-width:769px){.add-train-container{max-width:800px;margin:0 auto;padding-top:20px}.add-train-header{border-radius:12px 12px 0 0}}.analytics-container{background-color:#000;color:#fff;min-height:100vh;padding:40px 20px}.analytics-header{text-align:center;margin-bottom:50px}.analytics-title{color:#fff;font-size:2.8em;margin:0 0 12px;font-weight:700;letter-spacing:-1px}.analytics-subtitle{color:#999;font-size:1.1em;margin:0;font-weight:400}.analytics-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#fff}.analytics-loading .spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:#1a7fd9;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.analytics-loading p{font-size:1.2em;color:#ccc}.analytics-error{background-color:#3d1a1a;border:1px solid #721c24;color:#f8d7da;padding:16px 20px;border-radius:8px;margin-bottom:30px;text-align:center}.analytics-error strong{display:block;margin-bottom:8px;font-size:1.1em}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:50px;max-width:1400px;margin-left:auto;margin-right:auto}.kpi-box{background:linear-gradient(135deg,#1a2332,#0a0f1a);border:1px solid rgba(26,127,217,.2);border-radius:12px;padding:28px 24px;text-align:center;box-shadow:0 4px 15px #0000004d;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.kpi-box:hover{transform:translateY(-4px);border-color:#1a7fd966;box-shadow:0 8px 25px #1a7fd926}.kpi-value{font-size:2.5em;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,#1a7fd9,#0056b3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.kpi-label{color:#999;font-size:.95em;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.charts-grid{display:grid;grid-template-columns:1fr;gap:30px;max-width:1400px;margin:0 auto 50px}.chart-card{background:linear-gradient(135deg,#1a2332,#0a0f1a);border:1px solid rgba(26,127,217,.2);border-radius:12px;padding:30px;box-shadow:0 4px 15px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chart-card-full{grid-column:1 / -1}.chart-card-half{grid-column:span 1}@media(min-width:1024px){.charts-grid{grid-template-columns:1fr 1fr}.chart-card-full{grid-column:1 / -1}}.chart-wrapper{position:relative;min-height:400px}.donut-center-text{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:10;pointer-events:none}.donut-center-text .total-number{font-size:3.2em;font-weight:700;color:#1a7fd9;line-height:1}.donut-center-text .total-label{font-size:.95em;color:#999;margin-top:8px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-bottom:30px;max-width:1400px;margin-left:auto;margin-right:auto}.chart-container{background:linear-gradient(135deg,#1a2332,#0a0f1a);border:1px solid rgba(26,127,217,.2);padding:24px;border-radius:12px;min-height:400px;display:flex;flex-direction:column;box-shadow:0 4px 15px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chart-container.full-width{grid-column:1 / -1}.chart-container h4{text-align:center;margin:0 0 20px;color:#fff;font-weight:600;font-size:1.3em}.chart-wrapper{flex:1;min-height:0;position:relative}.chart-loading,.chart-error,.chart-no-data{display:flex;align-items:center;justify-content:center;height:100%;min-height:300px;color:#666;font-size:1.1em}.chart-error{color:#dc3545;flex-direction:column;text-align:center;padding:20px}.chart-no-data{color:#999}@media(max-width:1200px){.charts-grid{grid-template-columns:1fr}.chart-card-half{grid-column:1 / -1}.chart-row{grid-template-columns:1fr}.chart-container{min-height:350px}}@media(max-width:768px){.analytics-container{padding:20px 10px}.analytics-title{font-size:2em;margin-bottom:20px}.analytics-subtitle{font-size:1em}.kpi-row{grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:30px}.kpi-box{padding:20px 16px}.kpi-value{font-size:1.8em}.kpi-label{font-size:.85em}.charts-grid{gap:20px;padding:0}.chart-card{padding:20px}.chart-row{gap:20px}.chart-container{padding:16px;min-height:300px}.chart-container h4{font-size:1.1em;margin-bottom:16px}}@media(max-width:480px){.analytics-title{font-size:1.5em}.kpi-row{grid-template-columns:1fr;gap:12px}.kpi-box{padding:16px 12px}.kpi-value{font-size:1.8em}.kpi-label{font-size:.8em}.chart-card{padding:16px}.chart-container{padding:12px;min-height:250px}.donut-center-text .total-number{font-size:2.2em}.donut-center-text .total-label{font-size:.85em}}.analytics-dashboard-container{max-width:100%;width:100%;margin:0 auto;padding:2rem}.analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.analytics-header h1{font-size:2rem;font-weight:700;margin:0;color:#333}.analytics-subtitle{color:#666;margin:.25rem 0 0;font-size:.95rem}.time-range-selector{display:flex;gap:.5rem;background:#f8f9fa;padding:.25rem;border-radius:8px}.time-range-selector button{padding:.5rem 1rem;border:none;background:transparent;color:#666;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.time-range-selector button:hover{background:#e9ecef;color:#333}.time-range-selector button.active{background:#0d6efd;color:#fff}.metrics-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1rem;margin-bottom:2rem}.metric-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:all .2s}.metric-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.metric-icon{font-size:2.5rem;line-height:1}.metric-content h3{font-size:.85rem;color:#666;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .25rem}.metric-value{font-size:1.75rem;font-weight:700;color:#333;margin:0}.charts-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-bottom:2rem}.chart-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000d}.chart-card.col-12{grid-column:span 12}.chart-card.col-6{grid-column:span 6}.chart-card.col-4{grid-column:span 4}.chart-card.col-3{grid-column:span 3}.chart-card.full-width{grid-column:1 / -1}.searches-section,.sources-section,.flow-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.searches-section h2,.sources-section h2,.flow-section h2{font-size:1.25rem;margin:0 0 1rem;color:#333}.flow-description{color:#666;margin:-.5rem 0 1rem;font-size:.95rem}.searches-list,.sources-list,.flow-list{display:flex;flex-direction:column;gap:.75rem}.search-item,.source-item,.flow-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#f8f9fa;border-radius:8px;transition:background .2s}.search-item:hover,.source-item:hover,.flow-item:hover{background:#e9ecef}.search-rank,.flow-rank{font-weight:700;color:#0d6efd;min-width:2rem}.search-query,.source-name{flex:1;font-weight:500;color:#333}.search-count,.source-count,.flow-count{color:#666;font-size:.9rem}.flow-path{flex:1;display:flex;align-items:center;gap:.75rem;font-size:.9rem}.flow-from,.flow-to{color:#333;font-family:Courier New,monospace;background:#fff;padding:.25rem .5rem;border-radius:4px;border:1px solid #dee2e6}.flow-arrow{color:#0d6efd;font-weight:700;font-size:1.1rem}.analytics-loading,.analytics-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.analytics-loading .spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #0d6efd;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.analytics-error h2{color:#dc3545;margin-bottom:.5rem}.analytics-error p{color:#666}@media(max-width:1200px){.metrics-grid{grid-template-columns:repeat(4,1fr)}.chart-card.col-8,.chart-card.col-6{grid-column:span 12}.chart-card.col-4{grid-column:span 6}}@media(max-width:768px){.analytics-dashboard-container{padding:1rem}.analytics-header{flex-direction:column;align-items:flex-start}.analytics-header h1{font-size:1.5rem}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.metric-card{padding:1rem}.metric-icon{font-size:2rem}.metric-value{font-size:1.5rem}.charts-grid{grid-template-columns:1fr}.chart-card,.chart-card.col-12,.chart-card.col-8,.chart-card.col-6,.chart-card.col-4,.chart-card.col-3{grid-column:span 1;padding:1rem}.time-range-selector{width:100%;justify-content:stretch}.time-range-selector button{flex:1;font-size:.9rem;padding:.4rem .75rem}.flow-path{flex-direction:column;align-items:flex-start;gap:.25rem}.flow-arrow{transform:rotate(90deg)}}@media(max-width:480px){.metrics-grid{grid-template-columns:1fr}.search-item,.source-item,.flow-item{flex-wrap:wrap}.search-query,.source-name,.flow-path{width:100%}}.analytics-private-page{width:1400px!important;max-width:100%!important;margin:0 auto!important;padding:2rem;background-color:#000;color:#fff;box-sizing:border-box}.analytics-private-container h2{text-align:center;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.dashboard-subtitle{text-align:center;color:#999;margin-bottom:2rem;font-size:1.1rem}.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);column-gap:1rem;row-gap:1rem;margin-bottom:2rem;width:100%;max-width:1300px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box;overflow:hidden}.kpi-box{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #333;border-radius:12px;padding:1.5rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.kpi-box:hover{transform:translateY(-5px);box-shadow:0 8px 20px #7c4dff4d}.kpi-box h4{margin:0 0 .5rem;font-size:.9rem;color:#999;text-transform:uppercase;letter-spacing:1px}.kpi-box p{margin:0;font-size:2.2rem;font-weight:700;background:linear-gradient(135deg,#7c4dff,#b47cff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.kpi-financial p{background:linear-gradient(135deg,#00c853,#64dd17);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem;width:100%;box-sizing:border-box}@media(max-width:1199px){.charts-grid{grid-template-columns:1fr}}@media(max-width:767px){.charts-grid{grid-template-columns:1fr}}.chart-row-wide{display:none}.chart-container-wide{background-color:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 10px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.chart-container-wide:hover{transform:translateY(-3px);box-shadow:0 8px 20px #7c4dff66}.chart-container-wide h4{margin:0 0 .5rem;color:#333;font-size:1.3rem;font-weight:600;border-bottom:2px solid #7C4DFF;padding-bottom:.5rem}.chart-subtitle{margin:0 0 1rem;color:#666;font-size:.9rem;font-style:italic}.chart-container-gauge{background-color:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 10px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.chart-container-gauge:hover{transform:translateY(-3px);box-shadow:0 8px 20px #7c4dff66}.chart-container-gauge h4{margin:0 0 .5rem;color:#333;font-size:1.3rem;font-weight:600;border-bottom:2px solid #7C4DFF;padding-bottom:.5rem}.loading-spinner,.error-message{text-align:center;padding:4rem 2rem}.spinner{border:4px solid rgba(255,255,255,.1);border-top:4px solid #7C4DFF;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 1rem}.error-message{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:1px solid #f44336;border-radius:12px;padding:2rem;max-width:600px;margin:2rem auto}.error-message h3{color:#f44336;margin-bottom:1rem}.error-message p{color:#ccc;font-size:1.1rem}.chart-wrapper{width:100%;height:auto}.chart-no-data{text-align:center;padding:3rem;color:#666;font-size:1.1rem;font-style:italic}@media(max-width:1200px){.kpi-row{grid-template-columns:repeat(3,1fr)}.chart-row-wide{grid-template-columns:1fr}.analytics-private-container h2{font-size:2rem}}@media(max-width:768px){.analytics-private-container{padding:1rem}.kpi-row{grid-template-columns:repeat(2,1fr);gap:1rem}.kpi-box{padding:1rem}.kpi-box h4{font-size:.8rem}.kpi-box p{font-size:1.5rem}.chart-container-wide{padding:1rem}.chart-container-wide h4{font-size:1.1rem}.analytics-private-container h2{font-size:1.5rem}.dashboard-subtitle{font-size:.9rem}}@media(max-width:501px){.kpi-row{grid-template-columns:1fr}.kpi-box p{font-size:1.8rem}}.ml-analytics-container{padding:2rem;max-width:1600px;margin:0 auto;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#e0e0e0}.ml-analytics-header{text-align:center;margin-bottom:3rem;padding:2rem 0;border-bottom:2px solid rgba(255,255,255,.1)}.ml-analytics-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ml-analytics-header .subtitle{font-size:1.1rem;color:#b0b0b0;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:linear-gradient(135deg,#2d3561,#1f2544);padding:1.5rem;border-radius:12px;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 20px #0000004d;transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(255,255,255,.05)}.stat-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #667eea4d}.stat-icon{font-size:2.5rem;opacity:.9}.stat-content h3{margin:0 0 .5rem;font-size:.9rem;color:#b0b0b0;text-transform:uppercase;letter-spacing:1px;font-weight:600}.stat-content p,.stat-value{margin:0;font-size:2rem;font-weight:700;color:#fff}.ml-analytics-container .charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,450px),1fr));gap:2rem;margin-bottom:3rem;width:100%;max-width:100%}.ml-analytics-container .chart-card{background:linear-gradient(135deg,#2d3561,#1f2544);padding:1.5rem;border-radius:12px;box-shadow:0 4px 20px #0000004d;border:1px solid rgba(255,255,255,.05);min-width:0;overflow:hidden}.manufacturer-table-section{margin-bottom:3rem}.manufacturer-table-section h2{margin-bottom:1.5rem;font-size:1.8rem;font-weight:600}.table-container{background:linear-gradient(135deg,#2d3561,#1f2544);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000004d;border:1px solid rgba(255,255,255,.05)}.manufacturer-table{width:100%;border-collapse:collapse}.manufacturer-table thead{background:linear-gradient(135deg,#667eea,#764ba2)}.manufacturer-table th{padding:1rem;text-align:left;font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:1px;color:#fff}.manufacturer-table tbody tr{border-bottom:1px solid rgba(255,255,255,.05);transition:background-color .2s ease}.manufacturer-table tbody tr:hover{background-color:#667eea1a}.manufacturer-table td{padding:1rem;color:#e0e0e0}.manufacturer-name{font-weight:600;color:#fff}.success-badge{padding:.4rem .8rem;border-radius:6px;font-weight:600;font-size:.9rem;display:inline-block}.success-badge.high{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.success-badge.medium{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.success-badge.low{background:linear-gradient(135deg,#f44336,#e53935);color:#fff}.confidence-bar-container{position:relative;width:100%;height:24px;background:#ffffff1a;border-radius:12px;overflow:hidden}.confidence-bar{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#2196f3,#21cbf3);border-radius:12px;transition:width .5s ease}.confidence-text{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.85rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.experience-badge{padding:.4rem .8rem;border-radius:6px;font-weight:600;font-size:.85rem;text-transform:capitalize;display:inline-block}.experience-badge.expert{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.experience-badge.experienced{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.experience-badge.learning{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.experience-badge.beginner{background:linear-gradient(135deg,#607d8b,#455a64);color:#fff}.threshold-value{font-weight:600;color:#fff}.trends-section{margin-bottom:3rem}.trends-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.trend-card{background:linear-gradient(135deg,#2d3561,#1f2544);padding:1.5rem;border-radius:12px;box-shadow:0 4px 20px #0000004d;border:1px solid rgba(255,255,255,.05)}.trend-card h3{margin:0 0 1rem;font-size:1.2rem;font-weight:600;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.trend-card.improving h3{color:#4caf50}.trend-card.stable h3{color:#2196f3}.trend-card.declining h3{color:#f44336}.trend-card ul{list-style:none;padding:0;margin:0}.trend-card li{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.trend-card li:last-child{border-bottom:none}.trend-card strong{color:#fff}.trend-card .velocity{color:#4caf50;font-weight:600}.trend-card .confidence{color:#2196f3;font-weight:600}.trend-card .decline{color:#f44336;font-weight:600}.safety-limits-section{margin-bottom:3rem}.safety-limits-section h2{margin-bottom:1.5rem;font-size:1.8rem;font-weight:600}.limits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.limit-card{background:linear-gradient(135deg,#2d3561,#1f2544);padding:1.5rem;border-radius:12px;box-shadow:0 4px 20px #0000004d;border:1px solid rgba(255,255,255,.05);transition:transform .3s ease}.limit-card:hover{transform:translateY(-3px)}.limit-icon{font-size:2rem;margin-bottom:.75rem}.limit-content h4{margin:0 0 .5rem;font-size:1rem;color:#b0b0b0;text-transform:uppercase;letter-spacing:1px;font-weight:600}.limit-value{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:#fff}.limit-desc{margin:0;font-size:.9rem;color:#b0b0b0}.loading-spinner,.error-message,.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.spinner{border:4px solid rgba(255,255,255,.1);border-top:4px solid #667eea;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message h2{color:#f44336;margin-bottom:1rem}.retry-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:1rem}.retry-button:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}@media(max-width:1200px){.ml-analytics-container .charts-grid{grid-template-columns:1fr}}@media(max-width:768px){.ml-analytics-container{padding:1rem}.ml-analytics-header h1{font-size:2rem}.stats-grid{grid-template-columns:1fr}.table-container{overflow-x:auto}.manufacturer-table{font-size:.85rem}.trends-grid,.limits-grid{grid-template-columns:1fr}}.projects-board-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.stat-item:last-child{border-bottom:none}.stat-label{font-size:.85rem;color:#95a5a6}.stat-value{font-size:1.25rem;font-weight:600;color:#3498db}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#6b7280;text-align:center;padding:2rem}.loading-state i,.error-state i,.empty-state i{font-size:3rem;margin-bottom:1rem;opacity:.5}.error-state i{color:#ef4444}.empty-state h3{margin:.5rem 0;font-size:1.25rem;color:#374151}.empty-state .btn{margin-top:1rem}.kanban-board{display:grid;grid-template-columns:repeat(4,328px);gap:1.5rem;padding:2rem;max-width:1640px;margin:0 auto;height:100%;overflow-x:auto;overflow-y:hidden;justify-content:center}.kanban-column{display:flex;flex-direction:column;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow:hidden;min-width:328px;height:calc(100vh - 120px)}.column-header{padding:1rem;background:#fff;border-top:3px solid #3498db;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}.column-title{display:flex;align-items:center;gap:.5rem}.column-title h3{margin:0;font-size:1rem;font-weight:600;color:#1f2937;flex:1}.column-title i{font-size:1.1rem;width:24px;text-align:center}.project-count{background:#e5e7eb;color:#6b7280;font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:12px;min-width:24px;text-align:center}.column-content{flex:1;padding:1rem;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:1rem;align-items:center}.empty-column{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#9ca3af;text-align:center}.empty-column i{font-size:2rem;margin-bottom:.5rem;opacity:.3}.empty-column p{margin:0;font-size:.875rem}.project-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0000000d;width:328px;height:195px;display:flex;flex-direction:column;flex-shrink:0}.project-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px);border-color:#3498db}.card-image{width:100%;height:80px;overflow:hidden;background:#f3f4f6;flex-shrink:0}.card-image img{width:100%;height:100%;object-fit:cover}.card-content{padding:.75rem;flex:1;display:flex;flex-direction:column;overflow:hidden}.card-title{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:#1f2937;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0}.card-category{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#6b7280;margin-bottom:.5rem;flex-shrink:0}.card-category i{font-size:.7rem}.card-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.priority-indicator{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;flex-shrink:0}.due-date{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#6b7280}.due-date i{font-size:.7rem}.card-stats{display:flex;justify-content:space-around;gap:.4rem;margin-top:auto}.card-stats .stat{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.7rem;color:#6b7280}.card-stats .stat i{font-size:.75rem}.card-stats .stat .stat-value{font-weight:600;font-size:.85rem;color:#1f2937}.card-stats .stat .stat-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.3px;color:#9ca3af}@media(max-width:1024px){.kanban-board{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.kanban-board{display:none!important}.mobile-status-accordion{padding:1rem;overflow-y:auto;height:100%}.mobile-status-section{margin-bottom:.75rem;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.mobile-status-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:#fff;border:none;border-left:4px solid transparent;cursor:pointer;transition:all .2s;min-height:64px;font-size:1rem}.mobile-status-header:active{background:#f9fafb}.mobile-status-header.expanded{background:#f9fafb;border-bottom:1px solid #e5e7eb}.mobile-status-left{display:flex;align-items:center;gap:.75rem}.mobile-status-left i{font-size:1.25rem}.mobile-status-label{font-weight:600;font-size:1.05rem;color:#1f2937}.mobile-status-right{display:flex;align-items:center;gap:1rem}.mobile-status-count{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 .5rem;background:#f3f4f6;border-radius:16px;font-weight:600;font-size:.9rem;color:#6b7280}.mobile-status-right i{font-size:1rem;color:#9ca3af}.mobile-status-content{animation:expandDown .25s ease}@keyframes expandDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mobile-project-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#fff;border:none;border-top:1px solid #e5e7eb;cursor:pointer;transition:all .2s;min-height:56px;text-align:left}.mobile-project-card:first-child{border-top:none}.mobile-project-card:active{background:#f9fafb}.mobile-project-title{flex:1;font-size:.95rem;font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:1rem}.mobile-project-card i{font-size:.875rem;color:#9ca3af;flex-shrink:0}.mobile-empty-status{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:#9ca3af}.mobile-empty-status i{font-size:2rem;margin-bottom:.5rem}.mobile-empty-status p{margin:0;font-size:.9rem}.projects-board-container{height:100%;overflow-y:auto}.loading-state,.error-state,.empty-state{padding:3rem 1rem}.loading-state i,.error-state i,.empty-state i{font-size:2.5rem}.empty-state h3{font-size:1.25rem}.empty-state p{font-size:.95rem}}@media(min-width:1440px){.projects-sidebar{width:320px}.kanban-board{gap:2rem;padding:2rem}.kanban-column{min-width:320px}.card-image{height:160px}}@media(min-width:1920px){.kanban-board{gap:2.5rem;padding:2.5rem}.kanban-column{min-width:360px}.card-image{height:180px}.card-title{font-size:1.1rem}}.project-form-page{max-width:900px;margin:0 auto;padding:2rem 1rem}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.form-header h1{margin:0;font-size:2rem;font-weight:700}.project-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;margin-bottom:1.5rem}.form-group label{font-weight:500;margin-bottom:.5rem;color:#212529}.required{color:#dc3545}.form-control,.form-select{padding:.75rem;border:1px solid #dee2e6;border-radius:4px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-control:focus,.form-select:focus{outline:none;border-color:#0d6efd;box-shadow:0 0 0 .2rem #0d6efd40}.field-error{color:#dc3545;font-size:.875rem;margin-top:.25rem}.alert{padding:1rem;border-radius:4px;margin-bottom:1.5rem}.alert-danger{background-color:#f8d7da;border:1px solid #f5c2c7;color:#842029}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid #dee2e6}.btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;text-align:center;text-decoration:none;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#0d6efd;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0b5ed7}.btn-outline-secondary{background-color:transparent;color:#6c757d;border:1px solid #6c757d}.btn-outline-secondary:hover{background-color:#6c757d;color:#fff}@media(max-width:768px){.form-header{flex-direction:column;align-items:flex-start;gap:1rem}.project-form{padding:1.5rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.btn{width:100%}}.modal-content,.modal-content .form-label,.modal-content label{color:#000!important}.modal-content .form-control{color:#000!important;background-color:#fff!important}.modal-content .input-group-text{color:#000!important;background-color:#e9ecef!important}.modal-content .text-muted,.modal-content small{color:#6c757d!important}.modal-body p{color:#000!important}.task-edit-modal .modal-body{padding:1.5rem}.task-edit-modal .form-label{font-weight:600;margin-bottom:.5rem}.task-edit-modal .form-text{font-size:.875rem}.task-edit-modal .invalid-feedback{display:block;font-size:.875rem}.task-quick-update{width:100%}.task-quick-update .task-btn-decrement,.task-quick-update .task-btn-increment{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.task-quick-update .task-btn-decrement:disabled,.task-quick-update .task-btn-increment:disabled{opacity:.4;cursor:not-allowed}.task-quick-update .task-count-input{flex:0 0 auto}.task-quick-update .task-count-input input{font-weight:600;border-right:0}.task-quick-update .task-count-input input:focus{box-shadow:none;border-color:#ced4da}.task-quick-update .badge{font-size:.875rem;padding:.375rem .5rem;min-width:48px}.task-quick-update .progress{border-radius:2px}@media(max-width:576px){.task-quick-update .task-btn-decrement,.task-quick-update .task-btn-increment{width:32px;height:32px}.task-quick-update .badge{font-size:.75rem;padding:.25rem .375rem;min-width:40px}}.project-detail-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f5f6fa}.project-detail-loading,.project-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.project-detail-loading i,.project-detail-error i{font-size:3rem;margin-bottom:1rem;color:#6b7280}.project-detail-error h2{margin-bottom:.5rem;color:#1f2937}.project-detail-error p{color:#6b7280;margin-bottom:1.5rem}.project-detail-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000000d;flex-shrink:0}.btn-back{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:#6b7280;font-size:.95rem;cursor:pointer;padding:.5rem 1rem;border-radius:6px;transition:all .2s}.btn-back:hover{background:#f3f4f6;color:#1f2937}.header-actions{display:flex;gap:.75rem}.btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.project-detail-content{flex:1;display:grid;grid-template-columns:280px 1fr;grid-template-rows:auto auto 1fr;gap:0;padding:0;overflow:auto}.project-detail-sidebar{grid-column:1;grid-row:1 / -1;display:flex;flex-direction:column;gap:1.5rem;padding:2rem 1rem;background:#f9fafb;border-right:1px solid #e5e7eb;overflow-y:auto}.project-image{border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 1px 3px #0000001a}.project-image img{width:100%;height:auto;display:block}.project-metadata,.project-stats,.project-dates{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000000d}.project-metadata h3,.project-stats h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1f2937}.metadata-item{margin-bottom:1.25rem}.metadata-item:last-child{margin-bottom:0}.metadata-item label{display:block;font-size:.85rem;font-weight:500;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.status-badge,.priority-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;color:#fff;font-size:.9rem;font-weight:500;width:fit-content}.category-value,.date-value,.budget-value{display:flex;align-items:center;gap:.5rem;color:#1f2937;font-size:.9rem}.text-muted{color:#9ca3af;font-style:italic}.progress-bar{width:100%;height:32px;background:#e5e7eb;border-radius:6px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2980b9);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.85rem;transition:width .3s ease}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-box{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.stat-box i{font-size:1.5rem;color:#3498db}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.25rem;font-weight:600;color:#1f2937}.stat-label{font-size:.75rem;color:#6b7280}.project-dates{display:flex;flex-direction:column;gap:.75rem}.date-info{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#6b7280}.date-info i{width:20px;text-align:center}.project-detail-main{grid-column:2;grid-row:1 / -1;display:grid;grid-template-rows:auto auto 1fr;background:#fff;overflow:hidden}.project-header{grid-row:1;padding:2rem;border-bottom:1px solid #e5e7eb}.project-header h1{margin:0;font-size:2rem;font-weight:700;color:#1f2937}.project-header .form-control-lg{font-size:2rem;font-weight:700;padding:.5rem;border:2px solid #e5e7eb;border-radius:6px;width:100%}.project-tabs{grid-row:2;display:flex;background:#f8f9fa;border-bottom:2px solid #e5e7eb;overflow-x:auto;overflow-y:hidden;padding:0 1rem;min-height:fit-content}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;color:#6b7280;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;position:relative;margin-bottom:-2px}.tab-button:hover:not(:disabled){color:#1f2937;background:#3498db0d}.tab-button.active{color:#3498db;background:#fff;border-bottom-color:#3498db;font-weight:600}.tab-button:disabled{opacity:.5;cursor:not-allowed}.tab-content{grid-row:3;padding:2rem;overflow-y:auto;background:#fff}.content-section{margin-bottom:2rem}.content-section:last-child{margin-bottom:0}.content-section h2{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:#1f2937}.description-text,.notes-text{color:#4b5563;line-height:1.6;white-space:pre-wrap}.form-control{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s}.form-control:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}textarea.form-control{resize:vertical;font-family:inherit}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-dialog.modal-lg{max-width:800px}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.btn-close{background:transparent;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer;padding:.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close:hover{background:#f3f4f6;color:#1f2937}.modal-body{padding:1.5rem}.modal-body p{margin-bottom:.75rem;color:#4b5563}.modal-body .text-danger{color:#dc3545;font-weight:500}.modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:#374151}.form-control{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;line-height:1.5;color:#1f2937;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{outline:none;border-color:#0d6efd;box-shadow:0 0 0 3px #0d6efd1a}.form-control::placeholder{color:#9ca3af}.row{display:flex;flex-wrap:wrap;margin-left:-.75rem;margin-right:-.75rem}.col-md-4,.col-md-6,.col-md-12{padding-left:.75rem;padding-right:.75rem}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-12{flex:0 0 100%;max-width:100%}.mb-3{margin-bottom:1rem}@media(max-width:768px){.col-md-4,.col-md-6{flex:0 0 100%;max-width:100%}}.visibility-checkbox-wrapper{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background-color:#f9fafb;border-radius:6px;border:1px solid #e5e7eb;cursor:pointer;position:relative}.visibility-checkbox-wrapper input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.visibility-checkbox-wrapper .checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;width:100%;position:relative}.visibility-checkbox-wrapper .checkbox-label:before{content:"";display:inline-block;width:20px;height:20px;min-width:20px;min-height:20px;margin-top:2px;border:2px solid #6c757d;border-radius:4px;background:#fff;transition:all .2s;flex-shrink:0}.visibility-checkbox-wrapper input[type=checkbox]:checked+.checkbox-label:before{background-color:#10b981;border-color:#10b981}.visibility-checkbox-wrapper input[type=checkbox]:checked+.checkbox-label:after{content:"";position:absolute;left:7px;top:6px;width:5px;height:10px;border:solid white;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.visibility-checkbox-wrapper .checkbox-text{flex:1;font-size:.875rem;-webkit-user-select:none;user-select:none;line-height:1.5;color:#374151}.visibility-checkbox-wrapper .checkbox-text strong{display:block;margin-bottom:.25rem}.visibility-checkbox-wrapper .checkbox-description{font-size:.8125rem;color:#6b7280;margin-top:.25rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{display:flex;align-items:center;gap:.5rem;margin:0}.table-responsive{overflow-x:auto}.parts-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;color:#1f2937}.parts-table thead{background:#f8f9fa}.parts-table th,.parts-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb;color:#1f2937}.parts-table th{font-weight:600;font-size:.875rem;text-transform:uppercase;color:#6b7280}.parts-table tbody tr:hover{background:#f9fafb}.parts-table code{background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;font-size:.875rem}.parts-table .badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.parts-table .badge-needed{background:#fef3c7;color:#92400e}.parts-table .badge-ordered{background:#dbeafe;color:#1e40af}.parts-table .badge-received{background:#d1fae5;color:#065f46}.updates-summary{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;color:#1f2937}.updates-timeline{display:flex;flex-direction:column;gap:1rem}.update-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem;transition:box-shadow .2s}.update-card:hover{box-shadow:0 4px 6px -1px #0000001a}.update-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:1rem}.update-header h4{margin:0;color:#1f2937;font-size:1.1rem}.update-meta{display:flex;gap:1rem;font-size:.875rem;color:#6b7280;white-space:nowrap}.update-meta i{margin-right:.25rem}.update-content{color:#4b5563;line-height:1.6}.update-content p{margin:0}.trains-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.train-card{border:1px solid #e2e5e9;border-radius:.5rem;background:#fff;height:100%;overflow:hidden;transition:box-shadow .15s ease,transform .15s ease}.train-card:hover{box-shadow:0 10px 24px #0000000f;transform:translateY(-1px)}.train-card-media{width:100%;height:180px;background:#f3f4f6;overflow:hidden;display:flex;align-items:center;justify-content:center}.train-card-img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;background-color:#fff}.train-card-body{padding:1rem 1rem 1.25rem}.train-card-title{margin:0 0 .75rem;color:#000;font-size:1.05rem;font-weight:600;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;line-height:1.3;max-height:2.6em}.train-details{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.train-detail-item{font-size:.875rem;color:#555;display:flex;align-items:baseline;gap:.5rem}.train-detail-item strong{color:#1f2937;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.upload-images-section{display:flex;flex-direction:column;gap:1rem}.upload-dropzone{border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;transition:all .3s ease;cursor:pointer}.upload-dropzone:hover{border-color:#0d6efd;background:#eff6ff}.upload-dropzone.dragging{border-color:#0d6efd;background:#dbeafe;border-width:3px;box-shadow:0 0 0 4px #0d6efd1a}.upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 2rem;color:#64748b;font-size:1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.upload-label i{font-size:3rem;color:#94a3b8;transition:color .2s}.upload-dropzone:hover .upload-label i,.upload-dropzone.dragging .upload-label i{color:#0d6efd}.upload-text{font-size:1rem;color:#475569;text-align:center}.upload-text strong{color:#0d6efd;font-weight:600}.upload-hint{font-size:.875rem;color:#94a3b8;text-align:center}.upload-status{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#eff6ff;border-radius:8px;color:#1e40af;font-size:.95rem}.selected-images-preview{padding:1rem;background:#f1f5f9;border-radius:8px}.selected-images-preview p{margin:0 0 .75rem;color:#334155;font-size:.95rem}.image-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.image-list li{padding:.5rem .75rem;background:#fff;margin-bottom:.5rem;border-radius:6px;font-size:.875rem;color:#475569;border:1px solid #e2e8f0}.train-detail-item code{background:#f3f4f6;padding:.2rem .4rem;border-radius:3px;font-size:.8rem;color:#374151}.train-card .btn{width:100%;text-align:center;font-size:.875rem}.project-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1rem}.gallery-item{position:relative;background:#f8f9fa;border-radius:8px;overflow:hidden;aspect-ratio:1;cursor:pointer;transition:transform .2s,box-shadow .2s}.gallery-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.gallery-delete-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background-color .2s;padding:0;font-weight:700;box-shadow:0 2px 4px #0000004d}.gallery-item:hover .gallery-delete-btn{opacity:1}.gallery-delete-btn:hover{background-color:#c82333}.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);color:#fff;padding:.75rem .5rem .5rem;font-size:.875rem;line-height:1.3}.mobile-detail-header,.mobile-tab-accordion{display:none}.mobile-hidden{display:flex!important}@media(max-width:768px){.mobile-task-controls .btn-outline-danger,.mobile-task-controls .btn-outline-success{padding:.15rem .4rem!important;font-size:.75rem!important}.project-detail-header.desktop-only,.project-detail-sidebar,.project-tabs,.project-header,.tab-content{display:none!important}.project-detail-content{display:block!important;padding:0!important}.project-detail-main{max-width:100%!important;padding:0!important}.mobile-detail-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:60px;background:#2c3e50;color:#ecf0f1;padding:0 .75rem;box-shadow:0 2px 8px #00000026;z-index:999}.mobile-detail-back,.mobile-detail-edit,.mobile-detail-save{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:transparent;border:none;color:#ecf0f1;font-size:1.25rem;cursor:pointer;border-radius:6px;transition:all .2s}.mobile-detail-back:active,.mobile-detail-edit:active,.mobile-detail-save:active{background:#ffffff1a}.mobile-detail-title{flex:1;margin:0 .5rem;font-size:1.1rem;font-weight:600;color:#ecf0f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.project-detail-container{padding-top:60px;overflow-y:auto}.mobile-tab-accordion{display:block;padding:1rem}.mobile-description-section{background:#fff;border-radius:8px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000001a}.mobile-description-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#1f2937}.mobile-tab-section{background:#fff;border-radius:8px;margin-bottom:.75rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.mobile-tab-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:#fff;border:none;cursor:pointer;transition:all .2s;min-height:60px;text-align:left}.mobile-tab-header:active{background:#f9fafb}.mobile-tab-header.expanded{background:#f9fafb;border-bottom:1px solid #e5e7eb}.mobile-tab-header span{display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1rem;color:#1f2937}.mobile-tab-header span i{font-size:1.1rem;color:#3498db}.mobile-tab-header>i{font-size:1rem;color:#9ca3af}.mobile-tab-content{padding:1.25rem;animation:expandDown .25s ease}@keyframes expandDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mobile-info-grid{display:flex;flex-direction:column;gap:1rem}.mobile-info-item{display:flex;flex-direction:column;gap:.5rem}.mobile-info-item label{font-size:.85rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.mobile-parts-list{display:flex;flex-direction:column;gap:.75rem}.mobile-part-item{display:flex;align-items:center;justify-content:space-between;padding:.875rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.mobile-part-name{font-size:.95rem;font-weight:500;color:#1f2937}.mobile-tab-content .update-card{margin-bottom:1rem}.mobile-tab-content .update-header{flex-direction:column;align-items:flex-start;gap:.5rem}.mobile-tab-content .update-header h4{font-size:1rem}.mobile-tab-content .update-meta{font-size:.85rem}.mobile-tab-content .trains-grid,.stat-grid{grid-template-columns:1fr}.parts-table{font-size:.875rem}.parts-table th,.parts-table td{padding:.5rem}.project-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.gallery-caption{font-size:.75rem;padding:.5rem .375rem .375rem}}.list-group-item{color:#000!important}.list-group-item h6{color:#000!important;margin-bottom:.5rem}.list-group-item .text-muted{color:#6c757d!important}.task-list{display:flex;flex-direction:column;gap:1rem;max-width:900px}.task-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem;transition:box-shadow .2s}.task-card:hover{box-shadow:0 4px 6px -1px #0000001a}.task-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;min-height:auto}.task-header h5{margin:0;padding:0;line-height:1.2;color:#000;font-size:1.1rem;font-weight:600}.task-header .text-muted{color:#6c757d!important;font-size:.9rem}.task-quick-update{margin-bottom:.75rem}.task-quick-update .d-flex{flex-wrap:wrap}.task-quick-update input{min-width:60px;max-width:80px}.btn-group{display:inline-flex!important;flex-direction:row!important}.modal.show.d-block{position:fixed!important;top:0;left:0;width:100%;height:100%;overflow-y:auto}.modal-backdrop{position:fixed!important;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1040}.mobile-menu-backdrop{position:fixed;inset:0;background:#00000080;z-index:1001;animation:fadeIn .2s ease}.mobile-menu{position:fixed;top:0;left:0;bottom:0;width:85%;max-width:320px;background:#2c3e50;color:#ecf0f1;z-index:1002;display:flex;flex-direction:column;box-shadow:4px 0 12px #0000004d;animation:slideIn .3s ease-in-out}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:#1a252f;border-bottom:1px solid rgba(255,255,255,.1)}.mobile-menu-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#ecf0f1}.mobile-menu-close{background:transparent;border:none;color:#ecf0f1;font-size:1.5rem;cursor:pointer;padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.mobile-menu-close:hover,.mobile-menu-close:active{background:#ffffff1a}.mobile-menu-nav{flex:1;padding:1rem 0;overflow-y:auto}.mobile-menu-item{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem 1.5rem;background:transparent;border:none;color:#ecf0f1;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;border-left:3px solid transparent;min-height:56px}.mobile-menu-item i{font-size:1.25rem;width:24px;text-align:center;color:#95a5a6}.mobile-menu-item:hover,.mobile-menu-item:active{background:#ffffff0d}.mobile-menu-item.active{background:#3498db26;border-left-color:#3498db}.mobile-menu-item.active i{color:#3498db}.mobile-menu-item-primary{background:#3498db33;border-left-color:#3498db}.mobile-menu-item-primary i{color:#3498db}.mobile-menu-item-primary:hover,.mobile-menu-item-primary:active{background:#3498db4d}.mobile-menu-divider{height:1px;background:#ffffff1a;margin:.5rem 1.5rem}.mobile-menu-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);background:#1a252f}.mobile-menu-user{display:flex;align-items:center;gap:.75rem;color:#95a5a6;font-size:.9rem}.mobile-menu-user i{font-size:1.5rem}@media(min-width:769px){.mobile-menu-backdrop,.mobile-menu{display:none!important}}.projects-layout{position:fixed;inset:0;z-index:1000;margin:0!important;padding:0!important;max-width:none!important;width:100vw;height:100vh;overflow:hidden;background:#f5f6fa;display:flex}.projects-sidebar{width:280px;background:#2c3e50;color:#ecf0f1;display:flex;flex-direction:column;box-shadow:2px 0 8px #0000001a;z-index:100;flex-shrink:0}.home-link{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.5rem;background:#1a252f;border:none;border-bottom:1px solid rgba(255,255,255,.1);color:#ecf0f1;font-size:.9rem;cursor:pointer;transition:all .2s;text-align:left}.home-link:hover{background:#34495e;color:#3498db}.home-link i{width:20px;text-align:center;font-size:1rem}.sidebar-header{padding:1.5rem;background:#34495e;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h2{margin:0;font-size:1.5rem;font-weight:600;display:flex;align-items:center;gap:.75rem}.sidebar-header i{color:#3498db}.sidebar-nav{padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:#ecf0f1;font-size:.95rem;border-radius:6px;cursor:pointer;transition:all .2s;text-align:left;margin-bottom:.5rem}.nav-item:hover{background:#3498db33}.nav-item.active{background:#3498db;color:#fff}.nav-item i{width:20px;text-align:center}.btn-new-project{background:#27ae60!important;color:#fff!important;font-weight:500;margin-bottom:1rem!important}.btn-new-project:hover{background:#229954!important}.sidebar-section{padding:1rem;border-bottom:1px solid rgba(255,255,255,.1);flex:1;overflow-y:auto}.sidebar-section h3{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#95a5a6;margin-bottom:1rem}.filter-group{margin-bottom:1rem}.filter-group label{display:block;font-size:.85rem;margin-bottom:.5rem;color:#bdc3c7}.sidebar-input,.sidebar-select{width:100%;padding:.5rem;background:#34495e;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#ecf0f1;font-size:.9rem}.sidebar-input:focus,.sidebar-select:focus{outline:none;border-color:#3498db}.sidebar-input::placeholder{color:#7f8c8d}.projects-main-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f5f6fa}.mobile-header,.mobile-search-bar{display:none}@media(max-width:768px){.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:60px;background:#2c3e50;color:#ecf0f1;padding:0 1rem;box-shadow:0 2px 8px #00000026;z-index:999}.mobile-header-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:transparent;border:none;color:#ecf0f1;font-size:1.25rem;cursor:pointer;border-radius:6px;transition:all .2s}.mobile-header-btn:hover,.mobile-header-btn:active{background:#ffffff1a}.mobile-header-title{margin:0;font-size:1.25rem;font-weight:600;color:#ecf0f1}.mobile-search-bar{display:flex;align-items:center;gap:.5rem;position:fixed;top:60px;left:0;right:0;padding:.75rem 1rem;background:#34495e;box-shadow:0 2px 4px #0000001a;z-index:998;animation:slideDown .2s ease}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-search-input{flex:1;padding:.75rem 1rem;background:#2c3e50;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ecf0f1;font-size:1rem}.mobile-search-input::placeholder{color:#95a5a6}.mobile-search-input:focus{outline:none;border-color:#3498db}.mobile-search-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:#ecf0f1;font-size:1.25rem;cursor:pointer;border-radius:6px;transition:all .2s}.mobile-search-close:hover,.mobile-search-close:active{background:#ffffff1a}.projects-sidebar{display:none!important}.projects-main-panel{width:100%;padding-top:60px}.projects-layout:has(.mobile-search-bar) .projects-main-panel{padding-top:120px}}.gantt-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f5f6fa}.gantt-content{flex:1;padding:2rem;overflow:auto;max-width:1640px;margin:0 auto;width:100%}.gantt-container .loading-state,.gantt-container .error-state,.gantt-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:3rem;text-align:center}.gantt-container .loading-state i,.gantt-container .error-state i,.gantt-container .empty-state i{font-size:3rem;margin-bottom:1rem;color:#6b7280}.gantt-container .loading-state i{color:#3498db}.gantt-container .error-state i{color:#dc3545}.gantt-container .empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:#1f2937}.gantt-container .empty-state p{margin:.5rem 0;color:#6b7280;font-size:1rem}.gantt-container .empty-state .hint{font-size:.9rem;font-style:italic;color:#9ca3af}.gantt-legend{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.gantt-legend h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1f2937}.legend-items{display:flex;gap:2rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#4b5563}.legend-color{width:24px;height:16px;border-radius:4px;display:inline-block}.gantt-content .highcharts-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem}.gantt-content .highcharts-credits{display:none}@media(max-width:768px){.gantt-content{padding:1rem}.legend-items{gap:1rem}.gantt-legend{padding:1rem}}.gmail-callback-container{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-light, #f8f9fa)}.gmail-callback-card{background:var(--card-bg, #fff);border-radius:12px;box-shadow:0 4px 16px #0000001a;padding:3rem;max-width:500px;width:100%;text-align:center}.spinner,.success-icon,.error-icon{font-size:3rem;margin-bottom:1.5rem}.spinner{width:3rem;height:3rem;border:4px solid rgba(0,0,0,.1);border-left-color:var(--primary-color, #007bff);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}.success-icon{color:#28a745}.error-icon{color:#dc3545}.gmail-callback-card h2{font-size:1.75rem;margin-bottom:1rem;color:var(--text-primary, #212529)}.gmail-callback-card p{font-size:1rem;color:var(--text-secondary, #6c757d);margin-bottom:.5rem}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;padding:1rem;color:#721c24;margin:1.5rem 0;font-size:.95rem;line-height:1.5}.redirect-message{font-style:italic;font-size:.9rem;margin-top:1.5rem;color:var(--text-muted, #999)}.button-group{display:flex;gap:1rem;margin-top:2rem;justify-content:center}.btn-retry,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-retry{background:var(--primary-color, #007bff);color:#fff}.btn-retry:hover{background:var(--primary-hover, #0056b3);transform:translateY(-1px);box-shadow:0 2px 8px #007bff4d}.btn-secondary{background:var(--secondary-bg, #6c757d);color:#fff}.btn-secondary:hover{background:var(--secondary-hover, #545b62)}@media(prefers-color-scheme:dark){.gmail-callback-container{background:var(--bg-dark, #1a1a1a)}.gmail-callback-card{background:var(--card-bg-dark, #2b2b2b);box-shadow:0 4px 16px #0006}.gmail-callback-card h2{color:var(--text-primary-dark, #e9ecef)}.gmail-callback-card p{color:var(--text-secondary-dark, #adb5bd)}.error-message{background:#3d1e1e;border-color:#5a2828;color:#f8d7da}.redirect-message{color:var(--text-muted-dark, #6c757d)}}@media(max-width:768px){.gmail-callback-container{padding:1rem}.gmail-callback-card{padding:2rem 1.5rem}.gmail-callback-card h2{font-size:1.5rem}.button-group{flex-direction:column}.btn-retry,.btn-secondary{width:100%}}.bulk-upload-container{max-width:900px;margin:0 auto;padding:20px}.bulk-upload-header{margin-bottom:24px}.bulk-upload-header h2{font-size:28px;font-weight:600;margin-bottom:8px;color:#1a1a1a}.bulk-upload-header p{color:#666;font-size:16px;margin:0}.file-selection-card{background:#fff;border:2px dashed #cbd5e0;border-radius:8px;padding:40px 20px;text-align:center;margin-bottom:24px;transition:border-color .2s,background-color .2s}.file-selection-card:hover{border-color:#4299e1;background-color:#f7fafc}.file-selection-card.has-files{border-color:#48bb78;border-style:solid;background-color:#f0fff4}.upload-icon{font-size:48px;margin-bottom:16px}.file-selection-card h3{font-size:20px;margin-bottom:8px;color:#2d3748}.file-selection-card p{color:#718096;margin-bottom:16px;font-size:14px}.file-input-label{display:inline-block;background:#4299e1;color:#fff;padding:12px 24px;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s}.file-input-label:hover{background:#3182ce}.file-input-label:active{background:#2c5282}input[type=file]{display:none}.selected-files-info{margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.selected-files-info p{font-weight:600;color:#2d3748;margin-bottom:12px}.file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:16px}.file-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:4px;padding:8px;font-size:12px;word-break:break-word;text-align:left}.file-item .file-name{font-weight:500;color:#2d3748;display:block;margin-bottom:4px}.file-item .file-size{color:#718096;font-size:11px}.upload-progress-section{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.upload-progress-section h3{font-size:18px;margin-bottom:16px;color:#2d3748}.progress-stage{margin-bottom:20px}.stage-label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;color:#2d3748}.stage-label .spinner{width:16px;height:16px;border:2px solid #e2e8f0;border-top-color:#4299e1;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar-container{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:#4299e1;height:100%;transition:width .3s ease}.progress-percentage{text-align:right;font-size:14px;color:#718096;margin-top:4px}.processing-stages{display:flex;justify-content:space-between;margin-bottom:24px;padding:0 20px}.stage-indicator{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;position:relative}.stage-indicator:after{content:"";position:absolute;top:16px;left:50%;width:100%;height:2px;background:#e2e8f0;z-index:0}.stage-indicator:last-child:after{display:none}.stage-circle{width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-weight:600;color:#a0aec0;position:relative;z-index:1}.stage-indicator.active .stage-circle{background:#4299e1;color:#fff}.stage-indicator.complete .stage-circle{background:#48bb78;color:#fff}.stage-text{font-size:12px;color:#718096;text-align:center}.stage-indicator.active .stage-text{color:#4299e1;font-weight:600}.stage-indicator.complete .stage-text{color:#48bb78;font-weight:600}.results-section{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.results-section h3{font-size:20px;margin-bottom:16px;color:#2d3748}.results-summary{display:flex;gap:16px;margin-bottom:24px}.result-stat{flex:1;padding:16px;border-radius:6px;text-align:center}.result-stat.success{background:#f0fff4;border:1px solid #48bb78}.result-stat.failure{background:#fff5f5;border:1px solid #f56565}.result-stat-number{font-size:32px;font-weight:700;margin-bottom:4px}.result-stat.success .result-stat-number{color:#38a169}.result-stat.failure .result-stat-number{color:#e53e3e}.result-stat-label{font-size:14px;color:#718096;text-transform:uppercase;letter-spacing:.5px}.error-list{margin-top:16px}.error-list h4{font-size:16px;color:#e53e3e;margin-bottom:12px}.error-item{background:#fff5f5;border-left:3px solid #f56565;padding:12px;margin-bottom:8px;border-radius:4px}.error-item strong{display:block;margin-bottom:4px;color:#c53030;font-weight:600}.error-item span{color:#742a2a;font-size:14px;display:block;word-break:break-word}.results-section .error-item{color:#742a2a}.results-section .error-item strong{color:#c53030}.action-buttons{display:flex;gap:12px;margin-top:24px}.btn-primary,.btn-secondary{flex:1;padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.btn-primary{background:#4299e1;color:#fff}.btn-primary:hover:not(:disabled){background:#3182ce}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{background:#cbd5e0;cursor:not-allowed}.btn-secondary{background:#e2e8f0;color:#2d3748}.btn-secondary:hover:not(:disabled){background:#cbd5e0}.btn-secondary:active:not(:disabled){transform:scale(.98)}@media(max-width:768px){.bulk-upload-container{padding:16px}.bulk-upload-header h2{font-size:24px}.file-selection-card{padding:30px 16px}.file-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.results-summary{flex-direction:column}.processing-stages{padding:0}.stage-text{font-size:10px}.stage-circle{width:28px;height:28px;font-size:12px}.action-buttons{flex-direction:column}}.redirect-message{text-align:center;padding:12px;background:#ebf8ff;border:1px solid #4299e1;border-radius:6px;margin-top:16px;color:#2c5282;font-weight:500}.upload-results{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.results-summary h2{font-size:24px;margin-bottom:16px;color:#2d3748}.results-stats{display:flex;gap:16px;margin-bottom:24px}.stat-item{flex:1;padding:16px;border-radius:6px;text-align:center}.stat-item.success{background:#f0fff4;border:1px solid #48bb78}.stat-item.failed{background:#fff5f5;border:1px solid #f56565}.stat-item.total{background:#ebf8ff;border:1px solid #4299e1}.stat-number{display:block;font-size:32px;font-weight:700;margin-bottom:4px}.stat-item.success .stat-number{color:#38a169}.stat-item.failed .stat-number{color:#e53e3e}.stat-item.total .stat-number{color:#3182ce}.stat-label{font-size:14px;color:#718096;text-transform:uppercase;letter-spacing:.5px}.results-details{margin-top:24px}.results-details h3{font-size:18px;margin-bottom:12px;color:#2d3748}.results-list{display:flex;flex-direction:column;gap:8px}.result-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:4px;border:1px solid #e2e8f0}.result-item.success{background:#f0fff4;border-color:#48bb78}.result-item.failed{background:#fff5f5;border-color:#f56565}.result-icon{font-size:20px;font-weight:700;flex-shrink:0}.result-item.success .result-icon{color:#38a169}.result-item.failed .result-icon{color:#e53e3e}.result-info{flex:1;min-width:0}.result-filename{font-weight:600;color:#2d3748;margin-bottom:4px;word-break:break-word}.result-data{font-size:14px;color:#4a5568}.result-error{font-size:14px;color:#c53030;background:#fed7d7;padding:8px;border-radius:4px;margin-top:4px;word-break:break-word;font-weight:500}.results-actions{display:flex;gap:12px;margin-top:24px}.btn-view-drafts,.btn-upload-more{flex:1;padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.btn-view-drafts{background:#4299e1;color:#fff}.btn-view-drafts:hover{background:#3182ce}.btn-upload-more{background:#e2e8f0;color:#2d3748}.btn-upload-more:hover{background:#cbd5e0}.btn-view-drafts:active,.btn-upload-more:active{transform:scale(.98)}.drafts-grid{margin-left:0!important;margin-right:0!important;display:grid!important;grid-template-columns:1fr;gap:1rem}.draft-col{padding-left:.5rem!important;padding-right:.5rem!important;min-width:0;overflow:hidden;max-width:100%}.draft-card{border:1px solid #374151;border-radius:12px;margin-bottom:1rem;background:linear-gradient(145deg,#1f2937,#111827);overflow:hidden;width:100%;max-width:100%;box-shadow:0 4px 6px #0000004d,0 1px 3px #0003;transition:transform .2s ease,box-shadow .2s ease}.draft-card:hover{transform:translateY(-2px);box-shadow:0 8px 12px #0006,0 2px 6px #0000004d;border-color:#4b5563}.draft-card-body{padding:1rem;background:linear-gradient(to bottom,#1f2937,#111827);color:#e5e7eb;overflow:hidden;width:100%;max-width:100%}.draft-card-title{color:#f9fafb;margin-bottom:.75rem;padding-left:.25rem;padding-right:.25rem;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;width:100%;max-width:100%;display:block;font-weight:600;letter-spacing:.02em}.draft-card-text{padding-left:.25rem;line-height:1.6;color:#d1d5db}.draft-card-text strong{color:#9ca3af;font-weight:500}.draft-card-text .text-muted{color:#6b7280!important}.draft-card-footer{background:linear-gradient(to top,#111827,#1f2937)!important;border-top:1px solid #374151;padding:1rem}.draft-card-image{height:200px;object-fit:cover;border-top-left-radius:6px;border-top-right-radius:6px}@media(max-width:499px){.drafts-container{padding-left:.5rem!important;padding-right:.5rem!important}.drafts-grid{margin-left:0!important;margin-right:0!important;grid-template-columns:1fr!important}.draft-col{padding-left:.25rem!important;padding-right:.25rem!important}.draft-card{margin-bottom:.75rem}.draft-card-body{padding:.75rem}.draft-card-title{font-size:1rem;padding-left:.25rem}.draft-card-text{font-size:.875rem;padding-left:.25rem}.draft-card-image{height:150px}.draft-card-footer .btn{font-size:.875rem;padding:.5rem}}@media(min-width:500px)and (max-width:767px){.drafts-grid{grid-template-columns:1fr!important}.draft-col{padding-left:.75rem!important;padding-right:.75rem!important;min-width:0;overflow:hidden}.draft-card-body{padding:1rem}}@media(min-width:768px){.drafts-grid{grid-template-columns:repeat(3,1fr)}.draft-col{padding-left:.75rem!important;padding-right:.75rem!important;min-width:0;overflow:hidden}.draft-card-body{padding:1.25rem}.draft-card-title{padding-left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.draft-card-text{padding-left:0}}.draft-card-footer .btn{font-size:.875rem;padding:.5rem 1rem;font-weight:500}.draft-card-footer .btn-success{background-color:#28a745;border-color:#28a745;color:#fff}.draft-card-footer .btn-success:hover{background-color:#218838;border-color:#1e7e34}@media(max-width:499px){.draft-card-footer .d-grid{display:flex!important;flex-direction:column;gap:.5rem}.draft-card-footer .btn{font-size:.8rem;padding:.4rem .75rem;width:auto;margin:0 auto;min-width:150px;max-width:200px}}.multiselect-dropdown{position:relative;width:100%;min-width:80px}.multiselect-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 8px;border:1px solid #374151;border-radius:4px;background:#1f2937;color:#9ca3af;font-size:.75rem;cursor:pointer;transition:all .15s ease;text-align:left;gap:4px}.multiselect-trigger:hover{border-color:#4b5563;background:#374151}.multiselect-trigger.has-selection{color:#60a5fa;border-color:#3b82f6;background:#3b82f61a}.multiselect-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-trigger-arrow{font-size:.625rem;color:#6b7280;flex-shrink:0}.multiselect-menu{position:absolute;top:100%;left:0;right:0;min-width:180px;max-height:300px;margin-top:4px;background:linear-gradient(145deg,#1f2937,#111827);border:1px solid #374151;border-radius:6px;box-shadow:0 10px 40px #00000080;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.multiselect-menu-fixed{position:fixed!important;margin-top:0;z-index:9999}.multiselect-search{padding:8px;border-bottom:1px solid #374151}.multiselect-search input{width:100%;padding:6px 10px;border:1px solid #374151;border-radius:4px;background:#0f1419;color:#e5e7eb;font-size:.75rem}.multiselect-search input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.multiselect-search input::placeholder{color:#6b7280}.multiselect-actions{display:flex;justify-content:space-between;padding:6px 8px;border-bottom:1px solid #374151;background:#0003}.multiselect-action-btn{padding:4px 8px;border:none;border-radius:3px;background:transparent;color:#60a5fa;font-size:.6875rem;cursor:pointer;transition:all .15s ease}.multiselect-action-btn:hover{background:#3b82f61a}.multiselect-clear-btn{color:#f87171}.multiselect-clear-btn:hover{background:#f871711a}.multiselect-options{overflow-y:auto;max-height:200px;padding:4px 0}.multiselect-option{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;transition:background .15s ease;font-size:.75rem;color:#e5e7eb}.multiselect-option:hover{background:#3b82f61a}.multiselect-option.selected{background:#3b82f626}.multiselect-option input[type=checkbox]{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.multiselect-checkbox{flex-shrink:0;width:16px;text-align:center;color:#6b7280;font-size:.875rem}.multiselect-option.selected .multiselect-checkbox{color:#60a5fa}.multiselect-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-no-results{padding:12px;text-align:center;color:#6b7280;font-size:.75rem;font-style:italic}.multiselect-options::-webkit-scrollbar{width:6px}.multiselect-options::-webkit-scrollbar-track{background:#1f2937}.multiselect-options::-webkit-scrollbar-thumb{background:#4b5563;border-radius:3px}.multiselect-options::-webkit-scrollbar-thumb:hover{background:#6b7280}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:8px;background:#1f2937;border:1px solid #374151;box-shadow:0 10px 25px #00000080,0 4px 10px #0000004d;animation:toast-enter .3s ease-out;pointer-events:auto;min-width:300px}.toast-exit{animation:toast-exit .3s ease-in forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}.toast-success{border-left:4px solid #10b981}.toast-success .toast-icon{color:#10b981;background:#10b98126}.toast-error{border-left:4px solid #ef4444}.toast-error .toast-icon{color:#ef4444;background:#ef444426}.toast-warning{border-left:4px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b;background:#f59e0b26}.toast-info{border-left:4px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6;background:#3b82f626}.toast-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.toast-content{flex:1;min-width:0}.toast-title{font-size:14px;font-weight:600;color:#f9fafb;margin-bottom:2px}.toast-message{font-size:13px;color:#9ca3af;line-height:1.4;word-wrap:break-word}.toast-close{background:transparent;border:none;color:#6b7280;font-size:20px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease;flex-shrink:0}.toast-close:hover{background:#ffffff1a;color:#f9fafb}.toast-container .toast:not(:last-child){margin-bottom:0}.bulk-tag-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bulk-tag-modal{background:#1f2937;border-radius:8px;width:90%;max-width:420px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #00000080;border:1px solid #374151;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.bulk-tag-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #374151}.bulk-tag-modal-header h3{margin:0;font-size:1rem;font-weight:600;color:#f9fafb}.bulk-tag-modal-close{background:transparent;border:none;color:#9ca3af;font-size:24px;cursor:pointer;padding:0;line-height:1;transition:color .15s}.bulk-tag-modal-close:hover{color:#f9fafb}.bulk-tag-modal-body{padding:16px 20px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.bulk-tag-error{background:#ef444426;border:1px solid #ef4444;color:#fca5a5;padding:10px 12px;border-radius:6px;font-size:.875rem}.bulk-tag-search-input{width:100%;padding:10px 12px;border:1px solid #374151;border-radius:6px;background:#111827;color:#e5e7eb;font-size:.875rem;box-sizing:border-box}.bulk-tag-search-input:focus{outline:none;border-color:#60a5fa}.bulk-tag-search-input::placeholder{color:#6b7280}.bulk-tag-list{max-height:200px;overflow-y:auto;border:1px solid #374151;border-radius:6px;background:#111827}.bulk-tag-loading,.bulk-tag-empty{padding:20px;text-align:center;color:#6b7280;font-size:.875rem}.bulk-tag-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;border-bottom:1px solid #1f2937;transition:background .1s}.bulk-tag-item:last-child{border-bottom:none}.bulk-tag-item:hover{background:#1f2937}.bulk-tag-item.selected{background:#2563eb33}.bulk-tag-name{color:#e5e7eb;font-size:.875rem}.bulk-tag-check{color:#10b981;font-weight:700}.bulk-tag-create-btn{width:100%;padding:10px;border:1px dashed #374151;border-radius:6px;background:transparent;color:#60a5fa;font-size:.875rem;cursor:pointer;transition:all .15s}.bulk-tag-create-btn:hover{border-color:#60a5fa;background:#60a5fa1a}.bulk-tag-create-form{display:flex;flex-direction:column;gap:8px}.bulk-tag-create-form label{color:#9ca3af;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.bulk-tag-new-input{width:100%;padding:10px 12px;border:1px solid #374151;border-radius:6px;background:#111827;color:#e5e7eb;font-size:.875rem;box-sizing:border-box}.bulk-tag-new-input:focus{outline:none;border-color:#60a5fa}.bulk-tag-back-btn{background:transparent;border:none;color:#9ca3af;font-size:.875rem;cursor:pointer;padding:8px 0;text-align:left}.bulk-tag-back-btn:hover{color:#e5e7eb}.bulk-tag-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid #374151;gap:12px}.bulk-tag-selection-info{font-size:.8125rem;color:#9ca3af;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-tag-selection-info strong{color:#e5e7eb}.bulk-tag-actions{display:flex;gap:8px}.bulk-tag-cancel-btn,.bulk-tag-submit-btn{padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.bulk-tag-cancel-btn{background:#374151;border:1px solid #4b5563;color:#e5e7eb}.bulk-tag-cancel-btn:hover:not(:disabled){background:#4b5563}.bulk-tag-submit-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;color:#fff}.bulk-tag-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#2563eb)}.bulk-tag-submit-btn:disabled,.bulk-tag-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.datagrid-container *,.datagrid-container *:before,.datagrid-container *:after{box-sizing:border-box}.datagrid-container{display:flex;flex-direction:column;height:calc(100vh - 80px);padding:0;background:#0f1419;color:#e5e7eb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;width:100vw!important;max-width:100vw!important;margin-left:calc(-50vw + 50%)!important;padding-left:1rem;padding-right:1rem;box-sizing:border-box}.datagrid-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(145deg,#1f2937,#111827);border-bottom:1px solid #374151;flex-shrink:0}.datagrid-toolbar-left{display:flex;align-items:center;gap:12px}.datagrid-toolbar-center,.datagrid-toolbar-right{display:flex;align-items:center;gap:8px}.datagrid-title{margin:0;font-size:1.25rem;font-weight:600;color:#f9fafb}.datagrid-count{background:#374151;padding:4px 10px;border-radius:12px;font-size:.75rem;color:#9ca3af}.datagrid-global-search{width:280px;padding:8px 12px;border:1px solid #374151;border-radius:6px;background:#1f2937;color:#e5e7eb;font-size:.875rem}.datagrid-global-search:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa33}.datagrid-global-search::placeholder{color:#6b7280}.datagrid-btn{padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s ease}.datagrid-btn-sm{padding:4px 10px;font-size:.75rem}.datagrid-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.datagrid-btn-primary:hover{background:#1d4ed8}.datagrid-btn-success{background:#059669;color:#fff;border-color:#059669}.datagrid-btn-success:hover{background:#047857}.datagrid-btn-secondary{background:#374151;color:#e5e7eb;border-color:#4b5563}.datagrid-btn-secondary:hover{background:#4b5563}.datagrid-btn-warning{background:#f59e0b33;color:#fbbf24;border-color:#f59e0b}.datagrid-btn-warning:hover{background:#f59e0b4d}.datagrid-btn-bulk-active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b981;font-weight:600;animation:bulkPulse 2s ease-in-out infinite;box-shadow:0 0 12px #10b98166}.datagrid-btn-bulk-active:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 0 16px #10b98180}@keyframes bulkPulse{0%,to{box-shadow:0 0 8px #10b9814d}50%{box-shadow:0 0 16px #10b98199}}.datagrid-btn:disabled{opacity:.5;cursor:not-allowed}.datagrid-bulk-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(135deg,#10b98126,#05966933);border-bottom:2px solid #10b981;color:#10b981;font-size:.875rem}.datagrid-bulk-banner-icon{font-size:1.25rem;animation:bulkIconPulse 1s ease-in-out infinite}@keyframes bulkIconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.datagrid-bulk-banner-text{flex:1}.datagrid-bulk-banner-text strong{color:#34d399;letter-spacing:.5px}.datagrid-bulk-banner-close{padding:4px 12px;background:#10b98133;border:1px solid #10b981;border-radius:4px;color:#10b981;font-size:.75rem;cursor:pointer;transition:all .15s ease}.datagrid-bulk-banner-close:hover{background:#10b9814d}.datagrid-error{padding:12px 16px;background:#ef44441a;border:1px solid #ef4444;color:#ef4444;display:flex;justify-content:space-between;align-items:center}.datagrid-error button{background:#ef4444;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer}.datagrid-wrapper{flex:1;overflow:hidden;position:relative}.datagrid-scroll-container{height:100%;overflow:auto}.datagrid-table{width:max-content;min-width:100%;border-collapse:collapse;table-layout:fixed}.datagrid-thead{position:sticky;top:0;z-index:10}.datagrid-th{padding:5px 6px;background:linear-gradient(145deg,#1f2937,#111827);border-bottom:2px solid #374151;border-right:1px solid #374151;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.datagrid-th:last-child{border-right:none}.datagrid-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.datagrid-th-sortable:hover{background:#374151;color:#e5e7eb}.datagrid-th-content{display:flex;align-items:center;gap:4px}.datagrid-sort-icon{font-size:.625rem;color:#60a5fa}.datagrid-th-checkbox{text-align:center}.datagrid-filter-row{position:sticky;top:26px;z-index:9;overflow:visible}.datagrid-th-filter{padding:3px;background:#1a1f2e;border-bottom:1px solid #374151;border-right:1px solid #374151;box-sizing:border-box;overflow:visible}.datagrid-th-filter:last-child{border-right:none}.datagrid-filter-input,.datagrid-filter-select{width:100%;max-width:100%;padding:2px 4px;border:1px solid #374151;border-radius:3px;background:#111827;color:#e5e7eb;font-size:.7rem;box-sizing:border-box}.datagrid-filter-input:focus,.datagrid-filter-select:focus{outline:none;border-color:#60a5fa}.datagrid-filter-input::placeholder{color:#6b7280}.datagrid-tbody{background:#0f1419}.datagrid-row{border-bottom:1px solid #1f2937;transition:background .1s ease}.datagrid-row:hover{background:#3741514d}.datagrid-row-selected{background:#2563eb26}.datagrid-row-selected:hover{background:#2563eb40}.datagrid-td{padding:4px 6px;border-right:1px solid #1f2937;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e5e7eb}.datagrid-td:last-child{border-right:none}.datagrid-td-checkbox{text-align:center}.datagrid-td-editable{cursor:pointer}.datagrid-td-editable:hover{background:#60a5fa1a}.datagrid-td-editing{padding:4px;background:#60a5fa26}.datagrid-cell-value{display:block;overflow:hidden;text-overflow:ellipsis}.datagrid-cell-editor{width:100%;padding:4px 6px;border:1px solid #60a5fa;border-radius:4px;background:#1f2937;color:#e5e7eb;font-size:.8125rem}.datagrid-cell-editor:focus{outline:none;box-shadow:0 0 0 2px #60a5fa4d}.datagrid-td-thumbnail{text-align:center;padding:2px 4px}.datagrid-thumbnail{width:24px;height:24px;object-fit:cover;border-radius:3px;border:1px solid #374151}.datagrid-thumbnail-placeholder{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#4b5563;font-size:.625rem}.datagrid-loading,.datagrid-empty{text-align:center;padding:40px;color:#6b7280}.datagrid-loading .spinner-border{width:2rem;height:2rem}.datagrid-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(145deg,#1f2937,#111827);border-top:1px solid #374151;flex-shrink:0}.datagrid-footer-info{font-size:.8125rem;color:#9ca3af}.datagrid-context-menu{position:fixed;background:linear-gradient(145deg,#1f2937,#111827);border:1px solid #374151;border-radius:8px;box-shadow:0 10px 40px #00000080;z-index:1000;min-width:180px;padding:4px 0}.datagrid-context-menu button{display:block;width:100%;padding:8px 16px;border:none;background:transparent;color:#e5e7eb;font-size:.8125rem;text-align:left;cursor:pointer;transition:background .1s ease}.datagrid-context-menu button:hover{background:#60a5fa26}.datagrid-context-menu button:disabled{color:#4b5563;cursor:not-allowed}.datagrid-context-menu button:disabled:hover{background:transparent}.datagrid-context-menu-divider{height:1px;background:#374151;margin:4px 0}.datagrid-context-menu-danger{color:#ef4444!important}.datagrid-context-menu-danger:hover{background:#ef444426!important}.datagrid-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.datagrid-modal{background:linear-gradient(145deg,#1f2937,#111827);border:1px solid #374151;border-radius:12px;box-shadow:0 20px 60px #00000080;min-width:400px;max-width:500px}.datagrid-modal-header{display:flex;align-items:center;gap:12px;padding:20px 24px 16px;border-bottom:1px solid #374151}.datagrid-modal-icon{font-size:1.5rem}.datagrid-modal-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#e5e7eb}.datagrid-modal-body{padding:20px 24px}.datagrid-modal-body p{margin:0 0 12px;color:#9ca3af;font-size:.9375rem}.datagrid-modal-item-name{color:#e5e7eb!important;font-weight:500;font-size:1rem!important;padding:12px 16px;background:#0003;border-radius:6px;margin:12px 0!important}.datagrid-modal-warning{color:#f87171!important;font-size:.8125rem!important}.datagrid-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px 20px;border-top:1px solid #374151}.datagrid-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:#ef4444}.datagrid-btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}.datagrid-table input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;min-width:12px;min-height:12px;max-width:12px;max-height:12px;border:1px solid #6b7280;border-radius:2px;background:#1f2937;cursor:pointer;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.datagrid-table input[type=checkbox]:hover{border-color:#60a5fa;background:#374151}.datagrid-table input[type=checkbox]:checked{background:#2563eb;border-color:#2563eb}.datagrid-table input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:9px;font-weight:700;line-height:1}.datagrid-table input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 2px #3b82f64d}@media(max-width:768px){.datagrid-toolbar{flex-wrap:wrap;gap:8px}.datagrid-toolbar-center{order:3;width:100%}.datagrid-global-search{width:100%}}
