*,:before,:after{box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f4ff;min-height:100vh;font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif}body{margin:0;padding:1.5rem 1rem}.calendar-container{--accent:#2563eb;--accent-dark:#1d4ed8;--accent-light:#eff6ff;--danger:#ef4444;--danger-dark:#dc2626;--border:#e2e8f0;--surface:#fff;--surface-2:#f8fafc;--surface-hover:#f1f5f9;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 16px #0000001a, 0 2px 6px #0000000f;--shadow-lg:0 20px 48px #00000026, 0 8px 20px #00000014;--radius:.5rem;--radius-lg:1rem;--radius-full:9999px}.calendar-container[data-theme=dark]{--accent:#60a5fa;--accent-dark:#93c5fd;--accent-light:#1e3a5f;--danger:#f87171;--danger-dark:#fca5a5;--border:#334155;--surface:#1e293b;--surface-2:#0f172a;--surface-hover:#273548;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#475569;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 16px #0006, 0 2px 6px #00000040;--shadow-lg:0 20px 48px #00000080, 0 8px 20px #0000004d}.calendar-container{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:72rem;box-shadow:var(--shadow-md);margin:0 auto;transition:background .25s,box-shadow .25s;overflow:hidden}body:has(.calendar-container[data-theme=dark]){background:#0f172a}.header{color:#fff;background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 60%,#3b82f6 100%);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.header-center{flex-direction:column;align-items:center;gap:.4rem;display:flex}.header h2{letter-spacing:-.02em;color:#fff;cursor:pointer;margin:0;font-size:1.4rem;font-weight:700;transition:opacity .15s}.header h2:hover{opacity:.85}.nav-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1;transition:background .15s,transform .1s;display:flex}.nav-btn:hover{background:#ffffff47;transform:scale(1.08)}.today-btn{color:#fff;border-radius:var(--radius-full);letter-spacing:.03em;cursor:pointer;background:#ffffff2e;border:1px solid #ffffff59;padding:.2rem .75rem;font-size:.75rem;font-weight:600;transition:background .15s}.today-btn:hover{background:#ffffff52}.header-actions{align-items:center;gap:.5rem;display:flex}.theme-toggle{border-radius:var(--radius-full);cursor:pointer;background:#ffffff2e;border:1px solid #ffffff59;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-size:.85rem;transition:background .15s;display:flex}.theme-toggle:hover{background:#ffffff52}.days-of-week{background:#1e40af;grid-template-columns:repeat(7,1fr);display:grid}.day-of-week{letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;justify-content:center;align-items:center;padding:.55rem 0;font-size:.7rem;font-weight:700;display:flex}.days-grid{border-top:1px solid var(--border);grid-template-columns:repeat(7,1fr);grid-auto-rows:7rem;display:grid}.day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;flex-direction:column;padding:.45rem .5rem;transition:background .12s;display:flex;overflow:hidden}.day:hover{background:var(--accent-light)}.day.drag-over{outline:2px dashed var(--accent);outline-offset:-2px;background:#dbeafe}.calendar-container[data-theme=dark] .day.drag-over{outline-color:var(--accent);background:#1e3a5f}.reminder-pill[draggable=true]{cursor:grab}.reminder-pill[draggable=true]:active{cursor:grabbing;opacity:.6}.day:nth-child(7n){border-right:none}.day-header{flex-direction:column;gap:.3rem;width:100%;height:100%;display:flex}.today-badge{background:var(--accent);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.8rem;font-weight:700;display:inline-flex}.day .day-header>span:not(.today-badge){width:1.6rem;height:1.6rem;color:var(--text-primary);justify-content:center;align-items:center;font-size:.82rem;font-weight:600;display:inline-flex}.reminders{flex-direction:column;gap:.2rem;min-width:0;display:flex;overflow:hidden}.reminder-pill{background:var(--accent-light);color:var(--accent-dark);border-left:2.5px solid var(--accent);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:0 .25rem .25rem 0;padding:.15rem .4rem;font-size:.68rem;font-weight:500;transition:background .12s,transform .1s;overflow:hidden}.reminder-pill:hover{background:#dbeafe;transform:translate(1px)}.reminder-pill.pill-match{outline-offset:1px;outline:1.5px solid;font-weight:700}.reminder-pill.pill-dim{opacity:.25}.view-more{color:var(--text-secondary);cursor:pointer;padding:.1rem .2rem;font-size:.66rem;font-weight:600;transition:color .12s}.view-more:hover{color:var(--accent)}.current-month.weekend{background:#fafbff}.current-month.weekend .day-header>span:not(.today-badge){color:var(--accent)}.other-month{background:var(--surface-2)}.other-month .day-header>span:not(.today-badge){color:var(--text-muted)}.other-month .reminder-pill{opacity:.55}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.reminder-popup{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.reminder-form,.reminder-details,.delete-confirmation{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:26rem;padding:2rem;animation:.22s cubic-bezier(.22,1,.36,1) slideUp;position:relative}.reminder-form h3,.reminder-details h3,.delete-confirmation h3{color:var(--text-primary);margin:0 0 1.25rem;font-size:1.15rem;font-weight:700}.close-button{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);width:1.75rem;height:1.75rem;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;transition:background .12s,color .12s;display:flex;position:absolute;top:.9rem;right:.9rem}.close-button:hover{background:var(--border);color:var(--text-primary)}.reminder-form input,.reminder-form select{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);background:var(--surface);outline:none;margin-bottom:.9rem;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.reminder-form input:focus,.reminder-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.reminder-form .submit-button{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;padding:.65rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s,transform .1s}.reminder-form .submit-button:hover:enabled{background:var(--accent-dark);transform:translateY(-1px)}.reminder-form .submit-button:disabled{background:var(--text-muted);cursor:not-allowed;transform:none}.recurrence-label{color:var(--text-secondary);margin:.25rem 0 0;font-size:.78rem}.category-badge{border-radius:var(--radius-full);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.6rem;padding:.2rem .6rem;font-size:.7rem;font-weight:700;display:inline-block}.category-work{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.category-personal{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.category-health{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.category-other{color:#7e22ce;background:#faf5ff;border:1px solid #e9d5ff}.calendar-container[data-theme=dark] .category-work{color:#93c5fd;background:#1e3a5f;border-color:#3b82f6}.calendar-container[data-theme=dark] .category-personal{color:#86efac;background:#14532d;border-color:#22c55e}.calendar-container[data-theme=dark] .category-health{color:#fdba74;background:#431407;border-color:#f97316}.calendar-container[data-theme=dark] .category-other{color:#d8b4fe;background:#3b0764;border-color:#a855f7}.reminder-details p{color:var(--text-secondary);text-align:left;margin:.5rem 0;font-size:.9rem}.reminder-details p strong{color:var(--text-primary)}.details-icons{justify-content:flex-end;gap:.5rem;margin-bottom:.75rem;display:flex}.icon-button{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background-position:50%;background-repeat:no-repeat;background-size:contain;width:2.25rem;height:2.25rem;transition:transform .15s,box-shadow .15s}.icon-button:hover{box-shadow:var(--shadow-sm);transform:scale(1.1)}.edit-icon{background-image:url(data:image/png;base64,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);background-color:var(--surface)}.delete-icon{background-image:url(data:image/png;base64,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);background-color:var(--surface)}.details-actions{gap:.75rem;margin-top:1.25rem;display:flex}.details-actions .edit-button,.details-actions .delete-button{border-radius:var(--radius);cursor:pointer;border:none;flex:1;padding:.6rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,transform .1s}.details-actions .edit-button{background:var(--accent);color:#fff}.details-actions .edit-button:hover{background:var(--accent-dark);transform:translateY(-1px)}.details-actions .delete-button{color:var(--danger-dark);background:#fee2e2}.details-actions .delete-button:hover{background:#fecaca;transform:translateY(-1px)}.warning{color:var(--danger);margin-bottom:.6rem;font-size:.82rem}.delete-confirmation p{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.9rem}.confirmation-actions{gap:.75rem;display:flex}.confirm-button,.cancel-button{border-radius:var(--radius);cursor:pointer;border:none;flex:1;padding:.6rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,transform .1s}.confirm-button{background:var(--danger);color:#fff}.confirm-button:hover{background:var(--danger-dark);transform:translateY(-1px)}.cancel-button{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border)}.cancel-button:hover{background:var(--surface-hover)}.reminder-list{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:22rem;padding:1.5rem;animation:.22s cubic-bezier(.22,1,.36,1) slideUp;position:relative}.reminder-list h3{color:var(--text-primary);margin:0 0 1rem;font-size:1rem;font-weight:700}.reminder-list ul{margin:0;padding:0;list-style:none}.reminder-list li{border-bottom:1px solid var(--border);cursor:pointer;color:var(--accent);padding:.5rem 0;font-size:.88rem;font-weight:500;transition:color .12s}.reminder-list li:last-child{border-bottom:none}.reminder-list li:hover{color:var(--accent-dark)}.search-bar{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.search-icon{flex-shrink:0;font-size:.85rem}.search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.88rem}.search-bar input::placeholder{color:var(--text-muted)}.search-clear{color:var(--text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:.1rem .3rem;font-size:.75rem;transition:color .12s}.search-clear:hover{color:var(--text-primary)}.search-results-count{color:var(--text-secondary);background:var(--accent-light);border-bottom:1px solid var(--border);padding:.35rem 1rem;font-size:.78rem}.view-toggle{border-radius:var(--radius-full);background:#ffffff26;gap:0;padding:.15rem;display:flex}.view-toggle-btn{color:#ffffffbf;border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:.2rem .65rem;font-size:.72rem;font-weight:600;transition:background .15s,color .15s}.view-toggle-btn.active{color:#1e40af;background:#ffffffe6}.view-toggle-btn:not(.active):hover{color:#fff;background:#ffffff40}.agenda-view{background:var(--surface);min-height:24rem;padding:1.5rem}.agenda-group{margin-bottom:1.5rem}.agenda-group.agenda-past{opacity:.6}.agenda-date-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:.5rem;padding-bottom:.35rem;font-size:.78rem;font-weight:700}.agenda-today-label{color:var(--accent)}.agenda-item{border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface-2);cursor:pointer;align-items:center;gap:.75rem;margin-bottom:.4rem;padding:.6rem .75rem;transition:background .12s,transform .1s;display:flex}.agenda-item:hover{background:var(--surface-hover);transform:translate(2px)}.agenda-item-time{color:var(--text-secondary);min-width:2.8rem;font-size:.78rem;font-weight:700}.agenda-item-content{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.agenda-item-text{color:var(--text-primary);font-size:.9rem;font-weight:600}.agenda-item-category{letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-full);padding:.1rem .45rem;font-size:.65rem;font-weight:700}.agenda-section-divider{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-top:1px solid var(--border);margin:1.5rem 0 1rem;padding:.5rem 0;font-size:.72rem;font-weight:700}.agenda-empty{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:4rem 1rem;display:flex}.agenda-empty p{margin:0;font-size:1rem}.agenda-add-btn{background:var(--accent);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;padding:.55rem 1.2rem;font-size:.85rem;font-weight:600;transition:background .15s}.agenda-add-btn:hover{background:var(--accent-dark)}.week-view{background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.week-header-row{border-bottom:2px solid var(--border);background:var(--surface-2);z-index:10;grid-template-columns:3.5rem repeat(7,1fr);display:grid;position:sticky;top:0}.week-time-gutter{border-right:1px solid var(--border)}.week-day-header{border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .25rem;display:flex}.week-day-header:last-child{border-right:none}.week-today-header{background:var(--accent-light)}.week-day-name{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem;font-weight:700}.week-day-num{color:var(--text-primary);border-radius:var(--radius-full);justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:700;display:flex}.week-grid-scroll{max-height:calc(100vh - 14rem);overflow-y:auto}.week-grid{grid-template-columns:3.5rem repeat(7,1fr);display:grid}.week-time-label{border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-muted);justify-content:flex-end;align-items:flex-start;height:3rem;padding:.25rem .4rem;font-size:.65rem;display:flex}.week-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;height:3rem;padding:.15rem;transition:background .1s;overflow:hidden}.week-cell:hover{background:var(--surface-hover)}.week-cell:last-child{border-right:none}.week-event{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-left:2.5px solid;border-radius:0 .2rem .2rem 0;margin-bottom:.1rem;padding:.15rem .35rem;font-size:.68rem;font-weight:600;transition:opacity .12s;overflow:hidden}.week-event:hover{opacity:.8}.year-selector{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;z-index:500;width:22rem;padding:1.25rem;animation:.2s cubic-bezier(.22,1,.36,1) slideUp;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.year-selector-header{align-items:center;gap:.25rem;margin-bottom:1rem;display:flex}.year-selector-header h3{color:var(--text-primary);flex:1;margin:0;font-size:1rem;font-weight:700}.year-nav-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;transition:background .12s;display:flex}.year-nav-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.year-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;margin-left:.25rem;padding:.25rem .4rem;font-size:.85rem;transition:color .12s,background .12s}.year-close-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.year-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.year-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-primary);margin:0;padding:.5rem .25rem;font-size:.85rem;font-weight:500;transition:background .12s,color .12s,border-color .12s}.year-item:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent-dark)}.clickable-year{cursor:pointer}@media (width<=640px){body{padding:0}.calendar-container{box-shadow:none;border-radius:0;min-height:100vh}.header{padding:.9rem .75rem}.header h2{font-size:1.05rem}.header-actions{gap:.35rem}.view-toggle-btn{padding:.2rem .45rem;font-size:.68rem}.today-btn{padding:.18rem .55rem;font-size:.68rem}.nav-btn{width:1.9rem;height:1.9rem;font-size:1.25rem}.days-grid{grid-auto-rows:5rem}.day{padding:.3rem .25rem}.day .day-header>span,.today-badge{width:1.35rem;height:1.35rem;font-size:.7rem}.reminder-pill{padding:.1rem .3rem;font-size:.6rem}.reminder-form,.reminder-details,.delete-confirmation{width:calc(100vw - 2rem);padding:1.25rem}.reminder-list,.year-selector{width:calc(100vw - 2rem)}.agenda-view{padding:1rem}.agenda-item{gap:.5rem;padding:.5rem .6rem}.agenda-item-time{min-width:2.4rem;font-size:.72rem}.week-view{-webkit-overflow-scrolling:touch;overflow-x:auto}.week-header-row,.week-grid-scroll{min-width:520px}}.ai-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:.85rem;height:.85rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.conflict-warning{color:#92400e;background:#fef3c7;border:1.5px solid #f59e0b;border-radius:8px;padding:.5rem .75rem;font-size:.82rem;font-weight:500}[data-theme=dark] .conflict-warning{color:#fcd34d;background:#422006;border-color:#d97706}.digest-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;padding:.4rem .85rem;font-size:.82rem;font-weight:600;transition:opacity .15s,transform .15s}.digest-btn:hover{opacity:.9;transform:translateY(-1px)}.digest-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.digest-panel{background:var(--surface);border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.digest-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem .9rem;display:flex}.digest-title-row{align-items:center;gap:.75rem;display:flex}.digest-icon{font-size:1.6rem;line-height:1}.digest-title{color:var(--text);margin:0;font-size:1rem;font-weight:700}.digest-dates{color:var(--text-secondary);margin-top:.1rem;font-size:.78rem;display:block}.digest-body{flex:1;padding:1.1rem 1.25rem 1.25rem;overflow-y:auto}.digest-loading{color:var(--text-secondary);align-items:center;gap:.6rem;font-size:.88rem;display:flex}.digest-error{color:#ef4444;font-size:.85rem}.digest-content{color:var(--text);font-size:.88rem;line-height:1.7}.digest-content p{margin:.25rem 0}.digest-section{margin-top:.75rem!important;margin-bottom:.15rem!important;font-size:.9rem!important}.digest-spacer{height:.4rem}.digest-cursor:after{content:"▋";color:var(--accent);font-size:.75rem;animation:.9s step-end infinite blink}@keyframes blink{50%{opacity:0}}.reschedule-section{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.reschedule-toggle-btn{border:1.5px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .85rem;font-size:.82rem;font-weight:600;transition:background .15s,color .15s}.reschedule-toggle-btn:hover{background:var(--accent);color:#fff}.reschedule-body{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.reschedule-input{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;padding:.5rem .75rem;font-size:.85rem}.reschedule-input:focus{border-color:var(--accent);outline:none}.reschedule-get-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.82rem;font-weight:600;transition:opacity .15s;display:flex}.reschedule-get-btn:disabled{opacity:.5;cursor:not-allowed}.reschedule-error{color:#ef4444;margin:0;font-size:.8rem}.reschedule-card{background:var(--surface-2);border:1.5px solid var(--accent);border-radius:10px;flex-direction:column;gap:.35rem;padding:.75rem 1rem;display:flex}.reschedule-card-date{color:var(--accent);font-size:.9rem;font-weight:700}.reschedule-card-reason{color:var(--text-secondary);font-size:.82rem}.reschedule-card-actions{gap:.5rem;margin-top:.25rem;display:flex}.reschedule-confirm-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:7px;padding:.35rem .8rem;font-size:.82rem;font-weight:600;transition:opacity .15s}.reschedule-confirm-btn:hover{opacity:.85}.reschedule-cancel-btn{border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:7px;padding:.35rem .8rem;font-size:.82rem;transition:border-color .15s}.reschedule-cancel-btn:hover{border-color:var(--accent);color:var(--accent)}.ai-chat-fab{border-radius:var(--radius-full);color:#fff;cursor:pointer;z-index:1000;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;justify-content:center;align-items:center;width:3.2rem;height:3.2rem;font-size:1.35rem;line-height:1;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 18px #6366f173}.ai-chat-fab:hover{transform:scale(1.1);box-shadow:0 6px 24px #6366f18c}.ai-chat-fab-open{background:var(--surface-2);color:var(--text-secondary);box-shadow:var(--shadow-sm);font-size:1rem}.ai-chat-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:340px;max-height:520px;box-shadow:var(--shadow-lg);z-index:999;flex-direction:column;animation:.2s chat-in;display:flex;position:fixed;bottom:5.5rem;right:1.5rem;overflow:hidden}@keyframes chat-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.ai-chat-header{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);flex-shrink:0;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.ai-chat-header-title{align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;display:flex}.ai-chat-close{color:#ffffffbf;cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;line-height:1;transition:color .15s}.ai-chat-close:hover{color:#fff}.ai-chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.65rem;padding:.9rem .85rem;display:flex;overflow-y:auto}.ai-chat-empty{color:var(--text-secondary);text-align:center;margin:auto;font-size:.82rem;line-height:1.7}.ai-suggestions{border-top:1px solid var(--border);flex-flow:wrap;gap:.35rem;padding:.6rem .85rem;display:flex}.ai-suggestion-chip{background:var(--accent-light);color:var(--accent);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;text-align:left;padding:.35rem .75rem;font-family:inherit;font-size:.75rem;transition:background .15s,border-color .15s}.ai-suggestion-chip:hover{background:var(--surface-hover);border-color:var(--accent)}.ai-chat-msg{white-space:pre-wrap;word-break:break-word;border-radius:1rem;max-width:88%;padding:.55rem .8rem;font-size:.82rem;line-height:1.55}.ai-chat-msg-user{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-bottom-right-radius:.25rem;align-self:flex-end}.ai-chat-msg-assistant{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:.25rem;align-self:flex-start}.ai-typing-dots{align-items:center;gap:.25rem;padding:.1rem 0;display:inline-flex}.ai-typing-dots span{background:var(--text-muted);border-radius:50%;width:.45rem;height:.45rem;animation:1.2s ease-in-out infinite typing-bounce}.ai-typing-dots span:nth-child(2){animation-delay:.2s}.ai-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ai-chat-error{color:var(--danger);text-align:center;font-size:.78rem}.ai-chat-input-row{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:.5rem;padding:.7rem .75rem;display:flex}.ai-chat-input{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2);min-width:0;color:var(--text-primary);outline:none;flex:1;padding:.5rem .9rem;font-family:inherit;font-size:.82rem;transition:border-color .15s}.ai-chat-input:focus{border-color:var(--accent);background:var(--surface)}.ai-chat-input::placeholder{color:var(--text-muted)}.ai-chat-send{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:.85rem;transition:opacity .15s,transform .1s;display:flex}.ai-chat-send:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.ai-chat-send:disabled{opacity:.4;cursor:not-allowed;transform:none}@media (width<=640px){.ai-chat-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:72vh;bottom:0;left:0;right:0}.ai-chat-fab{bottom:1rem;right:1rem}}
