/* UtiliNexus Contractor Office Phase 2 */
.phase2-loading{padding:28px;text-align:center;color:#8fa9bd}
.phase2-lock{display:flex;gap:18px;align-items:center;padding:24px;border:1px dashed #294b67;border-radius:16px;background:#071624}
.phase2-lock-icon{font-size:30px}.phase2-lock h3{margin:0 0 6px}.phase2-lock p{margin:0 0 12px;color:#91aabd}
.phase2-calendar-list,.phase2-money-list,.phase2-file-list{display:grid;gap:10px}
.phase2-invoice-groups{display:grid;gap:22px}.phase2-invoice-group{display:grid;gap:10px}.phase2-invoice-group+.phase2-invoice-group{padding-top:20px;border-top:1px solid #203d53}.phase2-invoice-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.phase2-invoice-group-head h4{margin:0;font-size:17px}.phase2-invoice-group-head span{min-width:30px;text-align:center;border:1px solid #294b67;border-radius:999px;padding:4px 8px;color:#91aabd;font-size:11px;font-weight:900}
.phase2-event{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;padding:14px;border:1px solid #203d53;border-radius:14px;background:#071725}
.phase2-event>div:nth-child(2){display:grid;gap:3px}.phase2-event span,.phase2-event small{color:#91aabd}
.phase2-date{display:grid;place-items:center;min-height:54px;border-radius:12px;background:#0b2744;color:#70adff;font-weight:900}
.phase2-money-card{display:grid;grid-template-columns:1fr auto;gap:10px 18px;align-items:center;padding:15px;border:1px solid #203d53;border-radius:14px;background:#071725}
.phase2-money-card>div:first-child{display:grid;gap:4px}.phase2-money-card>div:first-child small{color:#91aabd}.phase2-money-card>strong{font-size:20px;color:#f4f8fc}
.phase2-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.phase2-form-modal{width:min(760px,94vw);max-height:92vh;overflow:auto}
.phase2-line-head{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
#phase2LineItems{display:grid;gap:8px}
.phase2-line-item{display:grid;grid-template-columns:minmax(0,1fr) 90px 120px 40px;gap:8px;align-items:center}
.phase2-line-item input{width:100%}
.phase2-report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.phase2-report-grid>div{display:grid;gap:5px;padding:18px;border:1px solid #203d53;border-radius:15px;background:linear-gradient(145deg,#0a2136,#071725)}
.phase2-report-grid span{color:#8eabc2;font-size:12px;text-transform:uppercase;letter-spacing:.07em}.phase2-report-grid b{font-size:25px}.phase2-report-grid small{color:#7794aa}
.phase2-project-tools{margin:18px 0}
.phase2-project-grid{display:grid;grid-template-columns:.8fr 1fr 1.2fr;gap:14px}
.phase2-box{padding:16px;border:1px solid #203d53;border-radius:15px;background:#071725;min-width:0}
.phase2-box label{display:grid;gap:5px}
.phase2-chip-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.phase2-chip{display:inline-flex;gap:5px;align-items:center;padding:6px 9px;border:1px solid #28516f;border-radius:999px;background:#0a2237;font-size:11px}
.phase2-chip button{border:0;background:transparent;color:#91aabd;cursor:pointer}
.phase2-inline{display:flex;gap:8px}.phase2-inline select{min-width:0;flex:1}
.phase2-file-label{display:inline-flex!important;cursor:pointer;width:auto!important}
.phase2-file{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:10px 0;border-bottom:1px solid #173147}
.phase2-file:last-child{border-bottom:0}.phase2-file .link-btn{text-align:left;padding:0}.phase2-file small{grid-column:1;color:#7d99ae}
@media(max-width:900px){.phase2-report-grid{grid-template-columns:repeat(2,1fr)}.phase2-project-grid{grid-template-columns:1fr}.phase2-event{grid-template-columns:60px 1fr}.phase2-event>button{grid-column:2}.phase2-line-item{grid-template-columns:1fr 75px 100px 38px}}
@media(max-width:600px){.phase2-report-grid{grid-template-columns:1fr}.phase2-money-card{grid-template-columns:1fr}.phase2-line-item{grid-template-columns:1fr 1fr}.phase2-line-item input:first-child{grid-column:1/-1}.phase2-inline{flex-direction:column}}

/* 2.8.45.13 customer sharing */
.phase2-event-actions,.phase2-file-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.phase2-customer-messages{grid-column:1/-1}
.contractor-main-calendar{display:grid;gap:18px}.contractor-calendar-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;background:linear-gradient(135deg,rgba(8,32,51,.98),rgba(6,22,37,.96));box-shadow:0 18px 42px rgba(0,0,0,.18)}.contractor-calendar-hero h2{margin:7px 0 8px;font-size:clamp(25px,2.1vw,34px)}.contractor-calendar-hero p{margin:0;color:#b7cada;line-height:1.55}.contractor-main-calendar>#contractorMainCalendar{margin:0}.contractor-main-calendar .cw-head{margin-bottom:18px}.contractor-main-calendar .phase2-event{padding:17px;background:linear-gradient(145deg,#081c2c,#071725)}
@media(max-width:700px){.contractor-calendar-hero{align-items:flex-start;flex-direction:column;padding:22px}.contractor-main-calendar .cw-head{align-items:flex-start;flex-direction:column}.contractor-main-calendar .cw-head button{width:100%}}

/* 2.8.45.14 true month calendar + on-site visit timeline */
.phase2-calendar-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px}.phase2-month,.phase2-day-agenda{border:1px solid #1d425f;border-radius:18px;background:linear-gradient(145deg,#081c2d,#061522);overflow:hidden}.phase2-month-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #18364c}.phase2-month-head h3{margin:0;font-size:19px}.phase2-month-head button{width:42px;height:38px;padding:0;font-size:25px}.phase2-weekdays,.phase2-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.phase2-weekdays{padding:0 10px;border-bottom:1px solid #18364c}.phase2-weekdays span{padding:10px 6px;text-align:center;color:#83a4bd;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.phase2-month-grid{padding:10px}.phase2-day{min-width:0;min-height:106px;padding:9px;border:1px solid #17384f;background:#071725;color:#edf7ff;text-align:left;display:flex;flex-direction:column;gap:7px;cursor:pointer}.phase2-day:hover,.phase2-day.selected{position:relative;z-index:1;border-color:#1684ff;background:#0a2944;box-shadow:0 0 0 1px #1684ff}.phase2-day.today>b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#1684ff}.phase2-day.blank{background:rgba(5,18,29,.45);cursor:default}.phase2-day>span{display:grid;gap:4px;min-width:0}.phase2-day i{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;border-radius:5px;background:#123b5c;color:#bcdcff;font-size:9px;font-style:normal}.phase2-day i.visit{background:#0d4d46;color:#92f2d0}.phase2-day small{color:#7392aa;font-size:9px}.phase2-day-agenda{min-height:510px}.phase2-agenda-head{display:grid;gap:4px;padding:18px 20px;background:#0b2942;border-bottom:1px solid #1d425f}.phase2-agenda-head span{color:#70adff;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.phase2-agenda-head b{font-size:23px}.phase2-time-list{display:grid;gap:12px;padding:16px}.phase2-timeline-event{display:grid;grid-template-columns:74px 1fr;gap:12px;padding:14px;border:1px solid #1c4059;border-radius:13px;background:#071725}.phase2-timeline-event.site-visit{border-left:4px solid #49dcad}.phase2-timeline-event time{color:#70adff;font-weight:900}.phase2-timeline-event>div{display:grid;gap:4px}.phase2-timeline-event span,.phase2-timeline-event small{color:#91aabd}.phase2-money-card.declined{border-color:#663644;background:linear-gradient(145deg,#25131b,#111721)}.market-visit-status-list{display:grid;gap:8px;margin:10px 0 16px}.market-visit-status{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:12px;border:1px solid #234760;border-radius:12px;background:#0a2031}.market-visit-status small{grid-column:1/-1;color:#9bb2c3}.market-visit-compose{display:grid;gap:12px}.homeowner-visit-decision{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #24516f;border-radius:12px;background:#0a2338}.homeowner-visit-decision>div{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.phase2-open-times{display:grid;gap:8px;margin-top:4px;padding:14px;border:1px dashed #28516f;border-radius:13px;background:#081c2b}.phase2-open-times small{color:#91aabd}.phase2-open-times>div{display:flex;gap:7px;flex-wrap:wrap}
.phase2-visit-assignee{display:grid;gap:5px;margin-top:8px;color:#9db4c6;font-size:11px}.phase2-visit-assignee select{width:100%}.phase2-visit-workspace{display:grid;gap:10px;margin-top:10px;padding:13px;border:1px solid #2a675e;border-radius:12px;background:#092720}.phase2-visit-workspace label{display:grid;gap:5px}.phase2-visit-workspace>div{display:flex;gap:8px;flex-wrap:wrap}.phase2-estimate-context{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:13px;border:1px solid #284e6b;border-radius:13px;background:#081d2e}.phase2-estimate-context>div{display:grid;gap:3px}.phase2-estimate-context>div:last-child{grid-column:1/-1}.phase2-estimate-context small{color:#7fa1ba;text-transform:uppercase;letter-spacing:.06em}.phase2-estimate-context span{color:#b6c9d8}.phase2-recurrence{display:grid;gap:11px;margin-top:14px;padding-top:14px;border-top:1px solid #23445c}.phase2-weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.phase2-weekday-picker label{display:flex;align-items:center;gap:4px;padding:7px 8px;border:1px solid #28516f;border-radius:8px;background:#0a2237;font-size:11px}
.phase2-site-visit-detail{margin:0 0 18px;border-color:rgba(53,222,159,.5);box-shadow:inset 4px 0 0 #35de9f}.phase2-site-visit-detail>p{color:#b8d4e7;line-height:1.6}.phase2-site-visit-detail textarea{width:100%;min-height:140px;resize:vertical}.phase2-visit-project-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.phase2-visit-status{padding:7px 12px;border:1px solid rgba(53,222,159,.5);border-radius:999px;color:#6ef0bb;text-transform:capitalize;font-weight:800}
@media(max-width:1050px){.phase2-calendar-shell{grid-template-columns:1fr}.phase2-day-agenda{min-height:0}}
@media(max-width:700px){.phase2-month{overflow-x:auto}.phase2-weekdays,.phase2-month-grid{min-width:700px}.phase2-day{min-height:92px}.phase2-timeline-event{grid-template-columns:1fr}.phase2-calendar-shell{margin-inline:-6px}.phase2-estimate-context{grid-template-columns:1fr}.phase2-estimate-context>div:last-child{grid-column:auto}}
