:root{--primary: #4F7CFF;--primary-dark: #3A63E0;--primary-rgb: 79,124,255;--primary-gradient: linear-gradient(135deg, #4F7CFF 0%, #6B5BFF 100%);--primary-gradient-dark: linear-gradient(135deg, #3A63E0 0%, #6344E8 100%);--bg: #F6F7FB;--card: #FFFFFF;--text: #1A1D2E;--text-sub: #8A8FA8;--border: #E8EAF0;--input-bg: #F8F9FF;--input-border: #E0E4F0;--overlay: rgba(0, 0, 0, .4);--tab-bg: #FFFFFF;--header-bg: #FFFFFF;--online: var(--primary);--offline: #FF7043;--meeting: #00BFA5;--danger: #FF5252;--success: #4CAF50;--warning: #FF9800;--radius: 12px;--shadow: 0 2px 12px rgba(var(--primary-rgb),.1);--shadow-card: 0 1px 6px rgba(0,0,0,.06);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tabbar-height: calc(60px + var(--safe-bottom));--font-xs: clamp(10px, 2.5vw, 12px);--font-sm: clamp(12px, 3vw, 13px);--font-base: clamp(13px, 3.5vw, 15px);--font-md: clamp(14px, 3.8vw, 16px);--font-lg: clamp(16px, 4.2vw, 18px);--font-xl: clamp(18px, 5vw, 22px)}@media(prefers-color-scheme:dark){:root{--bg: #0F1117;--card: #1C1E2A;--text: #E8EAF2;--text-sub: #6B7080;--border: #2A2D3E;--input-bg: #1C1E2A;--input-border: #2E3148;--overlay: rgba(0, 0, 0, .6);--tab-bg: #161820;--header-bg: #161820;--shadow: 0 2px 12px rgba(0,0,0,.3);--shadow-card: 0 1px 6px rgba(0,0,0,.25)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{height:100dvh;height:100%;width:100%;max-width:480px;margin:0 auto;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,Helvetica Neue,sans-serif;font-size:var(--font-base);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}.app-layout{display:flex;flex-direction:column;height:100dvh;height:100%;padding-top:var(--safe-top)}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:var(--tabbar-height);-webkit-overflow-scrolling:touch}.tab-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:var(--tabbar-height);padding-bottom:var(--safe-bottom);background:var(--tab-bg);border-top:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-around;padding-top:8px;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;color:var(--text-sub);font-size:var(--font-xs);transition:color .2s;text-decoration:none;min-height:44px;padding:4px 0}.tab-item.active{color:var(--primary)}.tab-item svg{width:22px;height:22px}.tab-ai-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;margin-top:-20px}.tab-ai-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:54px;height:54px;border-radius:16px;background:var(--primary-gradient);box-shadow:0 4px 16px rgba(var(--primary-rgb),.45);transition:transform .15s ease,box-shadow .15s ease;position:relative}.tab-ai-btn:before{content:"";position:absolute;inset:-1px;border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.3),transparent);pointer-events:none}.tab-ai-btn:active{transform:scale(.94);box-shadow:0 2px 8px rgba(var(--primary-rgb),.35)}.tab-ai-active.tab-ai-btn{background:var(--primary-gradient-dark);box-shadow:0 4px 20px rgba(var(--primary-rgb),.6)}.tab-ai-label{font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px;line-height:1}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px;margin:0 16px 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:10px;border:none;font-size:var(--font-md);font-weight:600;cursor:pointer;transition:opacity .2s;min-height:44px}.btn:active{opacity:.8}.btn-primary{background:var(--primary);color:#fff;width:100%}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.form-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.form-row:last-child{border-bottom:none}.form-label{width:72px;font-size:var(--font-sm);color:var(--text-sub);flex-shrink:0}.form-input{flex:1;border:none;outline:none;font-size:var(--font-md);background:transparent;color:var(--text)}.form-select{flex:1;border:none;outline:none;font-size:var(--font-md);background:transparent;color:var(--text);appearance:none}.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:var(--font-xs);font-weight:600}.tag-online{background:#eef2ff;color:var(--online)}.tag-offline{background:#fff3f0;color:var(--offline)}.tag-meeting{background:#e0f7f4;color:var(--meeting)}@media(prefers-color-scheme:dark){.tag-online{background:rgba(var(--primary-rgb),.15)}.tag-offline{background:#ff704326}.tag-meeting{background:#00bfa526}}.empty{text-align:center;padding:60px 20px;color:var(--text-sub)}.empty-icon{font-size:48px;margin-bottom:12px}.loading-mask{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:999}.loading-box{background:var(--card);border-radius:12px;padding:20px 32px;font-size:var(--font-base);color:var(--text);box-shadow:var(--shadow)}@media(min-width:640px){html,body,#root,.tab-bar{max-width:540px}}@media(min-width:768px){html,body,#root,.tab-bar{max-width:600px}.card{padding:20px}}@media(max-width:375px){:root{--font-base: 13px;--font-md: 14px;--font-lg: 16px}.card{padding:12px;margin:0 12px 10px}}@media(orientation:landscape)and (max-height:500px){.tab-bar{display:none}.page-content{padding-bottom:0}}@media(prefers-contrast:high){:root{--border: #999;--text-sub: #555}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.updater-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.updater-dialog{background:var(--card, #fff);border-radius:20px;padding:28px 24px 20px;width:100%;max-width:340px;box-shadow:0 20px 60px #00000040;animation:updater-slide-up .3s cubic-bezier(.34,1.56,.64,1)}@keyframes updater-slide-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.updater-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.updater-icon{font-size:28px;line-height:1}.updater-title{font-size:18px;font-weight:700;color:var(--text, #1a1d2e);margin:0;flex:1}.updater-version{font-size:13px;color:var(--primary, #4f7cff);background:#4f7cff1a;padding:3px 10px;border-radius:20px;font-weight:600}.updater-changelog{background:var(--bg, #f6f7fb);border-radius:12px;padding:14px 16px;margin-bottom:20px}.updater-changelog-label{font-size:12px;color:var(--muted, #8a8fa8);margin:0 0 6px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.updater-changelog-text{font-size:14px;color:var(--text, #1a1d2e);margin:0;line-height:1.6}.updater-progress-wrap{margin-bottom:16px}.updater-progress-bar{height:8px;background:var(--border, #e8eaf0);border-radius:4px;overflow:hidden;margin-bottom:8px}.updater-progress-fill{height:100%;background:var(--primary, #4f7cff);border-radius:4px;transition:width .3s ease}.updater-progress-text{font-size:13px;color:var(--muted, #8a8fa8);text-align:center;display:block}.updater-error{font-size:13px;color:var(--error, #ef4444);text-align:center;margin:0 0 16px;padding:10px;background:#ef444414;border-radius:8px}.updater-actions{display:flex;gap:12px}.updater-btn-cancel{flex:1;height:46px;border:1.5px solid var(--border, #e8eaf0);background:transparent;border-radius:12px;font-size:15px;font-weight:500;color:var(--muted, #8a8fa8);cursor:pointer;transition:opacity .15s}.updater-btn-cancel:disabled{opacity:.4;cursor:not-allowed}.updater-btn-confirm{flex:2;height:46px;background:var(--primary, #4f7cff);border:none;border-radius:12px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:opacity .15s,transform .1s}.updater-btn-confirm:active{transform:scale(.97);opacity:.9}.updater-btn-confirm:disabled{opacity:.6;cursor:not-allowed}.app-download-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px #00000014;color:#11181c}@media(prefers-color-scheme:dark){.app-download-banner{background:#1e2022;border-bottom-color:#334155;color:#ecedee}}.app-download-banner__icon{flex-shrink:0;width:32px;height:32px;border-radius:8px;overflow:hidden}.app-download-banner__content{flex:1;min-width:0}.app-download-banner__title{font-size:13px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-download-banner__subtitle{font-size:11px;color:#687076;line-height:1.3;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-color-scheme:dark){.app-download-banner__subtitle{color:#9ba1a6}}.app-download-banner__cta{flex-shrink:0;padding:6px 14px;background:#4f46e5;color:#fff;font-size:13px;font-weight:600;border:none;border-radius:20px;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}.app-download-banner__cta:active{opacity:.8}.app-download-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;cursor:pointer;color:#687076;border-radius:50%;-webkit-tap-highlight-color:transparent;padding:0}.app-download-banner__close:active{background:#0000000f}@media(prefers-color-scheme:dark){.app-download-banner__close{color:#9ba1a6}.app-download-banner__close:active{background:#ffffff14}}.month-view{display:flex;flex-direction:column;background:#fff;flex:1;overflow:hidden;position:relative}.mv-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;background:#fff;border-bottom:1px solid #ECEEF5}.mv-arrow{background:none;border:none;font-size:22px;color:var(--primary);cursor:pointer;padding:0 10px;line-height:1}.mv-nav-center{display:flex;align-items:center;gap:8px}.mv-nav-title{font-size:15px;font-weight:700;color:#1a1d2e}.mv-today-link{font-size:11px;color:var(--primary);background:#eef3ff;border-radius:10px;padding:2px 8px;cursor:pointer}.mv-week-header{display:grid;grid-template-columns:repeat(7,1fr);background:#f8f9ff;border-bottom:1px solid #ECEEF5}.mv-week-label{text-align:center;font-size:11px;font-weight:600;color:#9ba1b5;padding:6px 0}.mv-week-label.mv-weekend{color:#ff6b6b}.mv-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow-y:auto}.mv-day{display:flex;flex-direction:column;align-items:center;padding:5px 2px 4px;min-height:58px;border-right:1px solid #F0F2F8;border-bottom:1px solid #F0F2F8;cursor:pointer;position:relative;transition:background .12s}.mv-day:active{background:#f0f4ff}.mv-other-month .mv-day-num{color:#d0d3e0}.mv-other-month .mv-day-label,.mv-other-month .mv-dots{display:none}.mv-weekend-day .mv-day-num{color:#ff6b6b}.mv-holiday-day{background:#fff5f5}.mv-workday-day{background:#fffbf0}.mv-selected{background:#eef3ff!important}.mv-day-num{font-size:14px;font-weight:600;color:#1a1d2e;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;line-height:1}.mv-today-num{background:var(--primary);color:#fff!important}.mv-selected-num:not(.mv-today-num){background:#d6e4ff;color:var(--primary)!important}.mv-day-label{font-size:9px;font-weight:600;margin-top:1px;border-radius:3px;padding:0 2px;line-height:1.4;max-width:28px;text-align:center;white-space:nowrap;overflow:hidden}.mv-label-holiday{color:#e53e3e;background:#fff0f0}.mv-label-workday{color:#d97706;background:#fff8e6}.mv-label-solar{color:#9ba1b5}.mv-dots{display:flex;gap:2px;margin-top:3px;align-items:center;justify-content:center;flex-wrap:wrap;max-width:32px}.mv-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.mv-dot-online{background:var(--primary)}.mv-dot-offline{background:#ff8c42}.mv-dot-meeting{background:#22c55e}.mv-dot-more{font-size:8px;color:#9ba1b5;line-height:1}.mv-overlay{position:fixed;inset:0;background:#0000004d;z-index:100}.mv-drawer{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);width:100%;max-width:480px;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -4px 24px #0000001f;z-index:101;transition:transform .3s cubic-bezier(.32,.72,0,1);max-height:70vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,16px)}.mv-drawer-open{transform:translate(-50%) translateY(0)}.mv-drawer-handle{width:36px;height:4px;background:#e0e3ef;border-radius:2px;margin:10px auto 6px;cursor:pointer;flex-shrink:0}.mv-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 10px;border-bottom:1px solid #F0F2F8;flex-shrink:0}.mv-drawer-date{font-size:15px;font-weight:700;color:#1a1d2e;display:flex;align-items:center;gap:6px}.mv-drawer-holiday-tag{font-size:11px;color:#e53e3e;background:#fff0f0;border-radius:8px;padding:1px 6px;font-weight:600}.mv-drawer-workday-tag{font-size:11px;color:#d97706;background:#fff8e6;border-radius:8px;padding:1px 6px;font-weight:600}.mv-drawer-view-btn{font-size:12px;color:var(--primary);background:#eef3ff;border:none;border-radius:10px;padding:4px 10px;cursor:pointer;font-weight:600}.mv-drawer-empty{text-align:center;color:#c5c9d6;font-size:14px;padding:28px 0}.mv-drawer-list{overflow-y:auto;padding:8px 0 16px}.mv-drawer-item{display:flex;align-items:flex-start;padding:10px 16px;gap:10px;border-bottom:1px solid #F4F6FB}.mv-drawer-item:last-child{border-bottom:none}.mv-drawer-time{font-size:12px;color:#8a8fa8;min-width:80px;padding-top:2px;flex-shrink:0}.mv-drawer-info{flex:1}.mv-drawer-title{font-size:14px;font-weight:600;color:#1a1d2e}.mv-drawer-remark{font-size:12px;color:#aaa;margin-top:2px}.mv-tag{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;white-space:nowrap;flex-shrink:0}.mv-tag-online{background:#eef3ff;color:var(--primary)}.mv-tag-offline{background:#fff4ec;color:#ff8c42}.mv-tag-meeting{background:#f0fff4;color:#22c55e}.sheet-overlay{position:fixed;inset:0;background:#00000059;z-index:200;animation:fadeIn .2s ease}.event-sheet{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:480px;background:#fff;border-radius:20px 20px 0 0;z-index:201;box-shadow:0 -4px 30px rgba(var(--primary-rgb),.15);animation:slideUp .25s cubic-bezier(.32,.72,0,1);max-height:85vh;display:flex;flex-direction:column}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}.sheet-handle{width:36px;height:4px;background:#e0e3ee;border-radius:2px;margin:10px auto 0;flex-shrink:0}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;border-bottom:1px solid #F0F2F8;flex-shrink:0}.sheet-title{font-size:15px;font-weight:700;color:#1a1d2e}.sheet-close-btn{background:none;border:none;font-size:16px;color:#9ba1b5;cursor:pointer;padding:4px 6px;border-radius:6px;line-height:1}.sheet-close-btn:hover{background:#f4f6fb;color:#555}.sheet-edit-btn{background:#eef3ff;border:none;color:var(--primary);font-size:13px;font-weight:600;padding:5px 14px;border-radius:20px;cursor:pointer}.sheet-edit-btn:hover{background:#d6e4ff}.sheet-save-btn{background:var(--primary-gradient);border:none;color:#fff;font-size:13px;font-weight:600;padding:5px 14px;border-radius:20px;cursor:pointer}.sheet-save-btn:active{opacity:.85}.sheet-body{overflow-y:auto;padding:16px 16px 32px;flex:1}.detail-view{display:flex;flex-direction:column;gap:14px}.detail-row{display:flex;align-items:flex-start;gap:12px;background:#f8f9ff;border-radius:12px;padding:12px 14px}.detail-icon{font-size:18px;flex-shrink:0;margin-top:1px}.detail-content{flex:1}.detail-label{font-size:11px;color:#9ba1b5;margin-bottom:3px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:14px;color:#1a1d2e;font-weight:500;line-height:1.4}.title-value{font-size:16px;font-weight:700}.remark-value{color:#555;font-weight:400}.tag{font-size:11px;padding:3px 10px;border-radius:10px;font-weight:600;border:1px solid transparent}.tag-scene{background:#f0f7ff;color:#0958d9;border-color:#adc6ff}.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.join-meeting-btn{margin-top:16px;width:100%;border:1.5px solid;font-size:14px;font-weight:600;padding:13px;border-radius:12px;cursor:pointer;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.join-meeting-btn:active{opacity:.75}.delete-btn{margin-top:8px;width:100%;background:none;border:1.5px solid #FFE0E0;color:#ff5252;font-size:14px;font-weight:600;padding:12px;border-radius:12px;cursor:pointer;transition:background .15s}.delete-btn:hover{background:#fff5f5}.edit-form{display:flex;flex-direction:column;gap:12px}.form-error{background:#fff5f5;border:1px solid #FFD0D0;color:#ff5252;font-size:13px;padding:8px 12px;border-radius:8px}.form-row{display:flex;align-items:center;gap:10px}.form-label{font-size:13px;color:#8a8fa8;min-width:60px;font-weight:500;flex-shrink:0}.form-input{flex:1;border:1.5px solid #E8EBF5;border-radius:10px;padding:9px 12px;font-size:14px;color:#1a1d2e;background:#fafbff;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--primary);background:#fff}.dt-group{display:flex;gap:6px;flex:1}.dt-input{flex:1;min-width:0}.type-group{display:flex;gap:6px;flex:1;flex-wrap:wrap}.type-btn{flex:1;background:#f4f6fb;border:1.5px solid transparent;color:#8a8fa8;font-size:13px;font-weight:600;padding:7px 10px;border-radius:10px;cursor:pointer;transition:all .15s;white-space:nowrap}.type-btn.active{background:#eef3ff;border-color:var(--primary);color:var(--primary)}.edit-actions{display:flex;gap:10px;margin-top:8px}.btn-cancel{flex:1;background:#f4f6fb;border:none;color:#8a8fa8;font-size:14px;font-weight:600;padding:12px;border-radius:12px;cursor:pointer}.btn-save{flex:2;background:var(--primary-gradient);border:none;color:#fff;font-size:14px;font-weight:700;padding:12px;border-radius:12px;cursor:pointer}.btn-save:active{opacity:.88}.home-page{min-height:100%;background:var(--bg);display:flex;flex-direction:column}.home-banner{background:var(--primary-gradient);padding:16px 16px 14px;padding-top:max(16px,env(safe-area-inset-top,0px));color:#fff}.banner-row{display:flex;align-items:center;justify-content:space-between}.home-date{font-size:var(--font-md);font-weight:700;margin-bottom:3px}.home-count{font-size:var(--font-sm);opacity:.85}.view-toggle{display:flex;background:#ffffff2e;border-radius:8px;padding:2px;gap:2px}.toggle-btn{background:transparent;border:none;color:#ffffffbf;font-size:var(--font-sm);font-weight:600;padding:4px 12px;border-radius:6px;cursor:pointer;transition:all .18s;min-height:32px}.toggle-btn.active{background:#fff;color:var(--primary)}.week-nav{display:flex;align-items:center;justify-content:space-between;background:var(--card);padding:8px 12px;border-bottom:1px solid var(--border)}.week-arrow{background:none;border:none;font-size:22px;color:var(--primary);cursor:pointer;padding:0 8px;line-height:1;min-height:44px;display:flex;align-items:center}.week-range-label{font-size:var(--font-sm);color:var(--text-sub);font-weight:500;display:flex;align-items:center;gap:8px}.today-link{font-size:var(--font-xs);color:var(--primary);background:#eef3ff;border-radius:10px;padding:2px 8px;cursor:pointer}@media(prefers-color-scheme:dark){.today-link{background:rgba(var(--primary-rgb),.15)}}.day-strip{display:flex;background:var(--card);padding:8px 4px 10px;border-bottom:1px solid var(--border)}.day-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:4px 2px;border-radius:10px;transition:background .15s;min-height:44px}.day-cell:active{background:rgba(var(--primary-rgb),.08)}.day-weekday{font-size:var(--font-xs);color:var(--text-sub);font-weight:500}.day-num{font-size:var(--font-md);font-weight:600;color:var(--text);width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%}.day-dot{width:5px;height:5px;border-radius:50%}.dot-empty{background:transparent}.dot-has{background:#b0bfff}.dot-today{background:var(--primary)}.day-cell.today .day-weekday{color:var(--primary)}.day-cell.today .day-num{color:var(--primary);border:2px solid var(--primary)}.day-cell.selected .day-weekday{color:var(--primary)}.day-cell.selected .day-num{background:var(--primary);color:#fff;border:none}.schedule-content{flex:1;overflow-y:auto;padding-bottom:90px;-webkit-overflow-scrolling:touch}.schedule-list{padding:14px 0 0}.schedule-card{display:flex;align-items:flex-start;justify-content:space-between;background:var(--card);border-radius:14px;box-shadow:var(--shadow-card);padding:14px 16px;margin:0 16px 10px}.schedule-left{flex:1}.schedule-time{font-size:var(--font-xs);color:var(--text-sub);margin-bottom:4px}.schedule-title{font-size:var(--font-md);font-weight:600;color:var(--text)}.schedule-remark{font-size:var(--font-xs);color:var(--text-sub);margin-top:3px}.schedule-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-left:12px}.empty{display:flex;flex-direction:column;align-items:center;padding:60px 20px 20px;color:var(--text-sub);font-size:var(--font-base);gap:6px}.empty-icon{font-size:48px;margin-bottom:4px}.empty-hint{font-size:var(--font-xs);color:var(--text-sub);margin-top:4px}.tag-stack{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.tag{font-size:var(--font-xs);padding:2px 8px;border-radius:10px;border:1px solid transparent;font-weight:500;white-space:nowrap}.tag-online{background:#eef3ff;color:var(--primary)}.tag-offline{background:#fff4ec;color:#ff8c42}.tag-meeting{background:#f0fff4;color:#22c55e}.tag-auto{background:#f5f0ff;color:#8b5cf6}.tag-priority{border:1px solid}@media(prefers-color-scheme:dark){.tag-online{background:rgba(var(--primary-rgb),.15)}.tag-offline{background:#ff8c4226}.tag-meeting{background:#22c55e26}.tag-auto{background:#8b5cf626}}.del-btn{background:none;border:none;color:var(--text-sub);font-size:18px;cursor:pointer;padding:0;line-height:1;min-height:44px;display:flex;align-items:center}.del-btn:hover{color:var(--danger)}.clickable-card{cursor:pointer;transition:box-shadow .15s,transform .1s}.clickable-card:active{transform:scale(.99);box-shadow:0 1px 4px rgba(var(--primary-rgb),.08)}.week-view{padding:12px 16px 0}.week-day-group{margin-bottom:12px;background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card)}.week-day-header{display:flex;align-items:center;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--border);gap:6px}.week-day-header.week-day-today{background:rgba(var(--primary-rgb),.08)}.week-day-label{font-size:var(--font-sm);font-weight:700;color:var(--text);min-width:36px}.week-day-header.week-day-today .week-day-label{color:var(--primary)}.week-day-date{font-size:var(--font-xs);color:var(--text-sub);flex:1}.week-day-count{font-size:var(--font-xs);color:var(--text-sub);background:var(--border);border-radius:8px;padding:1px 7px}.week-day-header.week-day-today .week-day-count{background:rgba(var(--primary-rgb),.15);color:var(--primary)}.week-empty-row{padding:10px 14px;font-size:var(--font-sm);color:var(--text-sub)}.week-item{display:flex;align-items:flex-start;padding:10px 14px;border-bottom:1px solid var(--border);gap:10px}.week-item:last-child{border-bottom:none}.week-item-time{font-size:var(--font-xs);color:var(--text-sub);min-width:38px;padding-top:2px}.week-item-info{flex:1}.week-item-title{font-size:var(--font-base);font-weight:600;color:var(--text)}.week-item-remark{font-size:var(--font-xs);color:var(--text-sub);margin-top:2px}.week-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.fab{position:fixed;right:calc(50% - 220px);bottom:calc(var(--tabbar-height) + 16px);width:52px;height:52px;border-radius:50%;background:var(--primary-gradient);color:#fff;font-size:28px;border:none;box-shadow:0 4px 16px rgba(var(--primary-rgb),.4);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:50}.fab:active{transform:scale(.95)}@media(max-width:480px){.fab{right:20px}}.demo-banner{display:flex;align-items:center;justify-content:space-between;background:var(--primary-gradient);border-radius:14px;padding:14px 16px;margin-bottom:12px;cursor:pointer;gap:12px;box-shadow:0 4px 16px rgba(var(--primary-rgb),.25);transition:opacity .15s}.demo-banner:active{opacity:.85}.demo-banner-left{flex:1;min-width:0}.demo-banner-title{font-size:var(--font-sm);font-weight:700;color:#fff;margin-bottom:3px}.demo-banner-desc{font-size:12px;color:#ffffffd9;line-height:1.4}.demo-banner-btn{display:inline-block;background:#ffffff38;color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:20px;white-space:nowrap}.demo-card{opacity:.88;cursor:pointer}.demo-card:hover{opacity:1}.status-btn-group{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;margin-right:12px;margin-top:2px}.status-more-btn{background:none;border:none;color:var(--text-sub);font-size:16px;cursor:pointer;padding:0;line-height:1;width:28px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .15s,color .15s;letter-spacing:1px}.status-more-btn:hover{background:var(--bg);color:var(--primary)}.status-more-btn:active{background:var(--border)}.status-btn{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:2px solid #D1D5DB;background:transparent;cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .15s;-webkit-tap-highlight-color:transparent}.status-btn.status-pending{border-color:#d1d5db;color:transparent}.status-btn.status-pending:active{border-color:var(--primary);background:rgba(var(--primary-rgb),.08)}.status-btn.status-done{border-color:#22c55e;background:#22c55e;color:#fff}.status-btn.status-delayed{border-color:#f59e0b;background:#fff7ed;color:#f59e0b}.status-btn.status-abandoned{border-color:#9ca3af;background:#f3f4f6;color:#9ca3af}.schedule-card.status-done .schedule-title{text-decoration:line-through;color:var(--text-sub)}.schedule-card.status-done{opacity:.7}.schedule-card.status-abandoned .schedule-title{text-decoration:line-through;color:var(--text-sub)}.schedule-card.status-abandoned{opacity:.5}.schedule-card.status-delayed{border-left:3px solid #F59E0B}.status-menu{background:var(--card);border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden;min-width:160px;border:1px solid var(--border)}.status-menu button{display:block;width:100%;padding:13px 16px;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);font-size:var(--font-sm);color:var(--text);cursor:pointer;font-weight:500}.status-menu button:last-child{border-bottom:none}.status-menu button:active{background:var(--bg)}@media(hover:hover)and (pointer:fine){.clickable-card:hover{box-shadow:0 4px 16px rgba(var(--primary-rgb),.14);transform:translateY(-1px)}.del-btn:hover{color:var(--danger, #EF4444);background:#ef444414;border-radius:6px}.toggle-btn:hover:not(.active){opacity:.8}.fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--primary-rgb),.4)}.day-cell:hover:not(.selected){background:rgba(var(--primary-rgb),.06)}.demo-banner:hover{opacity:.9}.week-item:hover{background:rgba(var(--primary-rgb),.04)}}.context-menu{position:fixed;z-index:9999;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px #00000026;padding:4px 0;min-width:148px;animation:contextMenuIn .12s ease}@keyframes contextMenuIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:14px;color:var(--text);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.context-menu-item:hover{background:rgba(var(--primary-rgb),.07)}.context-menu-item.danger{color:var(--danger, #EF4444)}.context-menu-item.danger:hover{background:#ef444414}.context-menu-divider{height:1px;background:var(--border);margin:3px 0}.keyboard-hint{position:fixed;bottom:calc(var(--tabbar-height) + 20px);left:50%;transform:translate(-50%);background:#000000b8;color:#fff;font-size:12px;padding:6px 14px;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .3s;white-space:nowrap;z-index:200}.keyboard-hint.visible{opacity:1}.now-time-line{display:flex;align-items:center;gap:8px;padding:4px 16px;margin:4px 0}.now-time-label{font-size:11px;font-weight:600;color:#ef4444;white-space:nowrap;flex-shrink:0}.now-time-bar{flex:1;height:2px;background:#ef4444;border-radius:1px;position:relative}.now-time-bar:before{content:"";position:absolute;left:-4px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#ef4444;border-radius:50%}.ai-page{display:flex;flex-direction:column;height:100%;background:var(--bg)}.ai-header{background:var(--primary-gradient);color:#fff;padding:16px 20px;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.clear-btn{background:#fff3;border:none;color:#fff;font-size:12px;padding:4px 10px;border-radius:10px;cursor:pointer}.clear-btn:active{opacity:.7}.msg-list{flex:1;overflow-y:auto;padding:16px 12px 8px;display:flex;flex-direction:column;gap:12px}.msg-row{display:flex;align-items:flex-end;gap:8px}.msg-row.user{flex-direction:row-reverse}.avatar{width:32px;height:32px;border-radius:50%;background:#eef3ff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.user-avatar{background:var(--primary-gradient);color:#fff;font-size:12px;font-weight:700}.bubble{max-width:75%;background:var(--card);border-radius:16px 16px 16px 4px;padding:10px 14px;box-shadow:var(--shadow-card);font-size:var(--font-base);line-height:1.6;color:var(--text)}.msg-row.user .bubble{background:var(--primary-gradient);color:#fff;border-radius:16px 16px 4px;box-shadow:0 2px 8px rgba(var(--primary-rgb),.3)}.bubble-conflict{border-left:3px solid #FF8C42;background:#fff9f5}@media(prefers-color-scheme:dark){.bubble-conflict{background:#ff8c421a}}.bubble-text{word-break:break-word;white-space:pre-wrap}.tool-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.tool-tag{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.tool-ok{background:#e8f5e9;color:#2e7d32}.tool-fail{background:#fff3e0;color:#e65100}.tool-status{color:var(--primary);font-size:13px;font-style:italic}.typing{color:#b0b5c8;font-size:20px;letter-spacing:3px;animation:blink 1.2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.quick-cmds{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 8px 40px}.quick-btn{background:var(--card);border:1px solid rgba(var(--primary-rgb),.3);color:var(--primary);font-size:var(--font-xs);padding:6px 12px;border-radius:16px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-card)}.quick-btn:hover{background:rgba(var(--primary-rgb),.08)}.quick-btn:active{transform:scale(.97)}.msg-content{display:flex;flex-direction:column;gap:8px;max-width:85%;min-width:0;width:100%}.msg-row.user .msg-content{align-items:flex-end}.schedule-cards{display:flex;flex-direction:column;gap:8px}.schedule-card{background:var(--card);border:1.5px solid var(--border);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-card)}.schedule-card-best{border-color:var(--primary);background:linear-gradient(135deg,#f0f4ff,#f8f0ff)}.schedule-card-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.best-badge{font-size:11px;background:var(--primary-gradient);color:#fff;padding:2px 7px;border-radius:8px;font-weight:600;white-space:nowrap}.schedule-card-time{font-size:var(--font-sm);font-weight:600;color:var(--text);flex:1}.schedule-card-score{font-size:12px;font-weight:700}.schedule-card-reason{font-size:var(--font-xs);color:var(--text-sub);margin-bottom:8px;line-height:1.5}.schedule-confirm-btn{width:100%;background:var(--surface);color:var(--primary);border:1.5px solid var(--primary);border-radius:8px;padding:7px 0;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.schedule-confirm-btn:active{opacity:.8}.schedule-card-best .schedule-confirm-btn{background:var(--primary-gradient);color:#fff;border-color:transparent;padding:9px 0;font-size:14px}.ai-header-left{display:flex;align-items:center;gap:8px}.ai-title{font-size:17px;font-weight:700}.ai-badge{font-size:10px;background:#ffffff40;padding:2px 7px;border-radius:8px;font-weight:500}.ai-input-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--border);flex-shrink:0}.batch-result-card{margin-top:4px;background:rgba(var(--primary-rgb),.07);border:1px solid rgba(var(--primary-rgb),.2);border-radius:12px;padding:12px 14px;max-width:300px}.batch-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.batch-result-title{font-size:var(--font-sm);font-weight:600;color:var(--primary)}.batch-result-count{font-size:var(--font-xs);color:var(--primary);background:rgba(var(--primary-rgb),.12);padding:2px 8px;border-radius:10px}.batch-result-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.batch-result-item{display:flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--text)}.batch-priority-badge{font-size:12px;flex-shrink:0}.batch-time{font-size:var(--font-xs);color:var(--primary);font-weight:500;white-space:nowrap;flex-shrink:0}.batch-task-title{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-failed{font-size:var(--font-xs);color:var(--warning);margin-bottom:8px;padding:4px 8px;background:#ff98001a;border-radius:6px}.batch-confirm-btn{width:100%;padding:8px 0;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:opacity .2s}.batch-confirm-btn:active{opacity:.85}@keyframes pulse-ring{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.voice-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding-bottom:80px}.voice-modal{background:var(--card);border-radius:20px;padding:28px 24px 20px;width:88%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:0 8px 32px #0000002e}.voice-wave{display:flex;align-items:flex-end;gap:5px;height:40px}.voice-wave span{display:block;width:6px;border-radius:3px;background:#d1d5db;height:10px}.voice-wave.wave-active span:nth-child(1){animation:bar .8s ease-in-out infinite;background:var(--primary)}.voice-wave.wave-active span:nth-child(2){animation:bar .8s ease-in-out .1s infinite;background:var(--primary)}.voice-wave.wave-active span:nth-child(3){animation:bar .8s ease-in-out .2s infinite;background:var(--primary)}.voice-wave.wave-active span:nth-child(4){animation:bar .8s ease-in-out .1s infinite;background:var(--primary)}.voice-wave.wave-active span:nth-child(5){animation:bar .8s ease-in-out 0s infinite;background:var(--primary)}@keyframes bar{0%,to{height:8px}50%{height:32px}}.voice-status-text{font-size:var(--font-sm);color:var(--text-sub)}.voice-preview{font-size:var(--font-base);color:var(--text);background:var(--bg);border-radius:10px;padding:10px 14px;width:100%;min-height:40px;word-break:break-all}.voice-actions{display:flex;gap:12px;width:100%}.voice-stop-btn{flex:1;padding:10px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.voice-cancel-btn{flex:1;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text-sub);font-size:var(--font-sm);cursor:pointer}.img-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:200}.img-modal{background:var(--card);border-radius:20px 20px 0 0;width:100%;max-height:80vh;overflow-y:auto;padding:0 0 max(24px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column}.img-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;font-size:var(--font-base);font-weight:600;color:var(--text);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card)}.img-close-btn{border:none;background:var(--bg);border-radius:50%;width:28px;height:28px;font-size:var(--font-sm);cursor:pointer;color:var(--text-sub)}.img-preview{width:100%;max-height:200px;object-fit:contain;background:var(--bg);border-bottom:1px solid var(--border)}.img-loading{text-align:center;padding:24px;color:var(--text-sub);font-size:var(--font-sm)}.img-events{padding:16px 20px;display:flex;flex-direction:column;gap:10px}.img-events-title{font-size:var(--font-sm);color:var(--text-sub);margin-bottom:4px}.img-event-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border-radius:10px;padding:10px 12px;gap:8px}.img-event-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.img-event-title{font-size:var(--font-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.img-event-time{font-size:var(--font-xs);color:var(--text-sub)}.img-add-btn{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:rgba(var(--primary-rgb),.1);color:var(--primary);font-size:var(--font-sm);font-weight:600;cursor:pointer}.img-add-all-btn{width:100%;padding:12px;border:none;border-radius:12px;background:var(--primary);color:#fff;font-size:var(--font-base);font-weight:600;cursor:pointer;margin-top:4px}.wechat-voice-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:300;pointer-events:none}.wechat-voice-modal{background:#1e1e1ee0;border-radius:20px;padding:28px 36px 22px;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:180px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s}.wechat-voice-overlay.canceling .wechat-voice-modal{background:#b41e1ed9}.wechat-voice-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center}.wechat-voice-wave{display:flex;align-items:flex-end;gap:4px;height:28px}.wechat-voice-wave span{display:block;width:4px;border-radius:2px;background:#ffffffe6;animation:wechat-bar .7s ease-in-out infinite;min-height:4px}.wechat-voice-wave span:nth-child(1){animation-delay:0s}.wechat-voice-wave span:nth-child(2){animation-delay:.1s}.wechat-voice-wave span:nth-child(3){animation-delay:.2s}.wechat-voice-wave span:nth-child(4){animation-delay:.1s}.wechat-voice-wave span:nth-child(5){animation-delay:0s}.wechat-voice-wave span:nth-child(6){animation-delay:.15s}.wechat-voice-wave span:nth-child(7){animation-delay:.05s}@keyframes wechat-bar{0%,to{height:4px}50%{height:24px}}.wechat-voice-overlay.canceling .wechat-voice-wave span{background:#ff7878e6;animation:none;height:4px}.wechat-voice-tip{font-size:13px;color:#ffffffd9;font-weight:500;letter-spacing:.3px;white-space:nowrap}.voice-btn{flex-shrink:0;width:40px;height:40px;border:none;border-radius:50%;background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;touch-action:none;user-select:none;-webkit-user-select:none}.voice-btn:active,.voice-btn-active{background:rgba(var(--primary-rgb),.12)!important;transform:scale(.95)}.voice-btn-cancel{background:#ef44441f!important}.img-btn{flex-shrink:0;width:40px;height:40px;border:none;border-radius:50%;background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.img-btn:active{transform:scale(.93)}.img-btn-loading{background:#ff98001a!important;cursor:not-allowed}.ai-input-area{background:var(--card);border-top:1px solid var(--border);flex-shrink:0;padding:8px 12px 12px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}.input-row{display:flex;align-items:center;gap:8px;width:100%}.ai-input{flex:1;min-width:0;width:0;border:1.5px solid var(--input-border);border-radius:20px;padding:9px 16px;font-size:var(--font-sm);outline:none;background:var(--input-bg);color:var(--text);transition:border-color .2s;resize:none;line-height:1.5;height:auto;max-height:120px;overflow-y:auto;box-sizing:border-box}.ai-input:focus{border-color:var(--primary);background:var(--card)}.ai-input::placeholder{color:var(--text-sub);opacity:.7}.send-btn{flex-shrink:0;width:40px;height:40px;background:var(--primary-gradient);color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s,transform .1s}.send-btn:disabled{opacity:.45;cursor:not-allowed}.send-btn:not(:disabled):active{opacity:.8;transform:scale(.93)}.profile-choices{display:flex;flex-direction:column;gap:8px;margin-top:10px}.profile-choice-btn{display:flex;flex-direction:column;align-items:flex-start;background:var(--card-bg, #fff);border:1.5px solid var(--border, #E5E7EB);border-radius:12px;padding:11px 14px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s,transform .1s;width:100%}.profile-choice-btn:active{transform:scale(.98);border-color:var(--primary);background:rgba(var(--primary-rgb),.06)}.choice-label{font-size:14px;font-weight:600;color:var(--text-main, #11181C);line-height:1.4}.choice-desc{font-size:12px;color:var(--text-sub, #687076);margin-top:2px;line-height:1.4}.skip-profile-btn{background:none;border:none;color:var(--text-sub, #687076);font-size:12px;padding:6px 0;cursor:pointer;text-align:center;width:100%;margin-top:2px;text-decoration:underline;text-underline-offset:2px}.skip-profile-btn:active{opacity:.6}.bubble-streaming{background:var(--card);border-radius:16px 16px 16px 4px;padding:10px 14px;box-shadow:var(--shadow-card);font-size:var(--font-base);line-height:1.6;color:var(--text);max-width:75%;opacity:.92}.typing-cursor{display:inline-block;color:var(--primary);font-weight:700;animation:cursor-blink .7s step-end infinite;margin-left:1px;vertical-align:text-bottom}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.bubble-loading{background:var(--card);border-radius:16px 16px 16px 4px;padding:10px 14px;box-shadow:var(--shadow-card);max-width:75%}.loading-text{font-size:13px;color:var(--text-sub, #687076)}.loading-dots{display:inline-flex;gap:3px;align-items:center}.loading-dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary);animation:dot-bounce 1.2s ease-in-out infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.ai-capture-card{margin-top:8px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;max-width:280px}.ai-capture-empty{display:flex;align-items:center;gap:6px;font-size:var(--font-xs);color:var(--text-sub);padding:8px 12px}.ai-capture-empty-icon{font-size:16px}.ai-capture-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-capture-type{font-size:var(--font-xs);font-weight:700}.ai-capture-summary{font-size:var(--font-xs);color:var(--text-sub);font-style:italic;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-capture-section-label{font-size:var(--font-xs);font-weight:700;color:var(--text-sub);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.ai-capture-actions{display:flex;flex-direction:column}.ai-capture-action-row{display:flex;align-items:center;gap:8px;padding:7px 8px;background:var(--input-bg);border-radius:8px;margin-bottom:6px;transition:opacity .2s}.ai-capture-action-row.added{opacity:.55}.ai-capture-action-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ai-capture-action-title{font-size:var(--font-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-capture-action-deadline{font-size:11px;color:var(--text-sub)}.ai-capture-action-priority{font-size:11px;font-weight:600}.ai-capture-add-btn{flex-shrink:0;padding:5px 10px;background:var(--primary-gradient);border:none;border-radius:6px;color:#fff;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s}.ai-capture-add-btn.added{background:var(--success);cursor:default}.ai-capture-add-btn:active:not(.added){opacity:.8}.ai-capture-keypoints{display:flex;flex-direction:column}.ai-capture-keypoint{font-size:var(--font-xs);color:var(--text-sub);line-height:1.55;padding:2px 0}.ai-capture-toast{background:#333;color:#fff;font-size:12px;padding:4px 10px;border-radius:8px;margin-bottom:8px;text-align:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ai-capture-action-row.snoozed .ai-capture-action-title,.ai-capture-action-title.snoozed{color:#aaa;text-decoration:line-through}.ai-capture-action-title.scheduled{color:#aaa}.ai-capture-action-btns{display:flex;align-items:center;gap:4px;flex-shrink:0}.ai-capture-opbtn{background:none;border:1px solid #e0e0e0;border-radius:6px;padding:2px 7px;font-size:13px;color:#888;cursor:pointer;line-height:1.4}.ai-capture-opbtn.active{background:#f0f0f0;color:#333}.ai-capture-opbar{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0 2px;border-top:1px solid #f0f0f0;margin-top:4px;width:100%}.ai-capture-opbar button{font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid #e0e0e0;background:#fafafa;cursor:pointer;color:#555}.ai-capture-opbar button:hover{background:#f0f0f0}.ai-capture-edit-input{border:1px solid #7c3aed;border-radius:6px;padding:4px 8px;font-size:13px;width:100%;outline:none;margin-bottom:4px}.ai-capture-edit-cancel,.ai-capture-edit-save{font-size:11px;padding:3px 10px;border-radius:6px;border:none;cursor:pointer}.ai-capture-edit-cancel{background:#f0f0f0;color:#555}.ai-capture-edit-save{background:#7c3aed;color:#fff}.ai-capture-priority-picker{display:flex;gap:6px;padding:4px 0;width:100%}.ai-capture-priority-opt{font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid #e0e0e0;background:#fafafa;cursor:pointer}.ai-capture-priority-opt.selected{background:#7c3aed;color:#fff;border-color:#7c3aed}.ai-capture-reminder-tag{font-size:10px;color:#f59e0b;background:#fffbeb;border:1px solid #fde68a;border-radius:4px;padding:1px 5px;margin-left:4px}.ai-capture-reminder-overlay{position:fixed;inset:0;background:#0006;z-index:9999;display:flex;align-items:flex-end;justify-content:center}.ai-capture-reminder-picker{background:#fff;border-radius:16px 16px 0 0;padding:20px 16px 32px;width:100%;max-width:480px}.ai-capture-reminder-title{font-size:15px;font-weight:600;margin-bottom:4px}.ai-capture-reminder-action{font-size:12px;color:#888;margin-bottom:16px}.ai-capture-reminder-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.ai-capture-reminder-opts button{padding:12px;border-radius:10px;border:1px solid #e0e0e0;background:#fafafa;font-size:14px;cursor:pointer;text-align:left}.ai-capture-reminder-opts button:hover{background:#f0f0f0}.ai-capture-reminder-cancel{width:100%;padding:12px;border-radius:10px;border:none;background:#f0f0f0;font-size:14px;cursor:pointer;color:#555}.ai-add-shortcut{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin:8px 12px 0;background:var(--card);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:background .15s,transform .1s;flex-shrink:0}.ai-add-shortcut:active{background:var(--surface, #f5f5f5);transform:scale(.98)}.ai-add-shortcut-left{display:flex;align-items:center;gap:10px}.ai-add-shortcut-icon{font-size:20px;line-height:1}.ai-add-shortcut-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.3}.ai-add-shortcut-desc{font-size:11px;color:var(--text-sub);margin-top:1px}.ai-add-shortcut-arrow{font-size:18px;color:var(--text-sub);font-weight:300}.login-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px calc(24px + var(--safe-bottom));background:linear-gradient(160deg,var(--primary) 0%,var(--primary-dark) 45%,var(--bg) 70%);box-sizing:border-box}.login-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:36px}.login-logo{width:72px;height:72px;background:#ffffff38;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff;letter-spacing:1px;margin-bottom:14px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.login-app-name{font-size:var(--font-xl);font-weight:800;color:#fff;margin:0 0 6px;letter-spacing:1px}.login-slogan{font-size:var(--font-sm);color:#ffffffd1;margin:0}.login-card{width:100%;max-width:400px;background:var(--card);border-radius:20px;box-shadow:0 16px 48px rgba(var(--primary-rgb),.18);padding:28px 24px 24px;display:flex;flex-direction:column;gap:0}.login-title{font-size:var(--font-lg);font-weight:700;color:var(--text);margin:0 0 6px}.login-desc{font-size:var(--font-sm);color:var(--text-sub);margin:0 0 20px}.login-back{background:none;border:none;padding:0;font-size:var(--font-sm);color:var(--primary);cursor:pointer;text-align:left;margin-bottom:14px;font-weight:500;display:flex;align-items:center;gap:4px}.phone-input-wrap{display:flex;align-items:center;background:var(--input-bg);border:1.5px solid var(--input-border);border-radius:var(--radius);padding:0 14px;margin-bottom:12px;transition:border-color .2s}.phone-input-wrap:focus-within{border-color:var(--primary)}.phone-prefix{font-size:var(--font-sm);color:var(--text-sub);margin-right:8px;font-weight:500;white-space:nowrap;-webkit-user-select:none;user-select:none}.login-input{flex:1;height:48px;background:transparent;border:none;outline:none;font-size:var(--font-md);color:var(--text);width:100%}.login-input.code-input{background:var(--input-bg);border:1.5px solid var(--input-border);border-radius:var(--radius);padding:0 14px;text-align:center;letter-spacing:6px;font-size:var(--font-lg);font-weight:600;margin-bottom:12px;transition:border-color .2s}.login-input.code-input:focus{border-color:var(--primary);outline:none}.login-error{font-size:var(--font-sm);color:var(--danger);margin:0 0 10px;padding:8px 12px;background:#ff525214;border-radius:8px}.login-btn{width:100%;height:50px;background:linear-gradient(135deg,var(--primary),#6B5BFF);color:#fff;border:none;border-radius:var(--radius);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:4px}.login-btn:active{transform:scale(.98);opacity:.9}.login-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.resend-wrap{display:flex;justify-content:center;margin-top:16px}.resend-btn{background:none;border:none;font-size:var(--font-sm);color:var(--primary);cursor:pointer;padding:4px 8px;font-weight:500}.resend-btn:disabled{opacity:.5;cursor:not-allowed}.resend-disabled{font-size:var(--font-sm);color:var(--text-sub)}.login-footer{font-size:var(--font-xs);color:#ffffff80;margin-top:20px;text-align:center}.skip-login-btn{background:none;border:none;font-size:var(--font-sm);color:#ffffffa6;cursor:pointer;padding:8px 16px;margin-top:8px;border-radius:20px;transition:color .2s,background .2s;text-decoration:underline;text-underline-offset:3px}.skip-login-btn:hover{color:#ffffffe6;background:#ffffff14}
