.staff-page{background:linear-gradient(180deg,#f1f8ff 0,#fbfdff 580px);color:#102e52}.portal-shell{max-width:1120px;margin:0 auto;padding:48px 24px 72px}.portal-intro{text-align:center;max-width:640px;margin:18px auto 38px}.portal-intro h1,.calendar-heading h1{font-size:clamp(30px,4vw,46px);line-height:1.12;letter-spacing:-1.3px;margin:12px 0 16px}.portal-intro p,.calendar-heading p{color:#53718d;font-size:17px;line-height:1.7}.portal-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px}.portal-choice{display:flex;flex-direction:column;text-decoration:none;color:#102e52;background:white;border:1px solid #d9e8f5;border-top:4px solid #0789e5;border-radius:22px;padding:36px;box-shadow:0 14px 44px #1746770b;transition:transform .15s,box-shadow .15s}.portal-choice:hover{transform:translateY(-3px);box-shadow:0 20px 44px #17467718}.portal-choice:focus-visible{outline:3px solid #0789e5;outline-offset:5px}.portal-choice h2{font-size:32px;margin:16px 0 10px}.portal-choice p{color:#58718a;line-height:1.7;flex:1;margin:0 0 32px}.role-label{font-size:11px;letter-spacing:1.7px;font-weight:800;color:#0579c9}.cleaner-choice{border-top-color:#17b56b}.cleaner-choice .role-label{color:#078849}.choice-action{display:flex;justify-content:space-between;color:#057aca;font-weight:800;border-top:1px solid #e4eef5;padding-top:24px}.portal-note{text-align:center;color:#6c8195;font-size:13px;margin-top:30px}.staff-nav{display:flex;gap:8px;flex-wrap:wrap;padding:7px;background:#fff;border:1px solid #dce8f4;border-radius:14px;margin:0 0 30px}.staff-nav a{display:block;padding:11px 15px;color:#41617e;border-radius:9px;text-decoration:none;font-size:14px;font-weight:700}.staff-nav a[aria-current=page]{background:#e8f4ff;color:#006ec2}.staff-nav a:last-child{margin-left:auto}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.count-chip{white-space:nowrap;background:#e5f8ed;color:#097542;border:1px solid #c9ecd8;padding:10px 16px;border-radius:30px;font-weight:700;font-size:13px}.calendar-panel{padding:26px}.month-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px}.month-toolbar h2{margin:0;font-size:24px}.month-actions{display:flex;gap:8px}.month-jump{display:flex;align-items:end;gap:10px;margin:18px 0}.month-jump label{font-size:12px;max-width:200px}.month-jump input{min-height:42px;padding:8px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{text-align:center;font-size:12px;color:#7890a5;padding:10px 0;font-weight:700}.calendar-day{min-height:80px;border-radius:11px;background:#f7fafd;padding:12px;color:#6b8195;text-decoration:none;display:flex;flex-direction:column;gap:10px}.calendar-day strong{font-size:14px}.calendar-day.has-jobs{background:#e7f4ff;color:#076cae;border:1px solid #b9dfff}.calendar-day.has-jobs:hover{background:#d3ebff}.calendar-day span{font-size:11px;font-weight:700}.calendar-day.is-today{outline:2px solid #1596e9;outline-offset:-2px}.calendar-hint{font-size:12px;color:#6c8195;margin-bottom:0}.schedule{margin-top:34px}.schedule-day{scroll-margin-top:24px;color:#245476;margin:26px 0 14px}.job-card{padding:26px;margin:0 0 16px}.job-card-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.job-card h3{font-size:23px;margin:7px 0}.job-window{font-size:13px;font-weight:700;color:#0a7350;background:#eaf9f2;padding:9px 12px;border-radius:8px}.job-address{font-size:16px;line-height:1.6;overflow-wrap:anywhere;margin:14px 0 20px}.job-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.job-meta dt{font-size:12px;color:#6c8297;margin-bottom:6px}.job-meta dd{margin:0;font-weight:650}.job-notes{background:#f5faff;border-left:3px solid #58aeec;border-radius:8px;padding:16px 18px;margin-top:22px}.job-notes h4{margin:0 0 8px;font-size:13px}.job-notes p,.private-notes p{margin:0;line-height:1.65;white-space:normal;overflow-wrap:anywhere}.private-notes{margin-top:20px;font-size:14px}.private-notes summary{cursor:pointer;margin-bottom:12px}.job-financial{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid #e0eaf2;margin-top:22px;padding:22px 0}.job-financial span{display:block;font-size:12px;color:#70879b;margin-bottom:6px}.job-financial strong{font-size:16px}.calendar-empty{padding:30px;text-align:center;color:#58718a}.team-panel{padding:28px}.team-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border-bottom:1px solid #e0eaf3}.team-row span{display:block;color:#58718a;margin-top:5px;overflow-wrap:anywhere}.add-cleaner{max-width:520px;margin:28px 0}.staff-page .topbar a{color:#285677;font-weight:700}.staff-page .button{min-height:44px}.staff-page footer{background:#fff}.staff-page input{font-size:16px}
@media(max-width:640px){.portal-shell{padding:26px 16px 48px}.portal-intro{margin:15px auto 28px}.portal-choices{grid-template-columns:1fr;gap:16px}.portal-choice{padding:26px}.portal-choice h2{font-size:28px}.portal-choice p{margin-bottom:20px}.calendar-heading{display:block}.count-chip{display:inline-block;margin-top:5px}.staff-nav{gap:3px}.staff-nav a{font-size:12px;padding:10px}.staff-nav a:last-child{margin-left:0}.calendar-panel{padding:14px}.month-toolbar h2{font-size:20px}.month-actions{gap:4px}.month-actions .button{padding:8px 12px}.month-grid{gap:4px}.calendar-day{min-height:57px;padding:8px 5px;gap:5px}.calendar-day span{font-size:10px}.day-word{display:none}.weekday{font-size:10px}.job-card{padding:20px}.job-card-top{display:block}.job-window{display:inline-block;margin-top:8px}.job-meta{gap:12px}.job-financial{grid-template-columns:1fr 1fr}.job-card h3{font-size:21px}.team-panel{padding:20px}.team-row{align-items:start}.staff-page .topbar{padding:15px 20px}}
