*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App,body{background:linear-gradient(135deg,#1e3a8a,#3b82f6 50%,#60a5fa);min-height:100vh}.App{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.App-header{background:#fff;border-bottom:3px solid #3b82f6;box-shadow:0 4px 20px #1e3a8a26;margin-bottom:2rem;padding:2rem 1rem;text-align:center}.App-header h1{color:#1e3a8a;font-size:2.2rem;font-weight:700;margin:0 0 .5rem}.App-header p{color:#475569;font-size:1.1rem;font-weight:500;margin:0}.App-main{margin:0 auto;max-width:800px;padding:0 1rem 2rem}.container{background:#fff;border:1px solid #3b82f633;border-radius:20px;box-shadow:0 20px 40px #1e3a8a26;max-width:600px;padding:3rem;width:100%}h1{color:#1e3a8a;font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center}.form{display:flex;flex-direction:column;gap:1.5rem}.form-section{background:#f8fafc;border-bottom:1px solid #3b82f626;border-radius:12px;margin-bottom:1rem;padding:2rem}.form-section:last-child{border-bottom:none}.form-section h2{border-bottom:2px solid #3b82f6;color:#1e3a8a;font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}label{color:#1e40af;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.required{color:#dc2626;font-weight:700}.note{color:#64748b;font-size:.85rem;font-weight:400;line-height:1.4}input[type=date],input[type=email],input[type=tel],input[type=text],input[type=url],select,textarea{background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#1e293b;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .3s ease;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{background:#f8fafc;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}input[type=email]:invalid,input[type=tel]:invalid,input[type=text]:invalid,input[type=url]:invalid{background:#fef2f2;border-color:#ef4444}.field-error{background:#fef2f2!important;border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.field-error:focus{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef444433!important}.checkbox-group.field-error{background:#fef2f2;border:2px solid #ef4444;border-radius:8px;padding:.75rem}input[type=file].field-error{background:#fef2f2!important;border-color:#ef4444!important;border-style:solid!important}.field-error-container{background:#fef2f2;border:2px solid #ef4444;border-radius:8px;padding:.75rem}.error-message{color:#ef4444;font-size:.85rem;font-weight:500;margin-top:.25rem}textarea{min-height:100px;resize:vertical}.char-count{color:#64748b;font-size:.8rem;margin-top:.3rem;text-align:right}input[type=file]{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;color:#475569;cursor:pointer;padding:.5rem;transition:all .3s ease;width:100%}input[type=file]:hover{background:#eff6ff;border-color:#3b82f6}.form-actions{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;padding:2rem;text-align:center}.submit-button{background:linear-gradient(135deg,#3b82f6,#60a5fa);border:none;border-radius:50px;box-shadow:0 4px 12px #3b82f633;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 3rem;transition:all .3s ease}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 6px 18px #3b82f64d;transform:translateY(-2px)}.submit-button:disabled{background:#94a3b8;box-shadow:none;color:#f8fafc;cursor:not-allowed;transform:none}.progress-container{margin-top:1rem;padding:0 2rem}.progress-bar{background:#e2e8f0;border-radius:6px;height:12px;margin-bottom:.5rem;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#1e40af,#3b82f6,#60a5fa);border-radius:6px;height:100%;transition:width .3s ease}.progress-text{color:#475569;font-size:.9rem;font-weight:600;text-align:center}.result{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 15px #3b82f61a;margin-top:2rem;padding:1.5rem}.result.success{background:#f0fdf4;border-left:5px solid #22c55e;color:#166534}.result.error{background:#fef2f2;border-left:5px solid #ef4444;color:#991b1b}.result h3{color:#1e40af;font-size:1.2rem;margin:0 0 1rem}.result p{color:#475569;line-height:1.5;margin:.5rem 0}.result a{color:#3b82f6;font-weight:600;text-decoration:none}.result a:hover{color:#1d4ed8;text-decoration:underline}.sheet-info{border-top:1px solid #0000001a;margin-top:1rem;padding-top:1rem}.json-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:1rem;padding:1rem}.json-preview h4{color:#1e40af;font-size:1rem;margin:0 0 .5rem}.json-data{background:#1e293b;border-radius:6px;box-shadow:inset 0 2px 4px #0003;color:#f1f5f9;font-family:Courier New,monospace;font-size:.9rem;line-height:1.4;margin:0;max-height:300px;overflow-x:auto;overflow-y:auto;padding:1rem;white-space:pre-wrap}@media (max-width:768px){.App-header{padding:1.5rem 1rem}.App-header h1{font-size:1.8rem}.App-main{padding:0 .5rem 1rem}.form-actions,.form-section{padding:1.5rem 1rem}.submit-button{font-size:1rem;padding:1rem 2rem}}.checkbox-group{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}.checkbox-label{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;display:flex;font-weight:500;gap:.5rem;margin-bottom:0;padding:.5rem .8rem;transition:all .3s ease}.checkbox-label:hover{background:#f3f4f6;border-color:#3b82f6}.checkbox-label input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;height:18px;margin:0;width:18px}.checkbox-label input[type=checkbox]:checked+span,.checkbox-label:has(input[type=checkbox]:checked){background:#eff6ff;border-color:#3b82f6;color:#1e40af;font-weight:600}.validation-message{color:#dc2626;font-size:.9rem;font-weight:500;margin-top:.5rem}.hold-periods-container{margin-top:.5rem}.hold-period-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:1rem;padding:1.5rem;transition:all .3s ease}.hold-period-item:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #3b82f61a}.hold-period-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.hold-period-header h4{color:#1e40af;font-size:1.1rem;font-weight:600;margin:0}.remove-period-btn{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.remove-period-btn:hover{background:#dc2626;transform:translateY(-1px)}.hold-period-fields{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.hold-period-fields.with-time{grid-template-columns:1fr 1fr 1fr}.date-field,.time-field{cursor:pointer;display:flex;flex-direction:column}.date-field{position:relative}.date-field:hover{background:#3b82f60d;border-radius:8px;transition:background .2s ease}.date-field label,.time-field label{color:#374151;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.date-field input,.time-field input{border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:1rem;padding:.8rem;transition:all .3s ease;width:100%}.date-field input:focus,.time-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.date-field input[type=date]{background:#fff;cursor:pointer;position:relative}.date-field input[type=date]::-webkit-calendar-picker-indicator{background:#0000;cursor:pointer;height:100%;margin:0;opacity:0;padding:0;position:absolute;right:0;top:0;width:100%}.date-field input[type=date]:hover{background:#f8fafc;border-color:#3b82f6}.date-field input[type=date]::-webkit-datetime-edit,.date-field input[type=date]::-webkit-datetime-edit-fields-wrapper{cursor:pointer}.date-field input[type=date]::-webkit-datetime-edit-month-field,.date-field input[type=date]::-webkit-datetime-edit-text{cursor:pointer}.date-field input[type=date]::-webkit-datetime-edit-day-field,.date-field input[type=date]::-webkit-datetime-edit-year-field{cursor:pointer}.add-period-btn{background:linear-gradient(135deg,#10b981,#34d399);border:none;border-radius:50px;box-shadow:0 4px 12px #10b9814d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem 2rem;transition:all .3s ease}.add-period-btn:hover{background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.optional-fields{border-top:1px solid #e2e8f0;display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem}.toggle-time-btn{align-items:center;background:#f1f5f9;border:1px solid #d1d5db;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.3rem;padding:.6rem 1rem;transition:all .3s ease}.toggle-time-btn:hover{background:#e2e8f0;border-color:#94a3b8;transform:translateY(-1px)}.toggle-time-btn.active{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.toggle-time-btn.active:hover{background:#fee2e2;border-color:#f87171}@media (max-width:768px){.checkbox-group{flex-direction:column;gap:.5rem}.checkbox-label{justify-content:flex-start}.hold-period-fields,.hold-period-fields.with-time{gap:.8rem;grid-template-columns:1fr}.hold-period-header{align-items:flex-start;flex-direction:column;gap:.5rem}.remove-period-btn{align-self:flex-end}.optional-fields{flex-direction:column}.toggle-time-btn{justify-content:center;width:100%}}.materials-container{margin-top:.5rem}.material-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:1rem;padding:1.5rem;transition:all .3s ease}.material-item:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #3b82f61a}.material-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.material-header h4{color:#1e40af;font-size:1.1rem;font-weight:600;margin:0}.remove-material-btn{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.remove-material-btn:hover{background:#dc2626;transform:translateY(-1px)}.material-fields{display:flex;flex-direction:column;gap:1rem}.material-type-selection{background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:1rem;padding:1rem}.material-type-selection label{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:.5rem}.material-type-selection input[type=radio]{accent-color:#3b82f6}.material-file-field,.material-url-field{display:flex;flex-direction:column}.material-file-field label,.material-url-field label{color:#374151;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.material-url-field input{border:1px solid #d1d5db;border-radius:8px;font-size:1rem;padding:.8rem;transition:all .3s ease}.material-url-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.material-file-field input[type=file]{background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;padding:.8rem;transition:all .3s ease}.material-file-field input[type=file]:hover{background:#eff6ff;border-color:#3b82f6}.file-preview{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1e40af;font-size:.9rem;font-weight:500;margin-top:0;padding:.5rem}.add-material-btn{background:linear-gradient(135deg,#8b5cf6,#a78bfa);border:none;border-radius:50px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem 2rem;transition:all .3s ease}.add-material-btn:hover{background:linear-gradient(135deg,#7c3aed,#8b5cf6);box-shadow:0 6px 20px #8b5cf666;transform:translateY(-2px)}.add-material-btn:disabled{background:#94a3b8;box-shadow:none;cursor:not-allowed;transform:none}@media (max-width:768px){.material-header,.material-type-selection{flex-direction:column;gap:.5rem}.material-header{align-items:flex-start}.remove-material-btn{align-self:flex-end}}@media (max-width:480px){.App-header h1{font-size:1.5rem}.App-header p{font-size:1rem}.form-section h2{font-size:1.3rem}.submit-button{padding:1rem;width:100%}}.confirmation-screen{background:linear-gradient(135deg,#1e3a8a,#3b82f6 50%,#60a5fa);min-height:100vh}.confirmation-content{margin:0 auto;max-width:800px;padding:0 1rem 2rem}.confirmation-section{background:#fff;border:1px solid #3b82f633;border-radius:12px;box-shadow:0 4px 20px #1e3a8a26;margin-bottom:1.5rem;padding:2rem}.confirmation-section h2{border-bottom:2px solid #3b82f6;color:#1e3a8a;font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.confirmation-item{background:#f8fafc;border-left:4px solid #3b82f6;border-radius:8px;display:flex;flex-direction:column;margin-bottom:1rem;padding:.75rem}.confirmation-item:last-child{margin-bottom:0}.confirmation-item label{color:#1e40af;font-size:.9rem;font-weight:600;margin-bottom:.25rem}.confirmation-item span{color:#334155;font-size:1rem;line-height:1.5}.confirmation-actions{background:#fff;border:1px solid #3b82f633;border-radius:12px;box-shadow:0 4px 20px #1e3a8a26;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;padding:2rem;text-align:center}.back-button{background:#64748b;border:none;border-radius:8px;box-shadow:0 4px 12px #64748b4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.back-button:hover{background:#475569;box-shadow:0 6px 20px #64748b66;transform:translateY(-2px)}.confirm-button{background:linear-gradient(135deg,#3b82f6,#1e40af);border:none;border-radius:8px;box-shadow:0 4px 12px #3b82f64d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.confirm-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 20px #3b82f666;transform:translateY(-2px)}.file-input-container{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.cancel-file-btn{background:#ef4444;border:none;border-radius:6px;box-shadow:0 2px 8px #ef44444d;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease;white-space:nowrap}.cancel-file-btn:hover{background:#dc2626;box-shadow:0 4px 12px #ef444466;transform:translateY(-1px)}.cancel-file-btn:active{transform:translateY(0)}@media (max-width:768px){.confirmation-actions{align-items:center;flex-direction:column}.back-button,.confirm-button{max-width:300px;width:100%}.file-input-container{align-items:stretch;flex-direction:column}.cancel-file-btn{align-self:flex-start}.confirmation-section{padding:1.5rem}.confirmation-content{padding:0 .5rem 2rem}}.completion-screen{background:linear-gradient(135deg,#1e3a8a,#3b82f6 50%,#60a5fa);display:flex;flex-direction:column;min-height:100vh}.completion-content{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin:0 auto;max-width:600px;padding:2rem 1rem}.success-message{background:#fff;border:1px solid #3b82f633;border-radius:20px;box-shadow:0 20px 40px #1e3a8a26;margin-bottom:2rem;padding:3rem 2rem;text-align:center;width:100%}.success-icon{animation:bounce 2s infinite;font-size:4rem;margin-bottom:1rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.success-message h2{color:#1e3a8a;font-size:1.8rem;font-weight:700;margin-bottom:2rem}.completion-details{margin:0 auto;max-width:400px;text-align:left}.completion-item{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:.75rem 0}.completion-item:last-child{border-bottom:none}.completion-item label{color:#475569;font-size:.95rem;font-weight:600;margin:0}.completion-item span{color:#1e293b;font-size:.95rem;font-weight:500}.completion-actions{align-items:center;display:flex;justify-content:center;width:100%}.new-form-button{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:12px;box-shadow:0 4px 20px #3b82f64d;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:600;gap:.5rem;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.new-form-button:hover{background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 8px 25px #3b82f666;transform:translateY(-2px)}.new-form-button:active{box-shadow:0 4px 20px #3b82f64d;transform:translateY(0)}@media (max-width:768px){.completion-content{padding:1rem}.success-message{padding:2rem 1.5rem}.success-icon{font-size:3rem}.success-message h2{font-size:1.5rem}.completion-item{align-items:flex-start;flex-direction:column;gap:.25rem}.new-form-button{font-size:1rem;padding:.875rem 1.5rem}}@media (max-width:480px){.success-message{padding:1.5rem 1rem}.success-icon{font-size:2.5rem}.success-message h2{font-size:1.3rem}.completion-item label,.completion-item span{font-size:.9rem}}