.login-root{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#111}.login-bg{display:none}.login-card{background:#1e1e1e;border:1px solid #333;border-radius:10px;padding:40px 36px;width:100%;max-width:360px;box-shadow:0 8px 32px #00000080}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #2a2a2a}.login-logo-icon{font-size:28px;line-height:1;color:#ccc}.login-title{font-family:Georgia,serif;font-size:20px;font-weight:700;color:#f0f0f0;line-height:1.1}.login-subtitle{font-size:13px;color:#666;margin-top:2px}.login-desc{display:none}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:5px}.login-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#555}.login-input{background:#141414;border:1px solid #333;border-radius:5px;padding:10px 12px;color:#f0f0f0;font-size:14px;transition:border-color .15s}.login-input:focus{border-color:#666;background:#1a1a1a}.login-error{background:#e033331f;border:1px solid rgba(224,51,51,.35);border-radius:5px;padding:9px 12px;color:#f88;font-size:13px}.login-btn{background:#f0f0f0;color:#111;font-size:14px;font-weight:600;padding:12px;border-radius:5px;margin-top:4px}.login-btn:hover:not(:disabled){background:#fff}.login-btn:disabled{opacity:.3;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:overlayIn .15s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal-card{background:#fff;border:1px solid #ddd;border-radius:10px;width:100%;max-width:360px;box-shadow:0 8px 32px #0000001f;animation:modalIn .2s ease;overflow:hidden}.modal-card--cancel{border-top:3px solid var(--red)}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;border-bottom:1px solid #eee}.modal-header-left{display:flex;align-items:center;gap:10px}.modal-icon{font-size:20px;line-height:1;color:#555}.modal-icon--danger{color:var(--red)}.modal-title{font-family:var(--font-display);font-size:17px;font-weight:700;color:#111}.modal-event-type{font-size:11px;color:#888;margin-top:2px}.modal-close{background:#f0f0f0;border:1px solid #ddd;color:#666;width:26px;height:26px;border-radius:5px;font-size:12px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--red);color:#fff;border-color:var(--red)}.modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.modal-field{display:flex;flex-direction:column;gap:5px}.modal-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#888}.modal-input{background:#f8f8f8;border:1px solid #ddd;border-radius:var(--radius-sm);padding:10px 12px;color:#111;font-size:15px;width:100%;transition:border-color .15s}.modal-input:focus{border-color:#111;background:#fff}.modal-error{background:#cc22220f;border:1px solid rgba(204,34,34,.3);border-radius:var(--radius-sm);padding:8px 11px;color:var(--red);font-size:12px}.cancel-info{border:1px solid #eee;border-radius:var(--radius);overflow:hidden}.cancel-row{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid #f0f0f0;gap:12px}.cancel-row:last-child{border-bottom:none}.cancel-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#aaa;width:50px;flex-shrink:0;font-weight:600}.cancel-value{font-size:14px;color:#111;font-weight:500;text-transform:capitalize}.modal-footer{display:flex;gap:8px;padding:14px 20px;border-top:1px solid #eee;justify-content:flex-end}.modal-btn{font-size:13px;font-weight:600;padding:9px 18px;border-radius:var(--radius-sm)}.modal-btn--cancel{background:#f0f0f0;border:1px solid #ddd;color:#555}.modal-btn--cancel:hover{background:#e4e4e4}.modal-btn--confirm{background:#111;color:#fff}.modal-btn--confirm:hover:not(:disabled){background:#333}.modal-btn--confirm:disabled{opacity:.3;cursor:not-allowed}.modal-btn--danger{background:var(--red);color:#fff}.modal-btn--danger:hover:not(:disabled){background:#a11}.modal-btn--danger:disabled{opacity:.3;cursor:not-allowed}.cal-root{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--bg)}.cal-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;min-height:52px;background:var(--bg-card);border-bottom:1px solid var(--border-strong);gap:12px;flex-shrink:0;position:relative;z-index:10}.cal-header-left{display:flex;align-items:center;gap:10px;flex-shrink:0}.cal-logo-icon{font-size:20px;line-height:1;color:#333}.cal-brand{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text-main);white-space:nowrap}.cal-brand-sub{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.cal-week-nav{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.cal-nav-btn{background:#f0f0f0;border:1px solid var(--border-strong);color:#333;width:30px;height:30px;border-radius:5px;font-size:18px;display:flex;align-items:center;justify-content:center}.cal-nav-btn:hover{background:#111;color:#fff;border-color:#111}.cal-week-label{display:flex;align-items:center;gap:8px}.cal-week-text{font-size:14px;font-weight:600;color:var(--text-main);white-space:nowrap}.cal-today-btn{background:#f0f0f0;border:1px solid var(--border-strong);color:#555;font-size:11px;padding:3px 9px;border-radius:20px}.cal-today-btn:hover{background:#111;color:#fff;border-color:#111}.cal-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.cal-refresh-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}.cal-refresh-dot--pulse{animation:dotPulse .6s ease}@keyframes dotPulse{0%{transform:scale(1)}50%{transform:scale(1.6)}to{transform:scale(1)}}.cal-last-update{font-size:10px;color:var(--text-dim);font-variant-numeric:tabular-nums}.cal-logout-btn{background:#f0f0f0;border:1px solid var(--border-strong);color:#555;width:30px;height:30px;border-radius:5px;font-size:14px;display:flex;align-items:center;justify-content:center}.cal-logout-btn:hover{background:var(--red);color:#fff;border-color:var(--red)}.cal-error-banner{background:var(--red-light);border-bottom:1px solid var(--red-border);color:var(--red);padding:7px 16px;font-size:12px;display:flex;align-items:center;gap:10px;flex-shrink:0}.cal-error-retry{background:transparent;border:1px solid var(--red-border);color:var(--red);font-size:11px;padding:2px 9px;border-radius:4px}.cal-loading{display:flex;align-items:center;gap:7px;padding:6px 16px;font-size:11px;color:var(--text-muted);background:var(--bg-dark);border-bottom:1px solid var(--border);flex-shrink:0}.cal-spinner{display:inline-block;width:12px;height:12px;border:2px solid #ddd;border-top-color:#111;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cal-scroll-wrapper{flex:1;overflow:auto;position:relative}.cal-grid-container{display:grid;min-width:680px;width:100%}.cal-corner{background:var(--bg-dark);border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);position:sticky;top:0;left:0;z-index:4}.cal-day-header{background:var(--bg-card);border-right:1px solid var(--border);border-bottom:1px solid var(--border-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 4px;position:sticky;top:0;z-index:3}.cal-day-header--today{background:#f5f5f5;border-bottom-color:#999}.cal-day-name{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--text-dim);text-transform:uppercase}.cal-day-num{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text-main);line-height:1}.cal-day-num--today{background:#111;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}.cal-day-month{font-size:9px;color:var(--text-dim);text-transform:uppercase}.cal-day-count{font-size:10px;color:#555;background:#f0f0f0;border-radius:8px;padding:1px 6px;margin-top:2px}.cal-slot-label{background:var(--bg-dark);border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border);height:32px;display:flex;align-items:flex-start;justify-content:flex-end;padding:4px 6px 0 0;font-size:9px;color:var(--text-dim);font-variant-numeric:tabular-nums;position:sticky;left:0;z-index:2}.cal-slot-label--hour{font-size:10px;color:var(--text-muted);font-weight:600;border-top:1px solid var(--border-strong);background:#f0f0f0}.cal-break-label{background:#f5f5f5;border-right:1px solid var(--border-strong);border-top:1px solid #ccc;border-bottom:1px solid #ccc;height:22px;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-size:9px;color:#bbb;font-style:italic;position:sticky;left:0;z-index:2}.cal-break-cell{background:repeating-linear-gradient(45deg,#f5f5f5,#f5f5f5 4px,#eee 4px,#eee 8px);border-right:1px solid #e8e8e8;border-top:1px solid #ccc;border-bottom:1px solid #ccc;height:22px}.cal-slot{position:relative;height:32px;border-right:1px solid #e8e8e8;border-bottom:1px solid #f0f0f0;transition:background .1s;overflow:visible;display:flex;align-items:center}.cal-slot--last{border-bottom:1px solid var(--border-strong)}.cal-slot-hint{font-size:10px;color:#d8d8d8;padding-left:5px;pointer-events:none;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;transition:color .15s}.cal-slot--free{cursor:pointer;background:#fff}.cal-slot--free:hover{background:#f5f5f5}.cal-slot--free:hover .cal-slot-hint{color:#aaa}.cal-slot--past{cursor:default;background:#fafafa}.cal-slot--past .cal-slot-hint{color:#eee}.cal-slot--today{background:#fefefe}.cal-slot--today.cal-slot--free:hover{background:#f5f5f5}.cal-slot--booked{cursor:default;background:#fff}.cal-slot--booked .cal-slot-hint{display:none}.cal-chip{border-radius:3px;padding:2px 4px 2px 6px;display:flex;align-items:center;justify-content:space-between;gap:3px;z-index:1;cursor:default;transition:box-shadow .1s;min-width:0}.cal-chip:hover{box-shadow:0 1px 6px #0000001f;z-index:2}.cal-chip--confirmed{background:#f0fff4;border:1px solid #99ddbb;border-left:3px solid var(--green)}.cal-chip--pending{background:#fffbe6;border:1px solid #eedd88;border-left:3px solid #cc9900}.cal-chip-inner{flex:1;min-width:0;overflow:hidden;display:flex;align-items:center;gap:5px}.cal-chip-time{font-size:9px;font-weight:700;color:#888;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.cal-chip-name{font-size:11px;font-weight:600;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip-cancel{background:transparent;color:#b4000033;font-size:10px;width:14px;height:14px;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.cal-chip:hover .cal-chip-cancel{color:var(--red);background:#cc22221a}.cal-chip-cancel:hover{background:var(--red)!important;color:#fff!important}.cal-footer{height:26px;min-height:26px;background:var(--bg-dark);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:16px;flex-shrink:0}.cal-footer-count{font-size:11px;font-weight:600;color:var(--text-muted)}.cal-footer-refresh{font-size:10px;color:var(--text-dim)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg-dark: #f5f5f5;--bg-card: #ffffff;--bg-cell: #fafafa;--text-main: #111111;--text-muted: #666666;--text-dim: #aaaaaa;--red: #cc2222;--red-light: rgba(204,34,34,.08);--red-border: rgba(204,34,34,.3);--green: #1a7a3a;--green-light: rgba(26,122,58,.1);--border: #e8e8e8;--border-strong: #cccccc;--shadow: 0 4px 20px rgba(0,0,0,.08);--radius: 8px;--radius-sm: 5px;--font-display: Georgia, "Times New Roman", serif;--font-body: system-ui, -apple-system, sans-serif}html,body,#root{height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--text-main);font-family:var(--font-body);font-size:14px;-webkit-font-smoothing:antialiased}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;transition:all .12s ease}input,textarea,select{font-family:var(--font-body);outline:none;border:none}::selection{background:#111;color:#fff}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#999}
