:root{--green:#093534;--soft:#d9e0d9;--bg:#f2f2f2;--white:#fff;--text:#153d3b;--danger:#9b3434}*{box-sizing:border-box}html{font-family:"Nunito",sans-serif}body{margin:0;color:var(--text);background:var(--bg);font-size:16px;line-height:1.5}a{color:inherit}.site-header{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem 1.25rem;padding:0 max(1rem,calc((100% - 1180px)/2)) .6rem;color:white;background:var(--green);box-shadow:0 3px 16px #0002}.brand{grid-column:1/-1;display:block;width:100%}.brand img{display:block;width:100%;height:clamp(82px,10vw,132px);object-fit:cover;border-radius:0 0 .8rem .8rem}.site-header nav{display:flex;gap:.25rem}.site-header nav a,.link-button{padding:.65rem .8rem;border:0;border-radius:.5rem;color:white;background:transparent;font:inherit;font-weight:700;text-decoration:none}.site-header nav a:hover,.site-header nav a:focus-visible,.link-button:hover{background:#ffffff18}.page{width:min(1180px,calc(100% - 2rem));min-height:calc(100vh - 80px);margin:auto;padding:2rem 0}.login-card{width:min(100%,760px);margin:5vh auto;padding:2rem;border-radius:1.2rem;background:white;box-shadow:0 18px 50px #09353420}.login-logo{display:block;width:100%;height:auto;margin-bottom:1.5rem;border-radius:.8rem}.login-card h1{text-align:center}.form-stack{width:min(100%,440px);margin-inline:auto;display:grid;gap:1rem}.form-stack label{display:grid;gap:.35rem;font-weight:700}input,button{min-height:48px;padding:.75rem 1rem;border:1px solid var(--soft);border-radius:.65rem;font:inherit}button,.button{border:0;color:white;background:var(--green);font-weight:800;cursor:pointer}.demo-hint{text-align:center;color:#617270}.alert{width:min(100%,440px);margin-inline:auto;padding:.8rem;border-radius:.6rem;color:var(--danger);background:#ffe8e8}.hero{padding:2rem;border-radius:1.2rem;color:white;background:linear-gradient(135deg,var(--green),#155653);box-shadow:0 16px 40px #09353420}.hero h1{margin:.2rem 0 1.2rem;font-size:clamp(1.8rem,5vw,3.2rem)}.eyebrow{margin:0;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.identity{display:flex;gap:1rem;flex-wrap:wrap}.debt{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #ffffff38}.debt strong{font-size:clamp(1.6rem,5vw,2.6rem)}.menu-grid,.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.menu-grid a,.card{min-width:0;padding:1.25rem;border:1px solid #d6dfd8;border-radius:1rem;background:white;box-shadow:0 5px 20px #0935340c}.menu-grid a{display:grid;gap:.35rem;min-height:150px;text-decoration:none}.menu-grid a span{color:#79928b;font-size:.85rem;font-weight:800}.menu-grid a strong{font-size:1.25rem}.menu-grid a small{color:#617270}.page-title{margin-bottom:1.5rem}.page-title p,.page-title span{margin:.2rem 0;color:#60716e}.page-title h1{margin:.15rem 0;font-size:clamp(1.8rem,5vw,2.8rem)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card h2{margin:.7rem 0;font-size:1.1rem}.badge{padding:.25rem .55rem;border-radius:99px;background:#e3ece6;font-size:.82rem;font-weight:800}.badge.warn{color:#7a4b00;background:#fff0c5}.badge.ok{color:#176038;background:#ddf2e5}dl{display:grid;gap:.45rem;margin:1rem 0}dl div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid #e6ebe7}dt{color:#63716e}dd{margin:0;text-align:right}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem .9rem;border-radius:.65rem;text-decoration:none}.button.secondary{border:1px solid var(--green);color:var(--green);background:white}.positive{color:#176038}.negative{color:var(--danger)}.share,.total{padding:.7rem!important;border:0!important;border-radius:.6rem;background:#edf3ef}.announcement{border-left:5px solid var(--green)}.announcement.planned{border-left-color:#c48a24}.announcement-detail{max-width:760px;margin:auto}.announcement-detail h1{font-size:clamp(1.6rem,5vw,2.5rem)}.back{display:inline-block;margin-bottom:1rem;font-weight:800;text-decoration:none}.empty{grid-column:1/-1;padding:2rem;border-radius:1rem;background:white;text-align:center}.view-toggle{display:flex;width:max-content;margin-left:auto;padding:.2rem;border:1px solid var(--soft);border-radius:.7rem;background:white}.view-toggle button{min-height:40px;padding:.4rem .8rem;color:var(--text);background:white}.view-toggle button.active{color:white;background:var(--green)}
@media(min-width:900px){.switchable.rows{grid-template-columns:1fr}.switchable.rows .card{display:grid;grid-template-columns:180px 1fr minmax(300px,1.2fr);gap:1rem;align-items:center}.switchable.rows .expense-card{grid-template-columns:150px 180px 1fr 1.2fr}.switchable.rows .card h2,.switchable.rows .card p,.switchable.rows .card dl{margin:0}}
@media(max-width:899px){html{font-size:18px}.site-header{position:static;gap:.35rem .5rem;padding:0 .6rem .6rem}.brand img{height:clamp(76px,25vw,112px)}.site-header nav{overflow-x:auto}.site-header nav a{flex:0 0 auto}.page{width:min(100% - 1.2rem,700px);padding:1rem 0}.menu-grid,.cards{grid-template-columns:1fr}.view-toggle{display:none}.login-card{margin:1rem auto;padding:1.2rem}.card,.menu-grid a{padding:1rem}.hero{padding:1.3rem}}
@media(max-width:430px){html{font-size:19px}.site-header nav a{padding:.55rem}.debt{align-items:flex-start;flex-direction:column}.card-top{align-items:flex-start}.page-title h1{line-height:1.12}}

/* Demo typography and full-width login branding */
html{font-size:18px}
body{font-size:1rem}
.login-card{position:relative;left:50%;width:calc(100vw - 2rem);max-width:1600px;transform:translateX(-50%)}
.login-logo{width:100%;height:auto}
.login-card h1{white-space:nowrap}
@media(max-width:899px){html{font-size:20px}.login-card{width:calc(100vw - 1.2rem)}}
@media(max-width:420px){.login-card{padding-inline:.75rem}}
@media(max-width:430px){html{font-size:21px}}

/* Edge-to-edge, larger brand banner */
.site-header{padding-right:0;padding-left:0}
.brand img{height:clamp(96px,12vw,160px);border-radius:0}
.site-header nav{margin-left:max(1rem,calc((100vw - 1180px)/2))}
.site-header form{margin-right:max(1rem,calc((100vw - 1180px)/2))}
@media(max-width:899px){.brand img{height:clamp(90px,28vw,128px)}.site-header nav{margin-left:.6rem}.site-header form{margin-right:.6rem}}

/* Larger brand and a consistent return action below the section menu */
.brand img{height:clamp(108px,14vw,184px)}
.header-back{grid-column:1/-1;width:max-content;margin-left:max(1rem,calc((100vw - 1180px)/2));padding:.45rem .8rem;border:1px solid #ffffff55;border-radius:.55rem;color:white;font-weight:800;text-decoration:none}
.header-back:hover,.header-back:focus-visible{background:#ffffff18}
@media(max-width:899px){.brand img{height:clamp(100px,31vw,146px)}.header-back{margin-left:.6rem}}

.header-session-action{grid-column:1/-1;width:max-content;margin:0 0 0 max(1rem,calc((100vw - 1180px)/2))}
.header-session-action .header-back{margin:0;background:transparent;font:inherit;line-height:1.5;cursor:pointer}
.search-bar{display:grid;gap:.35rem;margin:0 0 1rem;padding:1rem;border:1px solid var(--soft);border-radius:.8rem;background:white}
.search-bar label{font-weight:800}
.search-bar div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem}
.search-bar button{min-width:92px}
[hidden]{display:none!important}
@media(max-width:899px){.header-session-action{margin-left:.6rem}.search-bar{padding:.8rem}}

/* Preserve the original artwork; only increase its rendered size slightly. */
.brand img{height:clamp(116px,35vw,196px)}
@media(max-width:899px){.brand img{height:clamp(108px,38vw,175px)}}

@media(min-width:900px){
  .site-header{background:linear-gradient(to right,#093534 0%,#093534 50%,#fff 100%);box-shadow:none}
  .brand,.brand:hover,.brand:focus,.brand:focus-visible{overflow:hidden;border:0;background:none;background-color:transparent;box-shadow:none}
  .brand::before,.brand::after{display:none;content:none;background:none}
  .brand picture{display:contents;background:none}
  .brand img{width:50vw;max-width:50%;object-fit:contain;object-position:left center}
}

@media(max-width:899px){
  .site-header{grid-template-columns:1fr;gap:.65rem;padding:0 0 .8rem;background:var(--bg);box-shadow:none}
  .brand{grid-column:1/-1}
  .site-header nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:0;padding:.75rem;overflow:visible;background:var(--green)}
  .site-header nav a{display:flex;align-items:center;justify-content:center;min-height:58px;padding:.65rem;border:1px solid #ffffff40;background:#ffffff0d;text-align:center;white-space:normal}
  .site-header nav a:hover,.site-header nav a:focus-visible{background:#ffffff20}
  .header-back{grid-column:1/-1;margin:0 .75rem;border-color:var(--green);color:var(--green);background:var(--white)}
  .header-session-action{grid-column:1/-1;margin:0 .75rem}
  .header-session-action .header-back{margin:0;border-color:var(--green);color:var(--green);background:var(--white)}
  .site-header .admin-navigation{grid-template-columns:1fr}
}

.management-title{display:block}
.management-title .management-kicker{margin-bottom:1.15rem;color:var(--green);font-size:1.4rem;font-weight:800;text-decoration:underline;text-underline-offset:.18em}
.management-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.management-actions form{margin:0}
.button.danger{background:#9b3434}
.management-form{display:grid;gap:1rem;max-width:760px;margin:auto}
.management-form label{display:grid;gap:.35rem;font-weight:800}
.management-form input,.management-form select,.management-form textarea{width:100%;min-height:48px;padding:.75rem 1rem;border:1px solid var(--soft);border-radius:.65rem;background:white;color:var(--text);font:inherit}
.management-form textarea{resize:vertical}
.date-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.admin-header-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;margin:0 max(1rem,calc((100vw - 1180px)/2))}
.admin-header-actions form{margin:0}
.admin-header-actions .header-back{margin:0}
.management-menu{display:grid;grid-template-columns:1fr;gap:.65rem;margin-bottom:1.25rem}
.management-menu a{display:flex;align-items:center;min-height:54px;padding:.75rem 1rem;border:1px solid var(--green);border-radius:.7rem;color:var(--green);background:white;font-weight:800;text-decoration:none}
.management-menu a.new,.management-menu a.active{color:white;background:var(--green)}
@media(max-width:899px){.date-time-fields{grid-template-columns:1fr}.admin-header-actions{margin:0 .75rem}.management-menu a{min-height:58px}}

.section-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1.25rem;padding:.3rem;border:1px solid var(--soft);border-radius:.8rem;background:white}
.section-tabs button{border:1px solid var(--green);color:white;background:var(--green)}
.section-tabs button.active{box-shadow:inset 0 0 0 2px white,0 0 0 2px var(--green)}
.section-description{margin:0 0 1rem;color:#60716e}
.payment-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.25rem;border:1px solid var(--soft);border-radius:1rem;background:white}
.payment-panel button{min-height:64px}
.payment-panel[hidden]{display:none}
.delivery-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.schedule-fields{display:grid;gap:1rem;padding-top:.25rem}
.schedule-fields[hidden]{display:none}
@media(max-width:600px){.section-tabs,.payment-panel,.delivery-actions{grid-template-columns:1fr}}
.menu-grid--stacked{width:100%;grid-template-columns:minmax(0,1fr)!important}
.menu-grid--stacked a{width:100%}
.site-header .main-menu--stacked{grid-column:1/-1;display:grid!important;width:100%;grid-template-columns:minmax(0,1fr)!important;gap:.65rem}
.site-header .main-menu--stacked a{display:flex;width:100%;min-height:52px;align-items:center}
