@font-face{font-family:Inria Sans;src:url(./InriaSans-Light-Bp9JFnBu.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Inria Sans;src:url(./InriaSans-Regular-BU7oQ3nQ.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Inria Sans;src:url(./InriaSans-Bold-BMqqqhU6.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Comfortaa;src:url(./Comfortaa-Regular-Bj6cidef.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}:root{--lumo-font-family: "Inria Sans", "Segoe UI", Roboto, Arial, sans-serif;--lumo-font-size-xs: .75rem;--lumo-font-size-s: .85rem;--lumo-font-size-m: .95rem;--lumo-font-size-l: 1.05rem;--lumo-font-size-xl: 1.4rem;--lumo-line-height-m: 1.6}html,body{background:radial-gradient(circle at top left,rgba(32,201,151,.08),transparent 24%),radial-gradient(circle at bottom right,rgba(56,189,248,.08),transparent 26%),linear-gradient(180deg,#f8fafc,#f1f5f9)}h1,h2,h3{letter-spacing:-.02em}.login-view{min-height:100vh;padding:20px;box-sizing:border-box}.login-shell{width:100%;display:flex;align-items:center;gap:24px;box-sizing:border-box}.login-left,.login-right{min-width:0;box-sizing:border-box}.login-left{flex:1 1 58%;padding:32px 28px 32px 8px}.login-right{flex:1 1 42%;padding:16px 0}.login-logo{display:block;max-width:760px;width:100%;height:auto;margin-bottom:24px}.login-title{margin:0 0 14px;font-size:clamp(1.9rem,2.5vw,2.8rem);font-weight:800;line-height:1.14;letter-spacing:-.03em;color:#111827;max-width:700px}.login-description{margin:0 0 18px;font-size:1.05rem;line-height:1.7;color:#4b5563;max-width:680px}.login-mascot{display:block;width:100%;max-width:500px;height:auto;margin:10px auto 24px;filter:drop-shadow(0 24px 36px rgba(15,23,42,.14))}.login-info-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;max-width:760px}.login-feature-card{padding:18px 18px 16px;border-radius:20px;background:#ffffffc7;border:1px solid rgba(15,23,42,.06);box-shadow:0 10px 30px #0f172a0d}.login-feature-title{margin-bottom:8px;font-size:1rem;font-weight:700;color:#0f172a}.login-feature-text{margin:0;font-size:.95rem;line-height:1.6;color:#6b7280}.login-form-card{width:100%;max-width:440px;padding:34px;border-radius:28px;background:#ffffffeb;border:1px solid rgba(15,23,42,.08);box-shadow:0 20px 60px #0f172a1a;box-sizing:border-box}.login-form-title{margin:0;font-size:1.85rem;font-weight:800;letter-spacing:-.02em;color:#111827}.login-form-subtitle{margin:8px 0 24px;font-size:.98rem;line-height:1.6;color:#6b7280}.login-back-button{margin-top:18px;font-weight:600;color:#4b5563}.login-form{width:100%;margin-top:6px}vaadin-login-form-wrapper{padding:0;background:transparent;box-shadow:none}vaadin-combo-box::part(input-field),vaadin-password-field::part(input-field){background:#f8fafc;border:1px solid #dbe4ee;border-radius:14px;min-height:36px;box-shadow:none}vaadin-combo-box[focused]::part(input-field),vaadin-password-field[focused]::part(input-field){background:#fff;border-color:#28c7a3;box-shadow:0 0 0 4px #28c7a324}vaadin-text-field::part(input-field),vaadin-password-field::part(input-field){background:#f8fafc;border:1px solid #dbe4ee;border-radius:14px;min-height:36px;box-shadow:none}vaadin-text-field[focused]::part(input-field),vaadin-password-field[focused]::part(input-field){background:#fff;border-color:#28c7a3;box-shadow:0 0 0 4px #28c7a324}vaadin-email-field::part(input-field),vaadin-password-field::part(input-field){background:#f8fafc;border:1px solid #dbe4ee;border-radius:14px;min-height:36px;box-shadow:none}vaadin-email-field[focused]::part(input-field),vaadin-password-field[focused]::part(input-field){background:#fff;border-color:#28c7a3;box-shadow:0 0 0 4px #28c7a324}vaadin-text-area::part(input-field),vaadin-password-field::part(input-field){background:#f8fafc;border:1px solid #dbe4ee;border-radius:14px;min-height:36px;box-shadow:none}vaadin-text-area[focused]::part(input-field),vaadin-password-field[focused]::part(input-field){background:#fff;border-color:#28c7a3;box-shadow:0 0 0 4px #28c7a324}vaadin-login-form vaadin-button[theme~=primary]{background:linear-gradient(135deg,#28c7a3,#17b897);border:none;border-radius:14px;min-height:36px;font-weight:700;box-shadow:0 12px 28px #17b89738}vaadin-login-form vaadin-password-field::part(reveal-button),vaadin-password-field::part(reveal-button){display:flex;color:#64748b;cursor:pointer;opacity:1}vaadin-login-form vaadin-password-field::part(reveal-button):hover,vaadin-password-field::part(reveal-button):hover{color:#0f766e}.entity-dialog::part(overlay){border-radius:18px;box-shadow:0 24px 70px #0f172a2e}.entity-dialog::part(header){padding:22px 24px 12px;border-bottom:1px solid rgba(15,23,42,.07)}.entity-dialog::part(title){font-size:1.25rem;font-weight:800;color:#0f172a}.entity-dialog::part(content){padding:20px 24px;background:linear-gradient(180deg,#f8fafcdb,#fff)}.entity-dialog::part(footer){padding:14px 24px 20px;border-top:1px solid rgba(15,23,42,.07);background:#fff}.entity-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:20px;align-items:start}.entity-form-panel{min-width:0;box-sizing:border-box;padding:16px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#ffffffdb;box-shadow:0 10px 30px #0f172a0d}.entity-form-section-title{font-size:.92rem;font-weight:800;text-transform:uppercase;color:#334155}.entity-form-preview-icon{border:1px solid rgba(15,23,42,.08);box-shadow:inset 0 0 0 1px #ffffffb8}.entity-meta-card{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid rgba(20,184,166,.18);border-radius:14px;background:linear-gradient(135deg,#f0fdfae6,#fffffff2)}.entity-meta-title{font-size:.95rem;font-weight:800;color:#0f172a}.entity-meta-subtitle{font-size:.86rem;line-height:1.35;color:#64748b}.entity-dialog-footer{gap:10px}.entity-form-panel vaadin-text-field,.entity-form-panel vaadin-password-field,.entity-form-panel vaadin-combo-box,.entity-form-panel vaadin-multi-select-combo-box,.entity-form-panel vaadin-text-area{width:100%}.entity-form-panel vaadin-text-field::part(input-field),.entity-form-panel vaadin-password-field::part(input-field),.entity-form-panel vaadin-combo-box::part(input-field),.entity-form-panel vaadin-multi-select-combo-box::part(input-field),.entity-form-panel vaadin-text-area::part(input-field){min-height:42px;border-radius:12px}@media(max-width:760px){.entity-dialog::part(header){padding:18px 16px 10px}.entity-dialog::part(content){padding:16px}.entity-dialog::part(footer){padding:12px 16px 16px}.entity-form-grid{grid-template-columns:1fr;gap:14px}.entity-form-panel{padding:14px}}@media(max-width:1024px){.login-view{padding:16px}.login-shell{flex-direction:column;gap:14px}.login-left,.login-right{width:100%;flex:none}.login-left{padding:16px 6px 8px;align-items:center;text-align:center}.login-right{padding:0}.login-title,.login-description{max-width:100%}.login-info-panel{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%}.login-form-card{max-width:560px;margin:0 auto}}@media(max-width:640px){.login-view{padding:10px;justify-content:flex-start}.login-blur{display:none}.login-shell{gap:8px}.login-left{padding:10px 2px 0}.login-logo{max-width:100%;margin-bottom:14px}.login-title{font-size:1.35rem;line-height:1.2;margin-bottom:8px}.login-description{font-size:.92rem;line-height:1.5;margin-bottom:10px}.login-mascot{max-width:220px;margin:6px auto 10px}.login-info-panel{display:none}.login-right{padding:0}.login-form-card{max-width:100%;width:100%;padding:20px 16px;border-radius:20px}.login-form-title{font-size:1.45rem}.login-form-subtitle{font-size:.92rem;margin:6px 0 18px}vaadin-text-field::part(input-field),vaadin-password-field::part(input-field){min-height:46px;border-radius:12px}vaadin-login-form vaadin-button[theme~=primary]{min-height:46px;border-radius:12px}}@media(max-width:420px){.login-view{padding:8px}.login-title{font-size:1.22rem}.login-mascot{max-width:180px}.login-form-card{padding:18px 14px}}.settings-content-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;width:100%}.settings-card{min-width:0}.settings-card::part(content){padding:16px}.settings-metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.settings-metric-card{background:#ffffffc7;border:1px solid rgba(15,23,42,.06);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:4px;min-height:118px;box-shadow:0 8px 24px #0f172a0a}.settings-metric-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--lumo-secondary-text-color)}.settings-metric-value{font-size:1.9rem;line-height:1.05;font-weight:800;color:var(--lumo-header-text-color)}.settings-metric-subtitle{font-size:.84rem;line-height:1.35;color:var(--lumo-secondary-text-color)}.settings-progress-track{width:100%;height:6px;background:var(--lumo-contrast-10pct);border-radius:999px;overflow:hidden;margin-top:auto}.settings-info-list{gap:8px}.settings-info-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:#ffffffb8;border:1px solid rgba(15,23,42,.06)}.settings-info-label{color:var(--lumo-secondary-text-color);font-weight:600;font-size:.92rem}.settings-info-value{color:var(--lumo-header-text-color);font-weight:700;font-size:.92rem;text-align:right}.settings-actions-list{gap:10px;align-items:flex-start}.settings-actions-list vaadin-button{margin:0}.forecast-day-card,.forecast-charts-grid,.forecast-chart-card,.forecast-chart-frame,.forecast-bar-plot{min-width:0;box-sizing:border-box}.compact-insight-item:last-child,.weather-summary-metric:last-child{border-right:0!important}.sensor-overview-strip{min-width:0}.compact-insight-item vaadin-button{margin:0;flex-shrink:0}.weather-summary-bar{min-width:0;box-sizing:border-box}.weather-summary-metric{min-height:76px}.forecast-charts-grid{width:100%}.forecast-chart-card{overflow:hidden}.forecast-bar-plot{max-width:100%}.forecast-chart-axis{flex-shrink:0;overflow:hidden}.forecast-bar{cursor:help;transition:opacity .12s ease,transform .12s ease}.forecast-bar:hover{opacity:.95!important;transform:translateY(-2px)}@media(max-width:1024px){.settings-content-grid{grid-template-columns:1fr}.settings-wrapper{padding:16px}}@media(max-width:640px){.settings-wrapper{padding:10px;gap:12px}.settings-title-bar{flex-direction:column;align-items:stretch;gap:10px}.settings-title-icon{width:100%}.settings-title-image{width:40px!important;height:40px!important}.settings-title-box h2{font-size:1.45rem}.settings-card::part(content){padding:12px}.settings-metrics-grid{grid-template-columns:1fr;gap:10px}.settings-metric-card{min-height:unset;padding:12px}.settings-metric-value{font-size:1.55rem}.settings-info-row{flex-direction:column;align-items:flex-start;gap:4px}.settings-info-value{text-align:left}.sensor-overview-strip{grid-template-columns:1fr!important}.compact-insight-item{border-right:0!important;border-bottom:1px solid var(--lumo-contrast-10pct);padding:10px 12px!important;gap:10px!important}.compact-insight-item:last-child{border-bottom:0}.compact-insight-reading{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center}.compact-insight-reading vaadin-button{padding-inline:8px}.weather-summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))!important}.weather-summary-metric{min-height:unset;border-bottom:1px solid var(--lumo-contrast-10pct);padding:10px!important;gap:8px!important}.weather-summary-metric img{width:34px!important;height:34px!important}.weather-summary-hum{border-right:0!important}.weather-summary-rain{grid-column:1 / -1;border-right:0!important}.weather-summary-metric:last-child{border-bottom:0}.forecast-day-card{padding:12px!important}.forecast-charts-grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}.forecast-chart-card{padding:10px!important;min-height:164px!important}.forecast-bar-plot{grid-auto-columns:minmax(6px,1fr)!important;gap:3px!important;padding:0!important}.forecast-chart-frame{grid-template-columns:34px minmax(0,1fr)!important;gap:6px!important}.forecast-chart-axis{font-size:.64rem!important}}
