:root{--primary-color: #007bff;--secondary-color: #6c757d;--background-color: #f8f9fa;--card-background: #ffffff;--text-color: #343a40;--error-color: #dc3545;--success-color: #28a745;--border-radius: 8px;--shadow-light: 0 4px 12px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.6;padding-bottom:70px}#app{max-width:1400px;margin:40px auto;padding:0 20px}#message{padding:15px 20px;margin-bottom:25px;border-radius:var(--border-radius);text-align:center;font-weight:700;opacity:0;animation:fadeIn .5s forwards;box-shadow:var(--shadow-light)}.error-message{background-color:#f8d7da;color:var(--error-color);border:1px solid var(--error-color)}.success-message{background-color:#d4edda;color:var(--success-color);border:1px solid var(--success-color)}#welcome-container,#login-container{padding:40px;background-color:var(--card-background);border-radius:var(--border-radius);box-shadow:var(--shadow-light);text-align:center;max-width:450px;margin:0 auto 40px}#welcome-container h1{color:var(--primary-color);margin-bottom:10px;font-size:2.2em}#login-container h2{color:var(--text-color);margin-bottom:25px;font-size:1.5em}input[type=text],input[type=password]{width:100%;padding:12px;margin-bottom:20px;border:1px solid #ced4da;border-radius:6px;font-size:1em;transition:border-color .3s}input[type=text]:focus,input[type=password]:focus{border-color:var(--primary-color);outline:none}button{width:100%;padding:12px;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:1.1em;cursor:pointer;transition:background-color .3s,transform .1s}button:hover{background-color:#0056b3}button:active{transform:scale(.99)}.text-center{text-align:center}.gallery-container,.text-header{margin:2rem 3rem}.header-gallery{display:flex;justify-content:flex-end;align-items:center;margin-bottom:30px}.logout-btn{width:auto;padding:8px 20px;background-color:var(--secondary-color);font-size:.9em;margin-left:20px}.logout-btn:hover{background-color:#5a6268}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px;padding-top:20px}.gallery-item{background-color:var(--card-background);border-radius:var(--border-radius);box-shadow:var(--shadow-light);overflow:hidden;position:relative;transition:transform .3s;display:flex;flex-direction:column}.gallery-item:hover{transform:translateY(-5px);box-shadow:0 8px 20px #00000026}.gallery-item img{width:100%;height:220px;object-fit:cover;cursor:pointer;display:block;transition:opacity .3s}.gallery-item:hover img{opacity:.9}.item-footer{display:flex;justify-content:space-between;align-items:center;padding:12px;border-top:1px solid #e9ecef}.item-footer p{font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;margin-right:10px}.download-btn{display:inline-block;padding:6px 12px;background-color:var(--success-color);color:#fff;text-decoration:none;border-radius:4px;font-size:.85em;transition:background-color .3s;cursor:pointer;white-space:nowrap}.download-btn:hover{background-color:#1e7e34}.select-checkbox{position:absolute;top:10px;left:10px;width:24px;height:24px;z-index:10;cursor:pointer;accent-color:var(--primary-color);border-radius:4px}.download-bar{text-align:center;padding:20px 0;border-top:1px solid #e9ecef;border-bottom:1px solid #e9ecef;margin-bottom:20px}#download-selected-button{width:auto;padding:12px 30px;background-color:var(--success-color)}#download-selected-button:hover{background-color:#1e7e34}#selected-count{font-weight:700;margin:0 5px}.lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000e6;display:none;justify-content:center;align-items:center;z-index:1000}.lightbox-content{max-width:90%;max-height:90%;display:block;border-radius:var(--border-radius);box-shadow:0 0 20px #000c}.lightbox-close-btn{position:absolute;top:20px;right:30px;color:#fff;font-size:40px;font-weight:700;cursor:pointer;transition:color .3s;z-index:1001}.lightbox-close-btn:hover{color:var(--error-color)}.lightbox-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:auto;display:flex;justify-content:center;align-items:center;background:#00000080;color:#fff;border:none;padding:15px 20px;cursor:pointer;font-size:40px;transition:background .3s,opacity .3s;z-index:1001;border-radius:5px;line-height:1;opacity:.8}.lightbox-nav-btn:hover{background:#000c;opacity:1}.lightbox-nav-btn.prev{left:20px}.lightbox-nav-btn.next{right:20px}.dashboard-stats{background-color:var(--card-background);border:1px solid #e9ecef;padding:25px;border-radius:var(--border-radius);margin-bottom:30px;box-shadow:var(--shadow-light)}.dashboard-stats h3{color:var(--primary-color);margin-bottom:20px;border-bottom:2px solid #e9ecef;padding-bottom:10px}.stats-summary{display:flex;justify-content:space-around;flex-wrap:wrap;margin-bottom:25px}.stats-summary>div{text-align:center;padding:15px;background-color:#f1f7fe;border-radius:6px;flex:1;min-width:150px;margin:5px}.stats-summary p{font-weight:700;color:var(--secondary-color);font-size:.9em;margin-bottom:5px}.stats-summary span{display:block;font-size:1.8em;color:var(--text-color);font-weight:600}.dashboard-stats table{width:100%;border-collapse:collapse;margin-top:15px;font-size:.9em}.dashboard-stats th,.dashboard-stats td{border:1px solid #dee2e6;padding:10px;text-align:left}.dashboard-stats th{background-color:#e9ecef;font-weight:700;color:var(--text-color)}.dashboard-stats tr:nth-child(2n){background-color:#f8f9fa}footer{position:fixed;bottom:0;left:0;width:100%;background-color:var(--card-background);color:var(--secondary-color);text-align:center;padding:15px 0;font-size:.8em;border-top:1px solid #dee2e6;box-shadow:0 -2px 5px #0000000d;z-index:50}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.stats-summary{flex-direction:column;align-items:stretch}.stats-summary>div{margin-bottom:10px;min-width:unset}.dashboard-stats table{display:block;overflow-x:auto;white-space:nowrap}}@media (max-width: 600px){#app{margin:20px auto}#welcome-container,#login-container{padding:30px 20px}.gallery-grid{grid-template-columns:1fr}.lightbox-nav-btn{padding:10px;font-size:20px;top:80%}.lightbox-nav-btn.prev{left:5%}.lightbox-nav-btn.next{right:5%}}
