@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500&display=swap');
:root{--paper:#f7f5ef;--white:#fffefa;--ink:#243a40;--muted:#627176;--line:#dedfd7;--blue:#365c6c;--rose:#f2e3df;--sage:#e3ebdf;--sand:#f3ead5;--lavender:#e9e4ef;--softblue:#e1eaf0;--alert:#9b3f32}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 'DM Sans',Arial,sans-serif}button,input,select{font:inherit}button,select,input{min-height:40px}button{cursor:pointer;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:7px;padding:9px 14px;font-weight:600}button:hover{background:#eceee7}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{background:#294b59}button.danger{color:var(--alert)}button.icon{padding:6px 12px;font-size:20px}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #be7a3c;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,.brand{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1{font-size:40px;line-height:1.2;letter-spacing:-1px}h2{font-size:25px}h3{font-size:15px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:31px 20px;display:flex;flex-direction:column;background:#efeee6;position:sticky;top:0;height:100vh}.brand{font-size:28px;line-height:1.08;letter-spacing:-.5px}.brand span{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:9px;font-weight:500;letter-spacing:3.2px;margin:12px 0 30px}.nav{display:grid;gap:7px}.nav button{text-align:left;background:transparent;border-color:transparent;padding:12px;font-weight:500;display:flex;gap:12px;align-items:center}.nav button.active{background:var(--blue);color:white}.nav svg{width:19px;height:19px}.side-bottom{margin-top:auto;padding-top:30px}.side-note{border-top:1px solid #d0d4ca;padding-top:19px;margin-top:18px;font-size:11px;color:var(--muted)}.side-note b{display:block;color:var(--ink);margin-bottom:5px}.private{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:600}.dot{width:6px;height:6px;border-radius:50%;background:#729174;display:inline-block}.main-wrap{min-width:0}.topbar{padding:16px 32px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white)}.topbar .path{font-size:12px;color:var(--muted)}.view-switch{display:flex;align-items:center;gap:9px;font-size:11px}.view-switch select{max-width:230px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:7px}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #d0d6cc;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.demo-band{background:#f1ede1;padding:8px 32px;font-size:11px;color:#6a604a;border-bottom:1px solid #e3ddca}main{padding:30px 32px 22px;max-width:1700px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}.intro .eyebrow{margin-bottom:8px}.intro p{margin-top:10px;color:var(--muted)}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--white);border-radius:10px;margin:20px 0;overflow:hidden}.stat{padding:17px 21px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat-top{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:6px}.stat-number{font-size:28px;letter-spacing:-1px;font-weight:500;margin:4px 0}.stat-number span{font-size:13px;letter-spacing:0;color:var(--muted);font-weight:400}.stat-note{font-size:11px;color:var(--muted)}.good{color:#4d6e54}.bad{color:var(--alert)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;flex-wrap:wrap}.period{display:flex;align-items:center;gap:8px}.period strong{font-size:16px;margin-right:10px}.segment{display:flex;border:1px solid var(--line);border-radius:7px;padding:3px;background:#ebece5}.segment button{min-height:30px;border:0;padding:5px 11px;font-size:11px;background:none}.segment button.active{background:var(--white);box-shadow:0 1px 3px #0001}.planner{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:18px}.board-heading{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.board-heading h2{font-size:19px}.board-scroll{overflow:auto}.board{border-collapse:collapse;width:100%;table-layout:fixed;min-width:850px}.board th{font-weight:500;font-size:11px;text-align:center;padding:12px 5px;color:var(--muted);border-bottom:1px solid var(--line);background:#faf9f5}.board th:first-child{width:151px;text-align:left;padding-left:17px}.board th.today{color:var(--blue);background:#edf1ef}.daynum{display:block;font-size:19px;color:var(--ink);margin-top:2px}.board td{vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid #ebece6;padding:7px 5px;height:92px}.board tr:last-child td{border-bottom:0}.board td.person-cell{padding:15px 12px}.person-name{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.avatar{display:inline-flex;justify-content:center;align-items:center;width:29px;height:29px;border-radius:50%;font-size:10px;font-weight:700;flex:none}.rose{background:var(--rose)}.sage{background:var(--sage)}.blue{background:var(--softblue)}.sand{background:var(--sand)}.lavender{background:var(--lavender)}.hours{font-size:10px;color:var(--muted);margin:9px 0 5px;display:flex;justify-content:space-between;gap:5px}.bar{height:3px;background:#e9e9e2;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:#698779}.bar.over i{background:var(--alert)}.shift{width:100%;text-align:left;border:1px solid #00000007;border-left:3px solid #bd938a;min-height:55px;padding:7px 6px;margin-bottom:4px;border-radius:5px;font-size:11px;line-height:1.4;font-weight:600;cursor:grab}.shift.sage{border-left-color:#98ad8d}.shift.blue{border-left-color:#94aeba}.shift.sand{border-left-color:#bcaa7e}.shift.lavender{border-left-color:#aa9bbb}.shift small{display:block;font-size:9px;opacity:.75;font-weight:400;margin-top:3px}.shift:hover{filter:brightness(.97)}.shift.conflict{border:2px solid var(--alert)}.drop-cell.drag-over{background:#dde8e6;outline:2px dashed var(--blue);outline-offset:-3px}.cell-add{width:100%;padding:0;min-height:24px;font-size:13px;background:transparent;border:1px dashed transparent;color:#7d8b89;font-weight:400}.cell-add:hover{border-color:#b7c5ba;background:#eff2ec}.rest{display:block;text-align:center;color:#a8afa7;font-size:10px;padding:18px 0 5px}.coverage-row td{height:auto;font-size:10px;text-align:center;background:#f3f6f0;padding:9px 3px;color:#536f57}.coverage-row td.gap{background:#fcf0e8;color:var(--alert)}.board-foot{padding:12px 17px;font-size:10px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);background:#faf9f5;border-top:1px solid var(--line)}.bottom-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.panel{border:1px solid var(--line);border-radius:10px;background:var(--white);padding:20px}.panel h3{margin-bottom:9px}.panel p{font-size:12px;color:var(--muted);line-height:1.7}.alert-item{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.alert-item:last-child{border:0}.alert-item b{display:block}.ok-line{display:flex;gap:10px;align-items:flex-start}.ok-icon{background:#e6ede2;color:#517254;border-radius:50%;padding:4px 9px}.legend{display:flex;gap:14px;font-size:10px;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.footer{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:20px;margin-top:25px;padding-top:15px;border-top:1px solid var(--line)}.text-button{padding:0;border:0;background:none;min-height:24px;font-size:11px;color:var(--blue);text-decoration:underline}.list-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:23px}.team-card{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:10px}.team-card .avatar{width:42px;height:42px;margin-bottom:15px}.team-card h3{font-size:18px;margin-bottom:5px}.team-card p{color:var(--muted);font-size:12px}.team-card .badge{margin-top:16px}.empty{padding:46px 24px;text-align:center;max-width:700px;margin:24px auto;border:1px solid var(--line);border-radius:12px;background:var(--white)}.empty .symbol{font-family:Georgia,serif;font-size:40px;color:#8fa19b;margin-bottom:8px}.empty h2{margin-bottom:12px}.empty p{max-width:460px;margin:0 auto 20px;color:var(--muted);font-size:13px}.summary-table{border-collapse:collapse;width:100%;margin-top:18px;font-size:13px}.summary-table th,.summary-table td{text-align:left;padding:14px 8px;border-bottom:1px solid var(--line)}.summary-table th{font-size:11px;color:var(--muted);font-weight:500}.individual-banner{background:#e7eee8;border:1px solid #d3ddcf;border-radius:8px;padding:12px 16px;font-size:12px;margin-bottom:20px}.individual-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:13px;margin:20px 0}.individual-day{background:var(--white);border:1px solid var(--line);border-radius:9px;padding:18px}.individual-day h3{margin-bottom:12px}.individual-shift{padding:10px;border-radius:6px;margin:8px 0}.week-chips{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.week-chip{background:white;border:1px solid var(--line);border-radius:8px;padding:14px 20px}.week-chip b{font-size:21px;display:block}.notice{border-left:3px solid #b8a371;background:#f5f0e4;padding:13px 16px;margin:15px 0;font-size:12px;color:#6d5c3e}dialog{border:1px solid var(--line);border-radius:13px;padding:0;max-width:620px;width:calc(100% - 30px);color:var(--ink);background:var(--white);box-shadow:0 20px 80px #1c343633;max-height:90vh}dialog::backdrop{background:#1f323b66;backdrop-filter:blur(3px)}.modal-head{padding:21px 24px 15px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:25px}.modal-body{padding:22px 24px}.modal-body p{font-size:12px;color:var(--muted);margin-bottom:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label,.field{font-size:12px;font-weight:600;display:flex;flex-direction:column;gap:6px}.form-grid .full{grid-column:1/-1}input,select{border:1px solid #cfd4cb;background:white;color:var(--ink);padding:9px 10px;border-radius:6px;width:100%}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--blue)}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:400!important}.modal-foot{display:flex;justify-content:space-between;gap:10px;margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.error{font-size:12px;color:var(--alert);margin-top:12px}.preview-result{margin-top:15px;border-top:1px solid var(--line);padding-top:16px}.mapping{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.mapping span{font-size:10px;padding:5px 7px;background:#ecefe8;border-radius:5px}.rotation-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rotation-week{padding:12px;border:1px solid var(--line);border-radius:7px;font-size:11px}.rotation-week strong{display:block;margin-bottom:8px}details{margin-top:12px}summary{cursor:pointer;font-weight:600;font-size:12px}details p{margin-top:10px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#294a52;color:white;border-radius:8px;padding:12px 20px;box-shadow:0 4px 20px #0002;z-index:10;max-width:90%;font-size:12px;display:none}#toast.visible{display:block}.skip{position:fixed;top:-60px;left:10px;padding:10px;background:white;z-index:20}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){main{padding:38px 48px}.topbar,.demo-band{padding-left:48px;padding-right:48px}.board td{height:101px}.shift{font-size:12px;padding:9px}.sidebar{padding:40px 25px}.shell{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:1050px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:25px 13px}.brand{font-size:25px}main{padding:25px 20px}.topbar,.demo-band{padding-left:20px;padding-right:20px}.intro{align-items:flex-start}.intro h1{font-size:32px}.bottom-grid{grid-template-columns:1fr}.view-switch>span{display:none}.actions button{font-size:12px;padding:8px 10px}}
@media(max-width:720px){.shell{display:block}.sidebar{height:auto;position:static;padding:17px 18px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:22px}.brand br{display:none}.brand span{display:inline-block;letter-spacing:2px;margin:0 0 0 12px;font-size:8px}.nav{display:flex;gap:2px;overflow:auto;margin-top:17px}.nav button{font-size:11px;white-space:nowrap;gap:6px;padding:11px 9px;border-radius:6px 6px 0 0}.nav svg{width:15px;height:15px}.side-bottom{display:none}.topbar{padding:10px 18px}.topbar .path{display:none}.view-switch{width:100%;justify-content:space-between}.view-switch>span{display:block}.view-switch select{width:220px;max-width:65%}.demo-band{padding:8px 18px;font-size:10px}main{padding:23px 16px}.intro{display:block}.intro h1{font-size:33px}.intro p{font-size:12px}.intro .actions{margin-top:18px}.stats{margin:18px 0}.stat{padding:13px 10px}.stat-number{font-size:23px}.stat-top{font-size:10px}.stat-note{font-size:9px}.stat-number span{font-size:10px}.period{gap:5px;flex-wrap:wrap}.period strong{font-size:14px}.toolbar{gap:10px}.board-heading{padding:12px}.board-foot{display:block}.board-foot .legend{margin-top:8px}.footer{display:block}.footer button{margin-top:10px}.form-grid{gap:12px}.modal-head,.modal-body{padding:18px}.rotation-summary{grid-template-columns:1fr}.summary-table{font-size:11px}.summary-table th,.summary-table td{padding:10px 5px}.board th:first-child{width:138px}.board{min-width:840px}.board th:first-child,.board td.person-cell{position:sticky;left:0;z-index:1;background:var(--white);box-shadow:2px 0 2px #00000008}.board th:first-child{background:#faf9f5}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.login-wrap{max-width:460px;margin:8vh auto;padding:30px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.login-wrap h1{font-size:32px;margin:22px 0 14px}.login-wrap p{margin:14px 0}.login-wrap label{display:block;font-size:12px;margin:18px 0 6px}.login-wrap input[type=submit]{margin-top:10px;background:var(--blue);color:white;cursor:pointer}.shift:disabled{opacity:1;cursor:default}@media(max-width:520px){.login-wrap{margin:30px 16px;padding:22px}.topbar .view-switch span:first-child{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* Show the original transparent artwork, excluding only its empty outer margins. */
.brand{position:relative;width:150px;max-width:100%;aspect-ratio:409/223;overflow:hidden;flex:none;margin:0 auto 28px}
.brand img{display:block;position:absolute;width:181.9070905%;max-width:none;height:auto;left:-41.3202934%;top:-17.9372197%}
.login-wrap .brand{width:190px;margin-bottom:26px}
@media(max-width:720px){.sidebar .brand{width:132px;margin:0 0 20px}.login-wrap .brand{width:174px}}
.planner-opening{display:grid;grid-template-columns:minmax(0,1fr) 284px;gap:24px;align-items:start;margin-bottom:22px}
.planner-opening-copy{min-width:0}.planner-opening .intro{display:block;margin-bottom:20px}.planner-opening .intro .actions{margin-top:18px}.planner-opening .stats{margin-bottom:0}.planner-opening .stat{padding:15px 12px}.planner-opening .intro h1{font-size:36px}
.month-calendar{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0;box-shadow:0 3px 12px #243a4005}
.calendar-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;margin-bottom:10px}
.calendar-heading{display:flex;gap:5px;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-heading h2{font-family:'DM Sans',Arial,sans-serif;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0}
.calendar-arrow{width:31px;min-height:31px;padding:0;font-size:23px;line-height:1;background:transparent;border-color:transparent}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{font-size:10px;color:var(--muted);text-align:center;padding:5px 0 7px}
.calendar-day{position:relative;min-width:0;min-height:30px;padding:4px 0 7px;border:1px solid transparent;border-radius:5px;background:transparent;font-size:12px;font-weight:500;line-height:1.3}
.calendar-day.outside-month{color:#8a918c}.calendar-day.in-week{background:#eaf0ed}.calendar-day.is-today{border:1.5px solid var(--blue);font-weight:800}.calendar-day.selected{background:var(--blue);color:white}.calendar-day:hover{background:#dce7e4}.calendar-day.selected:hover{background:#294b59}
.calendar-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}.calendar-day .calendar-dot{position:absolute;bottom:3px;left:calc(50% - 2px)}
.calendar-footer{display:flex;gap:5px;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}.calendar-footer>span{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted)}.calendar-footer button{font-size:10px;min-height:27px;padding:3px 9px}
.calendar-selection{font-size:10px;margin-top:9px;color:var(--ink)}.calendar-hint{font-size:10px;color:var(--muted);margin-top:3px}
@media(min-width:721px) and (max-width:1150px){.planner-opening{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.planner-opening .intro h1{font-size:29px}.planner-opening .stats{grid-template-columns:1fr}.planner-opening .stat{padding:8px 12px;border-right:0;border-bottom:1px solid var(--line)}.planner-opening .stat:last-child{border-bottom:0}.planner-opening .stat-number{display:inline-block;font-size:23px;margin:0 8px 0 0}.planner-opening .stat-note{display:inline;font-size:10px}}
@media(max-width:720px){.planner-opening{grid-template-columns:minmax(0,1fr);gap:22px}.planner-opening .month-calendar{grid-row:1;padding:16px;max-width:440px;width:100%;justify-self:center}.planner-opening .intro h1{font-size:33px}.calendar-day{min-height:36px;font-size:13px}.calendar-weekdays{font-size:11px}.calendar-heading h2{font-size:16px}.calendar-footer>span,.calendar-selection,.calendar-hint{font-size:11px}.calendar-footer button{min-height:32px;font-size:11px}.planner-opening .stats{margin-bottom:0}}
.review-facts{display:grid;gap:12px;margin-top:18px}.review-facts p{font-size:12px;color:var(--muted);border-left:3px solid #bcaa7e;padding-left:12px}.review-facts b{display:block;color:var(--ink);margin-bottom:4px}.calendar-week-preview{margin-bottom:18px}.calendar-week-preview h2{font-size:23px;margin-bottom:8px}.review-source>p{margin:12px 0}.review-table-scroll{overflow:auto}.review-source .summary-table{font-size:12px}.review-source td{overflow-wrap:anywhere}.review-source th,.review-source td{text-align:left}.review-source .notice{margin:16px 0}@media(max-width:720px){.review-source .summary-table{font-size:10px}.review-source th,.review-source td{padding:9px 5px}.calendar-week-preview h2{font-size:21px}.review-source{padding:16px}}

.calendar-heading h2::first-letter{text-transform:uppercase}

/* Visible weekly editing controls and unresolved shared reception. */
.editor-actions{margin-top:20px}.edit-instructions{font-size:12px;color:var(--muted);max-width:650px}.planner-opening #save-status{font-size:12px;font-weight:600;margin-top:14px}.planner-legend{margin:8px 0 14px}.shift-name{display:block;font-size:11px;font-weight:700;margin-bottom:4px}.shared{background:repeating-linear-gradient(135deg,#eee9df,#eee9df 8px,#f8f5ed 8px,#f8f5ed 16px)}.shift.shared{border-left-color:#8a7f69}.shift.pending{border-style:dashed;border-left-style:solid}.external-row td{height:auto;font-size:10px;color:var(--muted);padding:10px 7px}.external-row .external-pending{background:#f6efdf;color:#725c30}.board th:first-child,.board td.person-cell{position:sticky;left:0;z-index:1;background:var(--white)}.board-foot{font-size:11px}.cell-add{border-color:#d4d9cf;min-height:28px}.shift{min-height:67px}.review-facts{margin-top:12px}.review-facts p{margin:0}.board .small{font-size:9px}.view-switch .badge{display:inline-flex;flex-shrink:0}@media(max-width:720px){.editor-actions button{min-height:44px}.shift-name{font-size:10px}.board-scroll{overscroll-behavior-x:contain}.planner-legend{gap:9px}.shift{min-height:72px}.board th:first-child{width:132px}.summary-table[data-admin-access]{font-size:10px}.summary-table[data-admin-access] td{overflow-wrap:anywhere}}

.shift{user-select:none}.shift.dragging{opacity:.45;cursor:grabbing}.shift[data-can-move="false"]{cursor:default}

/* Teams and private profiles */
.team-selector{display:grid;gap:8px;margin:0 12px 22px;font-weight:700;font-size:12px}.team-selector select{width:100%;padding:10px;border:1px solid #d6ded9;border-radius:8px;background:#fff;color:#274d50}.profile-panel{display:grid;grid-template-columns:240px minmax(0,600px);gap:32px}.profile-form{display:grid;gap:18px}.profile-form label,.request-actions label{display:grid;gap:7px;font-weight:600;font-size:14px}.profile-form input,.profile-form select,.request-actions select{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd7d2;border-radius:8px;background:#fff;font:inherit;color:#243b3b}.profile-form input[readonly]{background:#f4f5f2}.profile-form small{font-size:12px;font-weight:400}.profile-photo img{width:180px;height:180px;object-fit:cover;border-radius:50%}.profile-photo [hidden]{display:none}.profile-photo input{max-width:100%;margin:10px 0}.profile-photo p{margin:10px 0}#photo-placeholder{width:180px;height:180px;border-radius:50%;background:#edf0ea;display:grid;place-items:center;margin-bottom:20px;color:#526e63}.profile-assignment{padding:15px;background:#edf1ec;border-radius:10px}.request-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:24px;padding:22px 0;border-bottom:1px solid #dce4df}.request-card p{overflow-wrap:anywhere;margin:7px 0}.request-actions{display:grid;gap:10px}.private-photo-preview{max-width:100%;max-height:60vh;display:block;margin:auto}.workload-panel{margin-top:24px;overflow-x:auto}.signup-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.login-wrap .profile-form{margin-top:24px}.photo-label{display:block;font-weight:600}.team-card button{margin-top:8px}.profile-panel input[type=file]{font-size:12px}@media(max-width:760px){.profile-panel,.request-card{grid-template-columns:1fr}.profile-photo{max-width:100%}.team-selector{margin-top:14px}.workload-panel table{min-width:550px}.request-actions select{max-width:100%}}

#photo-placeholder[hidden]{display:none}.profile-photo img{background:#f5f4ed}

.document-heading{margin-top:28px}.document-row{display:grid;gap:14px;padding:18px 0;border-bottom:1px solid #dce4df}.document-row strong{overflow-wrap:anywhere}.document-row p{margin:7px 0;font-size:13px;color:#566e65}.document-row .actions{flex-wrap:wrap}.document-trash{margin:24px 0;padding:14px;background:#f2f3ee;border-radius:10px}#document-file{font-size:13px;max-width:100%}#document-upload{margin-top:20px}

/* The saved private photo is the avatar source; circular crop is automatic. */
.avatar{overflow:hidden}.avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}.view-switch>.avatar{width:34px;height:34px}.request-card .avatar{width:42px;height:42px;margin-bottom:10px}.profile-photo #profile-photo{display:block;object-position:center;margin-bottom:16px;border:3px solid #fff;box-shadow:0 0 0 1px #d4ded6}.profile-photo #profile-photo[hidden]{display:none}

/* 1.3: quieter hierarchy, clear operation states, comfortable touch targets. */
:root{--paper:#f5f4ee;--white:#fffefa;--ink:#243b40;--muted:#596c70;--line:#dce2da;--blue:#2e5961}
body{font-size:15px;line-height:1.6}button{min-height:42px;transition:background .15s,box-shadow .15s}button.primary{box-shadow:0 2px 3px #163d3912}button:disabled{opacity:.6}input,select{font-size:14px}
.sidebar{background:#eeefe6;border-right-color:#d8dfd4}.sidebar .brand{width:138px;margin-bottom:30px}.nav{gap:6px}.nav button{border-radius:9px;padding:12px 14px;font-size:13px;position:relative}.nav button:hover{background:#dfe7de}.nav button.active{background:var(--blue);box-shadow:0 4px 12px #163d3917}.nav button.active:before{content:'';width:5px;height:5px;border-radius:50%;background:#e2c79a;position:absolute;left:5px;top:50%;transform:translateY(-50%)}
.team-selector{margin-left:0;margin-right:0;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.team-selector select{font-size:13px;text-transform:none;letter-spacing:0;min-height:44px}
.topbar{background:#fffefaeF;min-height:72px}.topbar .path{font-size:12px}.view-switch{font-size:12px;gap:12px}.account-name{font-weight:600}.view-switch a{padding:8px;text-underline-offset:4px}.view-switch .badge{font-size:9px;background:#e9efe7;border-color:#d6dfd2;color:#355a48}.demo-band{background:#ecefe5;color:#526343;font-size:11px}
main{padding-top:32px;padding-bottom:48px}.intro{margin-bottom:28px}.intro h1{font-size:40px;line-height:1.15}.intro p{max-width:680px;font-size:14px;line-height:1.7}.eyebrow{color:#5e7667;letter-spacing:1.8px}.panel,.planner,.team-card,.empty{border-radius:14px;box-shadow:0 4px 18px #29423904}.panel{padding:24px}.panel h3{font-size:16px}.panel p{font-size:13px}.notice{border-radius:0 8px 8px 0;line-height:1.7}.intro .actions{gap:8px}.editor-actions .primary:first-child{background:#f1f5ed;color:#2e5961;border-color:#cad8c8;box-shadow:none}
.month-calendar{border-radius:15px;padding:18px;background:#fffefa}.calendar-day{min-height:34px}.calendar-heading{margin-bottom:13px}.calendar-arrow{min-height:36px;width:36px}.calendar-hint{line-height:1.55}.month-navigation{display:flex;align-items:center;gap:14px;margin-top:20px}.month-navigation strong{min-width:180px;text-align:center;text-transform:capitalize}.month-navigation button{font-size:22px;padding:2px 15px}
.board-heading{padding:16px 18px;background:#f9faf4}.board-heading h2{font-size:20px}.board th{font-size:11px;background:#f5f7ef}.board td.person-cell{background:#fcfcf7}.board .person-name{font-size:12px}.board .shift{border-radius:7px;line-height:1.45;box-shadow:0 1px 3px #20383308}.board .cell-add{opacity:.75}.board .cell-add:hover,.board .cell-add:focus-visible{opacity:1}.board-scroll:focus-visible{outline:3px solid #be7a3c;outline-offset:-3px}.toolbar>.period{gap:7px}.segment{background:#e7ece2;padding:4px;gap:3px}.segment button{min-height:34px;font-size:12px}.segment button.active{color:#274f4f;box-shadow:0 1px 4px #183c3617}.board-foot{font-size:11px;line-height:1.6}
#save-status{border:1px solid #d5dfd2;background:#eef3e9;color:#355d45;padding:10px 13px;border-radius:8px;line-height:1.6} .save-dock{position:sticky;bottom:16px;z-index:5;background:#264d53;color:white;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:12px;box-shadow:0 8px 30px #173c3a25;margin:24px 0 0}.save-dock strong{font-size:13px}.save-dock small{display:block;font-size:11px;opacity:.85}.save-dock button.primary{background:#fffefa;border-color:#fffefa;color:#264d53;white-space:nowrap}.save-dock div{overflow-wrap:anywhere}
.profile-panel{grid-template-columns:260px minmax(0,650px);padding:30px;gap:36px}.profile-photo{background:#f1f4ed;border:1px solid #e0e7dc;border-radius:12px;padding:20px;align-self:start}.profile-photo #profile-photo,#photo-placeholder{margin:0 auto 22px;width:176px;height:176px}.profile-photo .photo-label{font-size:13px}.profile-photo p{font-size:12px}.profile-photo button{width:100%;font-size:12px;margin-top:7px}.profile-photo input{padding:8px 0;border:0;background:transparent;min-width:0}.profile-photo input::file-selector-button{border:1px solid #c8d6c8;border-radius:7px;background:#fffefa;color:#335e57;padding:8px;cursor:pointer;display:block;margin-bottom:8px}.profile-form input[readonly]{color:#536564;border-color:#e0e5de}.profile-assignment{border:1px solid #dce5d7;padding:18px}.profile-assignment b{font-size:13px}.profile-form #profile-status:not(:empty){font-size:13px;color:#2e6144;margin-top:-7px}.profile-form{align-content:start}.team-card{padding:24px}.list-cards{margin-bottom:24px}.team-card .badge{font-size:9px}.team-card .avatar{width:48px;height:48px}.team-card button{font-size:12px}.request-card{gap:32px;padding:25px 0}.request-card:first-child{padding-top:0}.summary-table th{color:#48605c}.review-checklist{padding-left:20px}.review-checklist li{margin:12px 0}.modal-body .check{margin:14px 0;align-items:flex-start;line-height:1.6}.modal-body .check input{flex:none;margin-top:4px}.modal-head{background:#f5f7ef}.modal-head h2{font-size:24px}#toast{font-size:13px;line-height:1.6;z-index:30}dialog #toast{z-index:31}
@media(min-width:1500px){main{padding-top:40px}.profile-panel{max-width:1040px}.intro h1{font-size:46px}}
@media(max-width:1100px){.profile-panel{grid-template-columns:220px minmax(0,1fr);padding:22px;gap:24px}.profile-photo{padding:16px}.profile-photo #profile-photo,#photo-placeholder{width:160px;height:160px}.view-switch .account-name{display:none}}
@media(max-width:760px){.profile-panel{grid-template-columns:minmax(0,1fr)}.profile-photo{max-width:360px;width:100%;justify-self:center}.profile-form{min-width:0}.request-card{grid-template-columns:minmax(0,1fr);gap:18px}.panel{padding:20px}.profile-panel .profile-photo p{font-size:12px}.month-navigation strong{min-width:150px}.save-dock{bottom:8px;padding:12px;gap:10px}.save-dock button{font-size:12px;padding:10px}.save-dock strong{font-size:12px}}
@media(max-width:720px){.sidebar{padding:18px 16px 0;display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 18px;align-items:center}.sidebar .brand{width:90px;margin:0}.sidebar>.eyebrow{display:none}.sidebar .team-selector{margin:0;gap:5px}.sidebar .nav{grid-column:1/-1;margin:4px -16px 0;padding:0 12px;gap:4px}.nav button{font-size:12px;min-height:44px;padding:10px 14px;border-radius:8px 8px 0 0}.nav button.active:before{display:none}.topbar{min-height:60px;padding:10px 16px}.view-switch{justify-content:flex-start;gap:9px}.view-switch .account-name{display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.view-switch a{margin-left:auto}.view-switch .badge{margin-left:auto;font-size:8px}.view-switch .badge+a{margin-left:0}.demo-band{font-size:11px}main{padding:24px 14px 40px}.intro h1,.planner-opening .intro h1{font-size:32px}.intro p{font-size:13px}.planner-opening{gap:18px}.planner-opening .month-calendar{grid-row:auto;max-width:none}.calendar-day{min-height:40px}.calendar-heading h2{font-size:16px}.calendar-footer button{min-height:36px}.calendar-hint{font-size:11px}.calendar-selection{font-size:12px}.editor-actions button{font-size:12px}.toolbar .period strong{font-size:13px;order:-1;width:100%;margin-bottom:5px}.toolbar .segment{width:auto}.profile-panel{padding:16px}.board-heading h2{font-size:17px}.board-heading .badge{font-size:9px}.footer{font-size:11px}.stats{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:0}.stat-note{font-size:11px}.stat-top{font-size:11px}.stat-number{font-size:28px}.stat-number span{font-size:12px}.summary-table th,.summary-table td{padding:12px 7px}.intro .actions{display:flex;flex-wrap:wrap}.month-navigation{justify-content:space-between}.month-navigation strong{min-width:0}.review-source .summary-table{font-size:11px}}
@media(max-width:380px){.view-switch .account-name{max-width:105px}.view-switch>.avatar{width:28px;height:28px}.view-switch .badge{font-size:7px;padding:4px 6px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.view-switch>.avatar{display:inline-flex;align-items:center;justify-content:center}.merge-choice{padding:16px;margin:15px 0;border:1px solid var(--line);border-radius:10px}.merge-choice label{display:grid;gap:6px;font-size:13px}.save-dock{flex-wrap:wrap}.save-dock [data-reconcile]{font-size:12px}

#save-status[data-state="pending"]{background:#fbf2df;border-color:#e5d5ad;color:#765c26}#save-status[data-state="error"]{background:#faebe6;border-color:#e4c7be;color:#903e30}.profile-form #profile-status:not(:empty){color:var(--ink)}.publication-week{padding:12px;border:1px solid var(--line);border-radius:9px;margin:14px 0}.publication-week>summary{font-size:13px}
