.shifts-board,.shifts-panel{display:flex;flex-direction:column;gap:18px}.shifts-board .panel,.shifts-panel .panel{display:flex;flex-direction:column;gap:14px}.shifts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.shifts-head h3{margin:0 0 4px}.shifts-sub{margin:0;max-width:72ch;color:var(--muted);font-size:.875rem;line-height:1.5}.shifts-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shifts-week-label{display:inline-flex;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg-cream);color:var(--ink-2);align-self:flex-start}.shifts-message,.shifts-week-label{align-items:center;margin:0;font-size:.875rem;font-weight:600}.shifts-message{display:flex;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);animation:shifts-fade .18s ease-out both}.shifts-message.is-error{background:var(--red-50);color:var(--red-600)}.shifts-message.is-ok{background:var(--accent-50);color:var(--green-600)}.shifts-message .link-inline{margin-left:auto}.shifts-callout{display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--blue-50);color:var(--blue-500);font-size:.875rem}.shifts-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;animation:shifts-fade .2s ease-out both}.shifts-stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.shifts-stat b{font-size:1.25rem;line-height:1.2}.shifts-stat-label{color:var(--muted);font-size:.8125rem}.shifts-stat.is-accent{border-color:var(--accent-100);background:var(--accent-50)}.shifts-stat.is-accent b{color:var(--accent-900)}.shifts-stat.is-warn{border-color:transparent;background:var(--amber-50)}.shifts-stat.is-warn b{color:var(--amber-600)}.shifts-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.shifts-check{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:.875rem;cursor:pointer}.shifts-check input{width:16px;height:16px;accent-color:var(--accent-600)}.shifts-toolbar-note{color:var(--muted);font-size:.8125rem}.shifts-week{display:grid;grid-template-columns:168px repeat(7,minmax(0,1fr));grid-gap:8px;gap:8px;animation:shifts-fade .2s ease-out both}.shifts-corner{display:flex;align-items:flex-end;padding:6px 8px;color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shifts-day{display:contents}.shifts-day-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-cream);font-size:.875rem}.shifts-day-head.is-weekend{background:var(--bg-cream-2)}.shifts-day-head.is-today{border-color:var(--accent-600);box-shadow:inset 0 0 0 1px var(--accent-100)}.shifts-day-weekday{color:var(--muted);font-size:.75rem;text-transform:capitalize}.shifts-day-today{color:var(--accent-700);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shifts-master{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-cream)}.shifts-master small{color:var(--muted);font-size:.75rem}.shifts-master-hours{margin-top:4px;color:var(--accent-900);font-size:.75rem;font-weight:700}.shifts-cell{display:flex;flex-direction:column;gap:6px;min-height:86px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}.shifts-cell-empty{display:flex;align-items:center;justify-content:center;flex:1 1;color:var(--line);font-size:.875rem}.shift-card{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid transparent;border-left:3px solid var(--accent-600);border-radius:var(--radius-sm);background:var(--accent-50);font-size:.8125rem;line-height:1.35;transition:transform .16s ease,box-shadow .16s ease}.shift-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.shift-card-time{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-weight:700}.shift-card-kind{color:var(--accent-900);font-weight:600}.shift-card-master{display:none;color:var(--ink-2);font-weight:600}.shift-card-hours,.shift-card-status{color:var(--muted);font-size:.75rem}.shift-card-note{margin-top:2px;color:var(--ink-2);font-size:.75rem;font-style:italic}.shift-card-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.shift-card-actions .btn{padding:3px 8px;font-size:.75rem}.shift-card.is-visit{border-left-color:var(--blue-500);background:var(--blue-50)}.shift-card.is-visit .shift-card-kind{color:var(--blue-500)}.shift-card.is-study{border-left-color:var(--amber-600);background:var(--amber-50)}.shift-card.is-study .shift-card-kind{color:var(--amber-600)}.shift-card.is-vacation{border-left-color:var(--purple-500);background:var(--purple-50)}.shift-card.is-vacation .shift-card-kind{color:var(--purple-500)}.shift-card.is-done{border-left-color:var(--green-600)}.shift-card.is-done .shift-card-status{color:var(--green-600);font-weight:600}.shift-card.is-confirmed .shift-card-status{color:var(--blue-500);font-weight:600}.shift-card.is-cancelled{border-left-color:var(--red-600);background:var(--red-50)}.shift-card.is-cancelled .shift-card-time{color:var(--red-600);text-decoration:line-through}.shift-card.is-cancelled .shift-card-status{color:var(--red-600);font-weight:700}.shift-form{display:flex;flex-direction:column;gap:12px}.shift-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.shift-field{display:flex;flex-direction:column;gap:5px}.shift-field-wide{grid-column:1/-1}.shift-form-hint{margin:0;color:var(--muted);font-size:.8125rem}.shift-form-actions{display:flex;gap:10px;flex-wrap:wrap}.shifts-copy{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.shifts-copy-hint{color:var(--muted);font-size:.8125rem}.shifts-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.shifts-filter-field{display:flex;flex-direction:column;gap:4px;min-width:150px}.shifts-filter-field.is-search{min-width:220px;flex:1 1}.shifts-status-select{min-width:150px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);font:inherit;font-size:.8125rem}.shifts-status-select:disabled{opacity:.6}.shifts-row[data-status=cancelled] td,.shifts-row[data-status=cancelled] th{color:var(--muted)}.shifts-row[data-status=cancelled] .shifts-row-title{text-decoration:line-through}.shifts-row-title{display:block;color:var(--ink);font-weight:600}.shifts-row-note{display:block;color:var(--muted);font-size:.75rem;font-style:italic}.shifts-day-cell,.shifts-kind{white-space:nowrap}.shifts-kind{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--accent-50);color:var(--accent-900);font-size:.75rem;font-weight:700}.shifts-kind.is-visit{background:var(--blue-50);color:var(--blue-500)}.shifts-kind.is-study{background:var(--amber-50);color:var(--amber-600)}.shifts-kind.is-vacation{background:var(--purple-50);color:var(--purple-500)}.shifts-kpi-inline{display:flex;gap:8px;flex-wrap:wrap}.shifts-actions{display:flex;gap:6px;flex-wrap:wrap}.shifts-table .shifts-actions{flex-wrap:nowrap}.shifts-table .shifts-actions .btn{white-space:nowrap}.export-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.export-note{color:var(--muted);font-size:.8125rem}.export-file-name{display:block;color:var(--muted);font-size:.75rem}.export-status{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:10px 14px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;animation:shifts-fade .18s ease-out both}.export-status.is-ok{background:var(--accent-50);color:var(--green-600)}.export-status.is-error{background:var(--red-50);color:var(--red-600)}.export-status .link-inline{margin-left:auto}@media (max-width:1100px){.shifts-week{grid-template-columns:132px repeat(7,minmax(0,1fr));gap:6px}.shift-card{padding:7px 8px;font-size:.75rem}.shift-card-actions .btn{padding:2px 6px}.shifts-filter-field,.shifts-filter-field .input,.shifts-filters{width:100%}.shifts-filter-field{min-width:0}}@media (max-width:700px){.shifts-week{display:block}.shifts-cell-empty,.shifts-corner,.shifts-master{display:none}.shifts-cell:has(.shifts-cell-empty){display:none}.shifts-day{display:block;margin-bottom:14px}.shifts-day-head{position:-webkit-sticky;position:sticky;top:0;z-index:2;flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.shifts-cell{min-height:0;margin-bottom:6px}.shift-card-master{display:block}.shift-card-actions{flex-direction:column;align-items:stretch}.shift-card-actions .btn{justify-content:center}.shifts-nav{width:100%}.shifts-nav .btn{flex:1 1;justify-content:center}.shifts-copy{flex-direction:column;align-items:stretch}.shifts-copy .btn{justify-content:center}.shifts-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.export-buttons{width:100%}.export-buttons .btn{flex:1 1;justify-content:center}}@keyframes shifts-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.export-status,.shifts-message,.shifts-stats,.shifts-week{animation:none}.shift-card,.shift-card:hover{transition:none;transform:none}}