*{box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#f6f7f9;color:#20252c;margin:0}main{max-width:940px;margin:36px auto;padding:0 18px}h1{font-size:1.6rem}small{font-size:.75rem;color:#657080}section{background:white;border:1px solid #e2e5e9;border-radius:12px;padding:22px;margin:18px 0;overflow-x:auto}form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:6px}input,select,button{font:inherit;padding:9px;border-radius:7px;border:1px solid #cbd0d6}button{background:#2159ac;color:white;cursor:pointer;border:0}.secondary{background:#777}.warning{background:#fff3d7;padding:12px;border-radius:8px}.notice{background:#e6f3e9;padding:10px}table{width:100%;border-collapse:collapse}th,td{padding:11px;text-align:left;border-bottom:1px solid #e5e7eb}.inline{gap:6px}header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}header form{margin:0}.monthbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.monthbar h2{margin:0}.monthbar a{color:#2159ac;text-decoration:none;font-weight:600}.calendar-form{display:block}.calendar-form>label{max-width:280px;margin:16px 0}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;max-width:650px}.weekday{text-align:center;font-size:.85rem;padding:8px 0;color:#64748b}.day{width:100%;min-height:48px;background:#f5f7fa;color:#243046;border:1px solid #d7dee8;border-radius:8px;cursor:pointer}.day.selected{background:#205bb4;color:#fff}.day.pending{background:#fff1c9;color:#795100}.day.approved{background:#d5f1dd;color:#176331}.day.rejected{background:#fce0e0;color:#923838}.day:disabled{cursor:default}.day:focus-visible{outline:3px solid #205bb4;outline-offset:2px}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.8rem;margin:10px 0}.legend-new{color:#205bb4}.legend-pending{color:#997000}.legend-approved{color:#198443}.legend-rejected{color:#b53b3b}#selection-count{margin:16px 0 10px}.table-wrap{overflow-x:auto}@media(max-width:550px){main{margin:16px auto;padding:0 10px}section{padding:14px}.calendar{gap:3px}.day{min-height:42px;padding:4px}.monthbar h2{font-size:1.15rem}}

/* Staff calendar */
.staff-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px;min-height:66px;background:#f5f7fa;color:#243046}
.staff-day.has-requests{background:#eaf1fc;border-color:#9dbce9}
.staff-day.active{outline:3px solid #2159ac;outline-offset:-3px;background:#dbeafe}
.day-number{font-weight:650;font-size:1rem}.day-count{font-size:.73rem;color:#244d83}.pending-dot{position:absolute;right:5px;top:2px;color:#b57b00;font-size:.65rem}
.staff-day-details{margin-top:20px;padding:16px;border:1px solid #e1e7f0;border-radius:10px;background:#fafbfd}
.staff-detail-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.staff-detail-head h3{margin:0}.detail-summary,.hint{color:#657080;font-size:.9rem}
.staff-request{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #e4e9f0}.staff-request:first-of-type{margin-top:10px}
.status-chip{padding:4px 9px;border-radius:20px;font-size:.8rem;background:#e8edf4}.status-chip.pending{background:#fff1c9;color:#795100}.status-chip.approved{background:#d5f1dd;color:#176331}.status-chip.rejected{background:#fce0e0;color:#923838}
.staff-request form{margin-left:auto}.staff-request button:disabled{opacity:.45;cursor:default}
@media(max-width:550px){.staff-day{min-height:55px;padding:2px}.day-count{font-size:.65rem}.staff-request form{margin-left:0}}
.childpicker{margin:18px 0}.childpicker select{min-width:200px}.sheet-form{display:block}.sheet-form>.calendar{margin:16px 0}.day{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:70px}.day-mark{font-size:1.35rem;font-weight:700;line-height:1}.day.circle{background:#e0f3e5;color:#176331}.day.cross{background:#fce9e9;color:#a02c2c}.day.blank{background:#f5f7fa;color:#243046}.day:disabled{opacity:.9}.day-number{font-size:.85rem}.state{font-weight:650}.separate-form{margin-top:18px;padding-top:16px;border-top:1px solid #e5e7eb}.contract-form fieldset{display:flex;flex-wrap:wrap;gap:10px;border:1px solid #ddd;border-radius:8px}.contract-form fieldset label{display:inline-flex;flex-direction:row;align-items:center;gap:3px}.notification{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border-bottom:1px solid #ddd}.decision-list{display:flex;flex-wrap:wrap;gap:8px}.decision-list h3{width:100%}.decision-list span{padding:5px 8px;background:#f1f4f8;border-radius:6px}.hint{font-size:.85rem;color:#64748b}@media(max-width:550px){.day{min-height:54px}.day-mark{font-size:1.15rem}}
/* v0.6 staff modules */
main.wide{max-width:1450px}.staff-nav{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.staff-nav a{display:inline-block;background:#e6edf8;border-radius:7px;padding:9px 14px;color:#164b94;text-decoration:none;font-weight:600}.staff-nav a:hover{background:#d5e3f7}fieldset{border:1px solid #d9e1eb;border-radius:8px;padding:12px;margin:12px 0}fieldset .inline{display:inline-flex;flex-direction:row;align-items:center;margin-right:16px}.pickup-form{display:block}.pickup-form input{min-width:140px}.pickup-form button{margin-top:12px}.daily-form{display:block}.daily-form>button{margin-top:14px}.daily-table{min-width:1200px}.daily-table th{white-space:nowrap;font-size:.82rem;background:#f3f6fa}.daily-table td{vertical-align:top}.daily-table input,.daily-table select{max-width:165px;min-width:100px}.daily-table td:first-child{min-width:135px}.daily-table td:nth-child(3) input{min-width:170px}.daily-table textarea{min-width:210px;max-width:280px}.chip{display:block;background:#fff1d2;color:#805b00;font-size:.7rem;padding:4px;margin-top:5px;border-radius:5px}.full-label{display:block;margin-top:20px}.full-label textarea{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #cbd0d6;border-radius:7px}details{margin:14px 0}input[type=date],input[type=month]{max-width:220px}
