:root{font-family:system-ui,sans-serif;color:#192b24;background:#f3f6f2;line-height:1.5}
*{box-sizing:border-box}
body{margin:0}
header{display:flex;align-items:center;gap:1.2rem;background:#153d2d;color:white;padding:1rem max(1rem,calc((100vw - 1160px)/2))}
header a{color:inherit;font-weight:750;text-decoration:none;font-size:1.2rem}
header span{flex:1}
main{max-width:1200px;margin:auto;padding:1.25rem}
.dashboard-nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 6.4rem), 1fr));
    gap: .4rem;
    padding: .5rem;
    border: 1px solid #dce6db;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 2px 8px rgb(21 61 45 / 5%);
}
.dashboard-nav button {
    --nav-button-bg: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    min-height: 62px;
    padding: .45rem .25rem;
    border-radius: 10px;
    background: var(--nav-button-bg);
    color: #385548;
    font-size: .8125rem;
    line-height: 1.25;
}
.dashboard-nav svg { width: 22px; height: 22px; flex: none; }
.dashboard-nav button:hover { --nav-button-bg: #eef5ee; color: #173b2a; }
.dashboard-nav button[aria-current="true"] {
    --nav-button-bg: #216343;
    color: #fff;
    box-shadow: 0 2px 5px rgb(21 61 45 / 18%);
}
@media (max-width: 730px) {
    .dashboard-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .dashboard-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
h1{font-size:2rem;margin:1.2rem 0 .75rem}
h2{margin-top:0;font-size:1.15rem}
.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem}
.panel{border:1px solid #dce6db;background:white;padding:1.25rem;border-radius:14px}
label{display:block;font-weight:600;margin-bottom:.8rem}
input:not([type=checkbox]),select,textarea{width:100%;display:block;margin-top:.25rem;padding:.65rem;border:1px solid #9dae9f;border-radius:7px;background:#fff;color:inherit;font:inherit}
button{background:#e8f0e8;color:#173b2a;border:1px solid transparent;border-radius:7px;padding:.62rem .85rem;min-height:42px;cursor:pointer;font:inherit;font-weight:650}
button.primary,button.selected{background:#216343;color:white}
:focus-visible{outline:3px solid #227d55;outline-offset:2px}
.records{list-style:none;margin:.7rem 0 0;padding:0}
.records li{border-bottom:1px solid #e4ece4;padding:.45rem 0}
.records button{display:block;width:100%;text-align:left;background:transparent}
.records button:hover{background:#e8f0e8}
.records small{display:block;font-weight:400;color:#495d52}
fieldset{border:1px solid #dce6db;margin:0 0 .8rem;padding:.75rem}
.check{display:inline-flex;gap:.35rem;margin:0 .85rem .5rem 0;align-items:center}
.error{color:#9d2727}
.login{min-height:100dvh;display:grid;place-items:center;padding:1rem}
.login .panel{width:min(100%,400px)}
.login h1{margin:0}
.map-panel{margin-top:1rem}
.map{height:360px}
@media(max-width:730px){.columns{grid-template-columns:1fr}header span{display:none}header form{margin-left:auto}}
.plan-line{display:grid;grid-template-columns:2fr 1fr auto;align-items:end;gap:.6rem;margin-bottom:.7rem}
.plan-line label{margin:0}
table{width:100%;border-collapse:collapse;margin-bottom:1.25rem}
td,th{padding:.55rem;text-align:left;border-bottom:1px solid #e4ece4}
details{padding:.45rem 0;border-bottom:1px solid #e4ece4}
summary{cursor:pointer}
.pagination{margin-top:1rem}
button:disabled{opacity:.5;cursor:default}
.records button.review-button{width:auto;margin:.4rem 0;background:#e8f0e8}
.gps-map{height:300px;border:1px solid #dce6db;border-radius:8px;margin-block:.6rem}
.gps-actions{display:flex;align-items:end;flex-wrap:wrap;gap:.5rem;margin-block:.5rem}
.gps-actions label{flex:1;margin:0;min-width:12rem}
.gps-coordinates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.gps-stop{margin-block:.7rem}
.gps-selected{border-color:#216343}
.gps-results{list-style:none;padding:0}
.gps-results button{text-align:left;width:100%;margin-bottom:.25rem}
.gps-marker{border:2px solid white;border-radius:50%;background:#79501c;color:white;display:grid;place-items:center;font-weight:750}
.gps-marker-start{background:#216343}
.gps-marker-end{background:#922d32}
