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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.weekly-schedule-wrapper{align-items:center;background:linear-gradient(to bottom right,#ebf8ff,#fff);display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:2rem 1rem}.schedule-title{color:#1e40af;font-size:2.25rem;font-weight:800;margin:50px 0 20px;text-align:center}.schedule-grid-wrapper{background-color:#fff;border:1px solid #d1d5db;border-radius:.75rem;box-shadow:0 4px 6px #0000000d;max-width:1500px;overflow-x:auto;width:100%}.schedule-grid{border-collapse:collapse;display:grid;grid-auto-rows:100px;grid-template-columns:120px repeat(7,1fr);min-width:800px;text-align:center}.schedule-grid>div{align-items:center;border:1px solid #cbd5e1;display:flex;justify-content:center;padding:.5rem}.schedule-header{background-color:#dbeafe;color:#1e3a8a;font-weight:700}.schedule-label{background-color:#e0f2fe;font-weight:500}.schedule-task{background-color:#3b82f6;border-radius:.5rem;box-shadow:0 1px 2px #0000001a;color:#fff;cursor:move;padding:.5rem;transition:background-color .2s;width:100%;word-break:break-word}.schedule-task:hover{background-color:#2563eb}.schedule-task.continuation{background-color:#93c5fd;position:relative}.continued-marker{font-size:.9em;position:absolute;right:5px;top:2px}.task-duration{font-size:.8em;opacity:.8}.form-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 2px 8px #0000000f;margin:1rem auto;max-width:800px;padding:1.25rem;width:100%}.form-card h3{font-size:1.25rem;font-weight:600;margin-bottom:1rem;text-align:center}.form-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.form-controls input,.form-controls select{border:1px solid #ccc;border-radius:.375rem;box-sizing:border-box;flex:1 1 150px;height:42px;min-width:150px;padding:.5rem}.btn{border:none;border-radius:.375rem;cursor:pointer;font-weight:500;min-height:40px;padding:.5rem 1rem;touch-action:manipulation;transition:.2s ease}.btn:hover{filter:brightness(1.1)}.btn.blue{background-color:#2563eb;color:#fff}.btn.green{background-color:#10b981;color:#fff}.btn.red{background-color:#ef4444;color:#fff}.btn.gray{background-color:#9ca3af;color:#fff}.chart-settings{margin-bottom:1rem;max-width:800px;text-align:center;width:100%}.chart-settings .btn{background-color:#2563eb;font-size:.9rem;max-width:160px;width:100%}.chart-settings-panel{background:#f3f4f6;border-radius:8px;box-shadow:0 2px 5px #0000000d;margin-top:10px;padding:1rem}.time-setting-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.time-setting-group{align-items:center;display:flex;flex:1 1 220px;min-width:220px}.time-setting-group label{font-weight:500;margin-right:10px;min-width:80px}.time-setting-group select{border:1px solid #ccc;border-radius:.375rem;flex:1 1;padding:.5rem}.chart-error{background:#fee2e2;border-radius:6px;color:#dc2626;font-size:.85rem;margin-top:10px;padding:8px 12px;text-align:center}.auth-top-right,.login-button{position:absolute;right:20px;top:20px;z-index:50}.login-button{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;min-height:44px;min-width:80px;padding:.5rem 1rem}.login-button:hover{background:#1e40af}.auth-top-right{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 6px #0000001a;display:flex;flex-wrap:wrap;gap:10px;padding:8px 12px}.user-email{color:#333;font-size:.9rem;font-weight:500}.logout-button{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;min-height:36px;padding:6px 10px}.logout-button:hover{background:#dc2626}.auth-modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:100}.auth-modal{background:#fff;border-radius:10px;box-shadow:0 10px 25px #0003;max-width:90%;padding:2rem;position:relative;text-align:center;width:350px;z-index:101}.auth-modal h2{font-size:2rem;margin-top:1rem}.auth-modal input{border:1px solid #ccc;border-radius:6px;display:block;height:20px;margin:10px auto 0;padding:.5rem;width:90%}.auth-modal .auth-close{font-size:18px;min-height:36px;min-width:36px;padding:8px;position:absolute;right:8px;top:8px}.auth-modal .auth-close,.text-link{background:none;border:none;cursor:pointer}.text-link{color:#2563eb;font-size:1rem;font-weight:500}.auth-modal .btn{display:block;font-size:15px;margin:15px auto 0;max-width:200px;min-width:120px;padding:.7rem 1rem;width:auto}.auth-error{color:#dc2626;font-size:.9rem;font-weight:400;margin-top:10px}.dark-mode-button{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;left:20px;min-height:44px;min-width:80px;padding:.5rem 1rem;position:absolute;top:20px;z-index:50}.dark-mode-button:hover{background:#1e40af}.dark-mode body{background-color:#121212}.dark-mode .weekly-schedule-wrapper{background:linear-gradient(to bottom right,#1a202c,#2d3748);color:#f7fafc}.dark-mode .schedule-title{color:#90cdf4}.dark-mode .schedule-grid-wrapper{background-color:#2d3748;border-color:#4a5568}.dark-mode .schedule-grid>div{border-color:#4a5568}.dark-mode .schedule-header{background-color:#2c5282;color:#ebf8ff}.dark-mode .schedule-label{background-color:#2a4365;color:#ebf8ff}.dark-mode .schedule-cell{background-color:#1a202c}.dark-mode .form-card{background:#2d3748;border-color:#4a5568;color:#f7fafc}.dark-mode .form-controls input,.dark-mode .form-controls select{background-color:#4a5568;border-color:#2d3748;color:#f7fafc}.dark-mode .auth-modal,.dark-mode .chart-settings-panel{background:#2d3748;color:#f7fafc}.dark-mode .auth-modal input{background-color:#4a5568;border-color:#2d3748;color:#f7fafc}.dark-mode .auth-close{color:#f7fafc}.dark-mode .text-link{color:#90cdf4}.dark-mode .chart-error{background:#472b2b}.profile-section{position:absolute;right:20px;top:20px;z-index:50}.profile-avatar-button{background:none;border:none;border-radius:50%;box-shadow:0 2px 6px #0003;cursor:pointer;height:44px;overflow:hidden;padding:0;transition:transform .2s ease;width:44px}.profile-avatar-button:hover{transform:scale(1.05)}.profile-avatar{height:100%;object-fit:cover;width:100%}.profile-dropdown{background:#fff;border-radius:10px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;overflow:hidden;position:absolute;right:0;top:55px;width:250px;z-index:100}.profile-header{align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;padding:15px 15px 15px 22px}.profile-info{display:flex;flex-direction:column;text-align:center}.profile-email{color:#374151;font-size:.9rem;font-weight:500;word-break:break-all}.profile-actions{display:flex;flex-direction:column;padding:10px}.profile-button{background:none;border:none;border-radius:5px;color:#374151;cursor:pointer;font-size:.9rem;margin-bottom:5px;padding:10px 12px;text-align:left;transition:background-color .2s}.profile-button:hover{background-color:#f3f4f6}.profile-button.logout{color:#dc2626;font-weight:500}.profile-button.logout:hover{background-color:#fee2e2}.dark-mode .profile-dropdown{background:#2d3748;border-color:#4a5568}.dark-mode .profile-header{background-color:#1a202c;border-color:#4a5568}.dark-mode .profile-button,.dark-mode .profile-email{color:#e2e8f0}.dark-mode .profile-button:hover{background-color:#4a5568}.dark-mode .profile-button.logout{color:#fc8181}.dark-mode .profile-button.logout:hover{background-color:#533239}.hamburger-button{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:700;justify-content:center;left:20px;min-height:44px;min-width:44px;padding:.5rem;position:absolute;top:20px;transition:opacity .2s ease,background-color .2s;z-index:1000}.hamburger-button.hidden{opacity:0;pointer-events:none}.sidebar{background-color:#fff;box-shadow:2px 0 8px #0000001a;height:100%;left:0;overflow-y:auto;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease;width:250px;z-index:900}.sidebar.open{transform:translateX(0)}.sidebar-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px}.sidebar-title{color:#2563eb;font-size:1.25rem;font-weight:700;margin:0}.sidebar-close{align-items:center;background:none;border:none;color:#4b5563;cursor:pointer;display:flex;font-size:20px;justify-content:center;min-height:36px;min-width:36px}.sidebar-menu{padding:1rem}.sidebar-item{align-items:center;border-radius:6px;color:#1f2937;cursor:pointer;display:flex;font-weight:500;margin-bottom:5px;padding:12px 15px;text-decoration:none;transition:background-color .2s}.sidebar-item:hover{background-color:#f3f4f6}.sidebar-item.active{background-color:#e0f2fe;color:#2563eb}.sidebar-item-icon{font-size:18px;margin-right:12px;text-align:center;width:24px}.sidebar-overlay{background:#0006;height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s;visibility:hidden;width:100%;z-index:800}.sidebar-overlay.open{opacity:1;visibility:visible}.dark-mode-toggle{align-items:center;background:none;border:none;border-radius:6px;color:#1f2937;cursor:pointer;display:flex;font-weight:500;justify-content:space-between;padding:12px 15px;text-align:left;width:100%}.dark-mode-toggle:hover{background-color:#f3f4f6}.dark-mode .sidebar{background-color:#1a202c;box-shadow:2px 0 8px #0000004d}.dark-mode .sidebar-header{border-color:#4a5568}.dark-mode .sidebar-title{color:#90cdf4}.dark-mode .sidebar-close,.dark-mode .sidebar-item{color:#e2e8f0}.dark-mode .sidebar-item:hover{background-color:#2d3748}.dark-mode .sidebar-item.active{background-color:#2c5282;color:#90cdf4}.dark-mode .dark-mode-toggle{color:#e2e8f0}.dark-mode .dark-mode-toggle:hover{background-color:#2d3748}.profile-upload-modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:200}.profile-upload-modal{background:#fff;border-radius:10px;box-shadow:0 10px 25px #0003;max-width:90%;padding:2rem;position:relative;text-align:center;width:450px;z-index:201}.profile-upload-modal h3{color:#2563eb;font-size:1.5rem;margin-bottom:1.5rem;margin-top:0}.upload-area{background-color:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;cursor:pointer;margin-bottom:1.5rem;padding:2rem;transition:all .3s ease}.upload-area.drag-over{background-color:#eff6ff;border-color:#3b82f6}.upload-icon{color:#64748b;font-size:2.5rem;margin-bottom:15px}.upload-text{color:#64748b;margin-bottom:10px}.file-input{display:none}.choose-file-btn{background-color:#e2e8f0;border:none;border-radius:6px;color:#475569;cursor:pointer;font-weight:500;margin-top:10px;padding:8px 15px;transition:all .2s}.choose-file-btn:hover{background-color:#cbd5e1}.image-preview-container{margin:1.5rem 0}.image-preview{border:3px solid #3b82f6;border-radius:50%;height:200px;margin:0 auto;object-fit:cover;width:200px}.upload-actions{display:flex;gap:10px;justify-content:center;margin-top:1rem}.upload-actions button{min-width:100px}.upload-error{color:#dc2626;font-size:.9rem;margin-top:10px}.dark-mode .profile-upload-modal{background-color:#1a202c;color:#e2e8f0}.dark-mode .profile-upload-modal h3{color:#90cdf4}.dark-mode .upload-area{background-color:#2d3748;border-color:#4a5568}.dark-mode .upload-area.drag-over{background-color:#2a4365;border-color:#3b82f6}.dark-mode .upload-icon,.dark-mode .upload-text{color:#a0aec0}.dark-mode .choose-file-btn{background-color:#4a5568;color:#e2e8f0}.dark-mode .choose-file-btn:hover{background-color:#2d3748}.dark-mode .upload-error{color:#fc8181}@media (max-width:480px){.profile-upload-modal{padding:1.5rem 1rem}.profile-upload-modal h3{font-size:1.25rem;margin-bottom:1rem}.upload-area{padding:1.5rem 1rem}.upload-icon{font-size:2rem}.image-preview{max-height:120px;max-width:120px}}@media (max-width:768px){.schedule-title{font-size:1.75rem;margin-top:70px}.auth-top-right,.login-button{max-width:calc(100% - 20px);position:absolute;right:10px;top:10px}.auth-top-right{align-items:flex-end;flex-direction:column;padding:8px}.form-controls{align-items:stretch;flex-direction:column;gap:8px}.form-controls input,.form-controls select{flex:none;font-size:14px;height:32px;min-width:0;padding:4px 8px;width:100%}.form-card{margin:8px auto;padding:12px}.chart-settings,.form-card{max-width:100%}.chart-settings,.form-card,.schedule-grid-wrapper{box-sizing:border-box;width:calc(100% - 20px)}.form-card h3{font-size:16px;margin-bottom:8px}.time-setting-group{align-items:flex-start;flex-direction:column}.time-setting-group label{margin-bottom:5px;margin-right:0}.time-setting-group select{height:34px;width:100%}.chart-settings-panel{padding:12px}.time-setting-controls .btn{height:34px;max-width:150px;min-width:100px;width:auto}.btn{font-size:14px;min-height:34px;padding:6px 10px}.form-controls .btn{height:34px;min-height:34px}.dark-mode-button{font-size:14px;left:10px;min-height:44px;min-width:70px;position:absolute;top:10px}.profile-section{position:absolute;right:10px;top:10px}.profile-dropdown,.sidebar{width:230px}.hamburger-button{font-size:16px;left:10px;min-height:40px;min-width:40px;padding:.4rem;top:10px}}@media (max-width:480px){.schedule-title{font-size:1.5rem}.chart-settings .btn,.form-controls .btn{height:34px;min-height:34px;width:100%}.btn{min-height:34px}.auth-modal{padding:1.5rem 1rem}.auth-modal h2{font-size:1.5rem}.schedule-grid{font-size:.9rem;grid-template-columns:90px repeat(7,1fr)}.schedule-task{font-size:.85rem;padding:.4rem}.form-controls{gap:6px}.form-controls input,.form-controls select{font-size:13px;height:30px;padding:3px 6px}.profile-dropdown{width:200px}.profile-dropdown-avatar{height:40px;width:40px}.profile-button{padding:8px 10px}.profile-button,.profile-email{font-size:.85rem}.sidebar{width:200px}}@media (hover:none){.btn:hover{filter:none}.btn:active{filter:brightness(.9)}.schedule-task:hover{background-color:#3b82f6}.schedule-task:active{background-color:#2563eb}}
/*# sourceMappingURL=main.25f36afb.css.map*/