/* VINELEC Weather France — dark navy, pill + modal. */

.vinelecw-widget{
	--vinelecw-bg:#0f172a; --vinelecw-card:rgba(255,255,255,.06); --vinelecw-text:#f1f5f9;
	--vinelecw-muted:#94a3b8; --vinelecw-accent:#38bdf8; --vinelecw-radius:16px;
	display:inline-block; max-width:100%;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ---- Collapsed pill ---- */
.vinelecw-pill{
	display:flex; align-items:center; gap:18px;
	padding:12px 20px; border-radius:999px; cursor:pointer; text-align:left;
	border:1px solid rgba(255,255,255,.12);
	background:linear-gradient(160deg,#1e293b 0%,#0f172a 100%);
	color:var(--vinelecw-text); font-family:inherit;
	box-shadow:0 6px 20px rgba(0,0,0,.3);
	transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.vinelecw-pill:hover{ transform:translateY(-2px); box-shadow:0 12px 32px rgba(0,0,0,.42); border-color:var(--vinelecw-accent); }
.vinelecw-pill:focus-visible{ outline:2px solid var(--vinelecw-accent); outline-offset:3px; }
.vinelecw-pill-left{ display:flex; align-items:center; gap:11px; }
.vinelecw-pill-icon{ font-size:30px; line-height:1; }
.vinelecw-pill-temp{ font-size:25px; font-weight:700; line-height:1; }
.vinelecw-pill-city{ font-size:14px; color:var(--vinelecw-muted); max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vinelecw-pill-meta{
	display:flex; flex-direction:column; gap:3px; text-align:right;
	font-size:12px; line-height:1.35; color:var(--vinelecw-muted);
	padding-left:18px; border-left:1px solid rgba(255,255,255,.1);
}
.vinelecw-pill-meta span:first-child{ color:var(--vinelecw-text); font-weight:600; }
.vinelecw-pill-skeleton{ font-size:13px; color:var(--vinelecw-muted); }

/* ---- Modal ---- */
.vinelecw-modal-root{
	/* Palette re-declared here: this node is relocated to <body> at runtime, so it
	   no longer inherits the custom properties defined on .vinelecw-widget. */
	--vinelecw-bg:#0f172a; --vinelecw-card:rgba(255,255,255,.06); --vinelecw-text:#f1f5f9;
	--vinelecw-muted:#94a3b8; --vinelecw-accent:#38bdf8; --vinelecw-radius:16px;
	position:fixed; inset:0; z-index:99999;
	display:flex; align-items:center; justify-content:center;
	padding:24px; box-sizing:border-box; overflow:auto;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
/* When closed, stay out of the layout so it can't intercept clicks. */
.vinelecw-modal-root[hidden]{ display:none; }
.vinelecw-backdrop{ position:fixed; inset:0; background:rgba(2,6,23,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.vinelecw-modal{
	position:relative; width:min(920px, 100%); max-height:calc(100vh - 48px); overflow:auto;
	padding:28px; border-radius:24px; color:var(--vinelecw-text);
	background:linear-gradient(160deg,#1e293b 0%,#0f172a 100%);
	box-shadow:0 24px 70px rgba(0,0,0,.55);
	animation:vinelecw-pop .18s ease;
	scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent;
}
.vinelecw-modal::-webkit-scrollbar{ width:10px; }
.vinelecw-modal::-webkit-scrollbar-track{ background:transparent; }
.vinelecw-modal::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.15); border-radius:8px; border:2px solid transparent; background-clip:content-box; }
.vinelecw-modal::-webkit-scrollbar-thumb:hover{ background:rgba(56,189,248,.5); background-clip:content-box; }

/* ---- Section heading ---- */
.vinelecw-section + .vinelecw-section{ margin-top:18px; }
.vinelecw-section-title{
	font-size:11px; font-weight:700; letter-spacing:.8px; text-transform:uppercase;
	color:var(--vinelecw-muted); margin-bottom:10px;
}
@keyframes vinelecw-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:scale(1); opacity:1; } }
.vinelecw-close{
	position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%;
	border:1px solid rgba(255,255,255,.15); background:var(--vinelecw-card);
	color:var(--vinelecw-text); cursor:pointer; font-size:14px; line-height:1; z-index:2;
}
.vinelecw-close:hover{ border-color:var(--vinelecw-accent); }

/* ---- Search bar (in modal) ---- */
.vinelecw-searchbar{position:relative; display:flex; flex-wrap:wrap; gap:8px; margin:4px 34px 18px 0;}
.vinelecw-input{
	flex:1 1 150px; min-width:0; padding:10px 14px; border:1px solid rgba(255,255,255,.12);
	background:var(--vinelecw-card); color:var(--vinelecw-text); border-radius:10px;
	font-size:14px; outline:none; font-family:inherit;
}
.vinelecw-input::placeholder{color:var(--vinelecw-muted);}
.vinelecw-input:focus{border-color:var(--vinelecw-accent);}
.vinelecw-geo{
	width:42px; border:1px solid rgba(255,255,255,.12); background:var(--vinelecw-card);
	border-radius:10px; cursor:pointer; font-size:16px; line-height:1;
}
.vinelecw-geo:hover{border-color:var(--vinelecw-accent);}
.vinelecw-units{display:flex; border:1px solid rgba(255,255,255,.12); border-radius:10px; overflow:hidden;}
.vinelecw-unit{
	border:0; background:var(--vinelecw-card); color:var(--vinelecw-muted);
	padding:0 12px; font-size:13px; font-weight:600; cursor:pointer; line-height:1;
	font-family:inherit;
}
.vinelecw-unit + .vinelecw-unit{border-left:1px solid rgba(255,255,255,.12);}
.vinelecw-unit.is-active{background:var(--vinelecw-accent); color:#0f172a;}
.vinelecw-suggestions{
	position:absolute; top:100%; left:0; right:0; margin:6px 0 0; padding:6px;
	list-style:none; background:#1e293b; border:1px solid rgba(255,255,255,.12);
	border-radius:10px; z-index:20; max-height:240px; overflow:auto;
}
.vinelecw-suggestions li{
	padding:9px 12px; border-radius:8px; cursor:pointer; font-size:14px;
}
.vinelecw-suggestions li:hover{background:rgba(56,189,248,.15);}

/* ---- App layout: two-pane on desktop, stacked on mobile ---- */
.vinelecw-app{ display:grid; grid-template-columns:1fr 1.25fr; gap:28px; align-items:start; }
.vinelecw-app-hero{
	background:var(--vinelecw-card); border-radius:18px; padding:22px;
	display:flex; flex-direction:column; justify-content:center;
}
.vinelecw-app-side{ min-width:0; }

/* ---- Current conditions panel ---- */
.vinelecw-current{display:flex; align-items:center; gap:20px;}
.vinelecw-icon{font-size:72px; line-height:1;}
.vinelecw-place{font-size:17px; color:var(--vinelecw-muted); margin-bottom:2px;}
.vinelecw-temp{font-size:56px; font-weight:700; line-height:1;}
.vinelecw-cond{font-size:15px; color:var(--vinelecw-muted); margin-top:5px;}
.vinelecw-sub{font-size:14px; color:var(--vinelecw-text); font-weight:600; margin-bottom:2px;}
.vinelecw-maxmin{font-size:13px; color:var(--vinelecw-muted); margin-top:8px; letter-spacing:.3px;}
.vinelecw-meta{
	display:flex; justify-content:space-between; gap:8px; margin:18px 0 0;
	padding:16px 0 0; border-top:1px solid rgba(255,255,255,.1);
	font-size:13px; color:var(--vinelecw-muted);
}

/* ---- Hourly row ---- */
.vinelecw-hourly{
	display:flex; gap:10px; overflow-x:auto; padding:0 0 12px; margin:0;
	scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent;
}
.vinelecw-hourly::-webkit-scrollbar{ height:8px; }
.vinelecw-hourly::-webkit-scrollbar-track{ background:rgba(255,255,255,.04); border-radius:8px; }
.vinelecw-hourly::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.18); border-radius:8px; }
.vinelecw-hourly::-webkit-scrollbar-thumb:hover{ background:rgba(56,189,248,.55); }
.vinelecw-hour{
	flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:6px;
	min-width:54px; padding:9px 6px; border-radius:12px; background:var(--vinelecw-card);
}
.vinelecw-hour-label{ font-size:11px; color:var(--vinelecw-muted); }
.vinelecw-hour-icon{ font-size:20px; line-height:1; }
.vinelecw-hour-temp{ font-size:13px; font-weight:600; }

/* ---- 7-day strip ---- */
.vinelecw-forecast{display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
.vinelecw-day{
	display:flex; flex-direction:column; align-items:center; gap:5px;
	padding:8px 4px; border:1px solid transparent; border-radius:12px;
	background:transparent; color:var(--vinelecw-text); cursor:pointer;
	font-family:inherit; transition:background .15s, border-color .15s;
}
.vinelecw-day:hover{background:var(--vinelecw-card);}
.vinelecw-day.is-active{background:var(--vinelecw-card); border-color:var(--vinelecw-accent);}
.vinelecw-day-name{font-size:12px; color:var(--vinelecw-muted);}
.vinelecw-day.is-active .vinelecw-day-name{color:var(--vinelecw-accent);}
.vinelecw-day-icon{font-size:22px;}
.vinelecw-day-temp{font-size:12px; font-weight:600;}
.vinelecw-day-temp em{color:var(--vinelecw-muted); font-style:normal; margin-left:4px;}

.vinelecw-loading,.vinelecw-error{padding:28px 0; text-align:center; color:var(--vinelecw-muted); font-size:14px;}
.vinelecw-attribution{margin-top:14px; text-align:right; font-size:11px; color:var(--vinelecw-muted);}
.vinelecw-attribution a{color:var(--vinelecw-muted);}

/* Tablet / narrow: collapse the two-pane app into one column. */
@media (max-width:820px){
	.vinelecw-app{ grid-template-columns:1fr; gap:20px; }
	.vinelecw-app-hero{ padding:20px; }
}
/* Phone: modal fills the screen. */
@media (max-width:560px){
	.vinelecw-pill{ width:100%; box-sizing:border-box; justify-content:space-between; }
	.vinelecw-modal{
		width:100%; max-width:100%; min-height:100vh; max-height:none;
		margin:0; border-radius:0; padding:20px;
	}
	.vinelecw-searchbar{ margin-right:40px; }
	.vinelecw-icon{ font-size:60px; }
	.vinelecw-temp{ font-size:48px; }
	.vinelecw-forecast{ grid-template-columns:repeat(3,1fr); }
}
@media (prefers-reduced-motion){
	.vinelecw-pill{ transition:none; }
	.vinelecw-modal{ animation:none; }
}
