:root{--primary: #2563eb;--primary-dark: #1e40af;--corporate-navy: #002D68;--bg: #F0F2F5;--card-bg: #ffffff;--input-bg: #f1f5f9;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--success: #28a745;--danger: #dc3545;--error: #d32f2f;--info: #17a2b8;--warning: #ed6c02;--accent: #f59e0b;--expansion-bg: #f8fafc;--edit: #007bff;--dark: #343a40;--neutral: #e2e8f0;--delete-accent: #AA3205;--bulk-change: #e8590c;--corporate-accent: #AA3205;--error-bg: #fff1f2;--error-border: #d32f2f;--warning-icon: #ed6c02;--restore: #2e7d32;--restore-bg: #f0fdf4;--restore-border: #bbf7d0;--deleted-bg: #fef2f2;--deleted-border: #fecaca;--cal-holiday-bg: #fff1f2;--cal-holiday-text: #e11d48;--cal-sat-bg: #eff6ff;--cal-sat-text: #2563eb;--cal-today-border: #AA3205;--cal-today-bg: #fffbeb;--timeline-bg: #fafafa;--sched-internal-bg: #dbeafe;--sched-internal-border: #3b82f6;--sched-internal-text: #1d4ed8;--sched-external-bg: #ffedd5;--sched-external-border: #f97316;--sched-external-text: #c2410c;font-family:Inter,Noto Sans JP,sans-serif;line-height:1.4}body{margin:0;padding:0;min-height:100vh;width:100%;background-color:#f0f2f5}#root{width:100%;min-height:100vh}html.font-medium{font-size:16px}html.font-large{font-size:18px}html.font-xlarge{font-size:20px}.card{background:var(--card-bg);border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1rem;margin-bottom:1rem;border:1px solid var(--border)}.card-wide{padding:1rem 2rem}.card.card-disabled{background:#fafafa;border-color:#e5e7eb;box-shadow:none}.card.card-disabled .section-title{background:#f3f4f6}.section-title{background:#f8fafc;margin:-1rem -2rem 1.5rem;padding:.75rem 2rem;border-radius:.5rem .5rem 0 0;font-size:1rem;font-weight:700;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.btn{padding:.35rem 1rem;border-radius:.3rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;line-height:1;min-height:32px}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary,.btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-success{background:var(--success);color:#fff}.btn-info{background:var(--info);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-dark{background:var(--dark);color:#fff}.btn-outline{background:var(--neutral);color:var(--text);border:none}.btn-lg{padding:.65rem 2.5rem;font-size:.9375rem}.btn-sm{padding:.2rem .6rem;font-size:.75rem}.btn-delete{background-color:transparent;color:var(--delete-accent);border:1px solid var(--delete-accent)}.btn-delete:hover{background-color:var(--delete-accent);color:#fff}.btn-restore{background:var(--restore);color:#fff;border-color:var(--restore)}.btn-restore:hover{background:#1b5e20;border-color:#1b5e20}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem 2rem}.grid-full{grid-column:span 2}.form-group{display:flex;align-items:center;gap:.75rem}.form-group>label{font-size:.875rem;font-weight:700;color:var(--text);width:130px;flex-shrink:0;text-align:right;display:flex;align-items:center;justify-content:flex-end;min-height:32px}.input-hint-row{display:flex;align-items:center;gap:.5rem;flex:1}.status-badge{padding:.2rem .6rem;border-radius:1rem;font-size:.75rem;font-weight:700;white-space:nowrap}.status-active{background:#dcfce7;color:#166534}.status-disabled{background:#e2e8f0;color:#64748b}.status-deleted{background:#fee2e2;color:#991b1b}.status-mino{background:#e2e8f0;color:#475569}.status-kanno{background:#dcfce7;color:#166534}.status-chino{background:#fef3c7;color:#92400e}.status-bunno{background:#dbeafe;color:#1e40af}.status-keppin{background:#fee2e2;color:#991b1b}.state-badge-deleted{display:inline-flex;align-items:center;gap:.35rem;background:#fee2e2;color:var(--delete-accent);border:1px solid #fca5a5;border-radius:.25rem;font-size:.8125rem;font-weight:700;padding:.25rem .625rem}.switch{position:relative;display:inline-block;width:40px;height:20px;vertical-align:middle}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.4s;border-radius:20px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translate(20px)}.required-mui:after{content:" *";color:var(--error)}.sub-text{font-size:11px;color:var(--text-muted);white-space:nowrap}.deleted-banner{background:var(--deleted-bg);border:1px solid var(--deleted-border);border-left:4px solid var(--delete-accent);border-radius:.5rem;padding:.875rem 1.25rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem;font-size:.875rem}.deleted-banner-text{flex:1}.deleted-banner-text strong{display:block;color:var(--delete-accent);font-size:.9375rem;margin-bottom:.2rem}.deleted-banner-text span{color:#7f1d1d;font-size:.8125rem}:root{--cal-regular-holiday-bg: #f8fafc;--cal-regular-holiday-text: #64748b;--cal-today-border: #2563eb}.quarter-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}.month-list{background:var(--card-bg);border:1px solid var(--border);border-radius:.5rem;padding:1rem}.month-name-header{font-size:1rem;font-weight:700;color:var(--corporate-navy);border-bottom:2px solid var(--corporate-navy);margin-bottom:.75rem;padding-bottom:.25rem;display:flex;justify-content:space-between;align-items:baseline}.list-table{width:100%;border-collapse:collapse;font-size:.875rem;table-layout:fixed}.list-table th{background:var(--bg);padding:.5rem;text-align:left;border-bottom:2px solid var(--border);font-weight:700}.list-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row{cursor:pointer;transition:background .1s}.list-row:hover{background-color:#f1f5f9}.list-col-date{width:35px;text-align:center}.list-col-day{width:30px;text-align:center}.list-col-status{width:55px;text-align:center}.list-col-holiday{width:80px;font-size:.7rem;border-right:1px dashed var(--border)}.list-col-event{font-size:.7rem;padding-left:.75rem!important}.status-label{font-size:.625rem;padding:.1rem .4rem;border-radius:1rem;font-weight:700;display:inline-block;line-height:1.2}.status-work{background:transparent;color:var(--text);border:1px solid var(--border)}.status-holiday{background:var(--danger);color:#fff;border:1px solid var(--danger)}.cal-sun{color:var(--danger);font-weight:700}.cal-sat{color:var(--primary);font-weight:700}.is-holiday,.is-reg-holiday{background:var(--cal-regular-holiday-bg)}.is-event{background-color:#fef9c3!important}.is-today{outline:2px solid var(--cal-today-border);position:relative;z-index:1}.status-event-work{background-color:#854d0e;color:#fff;border:1px solid #854d0e}.legend{display:flex;gap:1.5rem;margin-top:1.5rem;font-size:.75rem;justify-content:flex-end;padding-right:1rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-box{width:1.25rem;height:1.25rem;border-radius:.25rem;border:1px solid var(--border)}@media(max-width:1000px){.quarter-list-grid{grid-template-columns:1fr}}.back-to-top{position:fixed;bottom:2rem;right:2rem;background:var(--primary);color:#fff;width:3rem;height:3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 15px -3px #0000001a;transition:transform .2s;font-size:1.25rem;font-weight:700;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,transform .2s;z-index:999}.back-to-top.show{opacity:1;visibility:visible}.back-to-top:hover{transform:translateY(-5px)}.csv-card-desc{font-size:.8125rem;color:var(--text-muted);margin-bottom:1.5rem;line-height:1.6}.csv-drop-zone{border:2px dashed var(--border);border-radius:.5rem;padding:3rem 2rem;text-align:center;font-size:.875rem;color:var(--text-muted);cursor:pointer;transition:all .2s;background:var(--bg);margin-bottom:1.5rem}.csv-drop-zone:hover{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.csv-err-container{margin-top:1rem;border:1px solid var(--error-border);border-radius:.25rem;max-height:300px;overflow-y:auto}.csv-err-table{width:100%;border-collapse:collapse;font-size:.75rem}.csv-err-table th{background:var(--error-bg);color:var(--error);padding:.5rem;text-align:left;position:sticky;top:0;border-bottom:1px solid var(--error-border)}.csv-err-table td{padding:.5rem;border-bottom:1px solid var(--border)}.csv-err-row-num{width:60px;text-align:center}.csv-err-field-name{width:120px;font-weight:700}.csv-err-message{color:var(--error)}.pagination{display:flex;gap:.25rem;align-items:center}.page-btn{padding:.2rem .6rem;border:1px solid var(--border);background:#fff;cursor:pointer;border-radius:.25rem;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;line-height:1;min-height:24px;color:var(--text);transition:all .2s}.page-btn:hover:not(:disabled):not(.active){background-color:var(--bg)}.page-btn.active{background:var(--dark);color:#fff;border-color:var(--dark)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.MuiTableSortLabel-root.Mui-active,.MuiTableSortLabel-root.Mui-active .MuiTableSortLabel-icon{color:var(--primary)!important}.btn-edit{background:var(--edit);color:#fff}#meisai-table{width:100%;border-collapse:collapse;font-size:.875rem}#meisai-table th{background:#f8fafc;padding:.6rem;border-bottom:2px solid var(--border);text-align:left;font-weight:700}#meisai-table td{padding:.5rem .6rem;border-bottom:1px solid var(--border)}#meisai-tbody tr:hover{background:#f1f5f9}#meisai-tbody tr.expandable-row{cursor:pointer;transition:background .15s}#meisai-tbody tr.expandable-row.selected{background:#e2e8f0}.detail-row{background:var(--expansion-bg)!important}.detail-content{padding:1rem 2rem;font-size:.75rem}.detail-item{display:flex;align-items:center;gap:.5rem}.detail-col-1{width:150px;flex:0 0 150px}.detail-col-2{width:300px;flex:0 0 300px}.detail-col-3{width:150px;flex:0 0 150px}.detail-col-4{width:120px;flex:0 0 120px}.detail-col-5{width:150px;flex:0 0 150px}.detail-label{color:var(--text);font-weight:600;background:#cbd5e1;padding:.25rem .5rem;border-radius:.2rem;white-space:nowrap}.detail-value{font-weight:500}.col-checkbox{width:40px;max-width:40px;text-align:center}.col-gyo{width:60px;max-width:60px;text-align:center;cursor:move}.col-hinme{min-width:200px}.col-kikak{min-width:180px}.col-suryo{width:100px;max-width:100px;text-align:right}.col-toggle{width:50px;max-width:50px;text-align:center}.expand-toggle-cell{cursor:pointer;text-align:center;padding:.5rem .6rem}.expand-icon{font-weight:700;font-size:1.1rem;color:var(--primary)}.back-to-top.visible{opacity:1;visibility:visible;display:flex}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:2000;display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-overlay.open{display:flex}.modal{background:var(--card-bg);border-radius:.5rem;width:980px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;border:1px solid var(--border);display:flex;flex-direction:column;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:#f8fafc;padding:1rem 1.5rem;border-bottom:1px solid var(--border);font-size:1.125rem;font-weight:700;display:flex;justify-content:space-between;align-items:center}.modal-title-area{display:flex;align-items:center;gap:1.5rem;flex:1}.modal-body{padding:1.5rem 2rem;overflow-y:auto}.modal-footer{background:#f8fafc;padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem}.meisai-nav{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.form-layout-vertical{display:flex;flex-direction:column;gap:.625rem}.form-group-row{display:flex;gap:2rem;align-items:center;width:100%}.form-group-row .form-group{flex:1}.form-group-row.col-4{display:grid;grid-template-columns:repeat(4,1fr);gap:.625rem 2rem}.form-group-row.col-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem 2rem}.form-group-row.col-2{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem 2rem}.form-group-row.col-1{display:block;width:100%}.form-group-row.col-1 .form-group{width:100%}.form-group-row.col-1 .form-control,.form-group-row.col-1 .form-field-wrap,.form-group-row.col-1 input,.form-group-row.col-1 select,.form-group-row.col-1 textarea{width:100%!important;max-width:100%!important}#dialog-form label{width:100px;flex-shrink:0}#dialog-form .form-group-row.col-4 label{width:auto;min-width:auto}.form-actions{display:flex;justify-content:space-between;align-items:center;width:100%}.form-actions-left,.form-actions-right{display:flex;gap:.75rem}.w-full{width:100%!important}.max-w-150{max-width:150px!important}.max-w-160{max-width:160px!important}.max-w-300{max-width:300px!important}.max-w-400{max-width:400px!important}.max-w-600{max-width:600px!important}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 2rem;font-size:.75rem}input[type=text]:not([class*=Mui]),input[type=date]:not([class*=Mui]),input[type=number]:not([class*=Mui]),select:not([class*=Mui]),textarea:not([class*=Mui]){padding:.35rem!important;border-radius:.25rem!important;border:1px solid var(--border)!important;font-size:.875rem!important;background:var(--input-bg)!important;transition:border-color .2s,background-color .2s!important;width:100%!important;max-width:400px;box-sizing:border-box!important}.table-actions input[type=text],.table-actions input[type=date],.table-actions input[type=number]{width:auto!important;max-width:none!important}input:not([class*=Mui]):focus,select:not([class*=Mui]):focus,textarea:not([class*=Mui]):focus{outline:none!important;border-color:var(--primary)!important;background:#fff!important}input[readonly]:not([class*=Mui]),select[disabled]:not([class*=Mui]),textarea[readonly]:not([class*=Mui]){background-color:#e2e8f0!important;color:var(--text-muted)!important;cursor:not-allowed!important;border-color:transparent!important}.form-control{flex:1!important;min-height:32px!important}.form-field-wrap{flex:1!important;display:flex!important;flex-direction:column!important}.detail-table{width:100%;border-collapse:collapse;margin-top:.5rem}.detail-table th{background:#f8fafc;font-weight:700;width:140px;text-align:right;padding:.5rem 1rem;border:1px solid var(--border);color:var(--text)}.detail-table td{padding:.5rem 1rem;border:1px solid var(--border);text-align:left;color:var(--text)}.tabs-container{display:flex;border-bottom:2px solid var(--border);margin-bottom:1rem;gap:.5rem}.tab-btn{padding:.5rem 1rem;background:transparent;border:none;border-bottom:2px solid transparent;font-weight:600;font-size:.875rem;color:var(--text-muted);cursor:pointer;transition:all .2s}.tab-btn:hover{color:var(--primary)}.tab-btn.active{color:var(--primary)!important;border-bottom:2px solid var(--primary)!important}.filter-badge{position:relative;cursor:pointer}.filter-badge:after{content:" ×";color:var(--text-muted);margin-left:4px;font-weight:400}.form-group-top{display:flex;align-items:flex-start;gap:.75rem}label.label-top{align-items:flex-start;padding-top:.4rem}.history-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.history-section-title{font-size:.9rem;font-weight:700;color:var(--text)}.history-table{width:100%;border-collapse:collapse;font-size:.875rem}.history-table th{background:#f1f5f9;padding:.5rem .75rem;text-align:left;font-weight:700;border-bottom:2px solid var(--border);white-space:nowrap}.history-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}.history-table tr:last-child td{border-bottom:none}.history-table tr.latest-row{background:#eff6ff}.badge{display:inline-block;padding:.1rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600}.badge-latest{background:#dbeafe;color:#1e40af}.badge-keigen{background:#dcfce7;color:#166534}.badge-standard{background:#f1f5f9;color:#475569}.add-row-section{background:#f8fafc;border:1px dashed var(--border);border-radius:.375rem;padding:1rem 1.25rem;margin-bottom:1rem}.add-row-title{font-size:.85rem;font-weight:700;color:var(--text-muted);margin-bottom:.75rem}.add-row-form{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.add-row-form .field-group{display:flex;align-items:center;gap:.4rem}.add-row-form .field-label{font-size:.8rem;font-weight:700;color:var(--text);white-space:nowrap}.add-row-form .field-label.required:after{content:" *";color:var(--error)}
