@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;800;900&display=swap";:root{--primary: #1e40af;--primary-light: #3b82f6;--primary-dark: #1e3a8a;--accent: #06b6d4;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--purple: #8b5cf6;--pink: #ec4899;--bg: #0f172a;--bg-card: #1e293b;--bg-card-hover: #334155;--bg-surface: #0f172a;--border: #334155;--border-light: #475569;--text: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0,0,0,.3);--shadow-lg: 0 8px 40px rgba(0,0,0,.4);--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans JP,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}#root{min-height:100vh}.app-header{background:linear-gradient(135deg,var(--primary-dark),var(--primary));padding:.75rem 2rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.app-header-top{display:flex;align-items:center;justify-content:center;width:100%;position:relative;flex-wrap:wrap;gap:.25rem}.app-header h1{font-size:1.25rem;font-weight:800;letter-spacing:.02em;display:flex;align-items:center;gap:.75rem}.app-header h1 .icon{font-size:1.5rem}.version-badge{font-size:.65rem;padding:.15rem .5rem;background:#ffffff26;border-radius:999px;font-weight:500;letter-spacing:.05em}.nav-tabs{display:flex;gap:.25rem;background:#0003;padding:.25rem;border-radius:var(--radius)}.nav-tab{padding:.5rem 1.25rem;border:1px solid rgba(255,255,255,.3);background:transparent;color:#ffffffb3;font-family:inherit;font-size:12pt;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:.5rem;white-space:nowrap}.nav-tab:hover{color:#fff;background:#ffffff1a}.nav-tab.active{color:#fff;background:#fff3;box-shadow:0 2px 8px #0003}main{padding:1.5rem;max-width:1800px;margin:0 auto}.control-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.month-selector{display:flex;align-items:center;gap:.75rem}.month-selector button{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:.4rem .8rem;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.85rem;transition:var(--transition)}.month-selector button:hover{background:var(--bg-card-hover);border-color:var(--primary-light)}.month-selector .current-month{font-size:1.1rem;font-weight:800;min-width:140px;text-align:center}.action-buttons{display:flex;gap:.5rem}.btn{padding:.5rem 1.25rem;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;gap:.4rem}.btn-primary{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;box-shadow:0 2px 8px #3b82f64d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.btn-success{background:linear-gradient(135deg,var(--success),#059669);color:#fff;box-shadow:0 2px 8px #10b9814d}.btn-success:hover{transform:translateY(-1px);box-shadow:0 4px 16px #10b98166}.btn-danger{background:linear-gradient(135deg,var(--danger),#dc2626);color:#fff}.btn-danger:hover{transform:translateY(-1px)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:var(--bg-card);border-color:var(--primary-light)}.btn-sm{padding:.3rem .75rem;font-size:.7rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:#00000026}.card-header h2{font-size:1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.card-body{padding:1.25rem}.staff-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:fixed}.staff-table th:nth-child(1),.staff-table td:nth-child(1){width:120px}.staff-table th:nth-child(2),.staff-table td:nth-child(2){width:70px;text-align:center}.staff-table th:nth-child(3),.staff-table td:nth-child(3){width:120px}.staff-table th:nth-child(4),.staff-table td:nth-child(4){width:90px}.staff-table th:nth-child(5),.staff-table td:nth-child(5){width:80px}.staff-table th:nth-child(6),.staff-table td:nth-child(6){width:70px}.staff-table th:nth-child(7),.staff-table td:nth-child(7){width:65px;text-align:center}.staff-table th:nth-child(8),.staff-table td:nth-child(8){width:45px;text-align:center}.staff-table th:nth-child(9),.staff-table td:nth-child(9){width:110px}.staff-table th{background:#0003;padding:.6rem .75rem;text-align:left;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.staff-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}.staff-table tr:hover td{background:#ffffff08}.staff-name{font-weight:700;font-size:.85rem}.staff-meta{font-size:.65rem;color:var(--text-muted)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.65rem;font-weight:600}.badge-fulltime{background:#3b82f633;color:#60a5fa}.badge-intern{background:#f59e0b33;color:#fbbf24}.badge-skilled{background:#8b5cf633;color:#a78bfa}.badge-part{background:#10b98133;color:#34d399}.unit-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-sm);font-size:.65rem;font-weight:700;background:#06b6d426;color:var(--accent)}.shift-calendar-wrap{cursor:grab;overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 160px);border-radius:var(--radius);border:1px solid var(--border);position:relative;-webkit-overflow-scrolling:touch;will-change:scroll-position;contain:layout style}.shift-calendar{border-collapse:separate;border-spacing:0;font-size:.7rem;width:100%;min-width:1100px;white-space:nowrap;table-layout:fixed}.shift-calendar th,.shift-calendar td{border:1px solid rgba(255,255,255,.06);text-align:center}.shift-calendar thead th{background:#1a2332;padding:.4rem .25rem;font-weight:700;position:sticky;top:0;z-index:10;color:var(--text-secondary);font-size:.85rem;border-bottom:2px solid var(--border);box-shadow:0 2px 4px #0000004d;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.shift-calendar thead th.day-sun{color:#ef4444}.shift-calendar thead th.day-sat{color:#3b82f6}.shift-calendar thead .sticky-row th{position:sticky;z-index:9;border-bottom:1px solid var(--border);box-shadow:0 2px 4px #00000026}.shift-calendar thead .sticky-row-1 th{top:45px}.shift-calendar thead .sticky-row-2 th{top:74px}.shift-calendar thead .sticky-row-3 th{top:103px}.shift-calendar .staff-col{position:sticky;left:0;width:220px;min-width:220px;max-width:220px;z-index:6;background:var(--bg-card);text-align:left;padding:.3rem .5rem;font-weight:600;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.shift-calendar .staff-col:hover{z-index:50}.shift-calendar thead .staff-col{z-index:15}.shift-calendar .stats-col.sticky-1{position:sticky;left:220px;width:45px;min-width:45px;z-index:6;background:var(--bg-card);transform:translateZ(0);backface-visibility:hidden}.shift-calendar .stats-col.sticky-2{position:sticky;left:265px;width:50px;min-width:50px;z-index:6;background:var(--bg-card);transform:translateZ(0);backface-visibility:hidden}.shift-calendar .stats-col.sticky-3{position:sticky;left:315px;width:45px;min-width:45px;z-index:6;background:var(--bg-card);border-right:2px solid var(--border);transform:translateZ(0);backface-visibility:hidden}.shift-calendar thead .stats-col.sticky-1,.shift-calendar thead .stats-col.sticky-2,.shift-calendar thead .stats-col.sticky-3{z-index:15;background:#1a2332}.shift-calendar thead .sticky-row .staff-col,.shift-calendar thead .sticky-row .stats-col.sticky-1,.shift-calendar thead .sticky-row .stats-col.sticky-2,.shift-calendar thead .sticky-row .stats-col.sticky-3{z-index:15}.shift-calendar .unit-header-row td{background:linear-gradient(135deg,#3b82f633,#06b6d41f);font-weight:900;font-size:1.05rem;color:#60a5fa;padding:.5rem .7rem;text-align:left;border-bottom:2px solid var(--primary-light);border-left:4px solid #60a5fa;letter-spacing:.03em;text-shadow:0 1px 3px rgba(0,0,0,.3)}.shift-calendar .stats-col{min-width:45px;font-weight:600;font-size:.65rem;background:#00000026}.shift-cell{width:100%;height:28px;padding:0;cursor:pointer;transition:var(--transition);position:relative}.shift-cell:hover{box-shadow:0 0 6px #0006;z-index:3;filter:brightness(1.3)}.shift-cell.manual{box-shadow:inset 0 0 0 2px var(--pink)}.shift-cell.manual[data-shift=公],.shift-cell.manual[data-shift=希]{box-shadow:none}.shift-cell.auto-support{box-shadow:inset 0 0 0 2px #3b82f6;position:relative}.shift-cell.auto-support[data-shift=公],.shift-cell.auto-support[data-shift=希]{box-shadow:none}.shift-cell.auto-support .support-tag{position:absolute;bottom:0;left:0;right:0;font-size:.45rem;line-height:1;color:#fff;background:#3b82f6d9;padding:1px 0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift-cell.manual-blink{animation:blink-pink 1s ease-in-out infinite!important;cursor:pointer!important;position:relative;z-index:1}.shift-cell.manual-blink[data-shift=公],.shift-cell.manual-blink[data-shift=希]{animation:none!important;outline:none!important;box-shadow:none!important}@keyframes blink-pink{0%,to{outline:2px solid #ec4899;outline-offset:-2px;box-shadow:none}50%{outline:3px solid #ec4899;outline-offset:-3px;box-shadow:inset 0 0 12px #ec489980,0 0 8px #ec48994d}}.shift-cell[data-shift=早]{background:#3b82f640;color:#60a5fa}.shift-cell[data-shift=日]{background:#10b98140;color:#34d399}.shift-cell[data-shift=遅]{background:#f59e0b40;color:#fbbf24}.shift-cell[data-shift=夜]{background:#8b5cf64d;color:#a78bfa;font-weight:800}.shift-cell[data-shift=明]{background:#6b728033;color:#9ca3af}.shift-cell[data-shift=公]{background:#e5e7eb0d;color:#6b7280}.shift-cell[data-shift=希]{background:#ec489933;color:#f472b6}.shift-popup-wrap{position:relative}.shift-popup-wrap .shift-popup{display:none;position:fixed;background:#1e293b;color:#fff;font-size:.9rem;font-weight:700;padding:8px 14px;border-radius:8px;white-space:nowrap;z-index:99999;box-shadow:0 6px 20px #00000080;pointer-events:none;letter-spacing:.03em}.shift-popup-wrap:hover .shift-popup{display:block}.shift-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:0 8px 32px #0006;z-index:100;padding:.4rem;display:flex;flex-direction:column;gap:.2rem;min-width:160px;max-height:360px;overflow-y:auto}.shift-dropdown button{border:none;padding:.5rem .7rem;font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer;border-radius:6px;text-align:left;transition:all .15s ease;display:flex;align-items:center;gap:.5rem;background:transparent;color:var(--text);white-space:nowrap}.shift-dropdown button:hover{background:#00e6e626}.shift-dropdown .dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.daily-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.unit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:var(--transition)}.unit-card:hover{border-color:var(--primary-light);box-shadow:0 4px 16px #3b82f61a}.unit-card-header{padding:.75rem 1rem;font-weight:800;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#3b82f61a,#06b6d41a);border-bottom:1px solid var(--border)}.unit-card-body{padding:.75rem 1rem}.shift-group{margin-bottom:.5rem}.shift-group-label{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;display:flex;align-items:center;gap:.4rem}.shift-group-label .dot{width:6px;height:6px;border-radius:50%}.name-tags{display:flex;flex-wrap:wrap;gap:.25rem}.name-tag{padding:.15rem .5rem;background:#ffffff14;border-radius:999px;font-size:.7rem;font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center;transition:var(--transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card .value{font-size:2rem;font-weight:900;background:linear-gradient(135deg,var(--primary-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .label{font-size:13pt;color:var(--text-muted);margin-top:.25rem;font-weight:600}.stats-table{width:100%;border-collapse:collapse;font-size:11.5pt}.stats-table th{background:#0003;padding:.6rem .75rem;text-align:left;font-weight:600;font-size:11.5pt;color:var(--text-secondary);border-bottom:1px solid var(--border);position:sticky;top:0}.stats-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05)}.stats-table tr:hover td{background:#ffffff08}.stats-table .unit-row td{background:#3b82f614;font-weight:800;color:var(--primary-light);border-bottom:2px solid var(--primary-light)}.text-over{color:#ef4444;font-weight:700}.text-under{color:#3b82f6;font-weight:700}.text-ok{color:#10b981;font-weight:700}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.5rem;max-width:780px;width:95vw;max-height:95vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}.modal-content h3{font-size:1rem;font-weight:800;color:var(--primary-light);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--border)}.form-group{margin-bottom:.5rem}.form-group label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.3rem}.form-group input,.form-group select{width:100%;padding:.5rem .75rem;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.85rem;transition:var(--transition)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px #3b82f633}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}.loading-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--primary-light);border-radius:50%;animation:spin .8s linear infinite}.toast{position:fixed;bottom:2rem;right:2rem;padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;z-index:3000;animation:slideUp .3s ease;box-shadow:var(--shadow)}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.toast-info{background:var(--primary-light);color:#fff}.toggle-switch{position:relative;width:36px;height:20px;display:inline-block}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ffffff1a;border-radius:999px;transition:var(--transition)}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--primary-light)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.app-header{flex-direction:column;gap:.75rem;padding:.75rem 1rem}main{padding:1rem}.control-bar{flex-direction:column;align-items:stretch}.month-selector{justify-content:center}.daily-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.print-overlay{position:fixed;inset:0;z-index:5000;background:#000000d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow-y:auto;animation:fadeIn .2s ease}.print-toolbar{position:sticky;top:0;z-index:5010;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0006}.print-toolbar h2{font-size:1rem;font-weight:800;color:#e2e8f0;display:flex;align-items:center;gap:.5rem}.print-toolbar .toolbar-actions{display:flex;gap:.5rem}.print-content{background:#fff;color:#1a1a1a;max-width:none;margin:1.5rem auto;padding:15mm 10mm;overflow:visible;border-radius:8px;box-shadow:0 8px 40px #00000080;font-family:Noto Sans JP,Hiragino Sans,Yu Gothic,sans-serif}.print-content .print-header{text-align:center;margin-bottom:12px;padding-bottom:8px;border-bottom:3px double #333}.print-content .print-header h1{font-size:16pt;font-weight:900;color:#111;margin-bottom:2px}.print-content .print-header .print-meta{font-size:8pt;color:#666}.print-content .print-legend{display:flex;gap:10px;justify-content:center;margin-bottom:10px;flex-wrap:wrap}.print-content .print-legend span{display:inline-flex;align-items:center;gap:3px;font-size:7pt;font-weight:600}.print-content .print-legend .legend-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.print-content .print-unit-title{font-size:9pt;font-weight:800;color:#333;padding:4px 6px;background:#e8e8e8;margin-top:10px;margin-bottom:0;border-left:4px solid #3b82f6}.print-content .print-table{width:100%;border-collapse:collapse;font-size:7pt;margin-bottom:6px;table-layout:auto}.print-content .print-table th,.print-content .print-table td{border:1px solid #ccc;text-align:center;padding:2px 1px;vertical-align:middle;line-height:1.2}.print-content .print-table th{background:#f0f0f0;font-weight:700;font-size:6.5pt}.print-content .print-table .name-col{text-align:left;padding-left:4px;font-weight:700;font-size:7pt;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:80px;min-width:80px;max-width:80px}.print-content .print-table .day-sun{color:#dc2626}.print-content .print-table .day-sat{color:#2563eb}.print-content .print-table .stats-col{background:#f8f8f8;font-weight:700;width:28px;min-width:28px}.print-content .print-table .shift-早{background:#dbeafe;color:#1e40af;font-weight:700}.print-content .print-table .shift-日{background:#d1fae5;color:#065f46;font-weight:700}.print-content .print-table .shift-遅{background:#fef3c7;color:#92400e;font-weight:700}.print-content .print-table .shift-夜{background:#ede9fe;color:#5b21b6;font-weight:800}.print-content .print-table .shift-明{background:#f3f4f6;color:#6b7280}.print-content .print-table .shift-公{background:#fff;color:#9ca3af}.print-content .print-table .shift-希{background:#fce7f3;color:#be185d}.print-content .print-table .fulfillment-row td{font-weight:800;font-size:7pt}.print-content .print-table .fulfillment-ok{color:#059669;background:#ecfdf5}.print-content .print-table .fulfillment-ng{color:#dc2626;background:#fef2f2}.print-content .print-footer{margin-top:12px;padding-top:8px;border-top:1px solid #ccc;font-size:7pt;color:#999;display:flex;justify-content:space-between}.staff-shift-modal{background:var(--bg-card);border-radius:16px;padding:1.5rem;width:520px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;border:1px solid var(--border)}.ssm-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.ssm-stats{display:flex;gap:.75rem;margin-bottom:1rem}.ssm-stat{flex:1;text-align:center;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:10px;padding:8px 4px;font-size:.65rem;color:var(--text-muted)}.ssm-stat-val{display:block;font-size:1.1rem;font-weight:800;color:var(--accent-primary);margin-bottom:2px}.ssm-title{font-size:.8rem;font-weight:700;margin-bottom:8px;padding-left:6px;border-left:3px solid var(--accent-primary);color:var(--text-primary)}.ssm-calendar{width:100%;border-collapse:collapse;margin-bottom:1rem}.ssm-calendar th{font-size:.7rem;font-weight:700;padding:4px;text-align:center}.ssm-calendar td{border:1px solid var(--border);padding:4px;text-align:center;vertical-align:top;height:52px;border-radius:6px}.ssm-empty{background:transparent!important;border-color:transparent!important}.ssm-day{transition:transform .15s;cursor:default}.ssm-day:hover{transform:scale(1.05);z-index:2}.ssm-day-off{background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(156,163,175,.25) 4px,rgba(156,163,175,.25) 6px)!important}.ssm-day-num{font-size:.65rem;font-weight:600;margin-bottom:1px}.ssm-day-type{font-size:.85rem;font-weight:800}.ssm-day-support{font-size:.5rem;font-weight:700;color:#f59e0b;background:#f59e0b26;border-radius:3px;padding:0 2px;margin-top:1px}.ssm-support{outline:2px solid #f59e0b!important;outline-offset:-2px}.ssm-support-list{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow-y:auto}.ssm-support-item{display:flex;align-items:center;gap:8px;font-size:.75rem;padding:4px 8px;background:#6366f10d;border-radius:6px;border-left:3px solid #f59e0b}.ssm-support-date{font-weight:700;min-width:60px}.mail-dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.mail-dialog{background:var(--bg-card);border-radius:16px;padding:1.5rem;width:420px;max-width:90vw;box-shadow:0 20px 60px #00000080;border:1px solid var(--border)}@media print{@page{size:A3 landscape;margin:6mm}body>*:not(#root){display:none!important}#root>*:not(.print-overlay){display:none!important}.print-overlay{position:static!important;background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;overflow:visible!important}.print-toolbar{display:none!important}.print-content{max-width:none!important;margin:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}.print-content .print-unit-title{page-break-after:avoid}.print-content .print-table{page-break-inside:avoid;table-layout:auto!important;width:100%!important;font-size:6pt!important}.print-content .print-table .name-col{width:60px!important;min-width:60px!important;max-width:60px!important;font-size:6pt!important}.print-content .print-table .stats-col{width:20px!important;min-width:20px!important;font-size:6pt!important}.print-content .print-table th,.print-content .print-table td{padding:1px 0!important;font-size:6pt!important}.print-content .print-table tr{page-break-inside:avoid}}.phase-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:phase-spin .6s linear infinite;vertical-align:middle}@keyframes phase-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.shift-cell.drag-target{background:#3b82f626!important;border:2px dashed #3b82f6!important;cursor:pointer}.shift-calendar-wrap:active{cursor:grabbing}.staff-hover-wrap{position:relative}.staff-hover-popup{visibility:hidden;opacity:0;position:absolute;left:100%;top:-10px;margin-left:10px;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:10px 14px;width:220px;color:#fff;font-size:.75rem;font-weight:400;z-index:99999;box-shadow:0 10px 25px #00000080;pointer-events:none;transition:opacity .2s,transform .2s;transform:translate(-5px)}.staff-hover-wrap:hover .staff-hover-popup{visibility:visible;opacity:1;transform:translate(0)}.staff-hover-popup h4{margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1);color:#38bdf8;font-size:.85rem;font-weight:800}.staff-hover-popup .prop-row{display:flex;justify-content:space-between;margin-bottom:3px}.staff-hover-popup .prop-label{color:#fff9}.staff-hover-popup .prop-val{font-weight:700}details summary::-webkit-details-marker{display:none}details summary::marker{display:none;content:""}details[open]>summary span:first-child{transform:rotate(90deg);display:inline-block}details>summary span:first-child{display:inline-block;transition:transform .2s ease}
