.appointment-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeInOverlay .3s ease-out}.appointment-form{background:#111;border:1px solid #222222;border-radius:8px;padding:1.5rem;width:90%;max-width:400px;box-shadow:0 8px 32px #00000080;animation:slideUpForm .3s ease-out}@keyframes slideUpForm{0%{transform:translateY(30px) scale(.95);opacity:0}60%{transform:translateY(-5px) scale(1.02)}to{transform:translateY(0) scale(1);opacity:1}}.appointment-form h3{color:#e0e0e0;font-size:1.2rem;margin-bottom:1rem}.form-time-info{background:#1a1a1a;border:1px solid #222222;border-radius:4px;padding:.75rem;margin-bottom:1rem}.time-item{display:flex;flex-direction:column;margin-bottom:.75rem}.time-item:last-child{margin-bottom:0}.time-label{color:#888;font-size:.9rem;margin-bottom:.5rem}.time-value{color:#e0e0e0;font-weight:500}.form-time-input{width:100%;padding:.5rem;background:#1a1a1a;border:1px solid #333333;border-radius:4px;color:#e0e0e0;font-size:.9rem;font-family:inherit;transition:border-color .2s}.form-time-input:focus{outline:none;border-color:#555}.form-group{margin-bottom:1rem}.form-group label{display:block;color:#aaa;font-size:.9rem;margin-bottom:.5rem}.form-input,.form-textarea{width:100%;padding:.75rem;background:#1a1a1a;border:1px solid #333333;border-radius:4px;color:#e0e0e0;font-size:.9rem;font-family:inherit;transition:border-color .2s}.form-input:focus,.form-textarea:focus{outline:none;border-color:#555}.form-textarea{resize:vertical;min-height:60px}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.form-btn{flex:1;padding:.75rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s;border:1px solid}.cancel-btn{background:transparent;border-color:#333;color:#888}.cancel-btn:hover{background:#1a1a1a;border-color:#444;color:#aaa}.submit-btn{background:#2a2a2a;border-color:#444;color:#e0e0e0}.submit-btn:hover{background:#333;border-color:#555}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:#aaa;font-size:.9rem;margin-bottom:0}.form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#2a2a2a}@media (max-width: 768px){.appointment-form{width:95%;max-width:100%;padding:1rem;margin:1rem}.appointment-form h3{font-size:1rem}.form-time-info{padding:.5rem}.time-item{margin-bottom:.5rem}.time-label{font-size:.85rem}.form-time-input{font-size:.85rem;padding:.4rem}.form-group label{font-size:.85rem}.form-input,.form-textarea{font-size:.85rem;padding:.6rem}.form-actions{flex-direction:column;gap:.5rem}.form-btn{width:100%}}@media (max-width: 480px){.appointment-form{padding:.75rem;margin:.5rem}.appointment-form h3{font-size:.9rem}}.appointment-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.appointment-detail{background:#111;border:1px solid #222222;border-radius:8px;padding:1.5rem;width:90%;max-width:500px;box-shadow:0 8px 32px #00000080}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.detail-header h3{color:#e0e0e0;font-size:1.2rem;margin:0}.close-btn{background:transparent;border:none;color:#888;font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#1a1a1a;color:#e0e0e0}.detail-content{margin-bottom:1.5rem}.detail-item{margin-bottom:1rem}.detail-item:last-child{margin-bottom:0}.detail-label{display:block;color:#888;font-size:.85rem;margin-bottom:.25rem}.detail-value{display:block;color:#e0e0e0;font-size:1rem}.detail-notes{color:#e0e0e0;font-size:.95rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;background:#1a1a1a;padding:.75rem;border-radius:4px;border:1px solid #222222}.hidden-badge{display:inline-block;background:#3a3a3a;color:#aaa;padding:.25rem .5rem;border-radius:4px;font-size:.85rem}.detail-time-input{width:100%;padding:.5rem;background:#1a1a1a;border:1px solid #333333;border-radius:4px;color:#e0e0e0;font-size:.95rem;font-family:inherit;transition:border-color .2s}.detail-time-input:focus{outline:none;border-color:#555}.detail-actions{border-top:1px solid #222222;padding-top:1rem;display:flex;gap:.75rem}.edit-btn,.save-btn{flex:1;padding:.75rem;background:#1a3a1a;border:1px solid #2a5a2a;border-radius:4px;color:#6bff6b;font-size:.9rem;cursor:pointer;transition:all .2s}.edit-btn:hover:not(:disabled),.save-btn:hover:not(:disabled){background:#2a4a2a;border-color:#3a6a3a}.cancel-btn{flex:1;padding:.75rem;background:#1a1a1a;border:1px solid #333333;border-radius:4px;color:#aaa;font-size:.9rem;cursor:pointer;transition:all .2s}.cancel-btn:hover:not(:disabled){background:#222;border-color:#444}.delete-btn{flex:1;padding:.75rem;background:#3a1a1a;border:1px solid #5a2a2a;border-radius:4px;color:#ff6b6b;font-size:.9rem;cursor:pointer;transition:all .2s}.delete-btn:hover:not(:disabled){background:#4a2a2a;border-color:#6a3a3a}.edit-btn:disabled,.save-btn:disabled,.cancel-btn:disabled,.delete-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.appointment-detail-overlay{padding:1rem;align-items:flex-start;overflow-y:auto}.appointment-detail{width:95%;max-width:100%;padding:1rem;margin-top:1rem;margin-bottom:1rem}.detail-header h3{font-size:1rem}.close-btn{width:28px;height:28px;font-size:1.3rem}.detail-label{font-size:.8rem}.detail-value{font-size:.9rem}.detail-time-input{font-size:.85rem;padding:.4rem}.detail-actions{flex-direction:column;gap:.5rem}.edit-btn,.save-btn,.cancel-btn,.delete-btn{width:100%;padding:.6rem;font-size:.85rem}}@media (max-width: 480px){.appointment-detail{padding:.75rem}.detail-header h3{font-size:.9rem}}.calendar-container{padding:2rem;max-width:1400px;margin:0 auto;animation:fadeInCalendar .8s cubic-bezier(.34,1.56,.64,1);transform-origin:top center;position:relative;z-index:1;opacity:.7;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes fadeInCalendar{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.calendar-intro{background:#1119;border:1px solid #222222;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.calendar-intro h3{color:#e0e0e0;font-size:1.2rem;font-weight:600;margin-bottom:.75rem}.calendar-intro p{color:#aaa;font-size:.9rem;line-height:1.6;margin-bottom:.75rem}.calendar-intro p:last-child{margin-bottom:0}.mobile-hint{display:none}@media (max-width: 768px){.mobile-hint{display:block}}.intro-usage{color:#999!important;font-size:.85rem!important;margin-top:.5rem!important}.intro-hint{color:#888!important;font-size:.85rem!important;font-style:italic;margin-top:.5rem!important}.calendar-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.calendar-header h2{font-size:1.3rem;font-weight:500;color:#e0e0e0;flex:1}.nav-btn{background:#1a1a1a;border:1px solid #333333;color:#e0e0e0;width:2.5rem;height:2.5rem;border-radius:4px;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.nav-btn:hover{background:#222;border-color:#444}.today-btn{background:#1a1a1a;border:1px solid #333333;color:#e0e0e0;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.today-btn:hover{background:#222;border-color:#444}.calendar-grid{display:grid;grid-template-columns:60px repeat(7,.5fr);gap:1px;background:#222;border:1px solid #222222;border-radius:4px;overflow:hidden;animation:gridSlideIn .8s cubic-bezier(.34,1.56,.64,1);transform-origin:top center;max-width:1000px;margin:0 auto}@keyframes gridSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}60%{transform:translateY(5px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.time-column{background:#111;animation:timeColumnSlide .7s ease-out}.time-label-spacer{height:50px;border-bottom:1px solid #222222}@keyframes timeColumnSlide{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.time-label{height:60px;display:flex;align-items:flex-start;padding:.25rem .5rem;font-size:.75rem;color:#888;border-bottom:1px solid #222222}.day-column{background:#111;display:flex;flex-direction:column;animation:columnFadeIn .6s ease-out;animation-fill-mode:both}.day-column:nth-child(1){animation-delay:.1s}.day-column:nth-child(2){animation-delay:.15s}.day-column:nth-child(3){animation-delay:.2s}.day-column:nth-child(4){animation-delay:.25s}.day-column:nth-child(5){animation-delay:.3s}.day-column:nth-child(6){animation-delay:.35s}.day-column:nth-child(7){animation-delay:.4s}.day-column:nth-child(8){animation-delay:.45s}@keyframes columnFadeIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.day-header{height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid #222222;background:#151515}.day-name{font-size:.85rem;color:#aaa;font-weight:500}.day-date{font-size:1rem;color:#e0e0e0;font-weight:600;margin-top:.25rem}.day-slot{position:relative;height:1440px;background:#0f0f0f;border-right:1px solid #222222}.working-hours-block{position:absolute;left:0;right:0;background:#3264c84d;border-top:1px solid rgba(80,150,255,.5);border-bottom:1px solid rgba(80,150,255,.5);pointer-events:none;z-index:1}.working-hours-label{position:absolute;left:4px;top:2px;font-size:.75rem;color:#64a0ff;font-weight:600;background:#3264c880;padding:2px 6px;border-radius:3px;pointer-events:none;z-index:2}.deadline-line{position:absolute;left:0;right:0;height:8px;background:linear-gradient(90deg,transparent,#ff4444,transparent);box-shadow:0 0 8px #f44c,0 0 16px #f446;pointer-events:auto;cursor:pointer;z-index:20;transform:translateY(-50%);padding:4px 0;margin:-4px 0}.deadline-label{position:absolute;left:4px;font-size:.75rem;color:#f66;font-weight:600;background:#000000b3;padding:2px 8px;border-radius:3px;border:1px solid rgba(255,68,68,.3);pointer-events:none;z-index:21;transform:translateY(-50%);white-space:nowrap}.deadline-warning-gradient{position:absolute;left:0;right:0;pointer-events:none;z-index:3}.drag-indicator{position:absolute;left:0;right:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,#64a0ff,transparent);pointer-events:none;z-index:15;box-shadow:0 0 10px #64a0ff,0 0 20px #64a0ff99;animation:dragIndicatorFlow 2s ease-in-out infinite}@keyframes dragIndicatorFlow{0%,to{opacity:.9;transform:scaleY(1);box-shadow:0 0 10px #64a0ff,0 0 20px #64a0ff99}50%{opacity:1;transform:scaleY(1.5);box-shadow:0 0 15px #64a0ff,0 0 30px #64a0ffcc}}.preview-slot{position:absolute;left:0;right:0;pointer-events:none;z-index:10;animation:previewGlow 1.5s ease-in-out infinite;box-shadow:0 0 20px #64a0ff80}@keyframes previewGlow{0%,to{opacity:.7;box-shadow:0 0 20px #64a0ff80}50%{opacity:1;box-shadow:0 0 30px #64a0ffcc,0 0 40px #64a0ff66}}.appointment-slot{position:absolute;left:2px;right:2px;border-radius:2px;z-index:5;padding:2px 4px;overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideInAppointment .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 2px 8px #0000004d}@keyframes slideInAppointment{0%{opacity:0;transform:scaleY(0) scaleX(.8)}60%{transform:scaleY(1.05) scaleX(1)}to{opacity:1;transform:scaleY(1) scaleX(1)}}.appointment-slot:hover{transform:scale(1.02);box-shadow:0 4px 12px #00000080;z-index:6}.appointment-slot.editable{cursor:pointer}.appointment-title{font-size:.75rem;color:#e0e0e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;line-height:1.2}@media (max-width: 768px){.calendar-container{padding:1rem .5rem}.calendar-intro{padding:1rem;margin-bottom:1rem}.calendar-intro h3{font-size:1rem}.calendar-intro p{font-size:.85rem}.calendar-header{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.calendar-header h2{font-size:1rem;width:100%;text-align:center;order:1}.nav-btn{width:2rem;height:2rem;font-size:1.2rem}.today-btn{padding:.4rem .8rem;font-size:.85rem}.calendar-grid{grid-template-columns:40px repeat(7,1fr);max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;transform-origin:top left}.day-slot{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overflow-y:visible;touch-action:pan-y pinch-zoom}.appointment-slot{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.calendar-container{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;height:auto;min-height:100vh}.time-label{font-size:.65rem;padding:.2rem .3rem;height:50px}.day-header{height:40px;padding:.25rem}.day-name{font-size:.7rem}.day-date{font-size:.85rem;margin-top:.1rem}.day-slot{height:1440px;min-height:1440px}.appointment-slot{padding:1px 2px}.appointment-title{font-size:.7rem}.working-hours-label{font-size:.65rem;padding:1px 4px}.deadline-label{font-size:.65rem;padding:1px 6px}}@media (max-width: 480px){.calendar-container{padding:.5rem .25rem}.calendar-intro{padding:.75rem}.calendar-intro h3{font-size:.9rem}.calendar-intro p{font-size:.8rem}.calendar-grid{grid-template-columns:35px repeat(7,1fr)}.time-label{font-size:.6rem;height:45px}.day-header{height:35px}.day-name{font-size:.65rem}.day-date{font-size:.75rem}}.auth-code-toggle{padding:.5rem 1rem;border-radius:6px;background:#1a1a1a;border:1px solid #333333;color:#e0e0e0;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000004d;white-space:nowrap}.auth-code-toggle:hover{background:#222;border-color:#555;transform:scale(1.05);box-shadow:0 4px 12px #00000080}.auth-code-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeInOverlay .3s ease-out}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.auth-code-modal{background:#111;border:1px solid #222222;border-radius:12px;padding:2rem;width:90%;max-width:400px;box-shadow:0 8px 32px #000c;animation:slideUpModal .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-code-modal h3{color:#e0e0e0;font-size:1.3rem;margin-bottom:1.5rem;text-align:center;font-weight:600}.auth-code-field{width:100%;padding:.75rem;background:#1a1a1a;border:1px solid #333333;border-radius:6px;color:#e0e0e0;font-size:1rem;margin-bottom:1rem;transition:border-color .2s}.auth-code-field:focus{outline:none;border-color:#555}.auth-code-error{display:block;color:#ff6b6b;font-size:.85rem;margin-bottom:1rem;text-align:center;padding:.5rem;background:#ff6b6b1a;border-radius:4px}.auth-code-actions{display:flex;gap:.75rem;margin-top:1rem}.auth-code-submit,.auth-code-cancel{flex:1;padding:.75rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;font-weight:500}.auth-code-submit{background:#2a2a2a;border:1px solid #444444;color:#e0e0e0}.auth-code-submit:hover{background:#333;border-color:#555;transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.auth-code-cancel{background:transparent;border:1px solid #333333;color:#888}.auth-code-cancel:hover{background:#1a1a1a;border-color:#444;color:#aaa}.background-animation{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.7}.app{min-height:100vh;background:#0a0a0a;position:relative;z-index:1}.app-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1.5rem 2rem;background:#111c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #222222;position:relative;z-index:10}.header-left{display:flex;align-items:center;gap:1.5rem;justify-self:start}.header-center{display:flex;align-items:center;justify-content:center}.header-right{display:flex;align-items:center;gap:1rem;justify-self:end}.app-header h1{font-size:1.5rem;font-weight:600;color:#e0e0e0;letter-spacing:.5px;margin:0}.header-link{color:#888;text-decoration:none;font-size:.9rem;transition:color .2s}.header-link:hover{color:#e0e0e0}.logout-btn{background:transparent;border:1px solid #333333;color:#e0e0e0;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.logout-btn:hover{background:#1a1a1a;border-color:#444}@media (max-width: 768px){.app-header{grid-template-columns:1fr;padding:1rem;gap:.75rem}.header-left{justify-self:center;order:1}.header-center{order:2}.header-right{justify-self:center;order:3}.app-header h1{font-size:1.2rem}.header-link{font-size:.85rem}.logout-btn{padding:.4rem .8rem;font-size:.85rem}}@media (max-width: 480px){.app-header{padding:.75rem}.app-header h1{font-size:1rem}.header-left{flex-direction:column;gap:.5rem}.header-link{font-size:.8rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0a;color:#e0e0e0;overflow-x:auto;overflow-y:auto;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}#root{min-height:100vh}
