*,*::before,*::after{
box-sizing:border-box;
}
html{
-webkit-text-size-adjust:100%;
text-size-adjust:100%;
}
body{
margin:0;
background:var(--bg1);
color:var(--tx1);
font-family:var(--ff1);
font-size:var(--fz1);
line-height:var(--lh1);
font-weight:var(--fw1);
min-height:100vh;
display:flex;
flex-direction:column;
}
a{
color:var(--tx1);
text-decoration:none;
}
a:hover{
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px;
}
:focus{
outline:none;
}
:focus-visible{
outline:3px solid var(--cl1);
outline-offset:3px;
}
[hidden]{
display:none !important;
}
button,input{
font:inherit;
color:inherit;
}
.site-head{
width:100%;
max-width:var(--mw2);
margin:0 auto;
padding:var(--gp3) var(--gp3) 0;
}
.brand{
display:inline-flex;
align-items:center;
gap:10px;
font-weight:var(--fw3);
font-size:var(--fz3);
letter-spacing:var(--ls1);
}
.brand:hover{
text-decoration:none;
}
.brand-pin{
width:28px;
height:28px;
}
.pin-body{
fill:var(--cl1);
}
.pin-x{
fill:none;
stroke:var(--tx3);
stroke-width:3.2;
stroke-linecap:round;
}
.page{
flex:1;
width:100%;
max-width:var(--mw2);
margin:0 auto;
padding:0 var(--gp3);
}
.hero{
max-width:var(--mw1);
margin:0 auto;
padding:var(--gp5) 0 var(--gp4);
text-align:center;
}
.hero-title{
margin:0;
font-size:var(--fz4);
line-height:var(--lh2);
letter-spacing:var(--ls1);
font-weight:var(--fw3);
}
.hero-text{
margin:var(--gp3) auto 0;
max-width:600px;
font-size:var(--fz2);
color:var(--tx2);
}
.find-form{
margin:var(--gp4) auto 0;
max-width:600px;
}
.find-row{
display:flex;
gap:var(--gp1);
padding:6px;
background:var(--bg2);
border-radius:var(--br9);
}
.find-input{
flex:1;
min-width:0;
height:52px;
padding:0 var(--gp3);
border:0;
background:transparent;
font-size:var(--fz2);
}
.find-input::placeholder{
color:var(--tx2);
}
.find-input:focus-visible{
outline:none;
}
.find-row:focus-within{
box-shadow:0 0 0 3px var(--cl1);
}
.find-error,.scan-error{
margin:var(--gp2) 0 0;
color:var(--rd1);
font-weight:var(--fw2);
}
.hero-note{
margin:var(--gp2) 0 0;
color:var(--tx2);
}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:var(--gp1);
min-height:52px;
padding:0 28px;
border:0;
border-radius:var(--br9);
font-weight:var(--fw2);
font-size:var(--fz1);
cursor:pointer;
white-space:nowrap;
}
.btn:hover{
text-decoration:none;
}
.btn-main{
background:var(--bg4);
color:var(--tx3);
}
.btn-main:hover{
background:var(--cl3);
}
.btn-main:disabled{
opacity:.6;
cursor:default;
}
.btn-soft{
background:var(--bg2);
color:var(--tx1);
}
.btn-soft:hover{
background:var(--bg3);
}
.btn-small{
min-height:40px;
padding:0 18px;
}
.step{
max-width:var(--mw1);
margin:0 auto var(--gp4);
}
.step-title{
margin:0;
font-size:32px;
letter-spacing:var(--ls1);
line-height:1.2;
}
.step-text{
margin:var(--gp1) 0 0;
color:var(--tx2);
}
.wait{
display:flex;
gap:var(--gp2);
align-items:flex-start;
padding:var(--gp3);
background:var(--bg2);
border-radius:var(--br1);
}
.wait-dot{
flex:none;
width:14px;
height:14px;
margin-top:6px;
border-radius:50%;
background:var(--cl1);
animation:pulse 1.2s ease-in-out infinite;
}
@keyframes pulse{
50%{
opacity:.25;
transform:scale(.8);
}
}
.wait-title{
margin:0;
font-weight:var(--fw2);
}
.wait-text{
margin:0;
color:var(--tx2);
}
.meter{
margin-top:var(--gp2);
height:6px;
background:var(--bg3);
border-radius:var(--br9);
overflow:hidden;
}
.meter-fill{
display:block;
width:0;
height:100%;
background:var(--cl1);
border-radius:var(--br9);
transition:width .4s ease;
}
.conflicts{
margin-top:var(--gp3);
padding:var(--gp2) var(--gp3);
background:var(--am2);
border-radius:var(--br1);
}
.conflicts-title{
margin:0;
font-weight:var(--fw2);
color:var(--am1);
}
.conflicts-list{
margin:var(--gp1) 0 0;
padding-left:20px;
}
.places{
list-style:none;
margin:var(--gp3) 0 0;
padding:0;
display:grid;
gap:var(--gp2);
}
.place{
padding:var(--gp2) var(--gp3) var(--gp3);
background:var(--bg2);
border-radius:var(--br1);
}
.place.is-off{
opacity:.55;
}
.place-top{
display:flex;
align-items:center;
gap:var(--gp2);
min-height:48px;
}
.place-use{
display:flex;
align-items:center;
gap:10px;
flex:1;
font-weight:var(--fw2);
cursor:pointer;
}
.place-use input{
width:22px;
height:22px;
accent-color:var(--bg4);
}
.place-remove{
min-height:40px;
padding:0 14px;
border:0;
background:transparent;
color:var(--tx2);
border-radius:var(--br9);
cursor:pointer;
}
.place-remove:hover{
background:var(--bg3);
color:var(--tx1);
}
.place-fields{
display:grid;
grid-template-columns:1fr 1fr;
gap:var(--gp1) var(--gp2);
margin-top:var(--gp1);
}
.field{
display:flex;
flex-direction:column;
gap:4px;
color:var(--tx2);
}
.field-wide{
grid-column:1/-1;
}
.field-input{
height:48px;
padding:0 14px;
border:0;
border-radius:var(--br2);
background:var(--bg1);
color:var(--tx1);
box-shadow:var(--sh1);
}
.field-input:focus-visible{
outline:3px solid var(--cl1);
outline-offset:0;
}
.confirm-actions{
display:flex;
justify-content:space-between;
gap:var(--gp2);
flex-wrap:wrap;
margin-top:var(--gp3);
}
.confirm-note{
margin:var(--gp2) 0 0;
color:var(--tx2);
}
.info{
max-width:var(--mw2);
margin:0 auto;
padding:var(--gp4) 0 var(--gp5);
}
.info-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:var(--gp3);
}
.info-item{
padding:var(--gp3);
background:var(--bg2);
border-radius:var(--br1);
}
.info-num{
margin:0;
width:36px;
height:36px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:var(--bg1);
font-weight:var(--fw3);
}
.info-title{
margin:var(--gp2) 0 0;
font-size:var(--fz2);
line-height:1.3;
}
.info-text{
margin:var(--gp1) 0 0;
color:var(--tx2);
}
.prose{
max-width:var(--mw1);
margin:0 auto;
padding:var(--gp4) 0 var(--gp5);
}
.prose h1{
margin:0 0 var(--gp3);
font-size:40px;
line-height:1.15;
letter-spacing:var(--ls1);
}
.prose h2{
margin:var(--gp4) 0 var(--gp1);
font-size:var(--fz3);
line-height:1.3;
}
.prose p,.prose li{
color:var(--cl3);
}
.prose a{
font-weight:var(--fw2);
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px;
}
.prose ul{
padding-left:22px;
}
.prose li{
margin:6px 0;
}
.report{
max-width:var(--mw1);
margin:0 auto;
padding:var(--gp4) 0 var(--gp5);
}
.report-loading{
color:var(--tx2);
}
.report-kicker{
margin:0;
color:var(--tx2);
}
.report-title{
margin:4px 0 0;
font-size:40px;
line-height:1.15;
letter-spacing:var(--ls1);
}
.report-site{
font-weight:var(--fw2);
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px;
}
.tally{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:var(--gp1);
margin:var(--gp3) 0 0;
padding:0;
list-style:none;
}
.tally-item{
padding:var(--gp2);
border-radius:var(--br1);
background:var(--gy2);
}
.tally-num{
display:block;
font-size:32px;
font-weight:var(--fw3);
line-height:1.1;
letter-spacing:var(--ls1);
}
.tally-item.is-wrong{
background:var(--rd2);
color:var(--rd1);
}
.tally-item.is-check{
background:var(--am2);
color:var(--am1);
}
.tally-item.is-ok{
background:var(--gn2);
color:var(--gn1);
}
.report-tools{
display:flex;
gap:var(--gp1);
flex-wrap:wrap;
margin-top:var(--gp3);
}
.loc{
margin-top:var(--gp4);
}
.loc-name{
margin:0;
font-size:var(--fz3);
line-height:1.3;
}
.loc-official{
margin:4px 0 0;
color:var(--tx2);
}
.checks{
list-style:none;
margin:var(--gp2) 0 0;
padding:0;
display:grid;
gap:var(--gp1);
}
.check{
padding:var(--gp2) var(--gp3);
background:var(--bg2);
border-radius:var(--br1);
}
.check-top{
display:flex;
align-items:center;
gap:var(--gp2);
flex-wrap:wrap;
}
.check-source{
font-weight:var(--fw2);
flex:1;
}
.pill{
display:inline-flex;
align-items:center;
min-height:30px;
padding:0 12px;
border-radius:var(--br9);
font-weight:var(--fw2);
background:var(--gy2);
color:var(--gy1);
}
.pill.is-wrong{
background:var(--rd2);
color:var(--rd1);
}
.pill.is-check{
background:var(--am2);
color:var(--am1);
}
.pill.is-ok{
background:var(--gn2);
color:var(--gn1);
}
.check.is-wrong .pill,.check.is-check .pill,.check.is-ok .pill{
background:var(--bg1);
}
.check.is-wrong{
background:var(--rd2);
}
.check.is-check{
background:var(--am2);
}
.issues{
margin:var(--gp1) 0 0;
padding:0;
list-style:none;
}
.issue{
margin:4px 0;
}
.issue-label{
font-weight:var(--fw2);
}
.listed{
margin:var(--gp1) 0 0;
color:var(--tx2);
}
.check-links{
display:flex;
gap:var(--gp2);
flex-wrap:wrap;
margin-top:var(--gp1);
}
.check-links a{
font-weight:var(--fw2);
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px;
}
.shot{
margin-top:var(--gp1);
}
.shot summary{
display:inline-flex;
align-items:center;
gap:6px;
min-height:40px;
font-weight:var(--fw2);
cursor:pointer;
list-style:none;
}
.shot summary::-webkit-details-marker{
display:none;
}
.shot summary::after{
content:"";
width:8px;
height:8px;
border-right:2px solid currentColor;
border-bottom:2px solid currentColor;
transform:rotate(45deg) translate(-2px,-2px);
transition:transform .15s ease;
}
.shot[open] summary::after{
transform:rotate(225deg) translate(-2px,-2px);
}
.shot-img{
display:block;
width:100%;
height:auto;
margin-top:var(--gp1);
border-radius:var(--br2);
box-shadow:var(--sh2);
}
.web{
margin-top:var(--gp2);
padding:var(--gp2) var(--gp3);
background:var(--am2);
border-radius:var(--br1);
}
.web-title{
margin:0;
font-weight:var(--fw2);
color:var(--am1);
}
.web-list{
margin:var(--gp1) 0 0;
padding-left:20px;
}
.web-list a{
font-weight:var(--fw2);
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px;
}
.report-foot{
margin-top:var(--gp4);
padding:var(--gp3);
background:var(--bg2);
border-radius:var(--br1);
}
.report-foot p{
margin:0 0 var(--gp1);
}
.site-foot{
width:100%;
max-width:var(--mw2);
margin:0 auto;
padding:var(--gp3);
display:flex;
flex-wrap:wrap;
gap:var(--gp1) var(--gp3);
color:var(--tx2);
}
.site-foot a{
color:var(--tx2);
}
.site-foot a:hover,.site-foot a[aria-current]{
color:var(--tx1);
}
.site-foot span{
margin-left:auto;
}
@media (max-width:760px){
.info-grid{
grid-template-columns:1fr;
}
.tally{
grid-template-columns:repeat(2,1fr);
}
.place-fields{
grid-template-columns:1fr;
}
.find-row{
flex-direction:column;
border-radius:var(--br1);
}
.find-input{
padding:0 var(--gp2);
}
.site-foot span{
margin-left:0;
width:100%;
}
.report-title,.prose h1{
font-size:32px;
}
}
@media print{
.site-head,.site-foot,.report-tools,.report-foot{
display:none;
}
.shot{
display:none;
}
}
