:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f9fafb;background:radial-gradient(circle at top,#0f172a,#020617)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 5vw;border-bottom:1px solid rgba(148,163,184,.4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(90deg,#0f172af2,#1e40afbf)}.logo-block{display:flex;gap:.75rem;align-items:center}.logo-mark{font-size:1.7rem}.app-header h1{font-size:1.3rem;margin:0}.subtitle{margin:0;font-size:.85rem;color:#cbd5f5}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.status-pill{padding:.25rem .75rem;border-radius:999px;font-size:.8rem;background:#0f172ab3;border:1px solid rgba(148,163,184,.7)}.info-btn{width:32px;height:32px;border-radius:999px;border:none;background:#facc15;color:#111827;font-weight:700;cursor:pointer}.info-btn:hover{background:#fde047}.app-main{padding:1.5rem 5vw 3rem;display:flex;flex-direction:column;gap:1.5rem}.app-footer{margin-top:auto;padding:1rem 5vw;display:flex;gap:.5rem;justify-content:center;font-size:.85rem;color:#9ca3af;border-top:1px solid rgba(31,41,55,.9);background:radial-gradient(circle at bottom,#1e40af99,#0f172af2)}.app-footer a{color:#bfdbfe;text-decoration:none}.app-footer a:hover{text-decoration:underline}.card{background:radial-gradient(circle at top left,#38bdf826,#0f172af5);border-radius:1.25rem;padding:1.25rem 1.5rem;border:1px solid rgba(148,163,184,.3);box-shadow:0 18px 45px #0f172ab3}.search-card h2,.weather-card h2{margin-top:0;margin-bottom:.25rem}.help-text{margin-top:0;margin-bottom:1rem;color:#9ca3af;font-size:.9rem}.search-form{display:flex;flex-direction:column;gap:.75rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-row{display:flex;gap:1rem;flex-wrap:wrap}.field-row .field{flex:1;min-width:160px}.field-inline{display:flex;gap:.5rem}input[type=text],input[type=date]{border-radius:999px;border:1px solid rgba(148,163,184,.6);background:#0f172ab3;padding:.55rem .9rem;color:#e5e7eb;font-size:.9rem}input::placeholder{color:#6b7280}input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf899}.primary-btn,.secondary-btn,.ghost-btn{border-radius:999px;border:none;padding:.55rem 1.1rem;font-size:.9rem;cursor:pointer;white-space:nowrap}.primary-btn{background:linear-gradient(135deg,#38bdf8,#6366f1);color:#fff;font-weight:600;align-self:flex-start;box-shadow:0 12px 30px #2563eb8c}.primary-btn:hover{filter:brightness(1.1)}.secondary-btn{background:#0f172ae6;color:#e5e7eb;border:1px solid rgba(148,163,184,.7)}.secondary-btn:hover{background:#1e40afe6}.ghost-btn{background:transparent;color:#e5e7eb;border:1px solid rgba(148,163,184,.5)}.ghost-btn:hover{background:#0f172ab3}.secondary-btn.small,.ghost-btn.small{padding:.35rem .8rem;font-size:.8rem}.ghost-btn.small.danger{border-color:#f87171b3;color:#fecaca}.alert{border-radius:.75rem;padding:.75rem 1rem;font-size:.9rem}.alert-error{background:#f8717126;border:1px solid rgba(248,113,113,.4);color:#fecaca}.weather-card{display:flex;flex-direction:column;gap:1rem}.weather-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.coords{margin:0;font-size:.85rem;color:#9ca3af}.weather-current{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;justify-content:space-between}.weather-main{display:flex;gap:.75rem;align-items:center}.weather-main img{width:80px;height:80px;filter:drop-shadow(0 10px 30px rgba(15,23,42,.9))}.temp-main{font-size:2.5rem;font-weight:700}.temp-sub{font-size:.95rem;color:#cbd5f5}.description{font-size:.9rem;color:#e5e7eb}.weather-meta{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}.weather-meta .label{display:block;font-size:.8rem;color:#9ca3af}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.forecast-item{padding:.75rem;border-radius:1rem;background:linear-gradient(145deg,#0f172ae6,#1e40afb3);border:1px solid rgba(148,163,184,.35);text-align:center;font-size:.85rem}.forecast-item img{width:54px;height:54px}.forecast-date{color:#e5e7eb;font-weight:500;margin-bottom:.25rem}.forecast-temps{display:flex;justify-content:center;gap:.35rem;align-items:baseline}.forecast-temps .muted{color:#9ca3af;font-size:.8rem}.forecast-desc{margin-top:.25rem;color:#cbd5f5}.table-wrapper{overflow-x:auto;margin-top:.75rem}.history-table{width:100%;border-collapse:collapse;font-size:.9rem}.history-table th,.history-table td{border-bottom:1px solid rgba(55,65,81,.8);padding:.55rem .35rem}.history-table th{text-align:left;font-size:.8rem;color:#9ca3af}.history-table input[type=text],.history-table input[type=date]{width:100%;border-radius:.5rem}.field-row.compact{gap:.35rem}.actions-cell{white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172acc;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:30}.modal{background:radial-gradient(circle at top,#020617,#020617);border-radius:1.25rem;max-width:640px;width:100%;padding:1.5rem 1.75rem;border:1px solid rgba(148,163,184,.5);box-shadow:0 25px 60px #000c}.modal.wide{max-width:960px}.modal h2{margin-top:0}.modal p{font-size:.9rem;color:#d1d5db}.modal-header-row{display:flex;justify-content:space-between;align-items:center}.extras-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem;margin-top:1rem}.extras-block iframe{width:100%;min-height:260px;border-radius:1rem;border:none}.video-list{display:flex;flex-direction:column;gap:.75rem}.video-item{display:flex;gap:.75rem;text-decoration:none;color:inherit;padding:.4rem;border-radius:.75rem;background:#0f172acc;border:1px solid rgba(31,41,55,.8)}.video-item img{width:96px;height:54px;object-fit:cover;border-radius:.5rem}.video-title{font-size:.9rem;font-weight:500}.video-channel{font-size:.8rem;color:#9ca3af}@media (max-width: 768px){.app-header{flex-direction:column;align-items:flex-start;gap:.75rem}.app-main{padding-inline:1rem}.extras-grid{grid-template-columns:1fr}.field-inline{flex-direction:column;align-items:stretch}.status-pill{margin-bottom:.25rem}}
