*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f8f5f2;color:#333;line-height:1.6}a{text-decoration:none;color:inherit}.layout{display:flex;min-height:100vh}.main-area{flex:1;display:flex;flex-direction:column;background-color:#f8f5f2;transition:margin-left .4s cubic-bezier(.4,0,.2,1);margin-left:280px}.main-area.sidebar-closed{margin-left:0}.header-container{position:relative;background:linear-gradient(135deg,#7a5c3e,#5a4329);padding:1rem 2rem;height:70px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 15px #7a5c3e4d;z-index:1000}.sidebar-btn{border:none;background-color:#ffffff1a;cursor:pointer;font-size:28px;color:#fff;width:45px;height:45px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.sidebar-btn:hover{background-color:#fff3;transform:scale(1.05)}.sidebar-btn:active{transform:scale(.95)}.user-info{font-weight:600;color:#fff;font-size:16px;display:flex;align-items:center;gap:10px}.user-info:before{content:"";width:35px;height:35px;background-color:#fff3;border-radius:50%;display:inline-block}.sidebar-wrapper{position:fixed;top:0;left:0;width:280px;height:100vh;z-index:999;overflow:hidden}.sidebar{width:280px;height:100vh;background:linear-gradient(180deg,#2d1f14,#1a1209);color:#e8ddd4;padding:2rem 1.5rem;box-shadow:4px 0 30px #0000004d;overflow-y:auto;animation:slideInLeft .4s cubic-bezier(.4,0,.2,1) forwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-100%);opacity:0}}.sidebar-wrapper.closed .sidebar{animation:slideOutLeft .4s cubic-bezier(.4,0,.2,1) forwards}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background-color:#e8ddd433;border-radius:2px}.brand{text-align:center;padding:1.5rem 1rem 2rem;border-bottom:1px solid rgba(232,221,212,.15);margin-bottom:1.5rem}.brand h1{font-size:28px;font-weight:700;color:#d8aa79;letter-spacing:2px;text-transform:uppercase}.nav-list{list-style:none;margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.nav-item{padding:1.25rem 1.5rem;cursor:pointer;border-radius:14px;font-weight:500;font-size:16px;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;background:transparent}.nav-item:before{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:linear-gradient(180deg,#d8aa79,#7a5c3e);transform:scaleY(0);transition:transform .4s cubic-bezier(.4,0,.2,1);border-radius:0 4px 4px 0}.nav-item:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:6px;height:6px;background:#d8aa79;border-radius:50%;opacity:0;transition:opacity .3s ease}.nav-item:hover{background:#d8aa7926;transform:translate(8px);padding-left:1.75rem}.nav-item:hover:before{transform:scaleY(1)}.nav-item:hover:after{opacity:1}.nav-item.active{background:linear-gradient(135deg,#d8aa7940,#7a5c3e33);font-weight:600;color:#d8aa79;transform:translate(8px);padding-left:1.75rem;box-shadow:0 4px 20px #d8aa7926}.nav-item.active:before{transform:scaleY(1)}.nav-item.active:after{opacity:1}.nav-list .logout-btn{margin-top:2rem;width:100%;padding:1.25rem 1.5rem;font-size:16px}.main-content{padding:2rem 2.5rem;min-height:calc(100vh - 70px);animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.main-content h2{margin-bottom:1.5rem;color:#4b2e19;font-size:28px;font-weight:700;position:relative;display:inline-block}.main-content h2:after{content:"";position:absolute;bottom:-5px;left:0;width:60px;height:3px;background:linear-gradient(90deg,#7a5c3e,#d8aa79);border-radius:2px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin:1rem 0}.state-card{background:#fff;padding:1.75rem;border-radius:16px;box-shadow:0 4px 15px #00000014;border:1px solid rgba(0,0,0,.05);transition:all .3s ease;position:relative;overflow:hidden}.state-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#7a5c3e,#d8aa79);transform:scaleX(0);transition:transform .3s ease}.state-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.state-card:hover:before{transform:scaleX(1)}.card-title{color:#4b2e19;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:.75rem;text-align:left}.card-value{font-size:32px;font-weight:700;color:#7a5c3e;text-align:left}.page_header{color:#4b2e19;display:flex;align-items:center;justify-content:space-between;padding:2rem 2.5rem}.page_header h2{margin-bottom:0;font-size:28px;font-weight:700}.page_header h2:after{display:none}.btn-add{background:linear-gradient(135deg,#7a5c3e,#6b4e2e);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;transition:all .3s ease;box-shadow:0 4px 15px #7a5c3e4d}.btn-add:hover{background:linear-gradient(135deg,#6b4e2e,#5a3f26);transform:translateY(-2px);box-shadow:0 6px 20px #7a5c3e66}.btn-add:active{transform:translateY(0)}.table-container{background:#f5f0e8;border-radius:12px;box-shadow:0 2px 10px #00000014;overflow:hidden;margin:2rem;max-width:calc(100% - 4rem)}.table{width:90%;border-collapse:collapse;margin-left:3rem}.table th{background:linear-gradient(135deg,#7a5c3e,#5a4329);color:#fff;padding:.85rem 1rem;text-align:left;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.table th:first-child{border-radius:12px 0 0}.table th:last-child{border-radius:0 12px 0 0}.table td{padding:.85rem 1rem;border-bottom:1px solid #e0d8cc;color:#555;font-size:14px}.table tbody tr{transition:all .2s ease;background-color:#f5f0e8}.table tbody tr:hover{background:#7a5c3e14}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge.active{color:#059669;background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.badge.inactive{color:#dc2626;background:linear-gradient(135deg,#fee2e2,#fecaca)}.edit-btn{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;margin-right:.5rem;transition:all .3s ease}.edit-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #2563eb4d}.delete-btn{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;margin-right:.5rem;transition:all .3s ease}.delete-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}@media(max-width:768px){.sidebar-wrapper,.sidebar{width:280px}.main-area{margin-left:280px}.main-area.sidebar-closed{margin-left:0}.layout{flex-direction:row}.header-container{position:relative}.main-content{padding:1rem}.card-grid{grid-template-columns:1fr}.table-container{overflow-x:auto;margin:1rem;max-width:calc(100% - 2rem)}.table{min-width:600px}}.logout-btn{background:linear-gradient(135deg,#dc262633,#b41e1e33);color:#fca5a5;border:1px solid rgba(220,38,38,.3);padding:1rem 1.25rem;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%;margin-top:auto}.logout-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;transform:translate(5px);box-shadow:0 4px 20px #dc26264d}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f5f2,#e8ddd4);padding:2rem}.login-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #7a5c3e26;padding:3rem;width:100%;max-width:420px;animation:fadeInUp .5s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:2.5rem}.login-logo{width:80px;height:80px;background:linear-gradient(135deg,#7a5c3e,#5a4329);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:36px;color:#fff;box-shadow:0 6px 20px #7a5c3e4d}.login-header h1{font-size:28px;font-weight:700;color:#4b2e19;margin-bottom:.5rem}.login-header p{color:#888;font-size:15px}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:14px;font-weight:600;color:#4b2e19}.form-group input{padding:.9rem 1rem;border:2px solid #e8ddd4;border-radius:10px;font-size:15px;color:#333;background:#faf8f5;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#7a5c3e;background:#fff;box-shadow:0 0 0 4px #7a5c3e1a}.form-group input::placeholder{color:#aaa}.login-btn{background:linear-gradient(135deg,#7a5c3e,#6b4e2e);color:#fff;border:none;padding:1rem;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #7a5c3e4d;margin-top:.5rem}.login-btn:hover{background:linear-gradient(135deg,#6b4e2e,#5a3f26);transform:translateY(-2px);box-shadow:0 6px 20px #7a5c3e66}.login-btn:active{transform:translateY(0)}.error-message{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626;padding:.75rem 1rem;border-radius:8px;font-size:14px;text-align:center}.success-message{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669;padding:.75rem 1rem;border-radius:8px;font-size:14px;text-align:center}@media(max-width:480px){.login-card{padding:2rem 1.5rem}.login-header h1{font-size:24px}.form-group input{padding:.8rem}.login-btn{padding:.9rem}}.weather-container{display:flex;justify-content:center;align-items:flex-start;padding:2rem;min-height:100%}.weather-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #7a5c3e26;padding:2.5rem;width:100%;max-width:420px;animation:fadeInUp .5s ease;border:1px solid rgba(122,92,62,.1)}.weather-title{font-size:28px;font-weight:700;color:#4b2e19;margin-bottom:1.5rem;text-align:center;position:relative}.weather-title:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(90deg,#7a5c3e,#d8aa79);border-radius:2px}.searchContainer{position:relative;margin-bottom:1rem}.searchInput{width:100%;padding:1rem 1.25rem;border:2px solid #e8ddd4;border-radius:12px;font-size:15px;color:#333;background:#faf8f5;transition:all .3s ease}.searchInput:focus{outline:none;border-color:#7a5c3e;background:#fff;box-shadow:0 0 0 4px #7a5c3e1a}.searchInput::placeholder{color:#aaa}.searchSpinner{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:#7a5c3e;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.dropdown{background:#fff;border-radius:12px;box-shadow:0 8px 30px #0000001f;overflow:hidden;margin-bottom:1rem;border:1px solid #e8ddd4;animation:slideInDown .3s ease}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdownItem{display:flex;align-items:center;gap:12px;padding:1rem 1.25rem;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #f0ebe5}.dropdownItem:last-child{border-bottom:none}.dropdownItem:hover{background:linear-gradient(135deg,#7a5c3e14,#d8aa7914)}.dropdownItem .weather-icon{color:#7a5c3e;flex-shrink:0}.cityName{font-size:15px;font-weight:600;color:#4b2e19;margin:0}.cityInfo{font-size:13px;color:#888;margin:2px 0 0}.selectedCity{display:flex;align-items:center;gap:8px;padding:1rem;background:linear-gradient(135deg,#7a5c3e1a,#d8aa791a);border-radius:12px;margin-bottom:1.5rem;font-size:16px;font-weight:600;color:#4b2e19}.selectedCity .weather-icon{color:#7a5c3e}.loadingContainer{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.weather-spinner{color:#7a5c3e;animation:spin 1s linear infinite}.loadingContainer p{color:#888;font-size:15px}.weatherInfo{display:flex;flex-direction:column;gap:1rem;animation:fadeIn .4s ease}.weatherItem{display:flex;align-items:center;gap:16px;padding:1.25rem;background:linear-gradient(135deg,#faf8f5,#f5f0e8);border-radius:12px;transition:all .3s ease;border:1px solid #e8ddd4}.weatherItem:hover{transform:translate(5px);box-shadow:0 4px 15px #7a5c3e1a}.weatherItem .weather-icon{color:#7a5c3e;background:#7a5c3e1a;padding:10px;border-radius:10px}.weatherItem>div{flex:1}.weather-label{font-size:13px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px}.weather-value{font-size:20px;font-weight:700;color:#4b2e19;margin:0}.weather-placeholder{display:flex;align-items:center;justify-content:center;padding:3rem;text-align:center}.weather-placeholder p{color:#aaa;font-size:15px;background:#faf8f5;padding:1.5rem 2rem;border-radius:12px;border:2px dashed #e8ddd4}@media(max-width:480px){.weather-container{padding:1rem}.weather-card{padding:1.5rem}.weather-title{font-size:24px}.weatherItem{padding:1rem}.weather-value{font-size:18px}}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.modal{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideInUp .3s ease}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h3{font-size:24px;font-weight:700;color:#4b2e19;margin-bottom:1.5rem;text-align:center}.modal .form-group{margin-bottom:1.25rem}.modal .form-group label{font-size:14px;font-weight:600;color:#4b2e19;margin-bottom:.5rem;display:block}.modal .form-group input[type=text],.modal .form-group input[type=number],.modal .form-group select{width:100%;padding:.85rem 1rem;border:2px solid #e8ddd4;border-radius:10px;font-size:15px;color:#333;background:#faf8f5;transition:all .3s ease}.modal .form-group input[type=text]:focus,.modal .form-group input[type=number]:focus,.modal .form-group select:focus{outline:none;border-color:#7a5c3e;background:#fff;box-shadow:0 0 0 4px #7a5c3e1a}.modal .form-group input[type=checkbox]{width:20px;height:20px;accent-color:#7a5c3e;cursor:pointer}.modal .form-group input[type=file]{padding:.5rem;border:2px dashed #e8ddd4;border-radius:10px;cursor:pointer;background:#faf8f5}.modal .form-group input[type=file]:focus{outline:none;border-color:#7a5c3e;border-style:solid}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.form-submit-btn{flex:1;background:linear-gradient(135deg,#7a5c3e,#6b4e2e);color:#fff;border:none;padding:.9rem 1.5rem;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #7a5c3e4d}.form-submit-btn:hover{background:linear-gradient(135deg,#6b4e2e,#5a3f26);transform:translateY(-2px);box-shadow:0 6px 20px #7a5c3e66}.form-cancel-btn{flex:1;background:linear-gradient(135deg,#f5f5f5,#e5e5e5);color:#666;border:none;padding:.9rem 1.5rem;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.form-cancel-btn:hover{background:linear-gradient(135deg,#e5e5e5,#d5d5d5);transform:translateY(-2px)}
