.calendar{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.calendar-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-shrink:0;padding-bottom:12px;border-bottom:2px dashed var(--oak-400)}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav-btn{width:32px;height:32px;padding:0;font-size:20px;font-weight:700;color:var(--earth-700);border-radius:var(--radius-md);line-height:1}.calendar-today-btn{padding:6px 14px;font-size:12px}.calendar-title{font-size:16px;font-weight:800;color:var(--earth-600);letter-spacing:-.02em;flex:1}.calendar-actions{display:flex;align-items:center;gap:8px}.calendar-grid-wrapper{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;border:3px solid var(--oak-400);border-radius:var(--radius-lg);background:var(--bamboo-50);box-shadow:4px 4px 0 var(--oak-300)}.calendar-grid{display:flex;flex:1;min-height:100%}.calendar-time-column{width:48px;flex-shrink:0;background:var(--oak-100);border-right:2px dashed var(--oak-400);position:sticky;left:0;z-index:10;display:flex;flex-direction:column}.calendar-time-header{height:48px;flex-shrink:0;background:var(--oak-100);position:sticky;top:0;z-index:15}.calendar-time-slots{flex:1;display:flex;flex-direction:column;position:relative}.calendar-time-slot{height:60px;flex-shrink:0;display:flex;align-items:flex-start;justify-content:center;padding:0 4px;border-bottom:1px dotted var(--oak-300);position:relative}.calendar-time-label{font-size:10px;color:var(--earth-600);line-height:1;font-weight:700;text-align:center;position:absolute;top:-6px;background:var(--oak-100);padding:0 2px}.calendar-time-slot-end{flex:0;min-height:0;height:0;border-bottom:none;overflow:visible}.calendar-time-allday{display:flex;align-items:center;justify-content:center;padding:4px;border-bottom:2px solid var(--oak-400);background:var(--oak-100);position:sticky;top:48px;z-index:15}.calendar-time-allday-label{font-size:9px;color:var(--earth-600);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.calendar-allday-row{display:flex;flex-shrink:0;position:sticky;top:48px;z-index:14;border-bottom:2px solid var(--bamboo-300)}.calendar-allday-cell{flex:1;position:relative;border-right:1px dotted var(--bamboo-400);background:var(--bamboo-50);padding:2px}.calendar-allday-cell:last-child{border-right:none}.calendar-allday-cell.is-today{background:var(--forest-50)}.calendar-allday-event{position:absolute;left:2px;right:2px;height:22px;border-radius:var(--radius-sm);padding:2px 6px;cursor:pointer;display:flex;align-items:center;border:2px solid rgba(0,0,0,.15);box-shadow:1px 1px #0000001a;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.calendar-allday-event:hover{transform:translateY(-1px);box-shadow:2px 2px #00000026;z-index:10}.calendar-allday-event-title{font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-allday-event.dragging{opacity:.5}.calendar-allday-event-preview{border:2px dashed var(--forest-600)!important;box-shadow:0 2px 8px #00000040!important;pointer-events:none;animation:dragPulse .5s ease-in-out infinite alternate}.calendar-days-container{display:flex;flex-direction:column;flex:1;min-height:100%}.calendar-day-headers{display:flex;flex-shrink:0;position:sticky;top:0;z-index:15}.calendar-day-header{flex:1;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;border-bottom:2px solid var(--bamboo-300);border-right:1px dotted var(--bamboo-400);background:var(--bamboo-100);transition:all var(--transition-fast)}.calendar-day-header:last-child{border-right:none}.calendar-day-bodies{display:flex;flex:1;position:relative}.calendar-day-body{flex:1;min-width:0;display:flex;flex-direction:column;border-right:1px dotted var(--bamboo-400);background:transparent;position:relative}.calendar-day-body:last-child{border-right:none}.calendar-day-body.is-today{background:var(--forest-50)}.calendar-day-header.today{background:var(--forest-400);border-bottom-color:var(--forest-600)}.calendar-day-name{font-size:10px;text-transform:uppercase;color:var(--earth-500);font-weight:700;letter-spacing:.1em;margin-bottom:3px}.calendar-day-header.today .calendar-day-name{color:#fff}.calendar-day-number{font-size:16px;font-weight:800;color:var(--earth-600);line-height:1}.calendar-day-header.today .calendar-day-number:not(.today){color:#fff}.calendar-day-number.today{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--forest-600);color:#fff;border-radius:var(--radius-full);border:2px solid white;font-size:13px;font-weight:800}.calendar-hour-slot{height:60px;flex-shrink:0;border-bottom:1px dotted var(--bamboo-200);cursor:pointer;transition:all var(--transition-fast);position:relative}.calendar-hour-slot:hover{background:var(--bamboo-100)}.calendar-hour-slot:active{background:var(--bamboo-200)}.calendar-hour-slot.current-hour{background:var(--forest-100)}.calendar-current-time-line{position:absolute;left:0;right:0;height:3px;background:var(--accent-red);z-index:20;pointer-events:none;border-radius:2px}.calendar-current-time-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;background:var(--accent-red);border-radius:var(--radius-full);border:2px solid white;animation:boop 1.5s ease-in-out infinite}@keyframes boop{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2)}}.calendar-events-container{position:absolute;top:0;left:4px;right:4px;bottom:0;pointer-events:none}.event-card{position:absolute;border-radius:var(--radius-sm);padding:4px 8px;overflow:hidden;cursor:pointer;pointer-events:auto;font-size:11px;border:2px solid currentColor;box-shadow:2px 2px 0 currentColor;transform:translate(0);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.event-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 currentColor;z-index:100!important}.event-card:active{transform:translate(1px,1px);box-shadow:1px 1px 0 currentColor}.event-card:focus{outline:3px solid var(--forest-500);outline-offset:2px}.event-card-drag-preview{opacity:.8;border:2px dashed var(--forest-600)!important;box-shadow:0 4px 12px #00000040!important;pointer-events:none;animation:dragPulse .5s ease-in-out infinite alternate}@keyframes dragPulse{0%{opacity:.7}to{opacity:.9}}.event-card[style*="cursor: grab"]:hover{cursor:grab}.event-card[style*="cursor: grab"]:active{cursor:grabbing}.event-card-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.event-card-time{font-size:9px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.event-card-location{font-size:9px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:2px}[data-theme=dark] .calendar-grid-wrapper{background:var(--bamboo-100);border-color:var(--oak-400);box-shadow:4px 4px 0 var(--oak-300)}[data-theme=dark] .calendar-time-column{background:var(--oak-200);border-right-color:var(--oak-400)}[data-theme=dark] .calendar-time-header{background:var(--oak-200)}[data-theme=dark] .calendar-time-label{color:var(--bamboo-600);background:var(--oak-200)}[data-theme=dark] .calendar-time-slot{border-bottom-color:var(--oak-400)}[data-theme=dark] .calendar-time-allday{background:var(--oak-200);border-bottom-color:var(--oak-400)}[data-theme=dark] .calendar-time-allday-label{color:var(--bamboo-600)}[data-theme=dark] .calendar-day-header{background:var(--bamboo-200);border-bottom-color:var(--bamboo-400);border-right-color:var(--bamboo-400)}[data-theme=dark] .calendar-day-name{color:var(--bamboo-500)}[data-theme=dark] .calendar-day-number{color:var(--bamboo-600)}[data-theme=dark] .calendar-day-body{border-right-color:var(--bamboo-400)}[data-theme=dark] .calendar-day-body.is-today{background:var(--forest-100)}[data-theme=dark] .calendar-hour-slot{border-bottom-color:var(--bamboo-300)}[data-theme=dark] .calendar-hour-slot:hover{background:var(--bamboo-200)}[data-theme=dark] .calendar-hour-slot:active{background:var(--bamboo-300)}[data-theme=dark] .calendar-hour-slot.current-hour{background:var(--forest-200)}[data-theme=dark] .calendar-title{color:var(--bamboo-600)}[data-theme=dark] .calendar-allday-cell{background:var(--bamboo-100);border-right-color:var(--bamboo-400)}[data-theme=dark] .calendar-allday-cell.is-today{background:var(--forest-100)}[data-theme=dark] .calendar-allday-row{border-bottom-color:var(--bamboo-400)}@media (max-width: 768px){.calendar-time-column{width:52px}.calendar-time-label{font-size:10px}.calendar-day-header{height:46px}.calendar-day-name{font-size:9px}.calendar-day-number{font-size:15px}.calendar-day-number.today{width:28px;height:28px}.event-card{font-size:11px;padding:4px 6px}.event-card-time{font-size:9px}.calendar-header{gap:10px;flex-wrap:wrap}.calendar-title{font-size:17px;order:3;width:100%;margin-top:8px}.calendar-actions{margin-left:auto}}@media (max-width: 480px){.calendar-nav-btn{width:32px;height:32px}.calendar-today-btn{padding:6px 12px;font-size:12px}}.chat{display:flex;flex-direction:column;height:100%;min-height:400px}.chat-header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:2px dashed var(--forest-400);margin-bottom:16px;flex-shrink:0}.chat-title{font-size:17px;font-weight:800;color:var(--earth-600);margin:0;letter-spacing:-.02em}.chat-status{display:flex;align-items:center;gap:6px;margin-left:auto;padding:4px 12px;background:var(--forest-100);border-radius:var(--radius-full);border:2px solid var(--forest-300)}.status-dot{width:10px;height:10px;border-radius:var(--radius-full);border:2px solid white}.status-dot.connected{background:var(--forest-500);animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1)}75%{transform:scale(1.1)}}.status-dot.disconnected{background:var(--error);animation:none}.status-text{font-size:11px;color:var(--earth-600);font-weight:600}.chat-clear-btn{padding:6px 12px;font-size:12px}.chat-messages{flex:1;overflow-y:auto;padding-right:6px;min-height:0;scroll-behavior:smooth}.chat-empty{text-align:center;padding:40px 20px;color:var(--earth-500)}.chat-empty-icon{font-size:64px;margin-bottom:16px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.chat-empty h3{font-size:20px;font-weight:800;color:var(--earth-600);margin-bottom:8px;letter-spacing:-.02em}.chat-empty p{font-size:14px;margin-bottom:20px;color:var(--earth-500)}.chat-empty ul{list-style:none;text-align:left;max-width:300px;margin:0 auto;background:var(--bamboo-100);border-radius:var(--radius-lg);padding:12px;border:2px dashed var(--oak-300)}.chat-empty li{font-size:13px;color:var(--earth-600);padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-bounce);font-weight:600}.chat-empty li:hover{background:#fff;color:var(--forest-600);transform:translate(6px);box-shadow:3px 3px 0 var(--forest-300)}.chat-message{display:flex;gap:12px;margin-bottom:20px;padding:0 4px;animation:popIn .3s var(--transition-bounce)}@keyframes popIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-message.user{flex-direction:row-reverse}.message-avatar{width:38px;height:38px;border-radius:var(--radius-full);background:var(--oak-200);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;border:2px solid var(--oak-400)}.chat-message.user .message-avatar{background:var(--bamboo-200);border-color:var(--bamboo-400)}.chat-message.assistant .message-avatar{background:var(--forest-200);border-color:var(--forest-400)}.message-content{max-width:85%;min-width:0}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.chat-message.user .message-header{flex-direction:row-reverse}.message-sender{font-size:12px;font-weight:700;color:var(--earth-600);letter-spacing:-.01em}.message-time{font-size:10px;color:var(--earth-400);font-weight:500}.message-text{font-size:14px;line-height:1.6;color:var(--earth-700);background:var(--bamboo-50);padding:12px 16px;border-radius:var(--radius-lg);word-wrap:break-word;border:2px solid var(--oak-300);box-shadow:3px 3px 0 var(--oak-200)}.chat-message.user .message-text{background:var(--forest-500);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);border:3px solid var(--forest-700);box-shadow:3px 3px 0 var(--forest-600)}.chat-message.assistant .message-text{background:#fff;border:2px solid var(--forest-300);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);box-shadow:3px 3px 0 var(--forest-200)}.typing-cursor{animation:blink .8s step-end infinite;color:var(--forest-500);font-weight:700;margin-left:2px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.markdown-content{display:inline}.markdown-content .md-bold{font-weight:700}.markdown-content .md-italic{font-style:italic}.markdown-content .md-list{margin:8px 0;padding-left:20px}.markdown-content .md-list-item{margin:4px 0}.message-tool-calls{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.tool-call{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:var(--oak-100);border-radius:var(--radius-full);font-size:11px;color:var(--earth-600);font-weight:600;border:2px solid var(--oak-300);transition:all var(--transition-bounce)}.tool-call.executing{background:#fef3c7;border-color:#f59e0b;color:#b45309;animation:wiggle-tool .5s ease-in-out infinite}@keyframes wiggle-tool{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}.tool-call.success{background:var(--forest-100);border-color:var(--forest-400);color:var(--forest-700)}.tool-call.error{background:#fee2e2;border-color:var(--error);color:var(--error)}.tool-call-icon{font-size:10px}.message-events{margin-top:12px;display:flex;flex-direction:column;gap:8px}.created-event{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:2px solid var(--oak-300);border-radius:var(--radius-md);transition:all var(--transition-bounce);box-shadow:3px 3px 0 var(--oak-200)}.created-event:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--forest-300);border-color:var(--forest-400)}.event-icon{font-size:22px}.event-details{display:flex;flex-direction:column;gap:2px}.event-title{font-size:14px;font-weight:700;color:var(--earth-700);letter-spacing:-.01em}.event-time{font-size:12px;color:var(--earth-500);font-weight:500}.tool-indicator{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#fef3c7;border-radius:var(--radius-md);margin-bottom:16px;border:2px solid #f59e0b;box-shadow:3px 3px #d97706;animation:popIn .3s var(--transition-bounce)}.tool-indicator-spinner{width:18px;height:18px;border:3px solid #fcd34d;border-top-color:#f59e0b;border-radius:var(--radius-full);animation:spin .8s linear infinite}.tool-indicator-content{display:flex;align-items:center;gap:10px}.tool-indicator-action{font-size:13px;font-weight:700;color:#b45309}.tool-indicator-iteration{font-size:11px;color:#d97706;font-weight:600;padding:2px 10px;background:#fff;border-radius:var(--radius-full);border:1px solid #f59e0b}.chat-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fee2e2;border-radius:var(--radius-md);color:var(--error);font-size:13px;margin-bottom:16px;border:2px solid var(--error);font-weight:600;box-shadow:3px 3px #fca5a5;animation:shake .4s ease-out}.error-icon{font-size:18px}.retry-btn{margin-left:auto;padding:6px 12px;font-size:12px;background:#fff;border:2px solid var(--error);border-radius:var(--radius-md);color:var(--error);cursor:pointer;transition:all var(--transition-bounce);font-weight:700;box-shadow:2px 2px 0 var(--error)}.retry-btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--error)}.retry-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--error)}.chat-input-form{display:flex;gap:12px;margin-top:16px;flex-shrink:0;padding-top:16px;border-top:2px dashed var(--forest-400)}.chat-input{flex:1;padding:14px 18px;font-size:14px;border:3px solid var(--oak-400);border-radius:var(--radius-xl);outline:none;transition:all var(--transition-fast);background:#fff;color:var(--earth-700);box-shadow:3px 3px 0 var(--oak-300)}.chat-input::placeholder{color:var(--earth-400)}.chat-input:hover{border-color:var(--forest-400)}.chat-input:focus{border-color:var(--forest-500);box-shadow:4px 4px 0 var(--forest-300)}.chat-input:disabled{background:var(--bamboo-100);color:var(--earth-400);cursor:not-allowed;box-shadow:2px 2px 0 var(--oak-200)}.chat-send-btn{width:48px;height:48px;padding:0;border-radius:var(--radius-full);font-size:18px;flex-shrink:0}.chat-send-btn:hover:not(:disabled){transform:translate(-2px,-2px) scale(1.05)}.chat-send-btn:active:not(:disabled){transform:translate(2px,2px) scale(.95)}.send-icon{font-weight:700;font-size:20px}.send-loading{font-size:8px;animation:pulse 1s infinite;letter-spacing:2px}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:var(--forest-50);border-radius:var(--radius-full)}.chat-messages::-webkit-scrollbar-thumb{background:var(--forest-300);border-radius:var(--radius-full);border:2px solid var(--forest-50)}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--forest-400)}[data-theme=dark] .chat-title{color:var(--bamboo-600)}[data-theme=dark] .chat-status{background:var(--forest-200);border-color:var(--forest-400)}[data-theme=dark] .status-text,[data-theme=dark] .chat-empty h3{color:var(--bamboo-600)}[data-theme=dark] .chat-empty p{color:var(--bamboo-500)}[data-theme=dark] .chat-empty ul{background:var(--bamboo-200);border-color:var(--oak-400)}[data-theme=dark] .chat-empty li{color:var(--bamboo-600)}[data-theme=dark] .chat-empty li:hover{background:var(--bamboo-100);color:var(--forest-500)}[data-theme=dark] .message-sender{color:var(--bamboo-600)}[data-theme=dark] .message-text{background:var(--bamboo-200);color:var(--bamboo-700);border-color:var(--oak-400);box-shadow:3px 3px 0 var(--oak-300)}[data-theme=dark] .chat-message.assistant .message-text{background:var(--bamboo-100);border-color:var(--forest-400);box-shadow:3px 3px 0 var(--forest-300)}[data-theme=dark] .created-event{background:var(--bamboo-100);border-color:var(--oak-400);box-shadow:3px 3px 0 var(--oak-300)}[data-theme=dark] .event-title{color:var(--bamboo-700)}[data-theme=dark] .event-time{color:var(--bamboo-500)}[data-theme=dark] .chat-input{background:var(--bamboo-100);color:var(--bamboo-700);border-color:var(--oak-400);box-shadow:3px 3px 0 var(--oak-300)}[data-theme=dark] .chat-input::placeholder{color:var(--bamboo-500)}[data-theme=dark] .chat-input:focus{border-color:var(--forest-500);box-shadow:4px 4px 0 var(--forest-400)}[data-theme=dark] .chat-input:disabled{background:var(--bamboo-200);color:var(--bamboo-500)}[data-theme=dark] .tool-call{background:var(--oak-200);border-color:var(--oak-400);color:var(--bamboo-600)}[data-theme=dark] .chat-messages::-webkit-scrollbar-track{background:var(--forest-100)}[data-theme=dark] .chat-messages::-webkit-scrollbar-thumb{background:var(--forest-400);border-color:var(--forest-100)}@media (max-width: 768px){.chat-header{gap:8px;flex-wrap:wrap}.chat-title{font-size:15px}.chat-status{padding:3px 8px}.status-text{display:none}.message-content{max-width:90%}.message-text{padding:10px 14px;font-size:13px}.chat-input{padding:12px 16px;font-size:13px}.chat-send-btn{width:44px;height:44px}}.event-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:overlayFade .2s ease-out}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}.event-modal{background:#fff;border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:modalSlide .3s ease-out}@keyframes modalSlide{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.event-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--gray-100);background:linear-gradient(180deg,var(--gray-50) 0%,white 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.event-modal-header h2{font-size:20px;font-weight:700;color:var(--gray-800);margin:0;letter-spacing:-.02em}.event-modal-close{width:36px;height:36px;border:none;background:var(--gray-100);font-size:20px;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.event-modal-close:hover{background:var(--gray-200);color:var(--gray-700);transform:rotate(90deg)}.event-modal form{padding:24px 28px 28px}.event-modal-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:var(--error);padding:12px 16px;border-radius:var(--radius-md);font-size:13px;margin-bottom:20px;border:1px solid rgba(239,68,68,.2);font-weight:500;display:flex;align-items:center;gap:8px;animation:shake .4s ease-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.event-modal-error:before{content:"!";width:18px;height:18px;background:var(--error);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.event-modal .form-group{margin-bottom:20px}.event-modal .form-group label{display:block;font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:8px;letter-spacing:.01em}.event-modal .form-group input,.event-modal .form-group textarea{width:100%;padding:12px 16px;font-size:14px;border:2px solid var(--gray-200);border-radius:var(--radius-md);outline:none;transition:all var(--transition-fast);font-family:inherit;background:var(--gray-50)}.event-modal .form-group input::placeholder,.event-modal .form-group textarea::placeholder{color:var(--gray-400)}.event-modal .form-group input:hover,.event-modal .form-group textarea:hover{border-color:var(--gray-300)}.event-modal .form-group input:focus,.event-modal .form-group textarea:focus{border-color:var(--primary-500);background:#fff;box-shadow:0 0 0 4px #22c55e1a}.event-modal .form-group textarea{resize:vertical;min-height:100px;line-height:1.5}.event-modal .form-group input[type=datetime-local],.event-modal .form-group input[type=date]{padding:10px 14px;cursor:pointer}.event-modal .form-group input[type=datetime-local]::-webkit-calendar-picker-indicator,.event-modal .form-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:4px;border-radius:var(--radius-sm);background:var(--gray-100);transition:background var(--transition-fast)}.event-modal .form-group input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,.event-modal .form-group input[type=date]::-webkit-calendar-picker-indicator:hover{background:var(--gray-200)}.form-group-checkbox{margin-bottom:16px!important}.checkbox-label{display:flex!important;align-items:center;gap:10px;cursor:pointer;font-weight:500!important;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:20px!important;height:20px!important;padding:0!important;margin:0;accent-color:var(--primary-500);cursor:pointer}.checkbox-label span{font-size:14px;color:var(--gray-700)}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.color-picker{display:flex;gap:10px;flex-wrap:wrap;padding:8px;background:var(--gray-50);border-radius:var(--radius-md)}.color-option{width:36px;height:36px;border-radius:var(--radius-full);border:3px solid transparent;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);position:relative}.color-option:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-full);border:2px solid transparent;transition:border-color var(--transition-fast)}.color-option:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.color-option.selected{border-color:#fff;transform:scale(1.1);box-shadow:var(--shadow-lg)}.color-option.selected:after{border-color:var(--gray-800)}.event-modal-actions{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--gray-100)}.action-spacer{flex:1}.btn-cancel{padding:12px 24px;font-size:14px;font-weight:600;background:transparent;border:2px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-700)}.btn-save{padding:12px 28px;font-size:14px;font-weight:600;background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 8px #22c55e40}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #22c55e59}.btn-save:active:not(:disabled){transform:translateY(0)}.btn-save:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-delete{padding:12px 20px;font-size:14px;font-weight:600;background:transparent;border:2px solid var(--error);border-radius:var(--radius-md);color:var(--error);cursor:pointer;transition:all var(--transition-fast)}.btn-delete:hover:not(:disabled){background:linear-gradient(135deg,#fef2f2,#fee2e2);transform:translateY(-1px)}.btn-delete:active:not(:disabled){transform:translateY(0)}.btn-delete:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-save:disabled:not(.btn-save-error),.btn-delete:disabled:not(.btn-delete-error){position:relative}.btn-save:disabled:not(.btn-save-error):after{content:"";position:absolute;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:var(--radius-full);animation:spin .8s linear infinite;margin-left:8px}@media (max-width: 480px){.event-modal-overlay{padding:12px;align-items:flex-end}.event-modal{max-height:95vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.event-modal-header,.event-modal form{padding:20px}.event-modal-header h2{font-size:18px}.form-row{flex-direction:column;gap:0}.event-modal-actions{flex-wrap:wrap}.btn-delete{order:3;width:100%;margin-top:8px}.btn-cancel,.btn-save{padding:14px 20px}.color-picker{gap:8px}.color-option{width:32px;height:32px}}.event-modal::-webkit-scrollbar{width:6px}.event-modal::-webkit-scrollbar-track{background:transparent}.event-modal::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:var(--radius-full)}.event-modal::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}.form-select,.reminder-add-select{width:100%;padding:12px 36px 12px 16px;font-size:14px;border:2px solid var(--gray-200);border-radius:var(--radius-md);outline:none;transition:all var(--transition-fast);font-family:inherit;background:var(--gray-50);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.form-select:hover,.reminder-add-select:hover{border-color:var(--gray-300)}.form-select:focus,.reminder-add-select:focus{border-color:var(--primary-500);background-color:#fff;box-shadow:0 0 0 4px #22c55e1a}.reminders-container{display:flex;flex-direction:column;gap:12px}.reminder-chips{display:flex;flex-wrap:wrap;gap:8px}.reminder-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 12px;background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-full);font-size:13px;color:var(--primary-700);font-weight:500}.reminder-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--primary-100);border:none;border-radius:var(--radius-full);color:var(--primary-600);cursor:pointer;font-size:14px;line-height:1;transition:all var(--transition-fast)}.reminder-remove:hover{background:var(--primary-200);color:var(--primary-800)}.no-reminders{font-size:13px;color:var(--gray-500);font-style:italic}.reminder-add-select{max-width:200px}[data-theme=dark] .event-modal{background:var(--gray-100)}[data-theme=dark] .event-modal-header{background:linear-gradient(180deg,var(--gray-200) 0%,var(--gray-100) 100%);border-bottom-color:var(--gray-300)}[data-theme=dark] .event-modal-header h2{color:var(--gray-800)}[data-theme=dark] .event-modal-close{background:var(--gray-200);color:var(--gray-500)}[data-theme=dark] .event-modal-close:hover{background:var(--gray-300);color:var(--gray-700)}[data-theme=dark] .event-modal .form-group label{color:var(--gray-700)}[data-theme=dark] .event-modal .form-group input,[data-theme=dark] .event-modal .form-group textarea{background:var(--gray-200);border-color:var(--gray-300);color:var(--gray-800)}[data-theme=dark] .event-modal .form-group input:hover,[data-theme=dark] .event-modal .form-group textarea:hover{border-color:var(--gray-400)}[data-theme=dark] .event-modal .form-group input:focus,[data-theme=dark] .event-modal .form-group textarea:focus{background:var(--gray-200);border-color:var(--primary-500)}[data-theme=dark] .event-modal .form-group input::placeholder,[data-theme=dark] .event-modal .form-group textarea::placeholder{color:var(--gray-500)}[data-theme=dark] .color-picker{background:var(--gray-200)}[data-theme=dark] .event-modal-actions{border-top-color:var(--gray-300)}[data-theme=dark] .btn-cancel{border-color:var(--gray-300);color:var(--gray-600)}[data-theme=dark] .btn-cancel:hover:not(:disabled){background:var(--gray-200);border-color:var(--gray-400);color:var(--gray-700)}[data-theme=dark] .form-select,[data-theme=dark] .reminder-add-select{background-color:var(--gray-200);border-color:var(--gray-300);color:var(--gray-800)}[data-theme=dark] .form-select:hover,[data-theme=dark] .reminder-add-select:hover{border-color:var(--gray-400)}[data-theme=dark] .form-select:focus,[data-theme=dark] .reminder-add-select:focus{background-color:var(--gray-200);border-color:var(--primary-500)}[data-theme=dark] .checkbox-label span{color:var(--gray-700)}[data-theme=dark] .event-modal::-webkit-scrollbar-thumb{background:var(--gray-400)}[data-theme=dark] .event-modal::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-modal{background:#fff;border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040;width:90%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--gray-100);background:var(--gray-50);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.settings-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--gray-500);transition:all var(--transition-fast);flex-shrink:0}.settings-close:hover{background:var(--gray-100);color:var(--gray-700)}.settings-tabs{display:flex;gap:4px;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{display:flex;align-items:center;gap:6px;padding:10px 12px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;color:var(--gray-600);transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.settings-tab:hover{background:#fff;color:var(--gray-800)}.settings-tab.active{background:#fff;color:var(--primary-700);box-shadow:var(--shadow-sm)}.tab-icon{font-size:16px}.tab-label{display:none}@media (min-width: 480px){.tab-label{display:inline}}.settings-content{flex:1;overflow-y:auto;padding:24px}.tab-loading{text-align:center;padding:40px;color:var(--gray-500)}.section{margin-bottom:24px}.section:last-child{margin-bottom:0}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-size:14px;font-weight:600;color:var(--gray-700);margin:0;display:flex;align-items:center;gap:8px}.section-description{font-size:13px;color:var(--gray-500);margin:0 0 16px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--primary-100);color:var(--primary-700);border-radius:var(--radius-full);font-size:11px;font-weight:600}.add-friend-form{display:flex;gap:8px}.add-form{background:var(--gray-50);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group:last-of-type{margin-bottom:0}.form-label{display:block;font-size:12px;font-weight:600;color:var(--gray-700);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:#fff;transition:all var(--transition-fast)}.form-input:hover{border-color:var(--gray-300)}.form-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #22c55e1a}.form-hint{display:block;font-size:11px;color:var(--gray-500);margin-top:4px}.form-checkbox{display:flex;flex-direction:column;gap:4px}.form-checkbox label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--gray-700);cursor:pointer}.form-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-500)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--gray-800);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--gray-300)}.expires-input{display:flex;align-items:center;gap:8px}.expires-input .form-input{width:100px}.expires-label{font-size:14px;color:var(--gray-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:12px}.btn-primary{background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.btn-success{background:var(--primary-100);color:var(--primary-700)}.btn-success:hover:not(:disabled){background:var(--primary-200)}.btn-danger{background:#fef2f2;color:var(--error)}.btn-danger:hover:not(:disabled){background:#fee2e2}.btn-warning{background:#fef3c7;color:#b45309}.btn-warning:hover:not(:disabled){background:#fde68a}.btn-ghost{background:transparent;color:var(--gray-600)}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--gray-800)}.alert{padding:10px 14px;border-radius:var(--radius-md);font-size:13px;margin-top:12px}.alert-error{background:#fef2f2;color:var(--error);border:1px solid #fecaca}.alert-success{background:var(--primary-50);color:var(--primary-700);border:1px solid var(--primary-200)}.list{display:flex;flex-direction:column;gap:8px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--gray-50);border-radius:var(--radius-md);transition:background var(--transition-fast)}.list-item:hover{background:var(--gray-100)}.list-item-info{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.list-item-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary-100) 0%,var(--primary-200) 100%);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--primary-700);flex-shrink:0}.list-item-details{display:flex;flex-direction:column;gap:2px;min-width:0}.list-item-name{font-size:14px;font-weight:500;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-sub{font-size:12px;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.status-badge{padding:4px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:500}.status-badge.pending{background:#fef3c7;color:#b45309}.subscription-color{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.sync-error{color:var(--error);font-weight:500}.sync-btn svg.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-btn.syncing{opacity:.7;cursor:wait}.visibility-btn{color:var(--primary-600)}.visibility-btn.hidden-cal{color:var(--gray-400)}.subscription-hidden{opacity:.6}.subscription-hidden .subscription-color{opacity:.4}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gray-300);border-radius:var(--radius-full);transition:all var(--transition-fast)}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:var(--radius-full);transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.toggle-switch input:checked+.toggle-slider{background:var(--primary-500)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.feed-status{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.feed-status.active{background:var(--primary-500)}.feed-status.inactive{background:var(--gray-400)}.feed-item.revoked{opacity:.6}.revoked-badge{margin-left:8px;padding:2px 6px;background:var(--gray-200);color:var(--gray-600);border-radius:var(--radius-sm);font-size:10px;font-weight:500}.token-alert{background:linear-gradient(135deg,var(--primary-50) 0%,var(--primary-100) 100%);border:1px solid var(--primary-200);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px}.token-alert-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.token-alert-header h4{margin:0;font-size:14px;font-weight:600;color:var(--primary-800)}.token-alert-icon{font-size:18px}.token-alert-warning{font-size:12px;color:var(--primary-700);margin:0 0 12px}.token-display{display:flex;align-items:center;gap:8px;background:#fff;border-radius:var(--radius-md);padding:8px 12px;margin-bottom:12px}.token-display code{flex:1;font-size:11px;color:var(--gray-700);word-break:break-all}.token-section{margin-bottom:12px}.token-section:last-of-type{margin-bottom:16px}.token-section-label{display:block;font-size:11px;font-weight:500;color:var(--gray-600);margin-bottom:6px}.quick-add-section{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.quick-add-label{font-size:12px;font-weight:500;color:var(--gray-600)}.btn-google{background:#fff;color:#3c4043;border:1px solid var(--gray-200);font-weight:500}.btn-google:hover:not(:disabled){background:#f8f9fa;border-color:#dadce0;box-shadow:0 1px 3px #3c404326}.btn-apple{background:#000;color:#fff;border:1px solid #000000;font-weight:500}.btn-apple:hover:not(:disabled){background:#1d1d1f;box-shadow:0 2px 8px #00000040}.btn-apple svg{margin-top:-1px}.done-btn{width:100%;margin-top:8px}.empty-state{text-align:center;padding:32px 20px;color:var(--gray-500)}.empty-icon{font-size:40px;display:block;margin-bottom:12px}.empty-state p{margin:0;font-size:14px}.empty-hint{margin-top:4px!important;font-size:12px!important;color:var(--gray-400)!important}.empty-state-card{text-align:center;padding:32px 24px;background:var(--gray-50);border:2px dashed var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.empty-state-card:hover{border-color:var(--primary-300);background:var(--primary-50)}.empty-providers{display:flex;justify-content:center;gap:16px;margin-bottom:16px}.empty-provider-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.empty-provider-icon svg{width:24px;height:24px}.empty-title{font-size:16px;font-weight:600;color:var(--gray-800);margin:0 0 4px}.empty-subtitle{font-size:13px;color:var(--gray-500);margin:0 0 12px}.empty-cta{font-size:13px;font-weight:500;color:var(--primary-600)}.import-title{font-size:18px;font-weight:600;color:var(--gray-800);margin:16px 0 4px;text-align:center}.import-subtitle{font-size:13px;color:var(--gray-500);text-align:center;margin:0 0 20px}.provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.provider-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;background:var(--gray-50);border:2px solid var(--gray-100);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.provider-card:hover{background:#fff;border-color:var(--gray-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.provider-card.selected{border-color:var(--primary-500);background:var(--primary-50)}.provider-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.provider-icon svg{width:24px;height:24px}.provider-name{font-size:13px;font-weight:500;color:var(--gray-700);text-align:center}.clipboard-detected{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:10px 16px;background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);font-size:13px;color:var(--primary-700)}.clipboard-icon{font-size:16px}.provider-header{display:flex;align-items:center;gap:14px;margin:16px 0;padding:16px;background:var(--gray-50);border-radius:var(--radius-lg)}.provider-icon-large{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-shrink:0}.provider-icon-large svg{width:28px;height:28px}.provider-info{flex:1;min-width:0}.provider-title{font-size:16px;font-weight:600;color:var(--gray-800);margin:0 0 4px}.provider-help-link{font-size:12px;color:var(--primary-600);text-decoration:none}.provider-help-link:hover{text-decoration:underline}.instructions-box{background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--radius-md);padding:12px 14px;margin-bottom:16px}.instructions-label{display:block;font-size:11px;font-weight:600;color:#b45309;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.instructions-text{font-size:13px;color:#92400e;margin:0;line-height:1.5}.profile-card{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,var(--primary-50) 0%,var(--primary-100) 100%);border-radius:var(--radius-lg);margin-bottom:24px}.profile-avatar{width:56px;height:56px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #22c55e40}.profile-info{flex:1;min-width:0}.profile-name{font-size:18px;font-weight:600;color:var(--gray-800);margin-bottom:2px}.profile-email{font-size:14px;color:var(--gray-600)}.edit-name-form{display:flex;flex-direction:column;gap:12px}.edit-name-actions{display:flex;gap:8px}.signout-item{border:1px solid #fecaca;background:#fef2f2}.signout-item:hover{background:#fee2e2}[data-theme=dark] .settings-modal{background:var(--gray-100)}[data-theme=dark] .settings-header{background:var(--gray-200);border-bottom-color:var(--gray-300)}[data-theme=dark] .settings-close{background:var(--gray-100);color:var(--gray-500)}[data-theme=dark] .settings-close:hover{background:var(--gray-300);color:var(--gray-700)}[data-theme=dark] .settings-tab{color:var(--gray-500)}[data-theme=dark] .settings-tab:hover{background:var(--gray-100);color:var(--gray-700)}[data-theme=dark] .settings-tab.active{background:var(--gray-100);color:var(--primary-600)}[data-theme=dark] .section-title{color:var(--gray-700)}[data-theme=dark] .section-description{color:var(--gray-500)}[data-theme=dark] .form-input{background:var(--gray-200);border-color:var(--gray-300);color:var(--gray-800)}[data-theme=dark] .form-input:hover{border-color:var(--gray-400)}[data-theme=dark] .form-input:focus{border-color:var(--primary-500);background:var(--gray-200)}[data-theme=dark] .list-item{background:var(--gray-200)}[data-theme=dark] .list-item:hover{background:var(--gray-300)}[data-theme=dark] .list-item-name{color:var(--gray-800)}[data-theme=dark] .list-item-sub{color:var(--gray-500)}[data-theme=dark] .profile-card{background:linear-gradient(135deg,var(--primary-200) 0%,var(--primary-300) 100%)}[data-theme=dark] .profile-name{color:var(--gray-800)}[data-theme=dark] .profile-email{color:var(--gray-600)}[data-theme=dark] .add-form{background:var(--gray-200)}[data-theme=dark] .form-actions{border-top-color:var(--gray-300)}[data-theme=dark] .token-display{background:var(--gray-200)}[data-theme=dark] .token-display code{color:var(--gray-700)}[data-theme=dark] .empty-state-card{background:var(--gray-200);border-color:var(--gray-300)}[data-theme=dark] .empty-state-card:hover{background:var(--primary-200);border-color:var(--primary-400)}[data-theme=dark] .empty-provider-icon{background:var(--gray-100)}[data-theme=dark] .empty-title{color:var(--gray-800)}[data-theme=dark] .provider-card{background:var(--gray-200);border-color:var(--gray-300)}[data-theme=dark] .provider-card:hover{background:var(--gray-100);border-color:var(--gray-400)}[data-theme=dark] .provider-card.selected{background:var(--primary-200);border-color:var(--primary-500)}[data-theme=dark] .provider-icon{background:var(--gray-100)}[data-theme=dark] .provider-name{color:var(--gray-700)}[data-theme=dark] .provider-header{background:var(--gray-200)}[data-theme=dark] .provider-icon-large{background:var(--gray-100)}[data-theme=dark] .provider-title{color:var(--gray-800)}.theme-options{display:flex;flex-direction:column;gap:8px}.theme-option{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{background:var(--gray-100)}.theme-option.selected{background:var(--primary-50);border-color:var(--primary-500)}.theme-option input[type=radio]{display:none}.theme-option-icon{font-size:24px;flex-shrink:0}.theme-option-content{flex:1;display:flex;flex-direction:column;gap:2px}.theme-option-label{font-size:14px;font-weight:600;color:var(--gray-800)}.theme-option-description{font-size:12px;color:var(--gray-500)}.theme-option.selected .theme-option-label{color:var(--primary-700)}.theme-option-check{color:var(--primary-600);flex-shrink:0}[data-theme=dark] .theme-option{background:transparent;border-color:var(--gray-300)}[data-theme=dark] .theme-option:hover{background:var(--gray-200);border-color:var(--gray-400)}[data-theme=dark] .theme-option.selected{background:var(--primary-200);border-color:var(--primary-500)}[data-theme=dark] .theme-option-label{color:var(--gray-800)}[data-theme=dark] .theme-option-description{color:var(--gray-500)}[data-theme=dark] .theme-option.selected .theme-option-label{color:var(--primary-700)}@media (max-width: 480px){.settings-modal{width:95%;max-height:90vh}.settings-header{padding:16px 20px}.settings-tabs{padding:12px 16px}.settings-content{padding:16px}.add-friend-form{flex-direction:column}.list-item{flex-direction:column;align-items:flex-start;gap:12px}.list-item-actions{width:100%;justify-content:flex-end}}.header-menu{position:relative}.header-menu-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--oak-100);border:2px solid var(--oak-400);border-radius:var(--radius-md);color:var(--earth-600);cursor:pointer;transition:all var(--transition-bounce);box-shadow:3px 3px 0 var(--oak-400)}.header-menu-button:hover{background:var(--oak-200);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--oak-400)}.header-menu-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--oak-400)}.header-menu-button svg{stroke:var(--earth-700)}.header-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--bamboo-50);border:2px solid var(--oak-400);border-radius:var(--radius-md);box-shadow:4px 4px 0 var(--oak-400);padding:6px;z-index:200;animation:menuDropIn .15s ease-out}@keyframes menuDropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--earth-600);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast);text-align:left}.header-menu-item:hover{background:var(--oak-100)}.header-menu-item svg{flex-shrink:0;stroke:var(--earth-600)}.menu-item-icon{font-size:16px;flex-shrink:0}.header-menu-divider{height:1px;background:var(--oak-300);margin:6px 8px}[data-theme=dark] .header-menu-button{background:var(--oak-200);border-color:var(--oak-400);box-shadow:3px 3px 0 var(--oak-300)}[data-theme=dark] .header-menu-button:hover{background:var(--oak-300)}[data-theme=dark] .header-menu-button svg{stroke:var(--bamboo-600)}[data-theme=dark] .header-menu-dropdown{background:var(--bamboo-100);border-color:var(--oak-400);box-shadow:4px 4px 0 var(--oak-300)}[data-theme=dark] .header-menu-item{color:var(--bamboo-600)}[data-theme=dark] .header-menu-item:hover{background:var(--oak-200)}[data-theme=dark] .header-menu-item svg{stroke:var(--bamboo-600)}[data-theme=dark] .header-menu-divider{background:var(--oak-400)}:root{--forest-50: #e8f5e9;--forest-100: #c8e6c9;--forest-200: #a5d6a7;--forest-300: #81c784;--forest-400: #66bb6a;--forest-500: #2e7d32;--forest-600: #1b5e20;--forest-700: #145214;--bamboo-50: #faf9f7;--bamboo-100: #f5f3f0;--bamboo-200: #ebe7e1;--bamboo-300: #ddd7ce;--bamboo-400: #c9c1b5;--bamboo-500: #a89f91;--bamboo-600: #8a8074;--bamboo-700: #6b6257;--oak-50: #fdf8f3;--oak-100: #f5e6d3;--oak-200: #e8d4b8;--oak-300: #d4b896;--oak-400: #c4a57b;--oak-500: #8b6914;--oak-600: #6b4423;--oak-700: #4a3728;--earth-50: #f5f0eb;--earth-100: #e6ddd4;--earth-200: #d4c4b0;--earth-300: #b8a089;--earth-400: #9c7c5c;--earth-500: #5d4037;--earth-600: #4e342e;--earth-700: #3e2723;--primary-50: var(--forest-50);--primary-100: var(--forest-100);--primary-200: var(--forest-200);--primary-300: var(--forest-300);--primary-400: var(--forest-400);--primary-500: var(--forest-500);--primary-600: var(--forest-600);--primary-700: var(--forest-700);--primary-800: #0d3d0d;--primary-900: #082808;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--accent-blue: #3b82f6;--accent-purple: #8b5cf6;--accent-pink: #ec4899;--accent-orange: #f97316;--accent-red: #ef4444;--accent-teal: #14b8a6;--success: #2e7d32;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6;--shadow-sm: 0 2px 4px rgba(93, 64, 55, .08);--shadow-md: 0 4px 12px rgba(93, 64, 55, .1);--shadow-lg: 0 8px 24px rgba(93, 64, 55, .12);--shadow-xl: 0 16px 32px rgba(93, 64, 55, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--radius-blob: 60% 40% 50% 50% / 50% 50% 40% 60%;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--forest-50: #0d1f1a;--forest-100: #132e25;--forest-200: #1a4033;--forest-300: #245542;--forest-400: #2e7d32;--forest-500: #4caf50;--forest-600: #81c784;--forest-700: #a5d6a7;--bamboo-50: #1a1917;--bamboo-100: #242320;--bamboo-200: #2e2d29;--bamboo-300: #3d3b35;--bamboo-400: #4d4a42;--bamboo-500: #6b6557;--bamboo-600: #8a8274;--bamboo-700: #a89f91;--oak-50: #1f1a14;--oak-100: #2a231a;--oak-200: #3d3126;--oak-300: #524433;--oak-400: #6b5842;--oak-500: #8b6914;--oak-600: #c4a57b;--oak-700: #d4b896;--earth-50: #1a1614;--earth-100: #252019;--earth-200: #332c24;--earth-300: #4a3f33;--earth-400: #5d4f42;--earth-500: #8b7355;--earth-600: #b8a089;--earth-700: #d4c4b0;--primary-50: var(--forest-50);--primary-100: var(--forest-100);--primary-200: var(--forest-200);--primary-300: var(--forest-300);--primary-400: var(--forest-400);--primary-500: var(--forest-500);--primary-600: var(--forest-600);--primary-700: var(--forest-700);--primary-800: #c8e6c9;--primary-900: #e8f5e9;--gray-50: #111827;--gray-100: #1f2937;--gray-200: #374151;--gray-300: #4b5563;--gray-400: #6b7280;--gray-500: #9ca3af;--gray-600: #d1d5db;--gray-700: #e5e7eb;--gray-800: #f3f4f6;--gray-900: #f9fafb;--accent-blue: #60a5fa;--accent-purple: #a78bfa;--accent-pink: #f472b6;--accent-orange: #fb923c;--accent-red: #f87171;--accent-teal: #2dd4bf;--success: #4ade80;--warning: #fbbf24;--error: #f87171;--info: #60a5fa;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 16px 32px rgba(0, 0, 0, .6)}[data-theme=dark] body{background:#0d1612;color:var(--bamboo-700)}[data-theme=dark] .loading-container{background:#0d1612}[data-theme=dark] .loading-container p{color:var(--bamboo-500)}[data-theme=dark] .loading-spinner{border-color:var(--primary-300);border-top-color:var(--primary-500)}[data-theme=dark] .app-header{background:var(--bamboo-100);border-bottom-color:var(--oak-400)}[data-theme=dark] .app-logo{color:var(--forest-600)}[data-theme=dark] .user-email{background:var(--oak-200);border-color:var(--oak-400);color:var(--earth-700)}[data-theme=dark] .calendar-section{background:var(--bamboo-100);border-color:var(--oak-400);box-shadow:6px 6px 0 var(--oak-200)}[data-theme=dark] .chat-section{background:var(--forest-100);border-color:var(--forest-400);box-shadow:6px 6px 0 var(--forest-200)}[data-theme=dark] .auth-modal{background:var(--gray-100)}[data-theme=dark] .auth-modal h2{color:var(--gray-800)}[data-theme=dark] .form-group label{color:var(--gray-700)}[data-theme=dark] .form-group input{background:var(--gray-200);border-color:var(--gray-300);color:var(--gray-800)}[data-theme=dark] .form-group input:focus{background:var(--gray-200);border-color:var(--primary-500)}[data-theme=dark] .btn-google{background:var(--gray-200);border-color:var(--gray-300);color:var(--gray-700)}[data-theme=dark] .btn-google:hover{background:var(--gray-300)}[data-theme=dark] .auth-toggle{color:var(--gray-500)}[data-theme=dark] .auth-divider{color:var(--earth-600)}[data-theme=dark] .auth-divider:before,[data-theme=dark] .auth-divider:after{background:var(--oak-400)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--gray-400)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}[data-theme=dark] ::selection{background:var(--primary-400);color:var(--gray-900)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:#1a3a2f;background-attachment:fixed;color:var(--earth-700);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:20px;background:#1a3a2f}.loading-spinner{width:56px;height:56px;border:3px solid var(--primary-100);border-top-color:var(--primary-500);border-radius:50%;animation:spin .8s cubic-bezier(.5,0,.5,1) infinite}.loading-container p{font-size:15px;color:var(--gray-300);font-weight:500;letter-spacing:.01em}@keyframes spin{to{transform:rotate(360deg)}}.app-container{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:var(--bamboo-50);border-bottom:3px dashed var(--oak-300);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center}.app-logo{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:800;color:var(--forest-600);letter-spacing:-.02em}.logo-icon{font-size:36px;animation:wiggle 2s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.header-right{display:flex;align-items:center;gap:14px}.user-email{font-size:13px;color:var(--earth-600);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 14px;background:var(--oak-100);border-radius:var(--radius-full);border:2px dotted var(--oak-400);font-weight:500}.btn-primary,.calendar-today-btn,.chat-send-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;background:var(--forest-500);color:#fff;border:3px solid var(--forest-700);border-radius:var(--radius-lg);font-size:14px;font-weight:700;cursor:pointer;transition:all var(--transition-bounce);box-shadow:4px 4px 0 var(--forest-700)}.btn-primary:hover:not(:disabled),.calendar-today-btn:hover:not(:disabled),.chat-send-btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--forest-700)}.btn-primary:active:not(:disabled),.calendar-today-btn:active:not(:disabled),.chat-send-btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:2px 2px 0 var(--forest-700)}.btn-primary:disabled,.calendar-today-btn:disabled,.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:2px 2px 0 var(--forest-700)}.btn-secondary,.chat-clear-btn,.calendar-nav-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:var(--oak-100);color:var(--earth-600);border:2px solid var(--oak-400);border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-bounce);box-shadow:3px 3px 0 var(--oak-400)}.btn-secondary:hover:not(:disabled),.chat-clear-btn:hover:not(:disabled),.calendar-nav-btn:hover:not(:disabled){background:var(--oak-200);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--oak-400)}.btn-secondary:active:not(:disabled),.chat-clear-btn:active:not(:disabled),.calendar-nav-btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--oak-400)}.btn-secondary:disabled,.chat-clear-btn:disabled,.calendar-nav-btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--oak-100);border:2px solid var(--oak-400);border-radius:var(--radius-md);color:var(--earth-600);cursor:pointer;transition:all var(--transition-bounce);box-shadow:3px 3px 0 var(--oak-400)}.btn-icon:hover{background:var(--oak-200);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--oak-400)}.btn-icon svg{display:block;width:20px;height:20px;stroke:var(--earth-700)!important;stroke-width:2!important;fill:none!important}.app-main{flex:1;display:flex;gap:20px;padding:20px;min-height:0;height:calc(100vh - 70px);overflow:hidden}.calendar-section{flex:1;background:var(--bamboo-50);border-radius:var(--radius-xl);padding:24px;border:3px solid var(--oak-400);box-shadow:6px 6px 0 var(--oak-300);min-width:0;display:flex;flex-direction:column;overflow:hidden}.chat-section{width:400px;flex-shrink:0;background:var(--forest-50);border-radius:var(--radius-xl);padding:24px;border:3px solid var(--forest-400);box-shadow:6px 6px 0 var(--forest-300);display:flex;flex-direction:column;overflow:hidden}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.auth-modal{background:#fff;padding:36px;border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl);animation:modalEnter .3s ease-out}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-modal h2{margin-bottom:28px;text-align:center;font-size:26px;font-weight:700;color:var(--gray-800);letter-spacing:-.02em}.auth-error{background:#fee2e2;color:var(--error);padding:14px 18px;border-radius:var(--radius-md);margin-bottom:20px;font-size:14px;font-weight:500;border:2px solid var(--error)}.form-group{margin-bottom:18px}.form-group label{display:block;margin-bottom:8px;font-weight:600;font-size:13px;color:var(--gray-700);letter-spacing:.01em}.form-group input{width:100%;padding:14px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:15px;transition:all var(--transition-fast);background:var(--gray-50)}.form-group input:hover{border-color:var(--gray-300)}.form-group input:focus{outline:none;border-color:var(--primary-500);background:#fff;box-shadow:0 0 0 4px #2e7d3226}.auth-divider{text-align:center;margin:24px 0;color:var(--earth-500);font-size:13px;font-weight:500;position:relative}.auth-divider:before,.auth-divider:after{content:"";position:absolute;top:50%;width:42%;height:2px;background:var(--oak-300);border-radius:2px}.auth-divider:before{left:0}.auth-divider:after{right:0}.btn-google{width:100%;padding:14px;background:#fff;color:var(--gray-700);border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:10px}.btn-google:hover{background:var(--gray-50);border-color:var(--gray-300);transform:translateY(-1px)}.auth-toggle{text-align:center;margin-top:24px;font-size:14px;color:var(--gray-500)}.auth-toggle button{background:none;border:none;color:var(--primary-600);font-weight:600;cursor:pointer;transition:color var(--transition-fast)}.auth-toggle button:hover{color:var(--primary-700);text-decoration:underline}.auth-message{background:#dcfce7;color:var(--primary-700);padding:14px 18px;border-radius:var(--radius-md);margin-bottom:20px;font-size:14px;font-weight:500;border:2px solid var(--primary-500)}.auth-description{text-align:center;color:var(--gray-600);font-size:14px;margin-bottom:20px;line-height:1.5}.auth-description strong{color:var(--gray-800);font-weight:600}.code-input{text-align:center;font-size:24px!important;font-weight:700;letter-spacing:8px;font-family:SF Mono,Monaco,Consolas,monospace}.code-input::placeholder{color:var(--gray-300);letter-spacing:8px}.btn-link{background:none;border:none;color:var(--primary-600);font-size:14px;font-weight:500;cursor:pointer;padding:8px 0;margin-top:8px;display:block;width:100%;text-align:center;transition:color var(--transition-fast)}.btn-link:hover{color:var(--primary-700);text-decoration:underline}.btn-link:disabled{color:var(--gray-400);cursor:not-allowed}.form-hint{display:block;font-size:12px;color:var(--gray-500);margin-top:6px}@media (max-width: 1024px){.app-main{flex-direction:column;height:auto;max-height:none;overflow:auto}.chat-section{width:100%;height:400px;flex-shrink:0}.calendar-section{flex:1;min-height:500px}}@media (max-width: 768px){.app-header{padding:12px 16px}.header-right{gap:10px}.user-email{display:none}.app-main{padding:14px;gap:14px}.calendar-section,.chat-section{padding:18px;border-radius:var(--radius-lg)}}@media (max-width: 480px){.app-logo{font-size:22px}.logo-icon{font-size:26px}.calendar-section{min-height:400px}.chat-section{height:350px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}::selection{background:var(--primary-200);color:var(--gray-900)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);animation:toastIn .3s ease-out;border:2px solid;max-width:360px}.toast-success{background:var(--forest-50);color:var(--forest-600);border-color:var(--forest-400)}.toast-error{background:#fee2e2;color:var(--error);border-color:var(--error)}.toast-exit{animation:toastOut .2s ease-in forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.95)}}[data-theme=dark] .toast-success{background:var(--forest-100);color:var(--forest-600);border-color:var(--forest-400)}[data-theme=dark] .toast-error{background:#3b1111;color:var(--error);border-color:var(--error)}
