.layout{display:none}
body.authenticated .layout{display:block}
.auth-gate{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 0,#28204a 0,transparent 38%),#0b0913}
body.authenticated .auth-gate{display:none}
.auth-card{width:min(100%,410px);padding:28px;border:1px solid #3a3050;border-radius:22px;background:#171321;box-shadow:0 24px 70px #0008}
.auth-card>img{width:56px;height:56px;object-fit:cover;border-radius:14px;margin-bottom:16px}
.auth-card h1{margin:4px 0 10px;font-size:29px}
.auth-card>p:not(.eyebrow){color:#aaa3b6;font-size:13px;line-height:1.5}
.auth-form{margin-top:20px}
.auth-form[hidden],.auth-error[hidden],.temporary-password[hidden]{display:none}
.auth-form label,.account-form label{font-size:12px}
.auth-form input,.account-form input{font-size:16px}
.auth-error{color:#ff9bab!important}
.auth-hint{color:#aaa3b6;font-size:12px;text-align:center;margin:12px 0 0}
.account-panel{margin:14px 0;padding:20px}
.account-form{max-width:420px;margin:14px 0 22px}
.temporary-password{background:#251c39;border:1px solid #6847a8;border-radius:12px;padding:14px;margin:14px 0;line-height:1.6;overflow-wrap:anywhere}
.temporary-password code{color:#fff;font-size:16px;font-weight:800}
.account-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 8px;border-top:1px solid #30283f}
.account-row small{display:block;color:#aaa3b6;margin-top:4px}
.account-row button{border:1px solid #59486f;border-radius:8px;background:#211a30;color:#eee5ff;padding:8px 10px}
.customer-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;min-width:0}
.customer-select-row label{min-width:0}
.customer-select-row .outline-button{margin-bottom:10px;white-space:normal;max-width:120px}
body.modal-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}
dialog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 36px);max-width:calc(100vw - 24px);overflow-x:hidden}
dialog form,.detail-content{width:100%;min-width:0;max-width:100%;overflow-x:hidden}
dialog .dialog-heading,dialog .field-row,dialog .customer-select-row,dialog label{max-width:100%;min-width:0}
.field-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
input,select,textarea{min-width:0;max-width:100%}
.record-row,.job-row,.panel,.main,.view{min-width:0;max-width:100%}
.record-row>span,.job-info,.job-price{min-width:0;overflow-wrap:anywhere}
.record-end{min-width:0;white-space:normal}
.inline-service-panel{margin-top:14px;padding:18px}
.inline-service-panel .panel-heading h2{font-size:17px;margin:0}
.inline-service-form{max-width:660px}
.inline-service-form .primary{max-width:280px}
.service-list-panel{margin-top:14px}
.calendar-button{max-width:320px}
.calendar-link{display:block;text-align:center;text-decoration:none;max-width:320px}
.calendar-link[hidden]{display:none}
.calendar-disconnect{margin-top:12px}
.calendar-disconnect[hidden],.calendar-button[hidden]{display:none}
.calendar-privacy{font-size:11px;color:#8e879c;line-height:1.5;margin:16px 0 0}
.job-search-label{display:block;max-width:560px;margin:12px 0}
.job-search-label input{width:100%;margin-top:6px}
.service-shortcut{margin:0 0 14px}
.job-total{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0;max-width:100%;margin:2px 0 16px;padding:13px 15px;border:1px solid #4c3a73;border-radius:12px;background:#211a31;color:#cfc5e4}
.job-total strong{color:#fff;font-size:20px}
#jobDiscountRow[hidden]{display:none}
.inline-action{display:block;margin-top:6px;padding:0;border:0;background:none;color:#ab8cf4;font:inherit;font-size:12px;text-align:left;text-decoration:underline;cursor:pointer}
.record-end .inline-action{margin-left:auto}
#jobDetailDialog{width:min(520px,calc(100vw - 28px))}
#jobDetailSummary{padding:4px 0 14px;color:#cfc5e4;font-size:13px;line-height:1.5}
#completionNotesForm textarea{min-height:120px}
@media(max-width:700px){
  .auth-card{padding:23px}.account-panel{padding:15px}.account-row{align-items:flex-start}.account-row b{font-size:12px}
  .customer-select-row .outline-button{font-size:11px;padding:10px 8px}
  .inline-service-panel{padding:14px}
  .inline-service-form .primary{max-width:none}
  .mobile-nav button{transform:translateY(7px)}
  .mobile-nav .mobile-add{transform:translateY(7px)}
  .mobile-nav .mobile-add:active{transform:translateY(7px) scale(.95)}
}
@media(max-width:390px){
  .customer-select-row{grid-template-columns:minmax(0,1fr) 92px;gap:6px}
  .customer-select-row .outline-button{max-width:92px}
  #jobForm .field-row{grid-template-columns:minmax(0,1fr)}
}
