.shift-center{max-width:100%;min-width:0}.shift-tabs{flex-wrap:wrap}
.shift-upload{border:1px dashed #c8c4e5;border-radius:12px;background:#fafaff;padding:18px;margin-top:18px;outline-offset:3px}.shift-upload label{display:flex;flex-direction:column;gap:7px;font-size:13px;cursor:pointer}.shift-upload input{max-width:100%;margin:12px 0}.shift-upload small,.shift-upload label span{color:#777d95;font-size:12px}.shift-upload.drag-over{background:#eeebff;border-color:#6e58d3}.shift-upload .badge{margin:3px}.shift-detail{max-width:100%;min-width:0}.shift-request-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.shift-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.shift-facts div{padding:12px 14px;background:#f6f7fb;border-radius:10px}.shift-facts dt{font-size:11px;color:#797f94;margin-bottom:7px}.shift-facts dd{margin:0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.shift-attachments{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.shift-attachments a{display:flex;flex-direction:column;max-width:180px;gap:7px;font-size:12px;overflow-wrap:anywhere}.shift-attachments img{width:160px;height:110px;object-fit:contain;background:#f1f2f8;border:1px solid #e0e3ed;border-radius:8px}.shift-history{list-style:none;padding:0;margin:15px 0}.shift-history li{border-left:2px solid #dbd6f1;padding:0 0 20px 16px;margin-left:5px}.shift-history li>div{display:flex;justify-content:space-between;gap:10px;font-size:12px}.shift-history span{color:#7c8197}.shift-history p{font-size:13px;white-space:pre-wrap;margin:8px 0 0;overflow-wrap:anywhere}.shift-balance-stats{padding:18px;grid-template-columns:repeat(3,1fr)}.shift-grant-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.shift-center [hidden],.shift-detail [hidden],#shift-request-form [hidden],#shift-request-edit-form [hidden]{display:none!important}
@media(max-width:720px){.shift-facts{grid-template-columns:1fr}.shift-balance-stats{grid-template-columns:1fr 1fr}.shift-history li>div{flex-direction:column;gap:5px}.shift-grant-grid{grid-template-columns:1fr}.shift-request-header{align-items:flex-start}.shift-center .page-heading .actions{width:100%}}

/* A compact weekly roster: company, departments, teams, then people. */
.shift-center{--shift-orange:#df7525;--shift-gold:#ffd265;--shift-line:#eadfd2;--shift-accent:#ac531a}
.shift-center>.card{margin-bottom:16px}.shift-center .page-heading{margin-bottom:18px}
.shift-window{margin:0 0 14px;border:1px solid #e8e4dd;border-radius:10px;background:#fffdf8;font-size:12px;color:#74634e}
.shift-window summary{cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:10px 14px;list-style:none}.shift-window summary::-webkit-details-marker{display:none}
.shift-window-state{font-weight:700;color:#875321}.shift-window-state.is-open{color:#277259}.shift-window-more{margin-left:auto;font-size:11px;color:#8c7359}.shift-window-more::after{content:' ＋'}.shift-window[open] .shift-window-more::after{content:' −'}.shift-window>div{padding:0 14px 12px;line-height:1.7}.shift-window p{margin:6px 0 0}
.shift-filter-card .card-body{padding:14px 18px}.shift-filter-fields{display:grid;grid-template-columns:minmax(145px,.8fr) repeat(3,minmax(130px,1fr)) auto;gap:12px;align-items:end}.shift-filter-fields .field{margin:0;min-width:0}.shift-filter-fields label{font-size:11px}.shift-filter-fields input,.shift-filter-fields select{min-height:38px;font-size:12px;width:100%;max-width:none}.shift-filter-submit{min-width:70px}.shift-week-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.shift-week-navigation .btn{min-height:30px;font-size:11px;padding:5px 10px}.shift-week-navigation>span{color:#87828a;font-size:11px}
.shift-plan-card{border-color:var(--shift-line);overflow:hidden;min-width:0}.shift-company{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px 17px;border-top:4px solid var(--shift-orange);background:linear-gradient(110deg,#fff5e8,#fffdf8 70%)}.shift-company-kicker{font-size:9px;font-weight:800;letter-spacing:2px;color:#9c5b25}.shift-company h2{font-size:23px;line-height:1.3;margin:5px 0;color:#3b2b20}.shift-company p{margin:7px 0 0;font-size:12px;color:#74543c}.shift-company p>span{padding:0 5px;color:#bd9c7e}.shift-company small{display:block;margin-top:5px;font-size:10px;color:#8d7d70}.shift-company-week{text-align:right;flex-shrink:0}.shift-company-week strong{display:block;font-size:13px;color:#5e432d}.shift-company-week span{display:block;margin-top:5px;color:#9a7c62;font-size:11px}
.shift-department-nav{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px;border-top:1px solid var(--shift-line);border-bottom:1px solid var(--shift-line);background:#fff}.shift-department-nav button{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:11px;font-weight:600;padding:5px 9px;border:1px solid #f0dfcc;border-radius:6px;background:#fff9f0;color:#775337;cursor:pointer}.shift-department-nav button:hover,.shift-department-nav button:focus-visible{background:#ffefd7;border-color:#cc874c;outline:2px solid transparent}.shift-department-nav button>span{font-size:10px;background:#f2e3cf;border-radius:4px;padding:1px 5px;color:#745036}
.shift-department-nav{align-items:center}.shift-nav-division{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:4px 6px;border:1px solid #e4bc8d;border-radius:8px;background:#fff4e4}.shift-nav-division>strong{padding:0 4px;font-size:10px;color:#92541e}.shift-nav-division button{background:#fffdf8}.shift-division th{padding:10px 12px!important;text-align:left;background:#a9501c;color:#fff;border-bottom-color:#874015!important}.shift-division .shift-group-heading strong{font-size:13px}.shift-subdepartment th{background:#f3bb70;color:#664015;border-left:5px solid #a9501c;padding-left:24px!important;border-bottom-color:#dda457!important}.shift-subdepartment .shift-group-heading{left:24px}.shift-subdepartment .shift-group-heading strong{font-size:12px}
.shift-role-icon{display:inline-block;margin-left:5px;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;font-size:14px;line-height:1;vertical-align:-1px;white-space:nowrap}
.shift-week-tools{padding:10px 18px;gap:8px;background:#fff;border-bottom:1px solid #ece6dd}.shift-week-tools .btn{font-size:11px;min-height:32px;padding:6px 10px}.shift-grid-tools{padding:10px 18px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:#fcfbf8;border-bottom:1px solid #ece6dd}.shift-selection-label{font-size:11px;font-weight:600;margin:0;color:#64554b;flex:1 1 240px}.shift-grid-tools .actions{gap:5px}.shift-grid-tools .btn{font-size:10px;padding:5px 8px;min-height:29px;border-radius:6px}.shift-grid-tools .btn .icon{width:13px;height:13px}.shift-tool-help{font-size:10px;color:#8d8176;flex-basis:100%}
.shift-legend{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;background:#fff;font-size:10px;color:#756b63;border-bottom:1px solid var(--shift-line)}.shift-legend>div{display:flex;flex-wrap:wrap;gap:8px 13px}.shift-key{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.shift-key i{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid #ddd}.shift-key .shift-key-work{background:#fff}.shift-key .shift-key-off{background:#ffd365;border-color:#e6b941}.shift-key .shift-key-leave{background:#fbdab7;border-color:#eab784}.shift-key .shift-key-missing{border-style:dashed;background:#f5f3f0}.shift-draft-key{color:#985812}.shift-plan-counts{white-space:nowrap;color:#8a7868}
.shift-grid-wrap{max-height:76vh;overflow:auto;width:100%;position:relative;overscroll-behavior:contain;scroll-padding-top:57px;scrollbar-color:#d1b99e #f7f1e9}.shift-grid{width:100%;min-width:880px;border-collapse:separate;border-spacing:0;table-layout:fixed;background:white}.shift-grid th,.shift-grid td{padding:0;border-right:1px solid var(--shift-line);border-bottom:1px solid var(--shift-line);line-height:1.3}.shift-grid th:last-child,.shift-grid td:last-child{border-right:0}.shift-grid thead th{height:55px;min-width:0;padding:8px 4px;text-align:center;background:#ffe3a0;color:#68451e;font-size:10px;letter-spacing:.25px;font-weight:750;position:sticky;top:0;z-index:3;border-bottom:2px solid #e8ba61}.shift-grid thead th span{display:block;font-size:10px;font-weight:500;letter-spacing:0;margin-top:5px;color:#8b693c}.shift-grid .shift-person,.shift-grid thead th:first-child{position:sticky;left:0;width:170px;min-width:170px;max-width:170px;padding:6px 10px;text-align:left;z-index:2;background:#fff7ed;box-shadow:2px 0 4px #4c34150a;white-space:normal;overflow-wrap:anywhere}.shift-grid thead th:first-child{z-index:4;background:#ffdc8b;padding-left:12px}
.shift-department th{padding:8px 12px!important;background:#df7a2d;color:#fff;line-height:1.3;border-bottom-color:#ce6920!important;text-align:left}.shift-group-heading{display:flex;align-items:center;gap:12px;position:sticky;left:12px;width:max-content;max-width:calc(100vw - 70px)}.shift-group-heading strong{font-size:12px;letter-spacing:.1px;font-weight:750}.shift-group-heading>span{font-size:10px;font-weight:500;opacity:.86;white-space:nowrap}.shift-team th{padding:5px 13px!important;text-align:left;background:#fff0d5;border-left:4px solid #ecb15a;border-bottom-color:#e6cfac!important;color:#80602f}.shift-team .shift-group-heading strong{font-size:10px;font-weight:750}.shift-team .shift-group-heading>span{font-size:9px}.shift-person-row{height:43px}.shift-person-name{display:block;color:#4f4035;font-size:12px;font-weight:700;line-height:1.3}.shift-role{display:inline-block;margin-top:2px;color:#946027;font-size:8px;line-height:1.3;letter-spacing:.15px;font-weight:600}.shift-grid tbody .shift-person-row:hover .shift-person{background:#ffeddb}
.shift-cell{width:100%;min-height:42px;position:relative;height:100%;padding:5px 3px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;border:1px solid transparent;border-radius:0;background:#fff;color:#4d473e;font:inherit;text-align:center;cursor:pointer;transition:background .12s,box-shadow .12s}.shift-cell strong{font-size:11px;line-height:1.25;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap}.shift-cell small{font-size:8px;line-height:1.2;opacity:1}.shift-cell:hover{background:#fff8ee;border-color:#e7b075}.shift-cell.selected,.shift-cell:focus-visible{border-color:#b96a25;box-shadow:inset 0 0 0 1px #b96a25;background:#fff4db;outline:none;z-index:1}.shift-cell[draggable=true]{cursor:grab}.shift-cell-mark{position:absolute;right:3px;bottom:2px;font-size:9px;line-height:1;color:#92703a}.shift-cell-mark+.shift-cell-mark{right:13px}.shift-cell-mark+.shift-cell-mark+.shift-cell-mark{right:23px}.shift-draft-mark{font-size:13px;color:#b47514}.shift-kind-off{background:#ffd366;color:#5b4114}.shift-kind-off strong{font-weight:800;letter-spacing:.5px}.shift-kind-off:hover{background:#ffda7a}.shift-kind-annual{background:#f5d6ac;color:#734a1e}.shift-kind-paid,.shift-kind-unpaid{background:#f9cda3;color:#763f1c}.shift-kind-annual strong,.shift-kind-paid strong,.shift-kind-unpaid strong{font-size:10px;white-space:normal;font-weight:650}.shift-kind-off_full,.shift-kind-off_before,.shift-kind-off_after{background:#e8eff4;color:#3c607a}.shift-kind-missing{background:#f8f6f2;color:#9b8873;border:1px dashed #e3d7c8}.shift-kind-missing strong{font-size:10px;font-weight:400}.shift-outside{background:repeating-linear-gradient(135deg,#f9f8f5,#f9f8f5 5px,#f4f2ee 5px,#f4f2ee 6px);text-align:center;color:#c0b6a9;font-size:14px}.shift-outside span{display:block;min-height:42px;padding:12px 0}.shift-plan-footnote{padding:11px 18px;background:#fffcf7;border-top:1px solid var(--shift-line);color:#8b7966;font-size:10px;line-height:1.6}.shift-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}
.shift-pending{margin-top:18px}.shift-pending .card-header{padding:14px 18px}.shift-pending .card-header h2{font-size:14px}.shift-pending .card-header p{font-size:11px}.shift-pending .card-body{padding:12px 18px}
@media(max-width:1100px){.shift-filter-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.shift-filter-submit{grid-column:4}.shift-company{align-items:flex-start}.shift-company h2{font-size:20px}.shift-company-week strong{font-size:12px}.shift-legend{flex-wrap:wrap}.shift-grid-tools .actions{flex-basis:100%}}
@media(max-width:720px){.shift-center .page-heading{margin-bottom:14px}.shift-filter-card .card-body{padding:12px}.shift-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shift-filter-submit{grid-column:2;min-height:34px}.shift-week-navigation{align-items:flex-start;flex-direction:column;margin-top:10px;gap:8px}.shift-week-navigation .actions{gap:5px}.shift-week-navigation .btn{font-size:10px;padding:5px 7px}.shift-window summary{padding:10px 12px;gap:5px 10px;font-size:11px}.shift-window-more{font-size:10px}.shift-company{padding:15px 12px;flex-direction:column;gap:10px}.shift-company h2{font-size:20px}.shift-company p{font-size:11px}.shift-company-week{text-align:left}.shift-company-week span{display:none}.shift-company-week strong{font-size:11px}.shift-department-nav{padding:10px 12px;gap:5px}.shift-department-nav button{font-size:10px;padding:5px 7px}.shift-week-tools{padding:10px 12px;gap:6px}.shift-week-tools .btn{font-size:10px;padding:6px 8px;min-height:30px}.shift-grid-tools{padding:9px 12px}.shift-legend{padding:10px 12px;font-size:9px;gap:8px}.shift-legend>div{gap:7px 10px}.shift-plan-counts{font-size:9px}.shift-grid{min-width:900px}.shift-grid-wrap{max-height:72vh}.shift-grid .shift-person,.shift-grid thead th:first-child{width:135px;min-width:135px;max-width:135px;padding:5px 8px}.shift-person-name{font-size:11px}.shift-grid thead th{font-size:9px}.shift-plan-footnote{padding:10px 12px}.shift-group-heading strong{font-size:11px}.shift-team .shift-group-heading strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){.shift-cell{transition:none}}
