.login-root{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:40px 36px 36px;width:100%;max-width:320px}.login-mark{width:40px;height:40px;border-radius:var(--radius);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:20px}.login-title{font-size:22px;font-weight:700;color:var(--text-1);line-height:1.15;margin-bottom:3px;letter-spacing:-.02em}.login-sub{font-size:13px;color:var(--text-3);margin-bottom:28px}.login-sep{height:1px;background:var(--border);margin-bottom:24px}.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:.07em;color:var(--text-3)}.login-input{border:1.5px solid var(--border-2);border-radius:var(--radius-sm);padding:10px 13px;font-size:14px;color:var(--text-1);background:var(--bg);transition:border-color .13s,box-shadow .13s;width:100%}.login-input:focus{border-color:var(--blue-focus);box-shadow:0 0 0 3px #1a56db1f;background:#fff}.login-error{font-size:12px;color:var(--red);background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);padding:8px 12px}.login-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:11px;font-size:14px;font-weight:600;margin-top:2px;letter-spacing:-.01em}.login-btn:hover:not(:disabled){background:var(--accent-2)}.login-btn:active:not(:disabled){transform:translateY(1px)}.login-btn:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000059;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlayIn .13s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:360px;border:1px solid var(--border);overflow:hidden;animation:cardIn .16s cubic-bezier(.2,.8,.4,1.05)}.modal-card--cancel{border-top:3px solid var(--red)}@keyframes cardIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.modal-header-left{display:flex;align-items:center;gap:12px}.modal-icon{font-size:20px}.modal-icon--danger{color:var(--red)}.modal-title{font-size:16px;font-weight:700;color:var(--text-1);letter-spacing:-.01em}.modal-sub{font-size:12px;color:var(--text-3);margin-top:2px}.modal-close{background:var(--surface);border:1px solid var(--border);color:var(--text-3);width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:12px}.modal-close:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-body{padding:18px 18px 14px}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.modal-input{border:1.5px solid var(--border-2);border-radius:var(--radius-sm);padding:10px 13px;font-size:14px;color:var(--text-1);background:var(--bg);transition:border-color .13s,box-shadow .13s;width:100%}.modal-input:focus{border-color:var(--blue-focus);box-shadow:0 0 0 3px #1a56db1f;background:#fff}.modal-error{font-size:12px;color:var(--red);margin-top:8px;background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);padding:8px 12px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border)}.modal-btn{font-size:13px;font-weight:600;padding:9px 20px;border-radius:var(--radius-sm)}.modal-btn--cancel{background:var(--surface);color:var(--text-2);border:1px solid var(--border)}.modal-btn--cancel:hover{background:var(--surface-2)}.modal-btn--confirm{background:var(--accent);color:#fff;border:1px solid var(--accent)}.modal-btn--confirm:hover{background:var(--accent-2)}.modal-btn--confirm:disabled{opacity:.4;cursor:not-allowed}.modal-btn--danger{background:var(--red);color:#fff;border:1px solid var(--red)}.modal-btn--danger:hover{background:#8f1a1a}.modal-btn--danger:disabled{opacity:.4;cursor:not-allowed}.cancel-info{display:flex;flex-direction:column}.cancel-row{display:flex;padding:8px 0;border-bottom:1px solid var(--border)}.cancel-row:last-child{border-bottom:none}.cancel-key{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);width:65px;flex-shrink:0;padding-top:1px}.cancel-val{font-size:13px;font-weight:600;color:var(--text-1)}.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:54px;min-height:54px;background:var(--bg-card);border-bottom:1px solid var(--border);gap:12px;flex-shrink:0;z-index:10;box-shadow:var(--shadow-xs)}.cal-brand-block{display:flex;align-items:center;gap:10px;flex-shrink:0}.cal-logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.cal-brand-name{font-size:14px;font-weight:700;color:var(--text-1);white-space:nowrap;letter-spacing:-.01em}.cal-brand-sub{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.cal-view-selector{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;gap:1px;flex-shrink:0}.cal-view-btn{background:transparent;color:var(--text-3);font-size:12px;font-weight:600;padding:4px 10px;border-radius:4px;transition:all .12s}.cal-view-btn:hover{color:var(--text-1);background:#0000000d}.cal-view-btn--active{background:var(--bg-card);color:var(--text-1);box-shadow:var(--shadow-xs);border:1px solid var(--border)}.cal-nav{display:flex;align-items:center;gap:6px;flex:1;justify-content:center}.cal-nav-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-2);width:28px;height:28px;border-radius:var(--radius-sm);font-size:15px;display:flex;align-items:center;justify-content:center}.cal-nav-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-week-label{display:flex;align-items:center;gap:8px}.cal-week-text{font-size:13px;font-weight:600;color:var(--text-1);white-space:nowrap;letter-spacing:-.01em}.cal-today-btn{font-size:11px;font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--border);padding:3px 10px;border-radius:20px}.cal-today-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.cal-dot--pulse{animation:dotPulse .7s ease}@keyframes dotPulse{0%{transform:scale(1)}40%{transform:scale(1.8);opacity:.5}to{transform:scale(1)}}.cal-last-update{font-size:10px;color:var(--text-3);font-variant-numeric:tabular-nums}.cal-icon-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-2);width:32px;height:32px;border-radius:var(--radius-sm);font-size:14px;display:flex;align-items:center;justify-content:center}.cal-icon-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-icon-btn--money{font-size:15px}.cal-icon-btn--money:hover{background:var(--green);border-color:var(--green)}.cal-icon-btn--logout:hover{background:var(--red);border-color:var(--red)}.retell-wrap{position:relative}.retell-popover{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 16px;min-width:240px;z-index:200;animation:popIn .16s cubic-bezier(.2,.8,.4,1.1)}@keyframes popIn{0%{opacity:0;transform:translateY(-5px) scale(.97)}to{opacity:1;transform:none}}.retell-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.retell-head-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.retell-head-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2)}.retell-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border)}.retell-row:last-of-type{border-bottom:none}.retell-label{font-size:12px;color:var(--text-3)}.retell-val{font-size:13px;font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}.retell-val--green{color:var(--green)}.retell-val--amber{color:var(--amber)}.retell-msg{font-size:12px;color:var(--text-3);text-align:center;padding:8px 0}.retell-msg--err{color:var(--red);background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);padding:8px 10px;text-align:left}.retell-hint{font-size:10px;color:var(--text-3);margin-top:10px;padding-top:8px;border-top:1px solid var(--border);line-height:1.5}.retell-hint code{font-size:10px;background:var(--surface);border:1px solid var(--border);padding:1px 4px;border-radius:3px}.cal-error-banner{background:var(--red-bg);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-3);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.cal-spinner{width:12px;height:12px;border:2px solid var(--border-2);border-top-color:var(--accent);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:400px;width:100%}.cal-corner{background:var(--surface);border-right:1px solid var(--border-2);border-bottom:2px solid var(--border-2);position:sticky;top:0;left:0;z-index:4}.cal-day-header{background:var(--bg-card);border-right:1px solid var(--border);border-bottom:2px solid var(--border-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;position:sticky;top:0;z-index:3}.cal-day-header--today{background:#fafafa;border-bottom:2px solid var(--accent)}.cal-day-name{font-size:10px;font-weight:700;letter-spacing:.09em;color:var(--text-3);text-transform:uppercase}.cal-day-num{font-size:22px;font-weight:800;color:var(--text-1);line-height:1;letter-spacing:-.02em}.cal-day-num--today{background:var(--accent);color:#fff;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px}.cal-day-month{font-size:10px;color:var(--text-3);text-transform:uppercase}.cal-day-count{font-size:11px;font-weight:600;color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1px 8px;margin-top:2px}.cal-day-count--has{color:var(--green);background:var(--green-bg);border-color:var(--green-border)}.cal-slot-label{background:var(--surface);border-right:1px solid var(--border-2);border-bottom:1px solid var(--border);height:var(--slot-h);display:flex;align-items:flex-start;justify-content:flex-end;padding:5px 8px 0 0;font-size:11px;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums;position:sticky;left:0;z-index:2;letter-spacing:-.01em}.cal-slot-label--sub{font-size:10px;font-weight:500;color:var(--text-4);border-top:1px dashed var(--border);background:#f8f8f8}.cal-slot-label--hour{border-top:1px solid var(--border-2);background:var(--surface-2)}.cal-break-label{background:var(--surface);border-right:1px solid var(--border-2);border-top:1px solid var(--border-2);border-bottom:1px solid var(--border-2);height:24px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:9px;color:var(--text-4);font-style:italic;position:sticky;left:0;z-index:2}.cal-break-cell{background:repeating-linear-gradient(135deg,#f0f0f0,#f0f0f0 3px,#e8e8e8 3px,#e8e8e8 9px);border-right:1px solid var(--border);border-top:1px solid var(--border-2);border-bottom:1px solid var(--border-2);height:24px}.cal-slot{position:relative;height:var(--slot-h);border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow:visible;display:flex;align-items:center;transition:background .08s}.cal-slot--last-in-hour{border-bottom:1px solid var(--border-2)}.cal-slot--hour-top{border-top:1px solid var(--border-2)}.cal-slot--half-top{border-top:1px dashed var(--border-2)}.cal-slot--free{cursor:pointer;background:var(--bg-card)}.cal-slot--free:hover{background:#f0f4ff}.cal-slot--past{cursor:default;background:var(--surface)}.cal-slot--today.cal-slot--free{background:#fefefe}.cal-slot--today.cal-slot--free:hover{background:#f0f4ff}.cal-slot--today.cal-slot--past{background:#f5f5f5}.cal-slot--booked{background:var(--bg-card);cursor:default}.cal-slot-hint{font-size:10px;font-weight:600;color:var(--text-4);padding-left:8px;pointer-events:none;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;letter-spacing:-.01em;transition:color .1s}.cal-slot--free:hover .cal-slot-hint{color:#6680cc}.cal-slot--past .cal-slot-hint,.cal-slot--booked .cal-slot-hint{display:none}.cal-chip{border-radius:5px;padding:4px 6px 4px 9px;display:flex;align-items:center;justify-content:space-between;gap:6px;z-index:1;cursor:default;transition:box-shadow .12s,transform .12s;min-width:0}.cal-chip:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);z-index:2}.cal-chip--confirmed{background:var(--green-bg);border:1px solid var(--green-border);border-left:3px solid var(--green)}.cal-chip--pending{background:var(--amber-bg);border:1px solid #d4a060;border-left:3px solid var(--amber)}.cal-chip-inner{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:1px}.cal-chip-time{font-size:10px;font-weight:700;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.cal-chip-name{font-size:12px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip-cancel{background:transparent;color:#b3202040;font-size:10px;width:18px;height:18px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.cal-chip:hover .cal-chip-cancel{color:var(--red);background:var(--red-bg)}.cal-chip-cancel:hover{background:var(--red)!important;color:#fff!important}.cal-footer{height:28px;min-height:28px;background:var(--surface);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-2)}.cal-footer-refresh{font-size:10px;color:var(--text-3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f5;--bg-card: #ffffff;--surface: #efefef;--surface-2: #e8e8e8;--text-1: #111111;--text-2: #444444;--text-3: #888888;--text-4: #bbbbbb;--accent: #1a1a1a;--accent-2: #333333;--green: #1e6e3e;--green-bg: #eaf4ee;--green-border: #9ecdb0;--red: #b32020;--red-bg: #fdf0f0;--red-border: #e8a0a0;--amber: #8a4f00;--amber-bg: #fdf5e8;--blue-focus: #1a56db;--border: #e0e0e0;--border-2: #cccccc;--border-3: #aaaaaa;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-sm: 0 2px 6px rgba(0,0,0,.08);--shadow-md: 0 6px 20px rgba(0,0,0,.1);--shadow-lg: 0 16px 48px rgba(0,0,0,.14);--radius-sm: 5px;--radius: 8px;--radius-lg: 12px;--font-ui: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "DM Mono", "SF Mono", monospace;--slot-h: 52px}html,body,#root{height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--text-1);font-family:var(--font-ui);font-size:14px;-webkit-font-smoothing:antialiased}button{font-family:var(--font-ui);cursor:pointer;border:none;outline:none;transition:all .13s ease}input,textarea,select{font-family:var(--font-ui);outline:none;border:none}::selection{background:#111;color:#fff}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--border-3)}
