:root{--bg:#f6f7fb;--ink:#1f2937;--muted:#6b7280;--brand:#184c7c;--card:#fff;--border:#d9dee8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:var(--brand);color:white;padding:.8rem 1.2rem;position:sticky;top:0;z-index:5}.brand{font-size:1.2rem;font-weight:700}.topbar a{color:white;margin-left:1rem;text-decoration:none}.container{max-width:1180px;margin:1.2rem auto;padding:0 1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 4px #0001}.narrow{max-width:420px;margin:2rem auto}.grid.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.button,button{background:var(--brand);color:white;border:0;border-radius:8px;padding:.55rem .8rem;text-decoration:none;display:inline-block;margin:.25rem .25rem .25rem 0;cursor:pointer}.button.secondary{background:#64748b}input,textarea,select{width:100%;padding:.55rem;border:1px solid var(--border);border-radius:8px;background:white}textarea{min-height:85px}label{font-weight:600;display:block;margin:.5rem 0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.75rem}.eval-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}.field{background:white;border:1px solid var(--border);border-radius:10px;padding:.6rem}.field span{display:block;margin-bottom:.35rem}.field textarea{height:115px}.field.simpleObject{border-left:4px solid #8aa9c7}.field small{color:var(--muted);font-weight:400}.sticky-actions{grid-column:1/-1;position:sticky;top:57px;background:#eef4fa;border:1px solid #c9d9e7;padding:.5rem;border-radius:10px;z-index:2}.sticky-actions.bottom{position:static}.table-wrap{overflow:auto;background:white;border:1px solid var(--border);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--border);padding:.5rem;text-align:left;vertical-align:top}th{background:#eef2f7}.flash{background:#fff7cc;border:1px solid #f1d76b;border-radius:10px;padding:.65rem;margin-bottom:1rem}.search{display:flex;gap:.5rem;margin-bottom:1rem}.muted{color:var(--muted)}@media(max-width:700px){.topbar{display:block}.topbar a{display:inline-block;margin:.5rem .6rem 0 0}.eval-form{grid-template-columns:1fr}.container{padding:0 .7rem}.sticky-actions{top:82px}}

/* Sectioned form layout reconstructed from the original Anvil pediatric eval screen. */
.sectioned-form{display:block;max-width:980px;margin:0 auto}.sectioned-form .sticky-actions{margin-bottom:1rem}.form-section{margin:1.25rem auto 1.75rem;padding:1.1rem}.form-section h2{font-size:1.12rem;font-weight:500;margin:.1rem 0 1rem}.form-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end;margin:.3rem 0}.form-row.single{grid-template-columns:1fr}.form-row .field{grid-column:span var(--span,1);margin:0;background:transparent;border:0;border-radius:0;padding:.25rem 0}.form-row .field.wide{grid-column:1/-1}.form-row .field span{font-size:.78rem;font-weight:600;color:#374151;margin-bottom:.25rem}.sectioned-form input,.sectioned-form textarea,.sectioned-form select{border:0;border-bottom:1px solid var(--border);border-radius:0;background:#fff;padding:.45rem .25rem}.sectioned-form input[type="checkbox"]{width:auto;margin-right:.4rem}.sectioned-form label:has(input[type="checkbox"]){display:flex;gap:.5rem;align-items:center}.sectioned-form label:has(input[type="checkbox"]) span{order:2;margin:0}.sectioned-form label:has(input[type="checkbox"]) input{order:1}.sectioned-form textarea{min-height:78px;border:1px solid var(--border);border-radius:4px;padding:.5rem}.sectioned-form select[multiple]{min-height:2.5rem;border:1px solid var(--border);border-radius:4px}.sectioned-form small{display:block;margin-top:.25rem;color:var(--muted);font-weight:400}.sectioned-form .bottom{margin-top:1.5rem}
@media(max-width:800px){.sectioned-form{max-width:100%}.form-row{grid-template-columns:1fr}.form-row .field,.form-row .field.wide{grid-column:1/-1}}

/* CC address selector modal, matching the original Anvil Autocomplete workflow. */
.cc-address-section .form-row{align-items:start}.cc-address-field span a.address-picker-link{font-size:.78rem;color:#1769aa;text-decoration:none;font-weight:500}.cc-address-field span a.address-picker-link:hover{text-decoration:underline}.clear-entry-link{display:inline-block;margin-top:.25rem;font-size:.72rem;color:#1769aa;text-decoration:none}.clear-entry-link:hover{text-decoration:underline}.modal-backdrop[hidden]{display:none!important}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:center;justify-content:center;padding:1.2rem}.modal-card{background:#fff;box-shadow:0 16px 45px rgba(0,0,0,.28);max-height:92vh;overflow:auto;position:relative}.address-modal{width:min(680px,96vw);border-radius:2px;padding:0 1rem 1rem}.modal-close{position:absolute;right:.6rem;top:.55rem;background:transparent;color:#aaa;font-size:1.4rem;line-height:1;border:0;padding:.1rem .35rem}.modal-title{background:#2196f3;color:white;font-weight:700;margin:2.9rem 0 1.2rem;padding:.8rem 3.4rem;box-shadow:0 2px 6px #0003}.modal-body{padding:0 2.1rem 1rem}.modal-body .field{background:transparent;border:0;border-radius:0;padding:.35rem 0;margin:.3rem 0}.modal-body .field span{font-size:.82rem;font-weight:500;color:#666}.modal-body input,.modal-body select{border:0;border-bottom:1px solid #999;border-radius:0;padding:.58rem .15rem;background:white}.modal-select-field{max-width:280px}.modal-actions{display:grid;gap:.7rem;margin-top:.8rem}.modal-actions button{width:100%;background:#fff;color:#1a73e8;border:1px solid #ddd;border-radius:2px;box-shadow:0 1px 3px #0002;text-transform:uppercase;font-size:.75rem}.modal-actions .secondary-button{background:#fff;color:#1a73e8}
@media(max-width:700px){.modal-backdrop{align-items:flex-start;padding:.6rem}.address-modal{width:100%;max-height:96vh}.modal-title{margin-top:2.3rem;padding:.75rem 1.2rem}.modal-body{padding:0 .6rem .8rem}}

/* Smaller, centered Clear entry links like the original Anvil CC address layout. */
.clear-entry-link{display:block!important;text-align:center!important;margin:.18rem auto .35rem!important;font-size:.58rem!important;line-height:1.1!important;font-weight:400!important;color:#1769aa;text-decoration:none;width:max-content;max-width:100%;}
.clear-entry-link:hover{text-decoration:underline;}
.migration-form label { min-width: 220px; }
.checkbox-line { display: flex; gap: .5rem; align-items: center; font-weight: 400; }
.small-cell { max-width: 360px; font-size: .8rem; overflow-wrap: anywhere; }
button.tiny { font-size: .75rem; padding: .25rem .45rem; }
button.secondary { background: #eef2f7; color: #16324f; border: 1px solid #c9d5e4; }

/* Home screen styling to closely match the original Anvil TVT home page. */
body.home-page{background:#f7f7f7;}
body.home-page .topbar{background:#2196f3;min-height:56px;box-shadow:0 2px 8px rgba(0,0,0,.22);}
body.home-page .topbar .brand{visibility:hidden;}
body.home-page .topbar nav a:not(:last-child){display:none;}
body.home-page .topbar nav a{font-size:1.1rem;font-weight:500;text-transform:none;}
body.home-page .container{max-width:1000px;margin:1.45rem auto;padding:0 1rem;}
.anvil-home{max-width:970px;margin:0 auto;}
.home-logo-wrap{text-align:center;margin:0 0 1.35rem;}
.home-logo{width:min(390px,88vw);height:auto;display:inline-block;background:white;}
.home-menu{display:block;max-width:970px;margin:0 auto;}
.home-menu-button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;margin:0 0 8px;background:#2196f3;color:#fff;text-decoration:none;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.28);font-weight:700;font-size:.86rem;letter-spacing:.01em;text-align:center;text-transform:uppercase;}
.home-menu-button:hover{background:#1e88e5;text-decoration:none;}
.home-menu-icon{position:absolute;left:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:27px;color:#fff;font-size:.9rem;font-weight:700;line-height:1;}
.home-spacer{height:18px;}
@media(max-width:700px){body.home-page .container{margin:1rem auto;padding:0 .65rem}.home-menu-button{font-size:.78rem;min-height:38px}.home-logo{width:min(340px,92vw)}}

/* Reeval dynamic status dropdowns: hidden/shown to match original Anvil behavior. */
.reeval-dynamic-group{grid-column:1/-1;display:block;margin:.15rem 0 .45rem;}
.reeval-update-field{display:block!important;margin:.22rem 0!important;padding:0!important;background:transparent!important;border:0!important;}
.reeval-update-field span{font-weight:400!important;font-size:.95rem!important;color:#111827!important;margin-bottom:.08rem!important;}
.reeval-update-field select{width:100%;border:0!important;border-bottom:1px solid #9ca3af!important;border-radius:0!important;background:#fff!important;padding:.35rem .15rem!important;}
.reeval-update-field.dynamic-hidden{display:none!important;}

/* Admin screens: intentionally close to the original Anvil user-admin layout. */
.admin-shell { display: grid; grid-template-columns: 150px minmax(320px, 960px); gap: 40px; align-items: start; }
.admin-side { padding-top: 22px; font-weight: 700; }
.admin-side a { color: #111; text-decoration: none; }
.admin-main { padding-top: 22px; }
.admin-current { margin: 0 0 18px 0; }
.admin-add-form { text-align: center; margin-bottom: 22px; }
.button-primary, .button-secondary { border: none; cursor: pointer; box-shadow: 0 2px 5px rgba(0,0,0,.25); font-weight: 700; }
.button-primary { background: #2196f3; color: #fff; padding: 12px 22px; }
.button-secondary { background: #eee; color: #0b80ff; padding: 12px 22px; }
.admin-user-list { margin-top: 8px; }
.admin-user-row { display: grid; grid-template-columns: 1fr 90px; gap: 20px; align-items: center; min-height: 52px; }
.admin-user-email { border-bottom: 1px solid #999; padding: 11px 0; font-size: 18px; }
.admin-edit-link { justify-self: center; color: #0b80ff; text-decoration: none; font-weight: 500; padding: 12px 18px; }
.admin-edit-link:hover { background: #eee; }
.admin-card { background: #fff; padding: 12px; border: 1px solid #e0e0e0; box-shadow: 0 2px 4px rgba(0,0,0,.18); }
.admin-edit-top-row { display: grid; grid-template-columns: 1fr auto; gap: 54px; align-items: end; margin-bottom: 12px; }
.admin-editor-body { display: block; }
.admin-card.collapsed .admin-editor-body { display: none; }
.admin-check { display: block; margin: 20px 0; font-size: 18px; }
.admin-check input { transform: scale(1.05); margin-right: 8px; }
.admin-field-label { color: #777; display: block; margin-top: 18px; }
.admin-line-input { width: 100%; border: none; border-bottom: 1px solid #999; padding: 10px 0 8px; font-size: 16px; background: transparent; }
.admin-email-input { font-size: 18px; }
.admin-password-row { display: grid; grid-template-columns: 300px 1fr 310px 1fr; gap: 16px; align-items: end; margin: 18px 0 20px; }
.admin-password-row .admin-field-label { margin: 0; align-self: center; }
.admin-hash-input { min-width: 240px; }
.admin-save-button { width: 100%; margin-top: 50px; }
@media (max-width: 850px) { .admin-shell { grid-template-columns: 1fr; gap: 10px; } .admin-password-row, .admin-edit-top-row { grid-template-columns: 1fr; } .admin-user-row { grid-template-columns: 1fr auto; } }

/* Professional contacts management */
.contacts-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.filter-form {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  flex: 1 1 420px;
  justify-content: flex-end;
}
.filter-form input[name="q"] {
  min-width: 320px;
  max-width: 620px;
  width: 100%;
}
.contacts-table th a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  width: 100%;
}
.contacts-table th a:hover {
  text-decoration: underline;
}
.actions-col {
  min-width: 130px;
}
.row-actions {
  white-space: nowrap;
}
.row-actions form {
  display: inline;
  margin-left: .35rem;
}
.small-button,
.button-secondary {
  display: inline-block;
  padding: .35rem .65rem;
  border-radius: 3px;
  background: #e9ecef;
  color: #0d6efd;
  text-decoration: none;
  font-weight: 600;
  border: 0;
}
.button-secondary {
  color: #333;
}
.link-danger {
  background: transparent;
  border: 0;
  color: #b00020;
  cursor: pointer;
  font-weight: 600;
  padding: .35rem .2rem;
}
.link-danger:hover,
.small-button:hover,
.button-secondary:hover {
  text-decoration: underline;
}
.small-link {
  font-size: .85rem;
  white-space: nowrap;
}
.form-actions {
  display: flex;
  gap: .75rem;
  align-items: center;
  grid-column: 1 / -1;
}
.contacts-form textarea {
  width: 100%;
}
@media (max-width: 700px) {
  .filter-form {
    justify-content: stretch;
  }
  .filter-form input[name="q"] {
    min-width: 100%;
  }
}

/* tvt19 global Anvil-style visual pass.
   Apply the same blue/material look used on the home screen across all pages. */
:root{
  --bg:#f7f7f7;
  --ink:#111111;
  --muted:#777777;
  --brand:#2196f3;
  --brand-dark:#1e88e5;
  --card:#ffffff;
  --border:#9e9e9e;
  --soft-border:#e0e0e0;
}
html,body{min-height:100%;}
body.anvil-app{background:#f7f7f7;color:#111;font-family:Arial,Helvetica,sans-serif;font-size:16px;}
body.anvil-app .topbar,
body.home-page .topbar{background:#2196f3!important;min-height:56px;box-shadow:0 2px 8px rgba(0,0,0,.22);padding:0 1.55rem;display:flex;align-items:center;}
body.anvil-app .brand,
body.home-page .topbar .brand{visibility:visible!important;color:white;font-size:20px;font-weight:700;line-height:56px;white-space:nowrap;}
body.anvil-app .topbar nav{display:flex;align-items:center;gap:1.3rem;}
body.anvil-app .topbar nav a{color:white!important;text-decoration:none;font-size:18px;font-weight:500;text-transform:none;margin:0;line-height:56px;}
body.anvil-app .topbar nav a:hover{text-decoration:underline;}
body.home-page .topbar nav a:not(:last-child){display:inline-block;}
body.anvil-app .container{max-width:970px;margin:1.35rem auto 2rem;padding:0 1rem;}
body.home-page .container{max-width:1000px;}
body.anvil-app h1{font-size:26px;font-weight:400;margin:.4rem 0 1.15rem;}
body.anvil-app h2{font-size:24px;font-weight:400;margin:.2rem 0 1rem;}
body.anvil-app h3{font-size:20px;font-weight:400;}
body.anvil-app .card,
body.anvil-app .form-section{background:#fff;border:1px solid #e0e0e0;border-radius:0;box-shadow:0 2px 4px rgba(0,0,0,.18);}
body.anvil-app .card{padding:1rem;margin-bottom:1.05rem;}
body.anvil-app .form-section{padding:1rem 1.05rem 1.15rem;margin:1.25rem auto 1.75rem;}
body.anvil-app .button,
body.anvil-app button,
body.anvil-app input[type="submit"],
body.anvil-app .button-primary,
body.anvil-app .home-menu-button{background:#2196f3;color:#fff;border:0;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.28);font-weight:700;text-transform:uppercase;text-decoration:none;}
body.anvil-app .button,
body.anvil-app button,
body.anvil-app input[type="submit"]{padding:.62rem 1rem;}
body.anvil-app .button:hover,
body.anvil-app button:hover,
body.anvil-app .home-menu-button:hover{background:#1e88e5;text-decoration:none;}
body.anvil-app .button.secondary,
body.anvil-app button.secondary,
body.anvil-app .button-secondary,
body.anvil-app .small-button{background:#eeeeee;color:#0b80ff;box-shadow:none;border-radius:2px;text-transform:uppercase;}
body.anvil-app .small-button{font-size:.84rem;padding:.45rem .75rem;}
body.anvil-app .link-danger{color:#b00020;background:transparent;box-shadow:none;text-transform:none;}
body.anvil-app label{font-weight:400;color:#111;margin:.55rem 0;}
body.anvil-app label span,
body.anvil-app .form-row .field span{font-size:.88rem;font-weight:600;color:#111;}
body.anvil-app input,
body.anvil-app textarea,
body.anvil-app select{border:0;border-bottom:1px solid #9e9e9e;border-radius:0;background:#fff;color:#111;padding:.52rem .2rem;font-size:16px;}
body.anvil-app textarea{border:1px solid #9e9e9e;min-height:95px;padding:.55rem;}
body.anvil-app select[multiple]{border:1px solid #d0d0d0;border-radius:2px;}
body.anvil-app input:focus,
body.anvil-app textarea:focus,
body.anvil-app select:focus{outline:none;border-bottom-color:#2196f3;box-shadow:0 1px 0 #2196f3;}
body.anvil-app textarea:focus,body.anvil-app select[multiple]:focus{border-color:#2196f3;box-shadow:none;}
body.anvil-app .sticky-actions{background:#fff;border:1px solid #e0e0e0;border-radius:0;box-shadow:0 2px 4px rgba(0,0,0,.16);}
body.anvil-app .table-wrap{border:1px solid #e0e0e0;border-radius:0;box-shadow:0 2px 4px rgba(0,0,0,.12);background:#fff;}
body.anvil-app table{font-size:16px;}
body.anvil-app th{background:#2196f3;color:#fff;font-weight:700;border-bottom:0;}
body.anvil-app th a{color:#fff!important;}
body.anvil-app td{border-bottom:1px solid #cfcfcf;}
body.anvil-app .flash{background:#fff8dc;border:1px solid #e0c568;border-radius:0;box-shadow:0 1px 3px rgba(0,0,0,.12);}
body.anvil-app .home-logo{width:min(390px,88vw);}
body.anvil-app .home-menu-button{min-height:36px;margin-bottom:8px;font-size:.86rem;letter-spacing:.01em;}
body.anvil-app .login-card{text-align:left;}
body.anvil-app .login-logo-wrap{text-align:center;margin:.4rem 0 1rem;}
body.anvil-app .login-logo{max-width:330px;width:90%;height:auto;}
body.anvil-app .contacts-toolbar h2{margin:.25rem 0 .7rem;}
body.anvil-app .filter-form input[name="q"]{border:0;border-bottom:1px solid #9e9e9e;}
body.anvil-app .admin-user-email{border-bottom:1px solid #9e9e9e;}
body.anvil-app .admin-card{border-radius:0;}
@media(max-width:700px){
  body.anvil-app .topbar{padding:0 .85rem;min-height:auto;align-items:flex-start;}
  body.anvil-app .brand{line-height:48px;font-size:18px;}
  body.anvil-app .topbar nav{gap:.7rem;flex-wrap:wrap;justify-content:flex-end;}
  body.anvil-app .topbar nav a{font-size:15px;line-height:48px;}
  body.anvil-app .container{padding:0 .65rem;margin:1rem auto 1.5rem;}
  body.anvil-app table{font-size:14px;}
}

/* tvt20 modern darker visual refresh.
   Keeps the original True Vision Therapy blue/material feel, but with a slightly darker,
   cleaner, more modern interface across the full app. */
:root{
  --bg:#eef3f8;
  --ink:#0f172a;
  --muted:#64748b;
  --brand:#0f5f99;
  --brand-dark:#0b4f82;
  --brand-light:#e7f2fb;
  --card:#ffffff;
  --border:#cbd5e1;
  --soft-border:#e5e7eb;
  --ring:rgba(15,95,153,.22);
}
body.anvil-app,
body.home-page{
  background:linear-gradient(180deg,#eef5fb 0%,#f7fafc 260px,#f7fafc 100%)!important;
  color:var(--ink)!important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;
}
body.anvil-app .topbar,
body.home-page .topbar{
  background:linear-gradient(135deg,#0b4f82 0%,#0f5f99 58%,#1474b7 100%)!important;
  box-shadow:0 8px 24px rgba(15,23,42,.18)!important;
  border-bottom:1px solid rgba(255,255,255,.14)!important;
}
body.anvil-app .brand,
body.home-page .topbar .brand{
  font-weight:750!important;
  letter-spacing:.01em!important;
}
body.anvil-app .topbar nav a{
  color:rgba(255,255,255,.94)!important;
  border-radius:999px!important;
  padding:0 .55rem!important;
  transition:background .15s ease,color .15s ease!important;
}
body.anvil-app .topbar nav a:hover{
  background:rgba(255,255,255,.13)!important;
  text-decoration:none!important;
  color:#fff!important;
}
body.anvil-app .container{
  max-width:1040px!important;
}
body.anvil-app h1,
body.anvil-app h2,
body.anvil-app h3{
  color:#0f172a!important;
  font-weight:650!important;
  letter-spacing:-.018em!important;
}
body.anvil-app h1{font-size:28px!important;}
body.anvil-app h2{font-size:22px!important;}
body.anvil-app .card,
body.anvil-app .form-section,
body.anvil-app .admin-card,
body.anvil-app .table-wrap{
  border:1px solid rgba(148,163,184,.42)!important;
  border-radius:16px!important;
  box-shadow:0 14px 34px rgba(15,23,42,.08)!important;
  background:rgba(255,255,255,.96)!important;
}
body.anvil-app .form-section{
  padding:1.15rem 1.25rem 1.25rem!important;
}
body.anvil-app .form-section h2{
  border-bottom:1px solid #e2e8f0!important;
  padding-bottom:.62rem!important;
  margin-bottom:1rem!important;
}
body.anvil-app .button,
body.anvil-app button,
body.anvil-app input[type="submit"],
body.anvil-app .button-primary,
body.anvil-app .home-menu-button{
  background:linear-gradient(180deg,#116aa8 0%,#0f5f99 100%)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:10px!important;
  box-shadow:0 7px 16px rgba(15,95,153,.24)!important;
  color:#fff!important;
  letter-spacing:.015em!important;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease!important;
}
body.anvil-app .button:hover,
body.anvil-app button:hover,
body.anvil-app input[type="submit"]:hover,
body.anvil-app .button-primary:hover,
body.anvil-app .home-menu-button:hover{
  background:linear-gradient(180deg,#0f5f99 0%,#0b4f82 100%)!important;
  box-shadow:0 10px 20px rgba(15,95,153,.28)!important;
  transform:translateY(-1px)!important;
  text-decoration:none!important;
}
body.anvil-app .button:active,
body.anvil-app button:active,
body.anvil-app .home-menu-button:active{
  transform:translateY(0)!important;
}
body.anvil-app .button.secondary,
body.anvil-app button.secondary,
body.anvil-app .button-secondary,
body.anvil-app .small-button{
  background:#e8f1f8!important;
  color:#0b4f82!important;
  border:1px solid #c6d8e8!important;
  box-shadow:none!important;
  border-radius:10px!important;
}
body.anvil-app .button.secondary:hover,
body.anvil-app button.secondary:hover,
body.anvil-app .button-secondary:hover,
body.anvil-app .small-button:hover{
  background:#dcebf6!important;
  transform:translateY(-1px)!important;
}
body.anvil-app label span,
body.anvil-app .form-row .field span{
  color:#334155!important;
  font-size:.84rem!important;
  font-weight:650!important;
}
body.anvil-app input,
body.anvil-app textarea,
body.anvil-app select,
body.anvil-app .admin-line-input{
  border:1px solid #cbd5e1!important;
  border-radius:10px!important;
  background:#fff!important;
  padding:.58rem .68rem!important;
  color:#0f172a!important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.04)!important;
}
body.anvil-app input[type="checkbox"]{
  width:auto!important;
  border-radius:4px!important;
  box-shadow:none!important;
}
body.anvil-app textarea{
  min-height:98px!important;
}
body.anvil-app select[multiple]{
  min-height:118px!important;
}
body.anvil-app input:focus,
body.anvil-app textarea:focus,
body.anvil-app select:focus,
body.anvil-app .admin-line-input:focus{
  border-color:#0f5f99!important;
  box-shadow:0 0 0 4px var(--ring)!important;
  outline:none!important;
}
body.anvil-app .sectioned-form input,
body.anvil-app .sectioned-form textarea,
body.anvil-app .sectioned-form select{
  border:1px solid #cbd5e1!important;
  border-radius:10px!important;
  background:#fff!important;
  padding:.58rem .68rem!important;
}
body.anvil-app .field{
  border-radius:12px!important;
}
body.anvil-app .sticky-actions{
  border-radius:14px!important;
  border:1px solid #cbd5e1!important;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 10px 24px rgba(15,23,42,.10)!important;
}
body.anvil-app th{
  background:#0f5f99!important;
  color:#fff!important;
  padding:.72rem .65rem!important;
}
body.anvil-app th:first-child{border-top-left-radius:14px!important;}
body.anvil-app th:last-child{border-top-right-radius:14px!important;}
body.anvil-app td{
  border-bottom:1px solid #e2e8f0!important;
  padding:.65rem!important;
}
body.anvil-app tr:nth-child(even) td{
  background:#f8fafc!important;
}
body.anvil-app tr:hover td{
  background:#eef6fc!important;
}
body.anvil-app .flash{
  border-radius:14px!important;
  border:1px solid #f2d66d!important;
  background:#fff8df!important;
  box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
}
body.anvil-app .home-logo{
  border-radius:14px!important;
  box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
}
body.anvil-app .home-menu-button{
  min-height:42px!important;
  margin-bottom:10px!important;
  font-size:.9rem!important;
}
body.anvil-app .home-menu-icon{
  width:34px!important;
  opacity:.92!important;
}
body.anvil-app .modal-title{
  background:linear-gradient(135deg,#0b4f82,#0f5f99)!important;
  border-radius:10px!important;
  box-shadow:0 8px 18px rgba(15,23,42,.16)!important;
}
body.anvil-app .modal-card{
  border-radius:18px!important;
  box-shadow:0 24px 60px rgba(15,23,42,.28)!important;
}
body.anvil-app .modal-actions button{
  border-radius:10px!important;
}
body.anvil-app .admin-user-email,
body.anvil-app .admin-line-input{
  border-bottom:1px solid #cbd5e1!important;
}
body.anvil-app .contacts-table th a:hover{
  text-decoration:none!important;
}
body.anvil-app .clear-entry-link,
body.anvil-app .small-link,
body.anvil-app a:not(.button):not(.home-menu-button){
  color:#0b5f99;
}
@media(max-width:700px){
  body.anvil-app .card,
  body.anvil-app .form-section,
  body.anvil-app .table-wrap{border-radius:12px!important;}
  body.anvil-app .topbar nav a{padding:0 .35rem!important;}
  body.anvil-app h1{font-size:24px!important;}
  body.anvil-app h2{font-size:20px!important;}
}

/* tvt21: preserve contacts edit/delete actions after modern visual refresh.
   This is CSS-only; app routes/templates remain unchanged from tvt20. */
body.anvil-app .contacts-table .actions-col{
  min-width: 155px !important;
  white-space: nowrap !important;
}
body.anvil-app .contacts-table .row-actions{
  display: flex !important;
  align-items: center !important;
  gap: .45rem !important;
  white-space: nowrap !important;
  min-width: 150px !important;
}
body.anvil-app .contacts-table .row-actions form{
  display: inline-flex !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.anvil-app .contacts-table .row-actions .small-button,
body.anvil-app .contacts-table .row-actions .link-danger{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  min-width: 56px !important;
  min-height: 30px !important;
  padding: .36rem .62rem !important;
  margin: 0 !important;
  border-radius: 8px !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
}
body.anvil-app .contacts-table .row-actions .small-button{
  background: #e8f1f8 !important;
  color: #0b4f82 !important;
  border: 1px solid #c6d8e8 !important;
  text-transform: uppercase !important;
}
body.anvil-app .contacts-table .row-actions .link-danger{
  background: #fff1f2 !important;
  color: #b00020 !important;
  border: 1px solid #fecdd3 !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
}
body.anvil-app .contacts-table .row-actions .small-button:hover{
  background: #dcebf6 !important;
  text-decoration: none !important;
}
body.anvil-app .contacts-table .row-actions .link-danger:hover{
  background: #ffe4e6 !important;
  text-decoration: none !important;
}

/* tvt23: CSS-only lighter logo-blue theme pass.
   This intentionally changes styling only and does not modify routes, templates,
   report generation, migration logic, database logic, or JavaScript behavior. */
:root{
  --bg:#f4f9fc;
  --ink:#102033;
  --muted:#64748b;
  --brand:#159bd7;
  --brand-dark:#0d8ac4;
  --brand-light:#e9f7fd;
  --card:#ffffff;
  --border:#c9dce8;
  --soft-border:#e4eef4;
  --ring:rgba(21,155,215,.20);
}
body.anvil-app,
body.home-page{
  background:linear-gradient(180deg,#eef9ff 0%,#f8fbfd 250px,#f8fbfd 100%)!important;
  color:#102033!important;
}
body.anvil-app .topbar,
body.home-page .topbar{
  background:linear-gradient(135deg,#0f8ec9 0%,#159bd7 58%,#22b0ec 100%)!important;
  box-shadow:0 6px 18px rgba(21,155,215,.22)!important;
  border-bottom:1px solid rgba(255,255,255,.28)!important;
}
body.anvil-app .button,
body.anvil-app button,
body.anvil-app input[type="submit"],
body.anvil-app .button-primary,
body.anvil-app .home-menu-button{
  background:linear-gradient(180deg,#20aee9 0%,#159bd7 100%)!important;
  box-shadow:0 6px 14px rgba(21,155,215,.24)!important;
  border:1px solid rgba(255,255,255,.18)!important;
}
body.anvil-app .button:hover,
body.anvil-app button:hover,
body.anvil-app input[type="submit"]:hover,
body.anvil-app .button-primary:hover,
body.anvil-app .home-menu-button:hover{
  background:linear-gradient(180deg,#159bd7 0%,#0d8ac4 100%)!important;
  box-shadow:0 9px 18px rgba(21,155,215,.28)!important;
}
body.anvil-app .button.secondary,
body.anvil-app button.secondary,
body.anvil-app .button-secondary,
body.anvil-app .small-button{
  background:#eaf7fd!important;
  color:#0878ad!important;
  border:1px solid #b9dfef!important;
}
body.anvil-app .button.secondary:hover,
body.anvil-app button.secondary:hover,
body.anvil-app .button-secondary:hover,
body.anvil-app .small-button:hover{
  background:#ddf2fb!important;
}
body.anvil-app .card,
body.anvil-app .form-section,
body.anvil-app .admin-card,
body.anvil-app .table-wrap{
  border-color:rgba(142,190,213,.48)!important;
  box-shadow:0 12px 28px rgba(16,32,51,.07)!important;
}
body.anvil-app .form-section h2{
  border-bottom-color:#d9ebf4!important;
}
body.anvil-app input,
body.anvil-app textarea,
body.anvil-app select,
body.anvil-app .admin-line-input,
body.anvil-app .sectioned-form input,
body.anvil-app .sectioned-form textarea,
body.anvil-app .sectioned-form select{
  border-color:#c9dce8!important;
}
body.anvil-app input:focus,
body.anvil-app textarea:focus,
body.anvil-app select:focus,
body.anvil-app .admin-line-input:focus{
  border-color:#159bd7!important;
  box-shadow:0 0 0 4px var(--ring)!important;
}
body.anvil-app textarea:focus,
body.anvil-app select[multiple]:focus{
  border-color:#159bd7!important;
}
body.anvil-app .sticky-actions{
  border-color:#c9dce8!important;
  box-shadow:0 8px 20px rgba(16,32,51,.08)!important;
}
body.anvil-app th{
  background:#159bd7!important;
}
body.anvil-app tr:hover td{
  background:#eef9ff!important;
}
body.anvil-app .modal-title{
  background:linear-gradient(135deg,#0f8ec9,#159bd7)!important;
}
body.anvil-app .clear-entry-link,
body.anvil-app .small-link,
body.anvil-app a:not(.button):not(.home-menu-button){
  color:#0878ad!important;
}
body.anvil-app .contacts-table .row-actions .small-button{
  background:#eaf7fd!important;
  color:#0878ad!important;
  border-color:#b9dfef!important;
}
body.anvil-app .contacts-table .row-actions .small-button:hover{
  background:#ddf2fb!important;
}

/* tvt24: CSS-only color adjustment to match original Anvil app material blue.
   This intentionally changes colors only; no routes, templates, report code,
   migration logic, database logic, or JavaScript behavior were modified. */
:root{
  --bg:#f7f7f7;
  --ink:#111111;
  --muted:#777777;
  --brand:#2196f3;
  --brand-dark:#1e88e5;
  --brand-light:#e3f2fd;
  --card:#ffffff;
  --border:#d0d0d0;
  --soft-border:#e0e0e0;
  --ring:rgba(33,150,243,.20);
}
body.anvil-app,
body.home-page{
  background:#f7f7f7!important;
  color:#111!important;
}
body.anvil-app .topbar,
body.home-page .topbar{
  background:#2196f3!important;
  box-shadow:0 2px 8px rgba(0,0,0,.22)!important;
  border-bottom:0!important;
}
body.anvil-app .button,
body.anvil-app button,
body.anvil-app input[type="submit"],
body.anvil-app .button-primary,
body.anvil-app .home-menu-button{
  background:#2196f3!important;
  color:#fff!important;
  box-shadow:0 2px 5px rgba(0,0,0,.28)!important;
  border:0!important;
}
body.anvil-app .button:hover,
body.anvil-app button:hover,
body.anvil-app input[type="submit"]:hover,
body.anvil-app .button-primary:hover,
body.anvil-app .home-menu-button:hover{
  background:#1e88e5!important;
  box-shadow:0 3px 7px rgba(0,0,0,.26)!important;
}
body.anvil-app .button.secondary,
body.anvil-app button.secondary,
body.anvil-app .button-secondary,
body.anvil-app .small-button{
  background:#eeeeee!important;
  color:#0b80ff!important;
  border:0!important;
  box-shadow:0 1px 3px rgba(0,0,0,.14)!important;
}
body.anvil-app .button.secondary:hover,
body.anvil-app button.secondary:hover,
body.anvil-app .button-secondary:hover,
body.anvil-app .small-button:hover{
  background:#e3e3e3!important;
}
body.anvil-app .card,
body.anvil-app .form-section,
body.anvil-app .admin-card,
body.anvil-app .table-wrap{
  border-color:#e0e0e0!important;
  box-shadow:0 2px 4px rgba(0,0,0,.18)!important;
  background:#fff!important;
}
body.anvil-app .form-section h2{
  border-bottom-color:#e0e0e0!important;
}
body.anvil-app input,
body.anvil-app textarea,
body.anvil-app select,
body.anvil-app .admin-line-input,
body.anvil-app .sectioned-form input,
body.anvil-app .sectioned-form textarea,
body.anvil-app .sectioned-form select{
  border-color:#9e9e9e!important;
}
body.anvil-app input:focus,
body.anvil-app textarea:focus,
body.anvil-app select:focus,
body.anvil-app .admin-line-input:focus{
  border-color:#2196f3!important;
  box-shadow:0 0 0 3px rgba(33,150,243,.18)!important;
}
body.anvil-app .sticky-actions{
  border-color:#e0e0e0!important;
  box-shadow:0 2px 4px rgba(0,0,0,.16)!important;
}
body.anvil-app th{
  background:#2196f3!important;
}
body.anvil-app tr:hover td{
  background:#f1f8fe!important;
}
body.anvil-app .modal-title{
  background:#2196f3!important;
}
body.anvil-app .clear-entry-link,
body.anvil-app .small-link,
body.anvil-app a:not(.button):not(.home-menu-button){
  color:#0b80ff!important;
}
body.anvil-app .contacts-table .row-actions .small-button{
  background:#eeeeee!important;
  color:#0b80ff!important;
  border:0!important;
}
body.anvil-app .contacts-table .row-actions .small-button:hover{
  background:#e3e3e3!important;
}

/* tvt25: CSS-only navbar link contrast fix.
   Keep topbar/nav links light on the original Anvil-blue header. */
body.anvil-app .topbar,
body.home-page .topbar{
  color:#ffffff!important;
}
body.anvil-app .topbar a,
body.anvil-app .topbar nav a,
body.anvil-app .topbar .brand,
body.home-page .topbar a,
body.home-page .topbar nav a,
body.home-page .topbar .brand{
  color:#f7fbff!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
}
body.anvil-app .topbar a:hover,
body.anvil-app .topbar nav a:hover,
body.home-page .topbar a:hover,
body.home-page .topbar nav a:hover{
  color:#ffffff!important;
  text-decoration:underline!important;
}

/* tvt26: CSS-only navbar unhovered link readability fix.
   Force all topbar/navbar link states to white/light text so they stay readable against the Anvil-blue header. */
body.anvil-app .topbar,
body.home-page .topbar,
body.anvil-app .topbar *,
body.home-page .topbar *{
  color:#ffffff!important;
}
body.anvil-app .topbar a,
body.anvil-app .topbar a:link,
body.anvil-app .topbar a:visited,
body.anvil-app .topbar a:active,
body.anvil-app .topbar nav a,
body.anvil-app .topbar nav a:link,
body.anvil-app .topbar nav a:visited,
body.anvil-app .topbar nav a:active,
body.home-page .topbar a,
body.home-page .topbar a:link,
body.home-page .topbar a:visited,
body.home-page .topbar a:active,
body.home-page .topbar nav a,
body.home-page .topbar nav a:link,
body.home-page .topbar nav a:visited,
body.home-page .topbar nav a:active{
  color:#ffffff!important;
  opacity:1!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
}
