*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a1a;--bg-card:#11112a;--bg-cell:#181830;--border:#2a2a50;--accent:#f0c040;--accent-dim:#b08820;--text:#e8e8f0;--text-muted:#88a;--error-bg:#1a0a0a;--error-border:#6b1a1a;--error-text:#f08080;--radius:12px;--radius-sm:8px}html,body,#root{height:100%}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5}.app{background:radial-gradient(ellipse at 20% 0%, #3c287859 0%, transparent 60%), radial-gradient(ellipse at 80% 100%, #143c504d 0%, transparent 60%), var(--bg);flex-direction:column;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.app-main{flex:1;justify-content:center;align-items:flex-start;width:100%;max-width:640px;display:flex}.app-header{text-align:center;margin-bottom:2.5rem;position:relative}.app-logo{color:var(--accent);margin-bottom:.25rem;font-size:1.6rem;animation:4s ease-in-out infinite pulse;display:block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app-title{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 24px #f0c04066;font-size:2.4rem;font-weight:700}.app-subtitle{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin-top:.25rem;font-size:.85rem}.state-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:1rem;width:100%;margin-top:3rem;padding:2.5rem 2rem;display:flex}.state-text{color:var(--text-muted);letter-spacing:.04em;font-size:.95rem}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-card{background:var(--error-bg);border-color:var(--error-border)}.error-icon{color:var(--error-text);font-size:2rem}.error-detail{color:var(--error-text);border-radius:var(--radius-sm);word-break:break-word;text-align:center;background:#ff505012;max-width:100%;padding:.4rem .8rem;font-family:Courier New,monospace;font-size:.78rem}.moon-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden;box-shadow:0 8px 40px #00000080}.moon-card-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#14143a 0%,#0e0e26 100%);align-items:center;gap:1.2rem;padding:1.5rem 1.75rem;display:flex}.moon-icon{filter:drop-shadow(0 0 12px #f0c04080);font-size:3rem;line-height:1}.moon-title{color:var(--accent);letter-spacing:.06em;font-size:1.4rem;font-weight:600}.moon-timestamp{color:var(--text-muted);letter-spacing:.03em;margin-top:.2rem;font-size:.75rem}.data-grid{background:var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.data-cell{background:var(--bg-cell);flex-direction:column;align-items:flex-start;gap:.3rem;padding:1.1rem 1.4rem;transition:background .15s;display:flex}.data-cell:hover{background:#1e1e3a}.data-icon{color:var(--accent-dim);font-size:.9rem;line-height:1}.data-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.72rem}.data-value{color:var(--text);font-size:1.35rem;font-weight:600;line-height:1.1}.data-unit{color:var(--accent);vertical-align:super;letter-spacing:.05em;margin-left:.25rem;font-size:.7rem;font-weight:400}.app-nav{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.nav-link{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:center;min-height:2.25rem;padding:.45rem .9rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.nav-link:hover{border-color:var(--accent);color:var(--accent)}.nav-link.active{background:var(--accent);border-color:var(--accent);color:#0a0a1a}.app-footer{color:var(--text-muted);letter-spacing:.06em;opacity:.6;text-align:center;margin-top:2.5rem;font-size:.75rem}.footer-links{opacity:1;margin-top:.4rem}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--accent);text-decoration:underline}@media (width<=600px){.app{padding:1.5rem .75rem}.app-header{margin-bottom:1.75rem}.app-nav{gap:.4rem}.nav-link{padding:.4rem .75rem;font-size:.72rem}}@media (width<=480px){.app-title{font-size:1.8rem}.moon-card-header{gap:1rem;padding:1.2rem}.moon-icon{font-size:2.4rem}.data-grid{grid-template-columns:1fr}.data-cell{padding:.9rem 1.2rem}}@media (width<=360px){.app-nav{gap:.35rem}.nav-link{padding:.4rem .6rem;font-size:.68rem}}.calendar-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.calendar-form{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.days-select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:#181830;outline:none;padding:.6rem .85rem;font-size:1rem}.days-select:focus{border-color:var(--accent)}.calendar-result{flex-direction:column;gap:1rem;width:100%;display:flex}.calendar-summary{color:var(--text-muted);letter-spacing:.02em;font-size:.85rem}.calendar-events{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:1px;list-style:none;display:flex;overflow:hidden}.calendar-event{background:var(--bg-card);align-items:flex-start;gap:1rem;padding:1.1rem 1.4rem;transition:background .15s;display:flex}.calendar-event:hover{background:#1e1e3a}.calendar-event-icon{flex-shrink:0;font-size:1.4rem;line-height:1}.calendar-event-moon_phase .calendar-event-icon{filter:drop-shadow(0 0 8px #f0c04080)}.calendar-event-body{flex-direction:column;gap:.3rem;min-width:0;display:flex}.calendar-event-header{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.calendar-event-title{color:var(--accent);font-size:1rem;font-weight:600}.calendar-event-date{color:var(--text-muted);letter-spacing:.03em;font-size:.72rem}.calendar-event-description{color:var(--text);font-size:.85rem;line-height:1.4}.calendar-event-altaz{color:var(--text-muted);font-size:.75rem}@media (width<=600px){.calendar-form{flex-direction:column;align-items:stretch}.municipality-field{width:100%;min-width:0}.days-select,.search-btn{width:100%}.suggestion-item{padding:.75rem 1rem}}@media (width<=480px){.calendar-event{padding:.9rem 1.1rem}.calendar-event-header{flex-direction:column;gap:.15rem}}.policy-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:46rem;overflow:hidden;box-shadow:0 8px 40px #00000080}.policy-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#14143a 0%,#0e0e26 100%);align-items:center;gap:1.2rem;padding:1.5rem 1.75rem;display:flex}.policy-icon{filter:drop-shadow(0 0 10px #f0c04080);font-size:2.4rem;line-height:1}.policy-title{color:var(--accent);letter-spacing:.06em;font-size:1.4rem;font-weight:600}.policy-effective-date{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.2rem;font-size:.75rem}.policy-body{padding:1.75rem 2rem 2.25rem}.policy-body>p{color:var(--text);margin-bottom:1rem;line-height:1.7}.policy-section{margin-top:2rem}.policy-section:first-of-type{margin-top:1.5rem}.policy-section h3{color:var(--accent);letter-spacing:.03em;border-bottom:1px solid var(--border);margin-bottom:.85rem;padding-bottom:.5rem;font-size:1.05rem;font-weight:600}.policy-section h4{color:var(--accent-dim);letter-spacing:.04em;text-transform:uppercase;margin-top:1.25rem;margin-bottom:.6rem;font-size:.88rem;font-weight:600}.policy-section p{color:var(--text);margin-bottom:.85rem;line-height:1.7}.policy-section ul{color:var(--text);margin:0 0 .85rem;padding-left:1.4rem;line-height:1.7}.policy-section li{margin-bottom:.35rem}.policy-section li:last-child{margin-bottom:0}.policy-section strong{color:var(--text);font-weight:600}.policy-body a{color:var(--accent);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .15s}.policy-body a:hover{border-bottom-color:var(--accent)}@media (width<=480px){.policy-header{padding:1.2rem}.policy-body{padding:1.25rem 1.2rem 1.75rem}}.search-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.search-form{flex-wrap:wrap;gap:.5rem;display:flex}.search-form .search-input{min-width:12rem}.search-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;flex:1;padding:.65rem 1rem;font-size:1rem;transition:border-color .15s}.search-input::placeholder{color:var(--text-muted);opacity:.7}.search-input:focus{border-color:var(--accent)}.search-btn{background:var(--accent);border-radius:var(--radius-sm);color:#0a0a1a;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:none;padding:.65rem 1.25rem;font-size:.85rem;font-weight:700;transition:opacity .15s}.search-btn:hover:not(:disabled){opacity:.85}.search-btn:disabled{opacity:.4;cursor:not-allowed}.result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden;box-shadow:0 8px 40px #00000080}.result-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#14143a 0%,#0e0e26 100%);align-items:center;gap:1.2rem;padding:1.5rem 1.75rem;display:flex}.result-icon{color:var(--accent);filter:drop-shadow(0 0 10px #f0c04080);font-size:2.4rem;line-height:1}.result-name{color:var(--accent);letter-spacing:.06em;font-size:1.4rem;font-weight:600}.result-type{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem;font-size:.75rem}.result-location{color:var(--text-muted);margin-top:.35rem;font-size:.78rem}.visibility-message{color:var(--accent);margin-top:.35rem;font-size:.78rem;font-weight:600}.result-card.not-visible .visibility-message{color:var(--error-text)}@media (width<=600px){.search-form{flex-direction:column;align-items:stretch}.object-field,.municipality-field{width:100%;min-width:0}.search-btn{width:100%}.suggestion-item{padding:.75rem 1rem}}@media (width<=480px){.result-header{gap:1rem;padding:1.2rem}.result-icon{font-size:2rem}}.viewrec-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.viewrec-form{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.viewrec-form .search-input{min-width:12rem}.object-field{flex:1;min-width:12rem;position:relative}.object-field .search-input{width:100%}.suggestion-item{color:var(--text);cursor:pointer;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.6rem 1rem;font-size:.9rem;transition:background .1s;display:flex}.suggestion-type{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:.72rem}.suggestion-item.highlighted .suggestion-type,.suggestion-item:hover .suggestion-type{color:inherit;opacity:.75}.viewrec-message{color:var(--text-muted);border-bottom:1px solid var(--border);padding:1rem 1.75rem;font-size:.9rem}.result-card.not-visible .result-icon{color:var(--error-text);filter:drop-shadow(0 0 10px #f0808066)}.result-card.not-visible .viewrec-message{color:var(--error-text);border-bottom:none}.viewrec-time{font-size:1rem}@media (width<=600px){.viewrec-form{flex-direction:column;align-items:stretch}.object-field,.municipality-field{width:100%;min-width:0}.search-btn{width:100%}.suggestion-item{padding:.75rem 1rem}}@media (width<=480px){.viewrec-message{padding:.9rem 1.2rem}.result-header{gap:1rem;padding:1.2rem}.result-icon{font-size:2rem}}.weather-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.weather-form{flex-wrap:wrap;gap:.5rem;display:flex}.weather-form .search-input{min-width:12rem}.municipality-field{flex:1;min-width:12rem;position:relative}.municipality-field .search-input{width:100%}.suggestions-list{z-index:10;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:16rem;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.suggestion-item{color:var(--text);cursor:pointer;padding:.6rem 1rem;font-size:.9rem;transition:background .1s}.suggestion-item:not(:last-child){border-bottom:1px solid var(--border)}.suggestion-item:hover,.suggestion-item.highlighted{background:var(--bg-cell);color:var(--accent)}@media (width<=600px){.weather-form{flex-direction:column;align-items:stretch}.municipality-field{width:100%;min-width:0}.search-btn{width:100%}.suggestion-item{padding:.75rem 1rem}}@media (width<=480px){.result-header{gap:1rem;padding:1.2rem}.result-icon{font-size:2rem}}
