227 lines
5.1 KiB
CSS
227 lines
5.1 KiB
CSS
:root {
|
|
--ink: #17212B;
|
|
--muted: #5A6874;
|
|
--paper: #F2F4F5;
|
|
--panel: #FCFDFD;
|
|
--line: #D6DCE1;
|
|
--strand: #0A8F99;
|
|
--strand-deep: #06656C;
|
|
--jacket: #F0B400;
|
|
--contract: #A23B72;
|
|
--error: #9B2C2C;
|
|
--font: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
--display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
|
|
}
|
|
|
|
* { box-sizing: border-box; }
|
|
|
|
html, body { height: 100%; margin: 0; }
|
|
|
|
body {
|
|
font-family: var(--font);
|
|
font-size: 16px;
|
|
line-height: 1.45;
|
|
color: var(--ink);
|
|
background: var(--paper);
|
|
}
|
|
|
|
.app {
|
|
display: grid;
|
|
grid-template-columns: minmax(320px, 410px) 1fr;
|
|
height: 100%;
|
|
}
|
|
|
|
.panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 24px;
|
|
overflow-y: auto;
|
|
padding: 28px 26px 18px;
|
|
background: var(--panel);
|
|
border-right: 1px solid var(--line);
|
|
}
|
|
|
|
.map { height: 100%; min-height: 320px; background: #E4E8EA; }
|
|
|
|
h1 {
|
|
margin: 0;
|
|
font-family: var(--display);
|
|
font-weight: 700;
|
|
font-size: 2.75rem;
|
|
line-height: 0.95;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.lede { margin: 10px 0 0; color: var(--muted); max-width: 36ch; }
|
|
|
|
.search { display: flex; flex-direction: column; gap: 10px; }
|
|
|
|
.search input {
|
|
font: inherit;
|
|
padding: 12px 14px;
|
|
color: var(--ink);
|
|
background: #fff;
|
|
border: 1.5px solid var(--line);
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.search input:focus-visible {
|
|
outline: none;
|
|
border-color: var(--strand);
|
|
box-shadow: 0 0 0 3px rgba(10, 143, 153, 0.22);
|
|
}
|
|
|
|
.search button {
|
|
font: 600 1rem var(--font);
|
|
padding: 12px 16px;
|
|
color: #fff;
|
|
background: var(--ink);
|
|
border: 0;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.search button:hover { background: var(--strand-deep); }
|
|
.search button:focus-visible { outline: 3px solid var(--jacket); outline-offset: 2px; }
|
|
.search button[disabled] { opacity: 0.6; cursor: progress; }
|
|
|
|
.result { display: flex; flex-direction: column; gap: 26px; }
|
|
.result:empty { display: none; }
|
|
|
|
.address { margin: 0 0 6px; font-size: 0.92rem; color: var(--muted); }
|
|
|
|
.verdict h2 {
|
|
margin: 0;
|
|
font-family: var(--display);
|
|
font-weight: 700;
|
|
font-size: 2.2rem;
|
|
line-height: 1.02;
|
|
}
|
|
|
|
.verdict.yes h2 { color: var(--strand-deep); }
|
|
.verdict p { margin: 6px 0 0; color: var(--muted); }
|
|
|
|
.strand {
|
|
position: relative;
|
|
height: 4px;
|
|
margin-top: 14px;
|
|
overflow: hidden;
|
|
background: var(--line);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.verdict.yes .strand { background: var(--strand); }
|
|
.verdict.near .strand { background: linear-gradient(90deg, var(--strand) 0 55%, var(--line) 55%); }
|
|
|
|
.verdict.yes .strand::after,
|
|
.verdict.near .strand::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 30%;
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95), transparent);
|
|
transform: translateX(-120%);
|
|
animation: pulse 1.4s ease-out 0.15s 1 forwards;
|
|
}
|
|
|
|
@keyframes pulse { to { transform: translateX(420%); } }
|
|
|
|
.block h3 { margin: 0 0 6px; font: 600 1.05rem var(--font); }
|
|
|
|
.list { margin: 0; padding: 0; list-style: none; }
|
|
|
|
.list li {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: baseline;
|
|
gap: 12px;
|
|
padding: 8px 0;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.list li:first-child { border-top: 0; }
|
|
.list .sub { flex-shrink: 0; font-size: 0.9rem; color: var(--muted); }
|
|
|
|
.contract { margin: 0 0 14px; padding: 2px 0 4px 12px; border-left: 3px solid var(--contract); }
|
|
.contract.open { border-left-color: var(--jacket); }
|
|
.contract h4 { margin: 0; font-size: 1rem; }
|
|
.contract p { margin: 4px 0 0; font-size: 0.92rem; }
|
|
|
|
.facts {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 4px 12px;
|
|
margin-top: 4px;
|
|
font-size: 0.9rem;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.badge {
|
|
display: inline-block;
|
|
padding: 1px 8px;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
color: var(--contract);
|
|
background: #F3E4EC;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.badge.open { color: #6B5000; background: #FCEFC4; }
|
|
|
|
.result a, .meta a { color: var(--strand-deep); }
|
|
|
|
.note { margin: 0; font-size: 0.92rem; color: var(--muted); }
|
|
.error { margin: 0; color: var(--error); }
|
|
|
|
.meta {
|
|
margin-top: auto;
|
|
padding-top: 12px;
|
|
font-size: 0.82rem;
|
|
color: var(--muted);
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
|
|
.meta p { margin: 0 0 4px; }
|
|
|
|
.pin {
|
|
width: 18px;
|
|
height: 18px;
|
|
background: var(--jacket);
|
|
border: 3px solid var(--ink);
|
|
border-radius: 50%;
|
|
box-shadow: 0 0 0 4px rgba(240, 180, 0, 0.35);
|
|
}
|
|
|
|
.legend {
|
|
padding: 8px 10px;
|
|
font: 0.82rem var(--font);
|
|
color: var(--ink);
|
|
background: rgba(252, 253, 253, 0.94);
|
|
border: 1px solid var(--line);
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.legend div { display: flex; align-items: center; gap: 8px; }
|
|
.legend i { display: inline-block; width: 14px; height: 10px; border-radius: 2px; }
|
|
|
|
.sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
overflow: hidden;
|
|
clip: rect(0 0 0 0);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.strand::after { display: none; }
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
html, body { height: auto; }
|
|
.app { grid-template-columns: 1fr; grid-template-rows: 44vh auto; height: auto; }
|
|
.map { grid-row: 1; height: 44vh; }
|
|
.panel { grid-row: 2; overflow: visible; border-right: 0; border-top: 1px solid var(--line); padding: 22px 18px 16px; }
|
|
h1 { font-size: 2.3rem; }
|
|
}
|