:root{--bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#e4e7ec;--primary:#233e73;--primary2:#315a9d;--danger:#b42318;--green:#067647;--amber:#b54708;--radius:18px;--shadow:0 8px 28px rgba(16,24,40,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(20px,calc((100% - 1180px)/2));gap:24px;position:sticky;top:0;z-index:20}.brand{font-weight:800;color:var(--ink);font-size:19px;margin-right:auto}.desktop-nav{display:flex;gap:20px;font-size:14px;font-weight:600}.desktop-nav a{color:#475467}.container{max-width:1180px;margin:0 auto;padding:42px 20px 90px}.hero{padding:70px 0 48px;max-width:780px}.hero h1,.section-heading h1{font-size:clamp(34px,5vw,58px);line-height:1.02;letter-spacing:-.04em;margin:10px 0 18px}.hero p,.section-heading p{font-size:18px;color:var(--muted);line-height:1.6}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:var(--primary2)}.button{border:0;background:var(--primary);color:#fff;padding:12px 18px;border-radius:12px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button:hover{background:var(--primary2)}.button.secondary{background:#eef2f8;color:var(--primary)}.button.danger{background:#fee4e2;color:var(--danger)}.button.small{padding:9px 13px;font-size:14px}.section{margin-top:35px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-heading h1{font-size:38px;margin-bottom:6px}.section-heading h2{font-size:30px;margin:8px 0}.section-heading p{font-size:15px;margin:0}.cards,.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card,.panel,.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:24px}.card h3{margin-top:0}.card p,.meta,.muted{color:var(--muted)}.meta{font-size:13px}.page-narrow{max-width:760px;margin:0 auto}.panel{padding:24px;margin-bottom:20px}.form-stack{display:flex;flex-direction:column;gap:18px}.form-stack label,fieldset{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:700}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:10px}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:11px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#84a1d3;box-shadow:0 0 0 3px #edf2fb}.two-col,.three-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.slot{padding:11px 8px;border:1px solid #cfd6e3;border-radius:10px;background:#fff;color:var(--primary);font-weight:700;cursor:pointer}.slot.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.notice{background:#f2f4f7;padding:12px;border-radius:10px}.notice.error{background:#fee4e2;color:var(--danger)}.auth-wrap{min-height:70vh;display:grid;place-items:center}.auth-card{width:min(430px,100%)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.stat strong{font-size:30px}.panel-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.appointment-list{display:flex;flex-direction:column}.appointment-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink)}.appointment-row:last-child{border-bottom:0}.time-block{width:64px;font-weight:800}.time-block small{display:block;color:var(--muted)}.grow{flex:1;display:flex;flex-direction:column;gap:4px}.grow span{color:var(--muted);font-size:13px}.status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2f8;color:var(--primary);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.status.completed{background:#dcfae6;color:var(--green)}.status.cancelled{background:#fee4e2;color:var(--danger)}.status.requested{background:#fef0c7;color:var(--amber)}.actions{display:flex;gap:10px;align-items:center}.empty{padding:28px 0;color:var(--muted)}dl{margin:0}dl>div{display:grid;grid-template-columns:145px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}dt{font-size:13px;color:var(--muted)}dd{margin:0;font-weight:600}.calendar-panel{overflow:hidden}.fc .fc-button-primary{background:var(--primary);border-color:var(--primary)}.fc .fc-toolbar-title{font-size:22px}.status-blocked{opacity:.65}.search-row{display:flex;gap:10px;margin-bottom:16px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.switch-row{display:flex;align-items:center;justify-content:space-between}.switch{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important}.switch input,.check-card input,.day-toggle input{width:auto}.hours-list{display:flex;flex-direction:column;gap:8px}.hours-row{display:grid;grid-template-columns:1fr 150px 25px 150px;align-items:center;gap:10px;padding:9px 0}.day-toggle{display:flex!important;flex-direction:row!important;align-items:center}.check-card{flex-direction:row!important;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.check-card span{display:flex;flex-direction:column}.check-card small{color:var(--muted);font-weight:400}.layout-gap{align-items:start;margin-top:20px}.block-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.block-row div{display:flex;flex-direction:column;gap:4px}.block-row span{color:var(--muted);font-size:13px}.text-danger,.link-button{background:none;border:0;cursor:pointer}.text-danger{color:var(--danger)}.link-button{color:#475467}.logout-form{margin:0}.center{text-align:center}.mobile-nav{display:none}hr{border:0;border-top:1px solid var(--line);width:100%}
@media(max-width:760px){.topbar{height:60px;padding:0 16px}.desktop-nav,.logout-form{display:none}.container{padding:26px 14px 88px}.hero{padding:38px 0}.cards,.service-grid,.stats,.two-col,.three-col{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(3,1fr)}.section-heading{align-items:flex-start;flex-direction:column}.section-heading h1{font-size:34px}.hours-row{grid-template-columns:1fr 1fr 20px 1fr}.hours-row .day-toggle{grid-column:1/-1}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:62px;background:#fff;border-top:1px solid var(--line);z-index:30;justify-content:space-around;align-items:center}.mobile-nav a{font-size:12px;font-weight:750;color:#475467}.panel{padding:18px}.fc .fc-toolbar{flex-direction:column;gap:9px}.calendar-panel{padding:10px}dl>div{grid-template-columns:100px 1fr}.actions{flex-wrap:wrap}}


/* Amanda Parish Notary brand */
:root{
  --bg:#fbf7ef;
  --panel:#ffffff;
  --ink:#172033;
  --muted:#667085;
  --line:#e8e2d7;
  --primary:#071b3d;
  --primary2:#0d2a57;
  --gold:#d9a63a;
  --gold-soft:#f3dfb0;
  --danger:#b42318;
  --green:#176b4d;
  --amber:#b54708;
  --shadow:0 14px 38px rgba(7,27,61,.08);
}
body{background:var(--bg)}
.topbar{
  background:var(--primary);
  border-bottom:4px solid var(--gold);
  min-height:72px;height:auto;
  color:#fff;
}
.brand{display:flex;flex-direction:column;gap:4px;color:#fff;font-family:Georgia,"Times New Roman",serif;font-weight:600;line-height:1.05}
.brand-main{font-size:21px;letter-spacing:.04em}
.brand-sub{font-family:Inter,ui-sans-serif,sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#d7dfef}
.desktop-nav a,.public-nav a,.link-button{color:#e3e8f2}
.desktop-nav a:hover,.public-nav a:hover,.link-button:hover{color:var(--gold)}
.public-nav{display:flex;gap:18px;align-items:center;font-size:14px;font-weight:700}
h1,h2,h3,.hero h1,.section-heading h1,.section-heading h2{font-family:Georgia,"Times New Roman",serif;color:var(--primary);font-weight:600}
.eyebrow{color:#9b6d12}
.button{background:var(--gold);color:var(--primary);border-radius:999px;font-weight:800}
.button:hover{background:#e3b34c;color:var(--primary)}
.button.secondary{background:#edf1f7;color:var(--primary);border:1px solid #d7deea}
.button.secondary:hover{background:#e3e8f0}
.button.danger{background:#fee4e2;color:var(--danger)}
.panel,.card,.stat{border-color:var(--line);box-shadow:var(--shadow)}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,166,58,.18)}
.slot{color:var(--primary);border-color:#d7c9aa}
.slot.selected{background:var(--primary);border-color:var(--primary);color:#fff}
.fc .fc-button-primary{background:var(--primary);border-color:var(--primary)}
.mobile-nav{background:var(--primary);border-top:4px solid var(--gold)}
.mobile-nav a{color:#f3f5f9}
.status{background:#edf1f7;color:var(--primary)}
.appointment-card{border-top:4px solid var(--gold)}
.portal-help,.portal-return{margin-top:18px;color:var(--muted);font-size:14px}
.portal-help a,.portal-return a{font-weight:800}
.portal-row{align-items:center}
.portal-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){
  .topbar{padding-top:8px;padding-bottom:8px}
  .brand-sub{display:block}
  .public-nav{gap:8px}
  .public-nav>a:not(.button){display:none}
  .brand-main{font-size:18px}
  .portal-row{align-items:flex-start}
  .portal-actions{width:100%;justify-content:flex-start}
}

.confirm-overlay{position:fixed;inset:0;background:rgba(4,20,47,.72);display:grid;place-items:center;z-index:1000;padding:20px;backdrop-filter:blur(5px)}
.confirm-modal{width:min(520px,100%);background:#fff;border-radius:24px;padding:32px;box-shadow:0 24px 80px rgba(0,0,0,.25);text-align:center;border-top:5px solid var(--gold)}
.confirm-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e7f4ee;color:var(--green);font-size:32px;font-weight:900}
.confirm-modal h2{margin:10px 0}
.confirm-modal p{color:var(--muted);font-size:16px}
.confirm-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.smtp-status>div{grid-template-columns:140px 1fr}
@media(max-width:620px){.confirm-modal{padding:24px}.confirm-actions{flex-direction:column}.confirm-actions .button{width:100%}}

.brand{flex-direction:row!important;align-items:center;gap:10px!important}
.brand-copy{display:flex;flex-direction:column;gap:4px}
.brand-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center 30%;border:2px solid var(--gold);flex:0 0 42px}
.notice.success{background:#e7f4ee;color:var(--green)}
.danger-zone{border-color:#f2b8b5}
.danger-zone .button.danger{align-self:flex-start}

.price-estimate{border:1px solid #dcc79b;background:linear-gradient(180deg,#fffdf7,#fbf4e5);border-radius:16px;padding:18px}
.price-estimate-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.price-estimate-head>div{display:flex;flex-direction:column;gap:6px}
.price-estimate-head strong{font-family:Georgia,"Times New Roman",serif;color:var(--primary);font-size:21px}
.estimate-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--gold-soft);color:#6b4a08;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.estimate-details{margin-top:14px;color:var(--muted);font-size:14px}
.estimate-details>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid rgba(7,27,61,.08)}
.estimate-details>div:last-child{border-bottom:0}
.estimate-details strong{color:var(--ink)}
.estimate-total-row{font-size:16px}
.estimate-total-row strong{color:var(--primary);font-size:18px}
.estimate-note{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.travel-example{background:#fbf4e5;border:1px solid #ead9b4;border-radius:12px;padding:12px}
@media(max-width:620px){
  .price-estimate-head{align-items:flex-start}
  .estimate-details>div{align-items:flex-start}
}


/* Mobile admin optimization */
@media(max-width:760px){
  body{overflow-x:hidden}
  .topbar{
    min-height:72px;
    height:72px;
    padding:8px 14px;
    gap:10px;
    border-bottom-width:3px;
  }
  .topbar .brand{
    min-width:0;
    max-width:calc(100vw - 28px);
    margin:0;
    gap:10px!important;
  }
  .topbar .brand-avatar{
    width:42px;
    height:42px;
    flex-basis:42px;
  }
  .brand-copy{min-width:0}
  .brand-main{
    display:block;
    font-size:21px;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .brand-sub{
    font-size:9px;
    line-height:1.15;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    letter-spacing:.11em;
  }

  .container{
    width:100%;
    max-width:none;
    padding:24px 16px calc(104px + env(safe-area-inset-bottom));
  }

  .section-heading{
    margin-bottom:18px;
    gap:14px;
  }
  .section-heading h1{
    font-size:38px;
    line-height:1;
    margin:7px 0 0;
  }
  .section-heading .actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
  }
  .section-heading .actions .button{width:100%}

  .panel{
    border-radius:18px;
    padding:16px;
    margin-bottom:16px;
  }

  .search-row.customer-search{
    display:grid;
    grid-template-columns:1fr auto;
    gap:9px;
    margin-bottom:14px;
  }
  .customer-search input{
    min-width:0;
    height:48px;
    font-size:16px;
  }
  .customer-search .button{
    height:48px;
    min-width:96px;
  }

  .customers-panel{
    padding:0;
    overflow:visible;
    background:transparent;
    border:0;
    box-shadow:none;
  }
  .customers-table,
  .customers-table tbody,
  .customers-table tr,
  .customers-table td{display:block;width:100%}
  .customers-table thead{display:none}
  .customers-table tbody{display:grid;gap:12px}
  .customers-table tr{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:14px 16px;
    box-shadow:var(--shadow);
  }
  .customers-table td{
    border:0;
    padding:8px 0;
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    gap:12px;
    align-items:start;
    font-size:14px;
    overflow-wrap:anywhere;
  }
  .customers-table td:before{
    content:attr(data-label);
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.06em;
    font-size:10px;
    font-weight:850;
    padding-top:2px;
  }
  .customers-table td:first-child{
    padding-top:2px;
    font-size:18px;
    color:var(--primary);
  }
  .customers-table td:first-child strong{font-family:Georgia,"Times New Roman",serif}
  .customers-table .empty-table-row{
    padding:22px 18px;
  }
  .customers-table .empty-table-row td{
    display:block;
    padding:0;
  }
  .customers-table .empty-table-row td:before{display:none}

  .stats{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .stat{padding:15px}
  .stat strong{font-size:26px}
  .stat:nth-child(3){grid-column:1/-1}

  .appointment-row{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:12px;
    align-items:start;
    padding:14px 0;
  }
  .appointment-row .status{
    grid-column:2;
    justify-self:start;
  }
  .grow{min-width:0}
  .grow span{overflow-wrap:anywhere}

  .calendar-panel{
    padding:10px 8px 14px;
    overflow:hidden;
  }
  .fc .fc-toolbar{
    display:grid!important;
    grid-template-columns:auto 1fr auto;
    gap:8px!important;
    align-items:center;
    margin-bottom:14px!important;
  }
  .fc .fc-toolbar-chunk{
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .fc .fc-toolbar-title{
    font-size:17px!important;
    white-space:nowrap;
  }
  .fc .fc-button{
    padding:.48em .62em!important;
    font-size:12px!important;
  }
  .fc .fc-list-event-title,
  .fc .fc-list-event-time{font-size:13px}

  .hours-row{
    grid-template-columns:1fr 18px 1fr;
    gap:8px;
    padding:13px 0;
    border-bottom:1px solid var(--line);
  }
  .hours-row .day-toggle{
    grid-column:1/-1;
    margin-bottom:2px;
  }
  .hours-row input[type="time"]{
    min-width:0;
    padding:10px 8px;
  }

  dl>div{
    grid-template-columns:92px minmax(0,1fr);
    gap:12px;
  }
  dd{overflow-wrap:anywhere}

  .mobile-nav{
    height:calc(70px + env(safe-area-inset-bottom));
    padding:6px 8px env(safe-area-inset-bottom);
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:2px;
    align-items:stretch;
  }
  .mobile-nav>a,
  .mobile-more>summary{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#f4f6fa;
    font-size:10px;
    font-weight:800;
    text-decoration:none;
    list-style:none;
    min-width:0;
    border-radius:10px;
  }
  .mobile-nav>a span,
  .mobile-more>summary span{
    font-size:18px;
    line-height:1;
    color:var(--gold);
  }
  .mobile-more{
    position:relative;
    min-width:0;
  }
  .mobile-more>summary{
    height:100%;
    cursor:pointer;
  }
  .mobile-more>summary::-webkit-details-marker{display:none}
  .mobile-more-menu{
    position:absolute;
    right:0;
    bottom:64px;
    width:190px;
    padding:8px;
    border-radius:16px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 18px 50px rgba(7,27,61,.22);
    display:grid;
    gap:3px;
  }
  .mobile-more-menu a,
  .mobile-more-menu button{
    width:100%;
    display:block;
    border:0;
    background:transparent;
    color:var(--primary);
    text-align:left;
    padding:11px 12px;
    border-radius:10px;
    font-weight:750;
    font-size:14px;
  }
  .mobile-more-menu a:hover,
  .mobile-more-menu button:hover{background:#f5f1e8}
  .mobile-more-menu form{margin:0}
}

@media(max-width:430px){
  .topbar .brand-avatar{width:40px;height:40px;flex-basis:40px}
  .brand-main{font-size:20px}
  .brand-sub{font-size:8px}
  .section-heading h1{font-size:36px}
  .search-row.customer-search{grid-template-columns:1fr}
  .customer-search .button{width:100%}
}
