@import url('brand-system.css');

:root{
  color-scheme:light;
  --emerald:var(--gg-emerald);
  --gold:var(--gg-gold);
  --ink:var(--gg-ink);
  --muted:var(--gg-muted);
  --line:var(--gg-line);
  --surface:#fff;
  --surface-soft:#f5f9f5;
  --focus:#d4af37;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0!important;
  min-height:100vh;
  color:var(--ink)!important;
  background:radial-gradient(circle at 15% 0%,#e3f1e8 0,transparent 34%),linear-gradient(150deg,#f5f9f6,#faf9f4 65%,#f2f7f1)!important;
  font:16px/1.55 var(--gg-font-ui)!important;
}
main{width:min(100%,1340px);margin:auto;padding:1.6rem clamp(1rem,3vw,2.6rem) 4rem}
header{
  background:linear-gradient(125deg,#073c2e,var(--gg-emerald) 68%,#0a704c)!important;
  border-bottom:4px solid var(--gold);
  box-shadow:0 10px 28px #062d2429;
  padding:1.25rem clamp(1rem,3vw,3rem)!important;
  color:#fff;
}
header nav,header p{max-width:1340px;margin-left:auto;margin-right:auto}
header p{margin-top:.6rem;margin-bottom:0;color:#dceee2}
nav{display:flex;align-items:center;gap:.55rem .75rem;flex-wrap:wrap;padding:.75rem 0 1.1rem;margin-bottom:1.35rem;border-bottom:1px solid var(--line)}
header nav{border:0;padding:0;margin-bottom:0;gap:.55rem}
nav strong,nav h1{margin:0 auto 0 0!important;color:var(--emerald);font:700 1.15rem/1.2 var(--gg-font-display);letter-spacing:-.01em}
header nav strong{color:#fff;flex:1 1 180px}
nav .nav-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.3rem .55rem}
nav a{display:inline-flex;align-items:center;min-height:40px;padding:.5rem .75rem;border-radius:9px;color:var(--emerald)!important;font-weight:650;text-decoration:none;line-height:1.25}
nav a:hover,nav a:focus-visible,nav a[aria-current=page]{background:#e8f3eb}
header nav a{color:#f8e3ac!important}
header nav a:hover,header nav a:focus-visible,header nav a[aria-current=page]{background:#ffffff23}
.brand-mark{display:block;width:44px;height:44px;object-fit:contain;flex:none}
a{color:#096949}a:hover{text-decoration-thickness:2px}
section,article{
  background:var(--surface)!important;
  border:1px solid var(--line)!important;
  border-radius:16px!important;
  box-shadow:0 12px 30px #123c2e0d!important;
  margin:1.4rem 0!important;
  padding:clamp(1.2rem,2.2vw,2rem)!important;
}
main>section:first-of-type,main>article:first-of-type{border-top:4px solid var(--gold)!important}
h1,h2,h3{margin:.1rem 0 .95rem;color:var(--emerald);font-family:var(--gg-font-display);line-height:1.2;letter-spacing:-.025em}
h1{font-size:clamp(1.9rem,3vw,2.5rem)}h2{font-size:clamp(1.35rem,2vw,1.6rem)}h3{font-size:1.2rem}
p{margin:.4rem 0 1rem;max-width:85ch}.hint,.muted,small{color:var(--muted)!important}small{display:block;font-size:.84rem;line-height:1.45}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:1rem}
.metric{background:linear-gradient(145deg,#eff7f0,#fffaf0)!important;border:1px solid #d9e8dc;border-left:4px solid var(--gold);border-radius:13px!important;padding:1.1rem 1.25rem!important}
.metric strong{display:inline-block;color:var(--emerald);font-size:1.5rem;line-height:1.2}
form{margin:1.1rem 0 0}
form>label{margin:.95rem 0 1.1rem}
label{display:block;margin:.8rem 0 .45rem;font-weight:650;color:#234b39}
label input:not([type=checkbox]):not([type=hidden]),label select,label textarea{display:block;width:100%;margin-top:.42rem}
input,select,textarea{
  font:inherit;color:var(--ink);background:#fff;
  border:1px solid #9ebba9;border-radius:10px;
  padding:.72rem .85rem;min-height:46px;max-width:100%;
  box-shadow:inset 0 1px 2px #123c2e0a;
}
input::placeholder,textarea::placeholder{color:#728a7b}
input:hover,select:hover,textarea:hover{border-color:#649b79}
textarea{display:block;width:min(100%,780px);min-height:112px;resize:vertical}
input[type=checkbox]{min-height:auto;width:19px;height:19px;padding:0;accent-color:var(--emerald);box-shadow:none;vertical-align:middle}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:1rem 1.2rem;align-items:end}
.form-grid>label{margin:0;min-width:0;flex:none}
.form-grid>button,.form-grid>.button{justify-self:start;align-self:end}
button,.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:.72rem 1.12rem!important;
  border:1px solid #075139!important;border-radius:10px!important;
  background:var(--emerald)!important;color:#fff!important;
  box-shadow:0 4px 11px #07513924;
  font:650 .95rem/1.2 var(--gg-font-ui)!important;
  text-align:center;text-decoration:none;cursor:pointer;
  transition:background-color .16s,box-shadow .16s,transform .16s;
}
button:hover,.button:hover{background:#08764b!important;box-shadow:0 6px 14px #0751392b;transform:translateY(-1px)}
button:disabled{opacity:.55;cursor:not-allowed;transform:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.action-links,.break-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1rem;margin:1.1rem 0}
.break-actions button{min-width:175px}
.break-allowance{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:.75rem;margin:1.2rem 0}
.break-allowance span{display:flex;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.break-allowance strong{color:var(--emerald)}
.setup-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin:1.7rem 0 0}
.setup-card{min-width:0;padding:1.5rem;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 7px 18px #123c2e0b}
.setup-card-role{grid-column:1/-1;background:linear-gradient(150deg,#fff,#f8fbf6)}
.setup-card h2{margin-bottom:.4rem}.setup-card p{min-height:2.5rem}
.setup-card form{display:flex;flex-direction:column;align-items:stretch;gap:.15rem}
.setup-card form>label{margin:.7rem 0}.setup-card form>button{align-self:flex-start;margin-top:.55rem}
.setup-card textarea{max-width:none}
.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;border:0;padding:0;margin:1rem 0 1.25rem;min-width:0}
.permission-list legend{font-weight:700;color:var(--emerald);padding:0 0 .5rem}
.permission-option{display:flex;align-items:flex-start;gap:.8rem;min-width:0;margin:0;padding:.85rem .95rem;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);font-weight:400;cursor:pointer}
.permission-option:hover{border-color:#9fc2a7;background:#eef7f0}
.permission-option input{flex:none;margin:.12rem 0 0}
.permission-option span{display:block;min-width:0}.permission-option strong{display:block;line-height:1.25;color:var(--ink)}
.permission-option small{margin-top:.2rem}
.role-card-list{display:grid;gap:.8rem;margin:1.2rem 0}
.role-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.role-card summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;cursor:pointer;color:var(--emerald);background:#f6faf6;list-style:none}
.role-card summary::-webkit-details-marker{display:none}
.role-card summary span{font-size:.88rem;font-weight:650;color:var(--muted)}
.role-card[open] summary{border-bottom:1px solid var(--line);background:#eef6ef}
.role-card form{padding:1.1rem 1.25rem 1.35rem;margin:0}
.role-card form>button{margin-top:.2rem}
.earnings-panel{border-top:4px solid var(--gold)!important}
.earnings-summary{margin:1.4rem 0}
.earnings-history{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:1rem 1.25rem;margin:1.2rem 0}
.earnings-history summary{padding:.2rem 0;font-size:1.02rem}
.earnings-history .scroll{background:#fff;border-radius:10px;margin-top:1rem}
.pay-pill{display:inline-block;max-width:100%;padding:.7rem 1rem;border-left:4px solid var(--gold);border-radius:9px;background:#eef7ed;color:var(--emerald)}
.pay-pill strong{display:block}.pay-pill small{margin-top:.15rem}
.pay-rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(205px,100%),1fr));gap:.8rem 1.15rem;margin:1.2rem 0 1.4rem}
.pay-rate-grid label{margin:0}.pay-rate-grid small{min-height:2.5rem}
.pay-record-form{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:180px}
.pay-record-form label{margin:0}.pay-record-form input{min-width:160px;width:100%}
table{width:100%;border-collapse:collapse}th,td{text-align:left;vertical-align:top;padding:.85rem .75rem;border-bottom:1px solid var(--line)}
th{color:var(--emerald);background:#eef6ef;font-size:.85rem;letter-spacing:.025em;white-space:nowrap}
tbody tr:hover{background:#f9fcf9}.scroll{overflow-x:auto;margin:.7rem 0}.scroll table{min-width:650px}
td form{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin:.3rem .4rem .3rem 0;vertical-align:middle}
td form input,td form select{width:auto;max-width:230px;min-width:110px}
td form button{white-space:nowrap}
.city-assignment{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:0}
.city-assignment select{width:min(100%,300px);max-width:100%;flex:1 1 190px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.error{color:#8d2929;background:#fff0ec;border:1px solid #e9c6c0;padding:.85rem 1rem;border-radius:10px}
[role=status]{background:#eef7ed;border-left:4px solid var(--gold);padding:.8rem 1rem;border-radius:7px}
details summary{cursor:pointer;font-weight:650;color:var(--emerald)}
.notice-list{list-style:none;padding:0}.notice-list li{border:1px solid var(--line);border-radius:12px;margin:.85rem 0;padding:1.1rem}
.notice-list li.unread{border-left:4px solid var(--gold);background:#f8fbf5}.notice-list small{display:block}.notice-list form{display:inline-flex;margin:.5rem 0 0 1rem}
@media(max-width:860px){.setup-cards{grid-template-columns:1fr}.setup-card-role{grid-column:auto}}
@media(max-width:660px){
  main{padding:1rem 1rem 3rem}section,article{padding:1.15rem!important}
  nav{align-items:flex-start}nav strong,nav h1{flex:1 1 calc(100% - 60px);align-self:center}
  header nav{gap:.35rem}.permission-list{grid-template-columns:1fr}
  .break-actions button{flex:1 1 100%}.scroll table{font-size:.87rem}
  .form-grid>button,.form-grid>.button{justify-self:stretch}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button,.button{transition:none}button:hover,.button:hover{transform:none}}

/* Shared compact navigation for client, staff, admin, and public information pages. */
nav.gg-nav-ready > .gg-nav-panel{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.3rem .55rem;min-width:0}
nav.gg-nav-ready > .gg-nav-toggle{display:none}
nav.gg-nav-ready > strong,nav.gg-nav-ready > h1{min-width:0;overflow-wrap:anywhere}
main,main > section,main > article,.grid > *,.form-grid > *,.setup-cards > *,
.permission-list > *,.scroll{min-width:0;max-width:100%}
main :is(p,li,dd,code,pre,a){overflow-wrap:anywhere}
main :is(h1,h2,h3,h4,td,label){overflow-wrap:anywhere}
main pre{overflow-x:auto}
main img,main video,main iframe{max-width:100%}
.scroll{overflow-x:auto}

@media(max-width:1100px){
  nav.gg-nav-ready{
    position:relative;z-index:10;display:grid!important;
    grid-template-columns:44px minmax(0,1fr) 44px;
    align-items:center!important;gap:.55rem;
  }
  nav.gg-nav-ready > .brand-mark{grid-column:1}
  nav.gg-nav-ready > strong,nav.gg-nav-ready > h1{
    grid-column:2;margin:0!important;flex:none;
    font-size:clamp(.98rem,2.5vw,1.15rem);line-height:1.25;
  }
  nav.gg-nav-ready > .gg-nav-toggle{
    grid-column:3;display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;min-height:44px;padding:0!important;
    font-size:1.35rem!important;line-height:1!important;
  }
  nav.gg-nav-ready > .gg-nav-panel{
    display:none;position:absolute;top:100%;left:0;right:0;z-index:20;
    max-height:min(70vh,540px);overflow-y:auto;
    padding:.5rem;border:1px solid var(--line);border-top:3px solid var(--gold);
    border-radius:0 0 12px 12px;background:var(--surface);
    box-shadow:0 12px 30px #123c2e30;
  }
  nav.gg-nav-ready > .gg-nav-panel.is-open{display:flex;flex-direction:column;align-items:stretch;gap:.15rem}
  nav.gg-nav-ready > .gg-nav-panel a{width:100%;min-height:44px;white-space:normal}
  header nav.gg-nav-ready > .gg-nav-toggle{background:transparent!important;border-color:var(--gold)!important;color:#fff!important}
  header nav.gg-nav-ready > .gg-nav-panel{background:var(--emerald);border-color:var(--gold)}
}

@media(max-width:660px){
  main .launch-grid,main .coverage-grid,main .photos,main .photo-grid,
  main .recovery-list{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
  main .payment-controls input{min-width:0;width:100%;flex:1 1 100%}
  main .launch-form input,main .launch-form select,main .launch-form textarea{min-width:0;max-width:100%}
  .scroll{max-width:100%}
}

/* Care plans, route cards and dispatch queues share the existing brand tokens. */
.care-actions{display:flex;flex-wrap:wrap;align-items:end;gap:.7rem 1.1rem;margin:.9rem 0}
.care-actions form{margin:0;display:flex;flex-wrap:wrap;align-items:end;gap:.6rem}
.care-actions label{margin:0;min-width:min(170px,100%)}
.care-actions button{white-space:normal}
.profile-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;max-width:760px}
.route-visit{border-left:4px solid var(--gold)!important;overflow-wrap:anywhere}
.route-visit ol{padding-left:1.5rem}.route-visit li{margin:.7rem 0}
.route-visit form{margin:.8rem 0}
.route-visit .field-photo{padding:1rem;background:var(--surface-soft);border-radius:12px;border:1px solid var(--line)}
.ops-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:.8rem;margin:1.4rem 0}
.ops-metrics a{display:flex;flex-direction:column;text-decoration:none;padding:1rem;border-radius:13px;border:1px solid var(--line);border-top:3px solid var(--gold);background:#fff;box-shadow:0 5px 14px #123c2e0a;color:var(--emerald)}
.ops-metrics strong{font-size:1.6rem;line-height:1.2}.ops-metrics span{font-size:.9rem}
@media(max-width:600px){.profile-contact{grid-template-columns:1fr}.care-actions,.care-actions form{align-items:stretch}.care-actions form{width:100%}.care-actions button{width:100%}.route-visit{padding:1rem!important}}
