:root {
  --blue: #156d61;
  --blue2: #22a88e;
  --red: #c45736;
  --gold: #efb54a;
  --green: #156d61;
  --bg: #f6f5f0;
  --text: #203137;
  --muted: #647277;
  --line: #dce5df;
  --card: #ffffff;
}

body {
  background:
    radial-gradient(circle at 84% 0%, rgba(239, 181, 74, .17), transparent 28rem),
    radial-gradient(circle at 18% 84%, rgba(34, 168, 142, .12), transparent 32rem),
    var(--bg);
}

button, .secondary, .danger {
  border-radius: 14px;
  box-shadow: 0 10px 22px rgba(21, 109, 97, .14);
}

button {
  background: linear-gradient(135deg, #156d61, #22a88e);
}

.secondary {
  color: #156d61;
  background: rgba(255, 255, 255, .74);
  border-color: rgba(21, 109, 97, .22);
}

.app { min-height: 100svh; }

.sidebar {
  width: 278px;
  padding: 26px 18px;
  border: 0;
  background:
    radial-gradient(circle at 105% 0%, rgba(239, 181, 74, .36), transparent 11rem),
    linear-gradient(180deg, #173b39 0%, #102b31 52%, #182334 100%);
  box-shadow: 16px 0 42px rgba(19, 49, 48, .12);
}

.brand {
  padding: 8px 9px 20px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.brand img {
  width: 58px;
  height: 58px;
  padding: 4px;
  background: rgba(255, 255, 255, .95);
  border-radius: 18px;
}

.brand strong { color: #ffffff; letter-spacing: .02em; }
.brand span { color: rgba(255, 255, 255, .66); letter-spacing: .04em; }

.nav {
  margin: 5px 0;
  padding: 12px 14px;
  color: rgba(255, 255, 255, .76);
  background: transparent;
  border: 1px solid transparent;
  box-shadow: none;
}

.nav:hover { background: rgba(255, 255, 255, .08); color: #fff; }

.nav.active {
  color: #173b39;
  background: linear-gradient(135deg, #f5c761, #f0aa43);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
}

.role-box {
  margin-top: 22px;
  border-color: rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .08);
}

.role-hint { color: rgba(255, 255, 255, .75); }

.main { padding: 32px clamp(20px, 4vw, 54px); }

.top {
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(21, 109, 97, .16);
}

.top h1 {
  color: #173b39;
  font-size: clamp(27px, 3vw, 38px);
  letter-spacing: -.03em;
}

.top p { color: #718078; font-weight: 700; }

.card {
  border: 1px solid rgba(21, 109, 97, .13);
  border-radius: 24px;
  box-shadow: 0 18px 45px rgba(23, 59, 57, .07);
}

.card h2, .sub-box h3 { color: #173b39; }

input, select, textarea {
  border-radius: 13px;
  border-color: #d6e2dc;
  background: #fcfdfb;
}

input:focus, select:focus, textarea:focus {
  outline: 3px solid rgba(34, 168, 142, .16);
  border-color: #22a88e;
}

.checks label {
  background: #f5faf7;
  border-color: #d9e8df;
}

.calc-total {
  background: linear-gradient(135deg, #fff6dc, #fffdf8);
  border-color: #f0d18c;
}

.quote-sheet {
  border-color: rgba(21, 109, 97, .19);
  border-radius: 30px;
  box-shadow: 0 24px 55px rgba(23, 59, 57, .12);
}

.quote-sheet:before {
  background-image:
    linear-gradient(135deg, rgba(21, 109, 97, .025) 25%, transparent 25%),
    linear-gradient(315deg, rgba(239, 181, 74, .06) 25%, transparent 25%);
  background-size: 32px 32px;
}

.sheet-head {
  background: linear-gradient(135deg, #e8f5f0, #fff 55%, #fff3d5);
  border: 1px solid #dcebe2;
}

.sheet-title h2, .sheet-title h3 { color: #173b39; }
.slogan, .panel h4 { background: linear-gradient(135deg, #173b39, #23796d); }
.panel.green h4 { background: linear-gradient(135deg, #b8623e, #d9864e); }

th { background: #edf7f2; color: #156d61; }
.amount, .panel-total { color: #156d61; }
.summary { background: #fbfdfa; border-color: #dcebe2; }
.summary h4, .sum-item b, .plus, .equals { color: #156d61; }
.foot { background: #fff6e4; border-color: #efd596; }

.login-overlay {
  background:
    radial-gradient(circle at 75% 15%, rgba(239, 181, 74, .34), transparent 24rem),
    linear-gradient(135deg, #153a38, #0d252d);
}

.login-card {
  border-color: rgba(255, 255, 255, .2);
  box-shadow: 0 28px 86px rgba(0, 0, 0, .26);
}

.login-card h1 { color: #173b39; }
.login-card .secondary { background: #f7fbf8; }

@media (max-width: 1180px) {
  .sidebar {
    width: 100%;
    padding: 12px 14px;
    background: linear-gradient(90deg, #173b39, #102b31);
  }

  .brand { padding: 0 10px 0 0; border: 0; }
}

/* V15 mobile shell override: this theme file loads after styles.css. */
@media (max-width: 720px) {
  .sidebar { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; overflow:visible !important; padding:12px !important; }
  .brand { grid-column:1 / -1; min-width:0 !important; margin:0 !important; padding:0 0 8px !important; }
  .nav { min-width:0 !important; margin:0 !important; }
  .role-box { grid-column:1 / -1; margin:2px 0 0 !important; }
}
