:root{
  --bg:#06080F;
  --bg-2:#0A1220;
  --glass:rgba(255,255,255,0.06);
  --glass-2:rgba(255,255,255,0.035);
  --glass-border:rgba(255,255,255,0.08);
  --glass-border-2:rgba(255,255,255,0.12);
  --text:#EEF2FF;
  --muted:#8A94B0;
  --muted-2:#64708B;
  --accent:#38BDF8;
  --accent-2:#0EA5E9;
  --accent-glow:rgba(56,189,248,0.35);
  --fav:#FACC15;
  --radius:20px;
  --radius-sm:14px;
  --header-h:56px;
  --blur:22px;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter',system-ui,sans-serif}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:"";
  position:fixed;inset:0;
  background:
    radial-gradient(700px 500px at 15% 10%, rgba(56,189,248,0.12), transparent 60%),
    radial-gradient(900px 600px at 90% 85%, rgba(139,92,246,0.10), transparent 60%),
    linear-gradient(180deg, #070B18 0%, #06080F 100%);
  z-index:-3;
}
.bg-orb{position:fixed;border-radius:50%;filter:blur(60px);z-index:-2;opacity:0.6;pointer-events:none}
.orb-1{width:480px;height:480px;background:rgba(56,189,248,0.12);top:-120px;left:-120px}
.orb-2{width:600px;height:600px;background:rgba(99,102,241,0.10);bottom:-180px;right:-150px}
.orb-3{width:360px;height:360px;background:rgba(16,185,129,0.07);top:45%;left:55%}

.glass-header{
  position:sticky;top:0;z-index:50;
  height:var(--header-h);
  background:rgba(10,14,28,0.55);
  backdrop-filter:blur(var(--blur)) saturate(160%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(160%);
  border-bottom:1px solid var(--glass-border);
}
.header-inner{
  max-width:1280px;margin:0 auto;height:100%;
  padding:0 24px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;gap:12px}
.brand-icon{
  width:32px;height:32px;display:grid;place-items:center;
  background:linear-gradient(135deg, var(--accent), #818CF8);
  border-radius:9px;color:#020617;font-size:14px;
  box-shadow:0 6px 16px var(--accent-glow);
}
.brand-text{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.15rem;letter-spacing:-0.02em}
.brand-badge{font-size:0.60rem;font-weight:700;letter-spacing:0.08em;color:var(--accent);background:rgba(56,189,248,0.12);border:1px solid rgba(56,189,248,0.2);padding:3px 7px;border-radius:99px}
.search-wrap{
  max-width:1280px;margin:18px auto 0;padding:0 24px;
  display:flex;justify-content:center;
}
.search-wrap .search-box{
  width:100%;max-width:560px;
  display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(var(--blur)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(140%);
  border:1px solid var(--glass-border);
  border-radius:99px;
  padding:7px 7px 7px 18px;
  transition:.2s;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
}
.search-wrap .search-box:focus-within{border-color:rgba(56,189,248,0.4);background:rgba(255,255,255,0.08);box-shadow:0 0 0 4px rgba(56,189,248,0.12), 0 8px 24px rgba(0,0,0,0.25)}
.search-wrap .search-icon{color:var(--muted);font-size:0.9rem}
.search-wrap .search-box input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:0.92rem}
.search-wrap .search-box input::placeholder{color:var(--muted-2)}
.search-wrap .search-box button{
  width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;
  background:var(--text);color:#020617;display:grid;place-items:center;
  transition:.2s;flex-shrink:0;
}
.search-wrap .search-box button:hover{background:var(--accent);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,0.06);border:1px solid var(--glass-border);color:var(--text);padding:8px 16px;border-radius:99px;font-size:0.85rem;font-weight:500;cursor:pointer;transition:.2s;backdrop-filter:blur(10px)}
.btn-ghost:hover{background:rgba(255,255,255,0.10)}
.btn-primary{background:var(--text);color:#020617;border:none;padding:10px 16px;border-radius:99px;font-weight:600;font-size:0.85rem;cursor:pointer;transition:.2s}
.btn-primary:hover{background:var(--accent)}
.full{width:100%}
.flex1{flex:1}
.hidden{display:none!important}
.auth-card{padding:14px;border-radius:16px;background:rgba(255,255,255,0.04);border:1px solid var(--glass-border);display:flex;flex-direction:column;gap:10px}
.auth-card p{font-size:0.82rem;color:var(--muted);display:flex;gap:8px;align-items:center}
.user-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.avatar-sm{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#818CF8);color:#020617;font-weight:700;font-size:0.8rem}
.user-email{font-size:0.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-overlay{position:fixed;inset:0;background:rgba(3,6,16,0.65);backdrop-filter:blur(14px);display:grid;place-items:center;z-index:100;padding:20px}
.modal{width:100%;max-width:420px;padding:28px;position:relative}
.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--glass-border);background:rgba(255,255,255,0.06);color:var(--muted);cursor:pointer;display:grid;place-items:center}
.modal h2{font-family:'Space Grotesk',sans-serif;font-size:1.35rem}
.modal-sub{color:var(--muted);font-size:0.85rem;margin:6px 0 18px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.field label{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;font-weight:600}
.field input{background:rgba(255,255,255,0.06);border:1px solid var(--glass-border);border-radius:12px;padding:11px 14px;color:var(--text);outline:none;transition:.2s}
.field input:focus{border-color:rgba(56,189,248,0.4);box-shadow:0 0 0 3px rgba(56,189,248,0.12)}
.modal-actions{display:flex;gap:10px;margin-top:10px}
.auth-error{color:#f87171;font-size:0.82rem;background:rgba(248,113,113,0.1);border:1px solid rgba(248,113,113,0.2);padding:8px 10px;border-radius:10px;margin-top:6px}

.app-container{
  max-width:1280px;margin:28px auto;padding:0 24px 40px;
  display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start;
}
.glass-panel{
  background:var(--glass);
  backdrop-filter:blur(var(--blur)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(140%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  box-shadow:0 10px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.06);
}
.sidebar{padding:20px;display:flex;flex-direction:column;gap:18px;position:sticky;top:calc(var(--header-h) + 28px);min-height:360px}
.sidebar-head{display:flex;align-items:center;justify-content:space-between}
.sidebar-head h3{font-size:0.82rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--muted);font-weight:600;display:flex;gap:8px;align-items:center}
.sidebar-head h3 i{color:var(--fav)}
.count{background:rgba(255,255,255,0.08);border:1px solid var(--glass-border);padding:2px 8px;border-radius:99px;font-size:0.72rem;color:var(--muted)}
.fav-list{list-style:none;display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;padding-right:4px}
.fav-list::-webkit-scrollbar{width:4px}
.fav-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:99px}
.fav-item{
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(255,255,255,0.04);border:1px solid transparent;
  padding:12px 14px;border-radius:12px;cursor:pointer;transition:.18s;
}
.fav-item:hover{background:rgba(255,255,255,0.07);border-color:var(--glass-border);transform:translateY(-1px)}
.fav-item span{font-size:0.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--glass-border);color:var(--muted-2);font-size:0.78rem;display:flex;gap:8px;align-items:center}

.main-content{display:flex;flex-direction:column;gap:22px}
.current-weather-card{padding:28px;position:relative;overflow:hidden}
.current-weather-card.featured{background:linear-gradient(135deg, rgba(255,255,255,0.07), rgba(255,255,255,0.03));}
.card-glow{position:absolute;inset:auto -120px -120px auto;width:360px;height:360px;background:radial-gradient(circle, rgba(56,189,248,0.18), transparent 70%);pointer-events:none}
.weather-header{display:flex;justify-content:space-between;align-items:flex-start}
.weather-header h1{font-family:'Space Grotesk',sans-serif;font-size:1.9rem;letter-spacing:-0.03em;line-height:1}
.weather-header p{color:var(--muted);margin-top:6px;font-size:0.9rem;text-transform:capitalize}
.btn-fav{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid var(--glass-border);color:var(--fav);font-size:1.15rem;cursor:pointer;display:grid;place-items:center;transition:.2s;backdrop-filter:blur(10px)}
.btn-fav:hover{background:rgba(250,204,21,0.14);transform:scale(1.05)}
.weather-body{display:flex;align-items:center;gap:28px;margin-top:26px;flex-wrap:wrap}
.temp-display{display:flex;align-items:center;font-size:4.2rem;font-weight:700;letter-spacing:-0.05em;line-height:1}
.icon-main{font-size:3.2rem;color:var(--accent);margin-right:16px;filter:drop-shadow(0 8px 18px var(--accent-glow))}
.temp-display .unit{font-size:2rem;font-weight:300;color:var(--accent);margin-left:4px}
.weather-status p:first-child{font-size:1.1rem;font-weight:500}
.weather-status p:last-child{color:var(--muted);margin-top:4px;font-size:0.92rem}

.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.metric-card{padding:18px;display:flex;align-items:center;gap:14px;transition:.2s}
.metric-card:hover{transform:translateY(-2px);border-color:var(--glass-border-2);background:rgba(255,255,255,0.07)}
.metric-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(56,189,248,0.12);border:1px solid rgba(56,189,248,0.18);color:var(--accent);font-size:1.1rem;flex-shrink:0}
.metric-card small{display:block;color:var(--muted);font-size:0.75rem;letter-spacing:0.03em;text-transform:uppercase;font-weight:500}
.metric-card strong{font-size:1.05rem;font-weight:600;letter-spacing:-0.02em}

.forecast-section{padding:20px 22px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.section-head h2{font-size:0.95rem;font-weight:600;letter-spacing:-0.01em;display:flex;gap:8px;align-items:center}
.section-head h2 i{color:var(--muted)}
.section-hint{font-size:0.72rem;color:var(--muted-2);background:rgba(255,255,255,0.06);border:1px solid var(--glass-border);padding:4px 8px;border-radius:99px}
.forecast-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.forecast-card{
  background:rgba(255,255,255,0.04);border:1px solid var(--glass-border);
  padding:14px 10px;border-radius:16px;text-align:center;
  display:flex;flex-direction:column;gap:8px;align-items:center;
  transition:.18s;
}
.forecast-card:hover{background:rgba(255,255,255,0.07);transform:translateY(-2px);border-color:rgba(255,255,255,0.14)}
.forecast-card small:first-child{color:var(--muted);font-size:0.78rem;font-weight:500}
.forecast-card i{font-size:1.25rem}

@media(max-width:1024px){
  .metrics-grid{grid-template-columns:repeat(2,1fr)}
  .forecast-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:820px){
  .glass-header{height:auto}
  .header-inner{padding:14px 16px}
  .app-container{grid-template-columns:1fr;margin-top:16px}
  .sidebar{position:static;min-height:auto}
  .temp-display{font-size:3.2rem}
  .forecast-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){
  .forecast-grid{grid-template-columns:repeat(2,1fr)}
  .metrics-grid{grid-template-columns:1fr 1fr}
}
