.shift-board-card { padding:20px; overflow:hidden; }
.week-actions { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 18px; }
.week-phase { font-size:12px; padding:7px 10px; border-radius:8px; background:#eef1f5; color:#456; }.week-phase.submitted { background:#fff1cf; color:#775911; }.week-phase.published { background:#e2f4e9; color:#236446; }
.week-status { font-size:13px; line-height:1.7; color:var(--muted); min-height:24px; }.week-error,.week-rest { color:#b43730; }
.week-cycle-table td button { min-height:54px; font-size:19px; }.week-cycle-table td button:disabled { opacity:1; cursor:default; }.week-cycle-table td button:not(:disabled):hover { box-shadow:inset 0 0 0 2px #37886b; }
.week-roster { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0; }.week-roster label { display:flex; gap:9px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:12px; }.week-roster input { width:20px; height:20px; }.week-roster small { display:block; color:var(--muted); }
.week-notice { display:block; width:100%; border:1px solid #eed29f; border-radius:12px; background:#fff6e5; padding:16px; margin:12px 0; color:#77500f; text-align:left; }
.week-return { width:100%; min-height:100px; border:1px solid var(--line); border-radius:10px; margin:12px 0; padding:10px; }
@media(max-width:700px){.week-actions .btn{flex:1;min-height:44px;white-space:nowrap}.week-roster{grid-template-columns:1fr}.week-actions{gap:6px}}
.shift-matrix-scroll { overflow:auto; border:1px solid #cfdae2; border-radius:12px; max-height:70dvh; isolation:isolate; }
.shift-matrix { border-collapse:separate; border-spacing:0; width:100%; min-width:740px; table-layout:fixed; text-align:center; font-size:14px; }
.shift-matrix caption { background:#123c58; color:#fff; padding:17px; font-size:18px; font-weight:750; caption-side:top; }
.shift-matrix th,.shift-matrix td { padding:0; border-right:1px solid #d4dde4; border-bottom:1px solid #d4dde4; }
.shift-matrix th:last-child,.shift-matrix td:last-child { border-right:0; }.shift-matrix tbody tr:last-child>* { border-bottom:0; }
.shift-matrix thead th { background:#176495; color:white; padding:12px 4px; position:sticky; top:0; z-index:2; }
.shift-matrix thead th:first-child { width:128px; z-index:4; left:0; }
.shift-matrix tbody th { position:sticky; left:0; z-index:1; background:#f0f5f9; padding:9px 6px; }
.shift-matrix tbody tr:nth-child(even) th { background:#fff; }.shift-matrix tbody tr:nth-child(odd) td { background:#f0f5f9; }
.shift-matrix small { display:block; font-size:11px; font-weight:400; line-height:1.55; }.shift-matrix tbody th small { color:var(--muted); margin-top:3px; }
.shift-matrix td button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:0; background:transparent; min-height:64px; padding:8px 3px; width:100%; color:var(--ink); }
.shift-matrix td button:hover { background:#dceaf6; }.shift-matrix td button:focus-visible { outline:3px solid #ff8058; outline-offset:-3px; }
.shift-matrix .rest button { color:#cf3434; }.shift-matrix .rest b { font-size:18px; }.shift-matrix .empty button { color:#9badb7; }
.shift-matrix td.today { box-shadow:inset 2px 0 #a7cbdc,inset -2px 0 #a7cbdc; }.shift-matrix thead .today { background:#0c4b76; }
.shift-matrix-key { display:inline-block; margin:0 12px; }.shift-matrix-key span { color:#cf3434; }
.shift-quick-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0; }
.shift-quick-options button { background:#edf5f1; border:1px solid #c8dcd0; border-radius:12px; color:#214638; padding:15px 8px; min-height:70px; }
.shift-quick-options b,.shift-quick-options span { display:block; }.shift-quick-options b { font-size:20px; margin-bottom:5px; }
.shift-quick-options .shift-rest-choice { color:#bf3535; background:#fff3f1; border-color:#edcfca; }
.shift-cell-custom { border-top:1px solid var(--line); margin-top:18px; padding-top:14px; }.shift-cell-custom>p { font-size:14px; }.shift-cell-custom>small { color:var(--muted); }
@media(max-width:700px) { .shift-matrix { min-width:690px; }.shift-matrix thead th:first-child { width:98px; }.shift-matrix caption { font-size:16px; padding:13px; text-align:left; }.shift-matrix-key { margin:0; display:block; }.shift-matrix-scroll { max-height:65dvh; } }
.shift-toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:14px 0; }
.shift-toolbar label { display:flex; gap:7px; align-items:center; font-size:13px; white-space:nowrap; color:var(--muted); }
.shift-toolbar select { border:1px solid var(--line); border-radius:10px; background:white; padding:10px; max-width:190px; color:var(--ink); }
.shift-segment { display:flex; border-radius:11px; background:#edf2ef; padding:3px; }
.shift-segment button { border:0; background:transparent; color:var(--muted); padding:10px 16px; border-radius:8px; }
.shift-segment button.on { background:white; color:var(--ink); box-shadow:0 1px 5px #17332a15; font-weight:750; }
.shift-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.shift-days button { min-height:65px; padding:5px 2px; background:#f6f8f6; border:1px solid transparent; border-radius:11px; color:var(--muted); }
.shift-days button.on { background:#e3f2e9; border-color:#bbdaca; color:#1d6046; }
.shift-days span,.shift-days b { display:block; }.shift-days b { font-size:17px; }.shift-days span,.shift-days i { font-size:10px; font-style:normal; }
.shift-help { color:var(--muted); font-size:12px; margin:12px 0; line-height:1.7; }
.shift-scroll { overflow:auto; max-height:620px; border:1px solid #dce5df; border-radius:13px; overscroll-behavior:contain; scrollbar-width:thin; }
.shift-grid { position:relative; }.shift-grid.weekly { min-width:700px; }
.shift-grid-head,.shift-grid-body { display:grid; grid-template-columns:44px repeat(var(--shift-days),minmax(0,1fr)); }
.shift-grid-head { position:sticky; top:0; background:#f4f8f5; z-index:5; min-height:48px; border-bottom:1px solid #dce5df; }
.shift-grid-head>span { font-size:10px; align-self:center; text-align:center; color:var(--muted); }
.shift-grid-head button { border:0; background:transparent; border-left:1px solid #dce5df; color:var(--ink); font-size:12px; padding:6px; }
.shift-grid-head small { display:block; color:var(--muted); font-size:10px; }
.shift-grid-body { position:relative; background:white; margin-bottom:12px; }
.shift-hours { position:relative; background:#fafcfb; z-index:2; }.shift-hours span { position:absolute; right:4px; transform:translateY(-50%); font-size:10px; color:#7d8e85; }.shift-hours span:first-child { transform:none; }
.shift-day-lane { position:relative; border-left:1px solid #dce5df; background:repeating-linear-gradient(to bottom,transparent 0px,transparent 23px,#edf2ee 23px,#edf2ee 24px,transparent 24px,transparent 47px,#dce5df 47px,#dce5df 48px); }
.shift-block { position:absolute; display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; text-align:left; border:1px solid #17332a24; border-left:3px solid #17332a55; border-radius:7px; padding:8px 4px; min-width:0; overflow:hidden; color:#234236; }
.shift-block b,.shift-block span,.shift-block small { display:block; line-height:1.4; overflow-wrap:anywhere; }.shift-block b { font-size:12px; }.shift-block span { font-size:10px; }.shift-block small { font-size:10px; opacity:.8; }
.shift-block:focus-visible { outline:3px solid var(--orange); z-index:3; }.shift-edge { position:absolute; height:10px; left:0; right:0; cursor:ns-resize; }.shift-edge.start { top:0; }.shift-edge.end { bottom:0; }
.editing .shift-day-lane,.editing .shift-block { touch-action:none; user-select:none; }.editing .shift-day-lane { cursor:crosshair; }.editing .shift-block { cursor:grab; }.editing .shift-edge::after { content:''; display:block; width:18px; height:3px; margin:3px auto; background:#17332a66; border-radius:2px; }
.shift-ghost { position:absolute; pointer-events:none; border:2px dashed #247251; background:#d6f0e5dd; border-radius:8px; z-index:4; color:#174f38; font-size:12px; padding:4px; }
.shift-legend { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; font-size:11px; color:var(--muted); }.shift-legend span { display:flex; align-items:center; gap:4px; }.shift-legend i { width:10px; height:10px; border-radius:3px; border:1px solid #17332a22; }
.shift-empty,.shift-legacy { font-size:12px; color:var(--muted); padding-top:12px; }.shift-legacy button { margin:4px; }.shift-extra { color:var(--muted); margin:12px 0; }.shift-extra summary { cursor:pointer; min-height:40px; padding:10px 0; }.shift-delete { width:100%; margin-top:12px; color:var(--red); min-height:44px; }
@media(max-width:700px) { .shift-board-card { padding:13px; }.shift-toolbar { gap:8px; }.shift-toolbar label { flex:1; }.shift-toolbar select { min-width:0; width:100%; max-width:none; font-size:16px; }.shift-toolbar>.btn { width:100%; min-height:42px; }.shift-segment button { padding:10px 12px; }.shift-scroll { max-height:58dvh; }.shift-days { gap:3px; }.shift-grid.weekly { min-width:840px; } }
