
/* Rotating shift planner — contained, responsive, theme-aware, printable. */
.sh-workspace{grid-template-columns:minmax(290px,.71fr) minmax(0,1.29fr)}
.sh-workspace .ev-preview-panel{position:relative;top:auto;min-height:520px}
.sh-workspace .ev-preview-content{display:block;overflow:visible;min-height:0;padding:0}
.sh-workspace .ev-panel-head{margin-bottom:15px}
.sh-controls{gap:15px}
.sh-intro{margin:0;padding:15px;background:var(--ev-inset);color:var(--ev-muted);border:1px solid var(--ev-border);border-radius:12px;line-height:1.6;font-size:14px}
.sh-settings{border:1px solid var(--ev-border);border-radius:14px;background:var(--ev-inset);padding:14px}
.sh-settings summary{font-weight:850;cursor:pointer;color:var(--ev-text);padding:3px}
.sh-settings[open]{display:grid;gap:14px}
.sh-settings .ev-cols{margin-top:10px}
.sh-settings label{font-size:12px}
.sh-controls label small{font-size:11px;line-height:1.5;color:var(--ev-muted)}
.sh-heading{font-size:15px;margin:4px 0 0;color:var(--ev-text)}
.sh-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.sh-actions button,.sh-import,.sh-reset{padding:11px 10px;border-radius:10px;background:var(--ev-inset);color:var(--ev-text);border:1px solid var(--ev-border);font:inherit;font-size:12px;font-weight:800;cursor:pointer;text-align:center;min-width:0}
.sh-actions button:hover,.sh-import:hover{border-color:var(--ev-accent)}
.sh-import{display:flex!important;align-items:center;justify-content:center;cursor:pointer!important}
.sh-import input{position:absolute;width:1px;height:1px;opacity:0}
.sh-reset{background:transparent;color:var(--ev-muted);text-decoration:underline;border:0;padding:5px;justify-self:start}
.sh-hint{font-size:12px;color:var(--ev-muted);line-height:1.65;margin:0}
.sh-calendar{min-width:0;color:var(--ev-text)}
.sh-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:22px}
.sh-stat{border:1px solid var(--ev-border);border-radius:14px;padding:13px 9px;background:var(--ev-inset);min-width:0}
.sh-stat strong{display:block;font-size:clamp(16px,1.9vw,23px);line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sh-stat span{display:block;margin-top:4px;font-size:10px;color:var(--ev-muted);font-weight:750;line-height:1.4}
.sh-cal-top{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.sh-cal-top small{font-size:10px;letter-spacing:.13em;color:var(--ev-muted);font-weight:850}
.sh-cal-top h3{font-size:clamp(20px,2.5vw,30px);letter-spacing:-.04em;margin:4px 0;color:var(--ev-text)}
.sh-navigation{display:flex;align-items:center;gap:6px}
.sh-navigation button{border:1px solid var(--ev-border);border-radius:10px;padding:8px 11px;background:var(--ev-inset);color:var(--ev-text);font-size:14px;cursor:pointer}
.sh-navigation button:focus-visible,.sh-date:focus-visible,.sh-detail button:focus-visible,.sh-actions button:focus-visible{outline:3px solid #788aff;outline-offset:2px}
.sh-legend{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0 12px;font-size:11px;color:var(--ev-muted);font-weight:750}
.sh-legend span{display:flex;align-items:center;gap:5px}
.sh-legend i{display:inline-block;height:10px;width:10px;border-radius:3px}
.sh-d{background:#c3ece1}.sh-n{background:#cbd6ff}.sh-o{background:#e7eaf0}.sh-e{background:#f3be68}
.sh-months{display:grid;grid-template-columns:1fr;gap:20px}
.sh-month{min-width:0}
.sh-month h4{font-size:16px;color:var(--ev-text);margin:5px 0 8px}
.sh-weekdays,.sh-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.sh-weekdays span{text-align:center;font-size:10px;font-weight:850;color:var(--ev-muted);padding:7px 0}
.sh-date{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:5px;min-height:60px;padding:7px 5px;border-radius:10px;border:1px solid var(--ev-border);background:var(--ev-inset);color:var(--ev-text);cursor:pointer;font:inherit;font-size:12px;min-width:0;text-align:left}
.sh-date[aria-pressed="true"]{outline:2px solid var(--ev-accent);outline-offset:-2px}
.sh-date.sh-day{background:#e1f7ef;border-color:#b5e4d4;color:#154934}
.sh-date.sh-night{background:#e6ebff;border-color:#c3d1ff;color:#243b88}
.sh-date.sh-off{opacity:.86}
html[data-theme="dark"] .sh-date.sh-day{background:#113f37;border-color:#246e55;color:#e7fff6}
html[data-theme="dark"] .sh-date.sh-night{background:#252d65;border-color:#495cba;color:#eef3ff}
.sh-date .sh-dayno{font-weight:850;font-variant-numeric:tabular-nums}
.sh-date .sh-code{font-size:10px;letter-spacing:.01em;font-weight:750;line-height:1.25}
.sh-date.sh-edited:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:#ed9a2d}
.sh-empty{background:transparent;border:none;min-height:0}
.sh-today .sh-dayno{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.sh-detail{margin-top:18px;border:1px solid var(--ev-border);border-radius:15px;background:var(--ev-inset);padding:15px;line-height:1.55;font-size:13px;color:var(--ev-text)}
.sh-detail strong{display:block;font-size:15px;margin-bottom:4px}
.sh-detail p{margin:3px 0 10px;color:var(--ev-muted)}
.sh-detail .sh-choice{display:flex;flex-wrap:wrap;gap:8px}
.sh-choice button{background:var(--ev-card);color:var(--ev-text);border:1px solid var(--ev-border);border-radius:9px;padding:9px 12px;cursor:pointer;font:inherit;font-size:12px;font-weight:750}
.sh-choice button[aria-pressed="true"]{border-color:var(--ev-accent);box-shadow:inset 0 0 0 1px var(--ev-accent)}
.sh-next{margin-top:20px}
.sh-next h4{font-size:14px;margin:0 0 9px}
.sh-upcoming-list{display:grid;gap:6px}
.sh-upcoming-row{display:flex;justify-content:space-between;gap:9px;padding:9px 10px;background:var(--ev-inset);border-radius:9px;font-size:12px}
.sh-upcoming-row span{color:var(--ev-muted)}
.sh-guide{margin-top:4px}
@media(min-width:1050px){.sh-workspace .ev-form-panel{padding:23px}.sh-months:has(.sh-month:nth-child(3)){grid-template-columns:repeat(2,minmax(0,1fr))}.sh-months:has(.sh-month:nth-child(3)) .sh-date{min-height:49px}}
@media(max-width:850px){.sh-workspace{grid-template-columns:minmax(0,1fr)}.sh-workspace .ev-preview-panel{position:relative}.sh-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:420px){.sh-workspace .ev-form-panel,.sh-workspace .ev-preview-panel{padding:15px}.sh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sh-weekdays,.sh-days{gap:3px}.sh-date{min-height:52px;padding:5px 3px;font-size:11px}.sh-code{font-size:9px!important}.sh-legend{gap:9px}.sh-actions{gap:7px}}
@media print{
 header,nav,.ev-tool-head,.ev-form-panel,.growth-share-row,.ev-info,.sh-navigation,.sh-detail,.sh-next,footer,.ad-container,.ev-panel-head,.sh-controls,script{display:none!important}
 body,body:has(.ev-workspace){background:#fff!important;color:#111!important}
 .sh-workspace,.shell.ev-workspace{display:block!important;margin:0!important;width:100%!important;max-width:none!important}
 .ev-preview-panel{display:block!important;border:0!important;box-shadow:none!important;padding:0!important;width:100%!important}
 .ev-preview-content{display:block!important;overflow:visible!important}
 .sh-calendar,.sh-months,.sh-month{display:block!important}
 .sh-month{break-inside:avoid;page-break-inside:avoid;margin:0 0 25px}
 .sh-weekdays,.sh-days{display:grid!important;grid-template-columns:repeat(7,1fr)!important}
 .sh-date{min-height:46px!important;border:1px solid #ccc!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .sh-stats{grid-template-columns:repeat(4,1fr)}
 @page{margin:12mm}
}

.sh-controls [hidden]{display:none!important}
