@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&display=swap";:root{--color-primary: #1a1a2e;--color-primary-hover: #16213e;--color-primary-light: #e8eaf6;--color-accent: #f59e0b;--color-accent-light: #fef3c7;--color-accent-glow: rgba(245, 158, 11, .3);--gradient-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-warm: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-calm: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);--gradient-surface: linear-gradient(180deg, #ffffff 0%, #f8f9fc 100%);--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-hover: #f8fafc;--color-surface-elevated: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-success: #10b981;--color-info: #3b82f6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--font-base: "Inter", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: .875rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(102, 126, 234, .15);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 280px;--insight-width: 320px;--header-height: 56px;--input-area-height: auto;--safe-area-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-base);background-color:var(--color-bg);color:var(--color-text);line-height:1.7;min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{height:100vh;height:100dvh}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit;-webkit-tap-highlight-color:transparent}button:active{transform:scale(.97)}textarea{font-family:inherit}@keyframes fadeIn{to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 8px 30px #667eea40}50%{box-shadow:0 8px 40px #667eea66}}.spinner{animation:spin 1s linear infinite}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:#667eea33;color:var(--color-text)}.app-layout{display:flex;height:100%;position:relative;overflow:hidden;background:var(--color-surface)}.sidebar-overlay{position:fixed;inset:0;background:#0f172a99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:40;opacity:0;animation:fadeIn var(--transition-base) forwards}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);height:100%;background:var(--gradient-surface);border-right:1px solid var(--color-border);padding:var(--space-4);position:fixed;left:0;top:0;z-index:50;transform:translate(-100%);transition:transform var(--transition-slow);will-change:transform}.sidebar.is-open{transform:translate(0)}.sidebar__mobile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.sidebar__mobile-header span{font-weight:600;font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.02em}.sidebar__close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.sidebar__close-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar__new-chat-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);font-weight:500;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);transition:all var(--transition-fast);box-shadow:var(--shadow-xs);margin-bottom:var(--space-6)}.sidebar__new-chat-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.sidebar__new-chat-btn:active{transform:translateY(0) scale(.98)}.sidebar__history{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar__history-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-2);margin-bottom:var(--space-2)}.sidebar__history-list{display:flex;flex-direction:column;gap:2px}.sidebar__history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:left;transition:all var(--transition-fast)}.sidebar__history-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar__history-item svg:first-child{flex-shrink:0;opacity:.5}.sidebar__history-item-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__history-delete-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-md);color:var(--color-text-muted);opacity:0;pointer-events:none;transition:all var(--transition-fast);cursor:pointer}.sidebar__history-item:hover .sidebar__history-delete-btn{opacity:1;pointer-events:auto}.sidebar__history-delete-btn:hover{background:#ef444426;color:#ef4444}@media(hover:none){.sidebar__history-delete-btn{opacity:.5;pointer-events:auto}}.sidebar__history-item--confirming{background:#ef444414}.sidebar__history-confirm-icon{flex-shrink:0;color:#ef4444;opacity:.8}.sidebar__history-item-title--confirm{color:#ef4444;font-weight:500;font-size:var(--text-xs)}.sidebar__history-confirm-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sidebar__history-confirm-btn--yes{color:#ef4444}.sidebar__history-confirm-btn--yes:hover{background:#ef444433;color:#dc2626}.sidebar__history-confirm-btn--no{color:var(--color-text-muted)}.sidebar__history-confirm-btn--no:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar__footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.sidebar__settings-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.sidebar__settings-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar__user-section{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.sidebar__user-info{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:1}.sidebar__user-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}.sidebar__user-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--gradient-bg);color:#fff;font-size:var(--text-xs);font-weight:700}.sidebar__user-details{display:flex;flex-direction:column;min-width:0}.sidebar__user-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-email{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__logout-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-muted);flex-shrink:0;transition:all var(--transition-fast)}.sidebar__logout-btn:hover{background:#ef44441a;color:#ef4444}.chat-area{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;background:var(--color-bg)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);height:var(--header-height);background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:10}.chat-header__left{display:flex;align-items:center;gap:var(--space-2)}.chat-header__menu-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.chat-header__menu-btn:hover{background:var(--color-surface-hover)}.chat-header__logo{display:flex;align-items:center;gap:var(--space-2)}.chat-header__logo-icon{width:28px;height:28px;border-radius:var(--radius-md);background:var(--gradient-bg);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:#fff;font-weight:700}.chat-header__logo-text{font-weight:700;font-size:var(--text-base);background:var(--gradient-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.chat-header__insight-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);font-size:var(--text-lg);transition:all var(--transition-fast);position:relative}.chat-header__insight-btn:after{content:"";position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 6px var(--color-accent-glow)}.chat-header__insight-btn:hover{background:var(--color-surface-hover)}.chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8);animation:fadeInUp .6s ease-out}.chat-empty-state__icon{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--gradient-bg);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-6);box-shadow:0 8px 30px #667eea40;animation:pulse-glow 3s ease-in-out infinite}.chat-empty-state__avatar{width:100%;height:100%;object-fit:cover}.chat-empty-state__title{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-2);color:var(--color-text)}.chat-empty-state__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.8;max-width:320px}.message{display:flex;gap:var(--space-3);max-width:720px;width:100%;margin:0 auto;animation:messageIn var(--transition-base) ease-out}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message__avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--text-sm);font-weight:700}.message__avatar--ai{background:var(--gradient-bg);color:#fff;box-shadow:0 2px 8px #667eea4d}.message__content{flex:1;min-width:0}.message__name{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);margin-bottom:var(--space-1);letter-spacing:.02em}.message__text{font-size:var(--text-sm);line-height:1.8;color:var(--color-text);background:var(--color-surface);padding:var(--space-3) var(--space-4);border-radius:4px var(--radius-xl) var(--radius-xl) var(--radius-xl);box-shadow:var(--shadow-sm);word-break:break-word}.chat-message{display:flex;gap:var(--space-3);max-width:720px;width:100%;margin:0 auto;animation:messageIn var(--transition-base) ease-out}.chat-message--user{justify-content:flex-end}.chat-message--assistant{justify-content:flex-start}.chat-message__avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--gradient-bg);box-shadow:0 2px 8px #667eea4d}.chat-message__avatar img{width:100%;height:100%;object-fit:cover}.chat-message__bubble{max-width:75%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-sm);line-height:1.8;word-break:break-word;box-shadow:var(--shadow-sm)}.chat-message--user .chat-message__bubble{background:var(--gradient-bg);color:#fff;border-bottom-right-radius:4px}.chat-message--assistant .chat-message__bubble{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-light);border-bottom-left-radius:4px}.chat-message__text{margin:0;white-space:pre-wrap}.chat-message__time{display:block;font-size:10px;text-align:right;margin-top:4px;opacity:.5}.chat-message--user .chat-message__time{color:#ffffffb3}.chat-message--assistant .chat-message__time{color:var(--color-text-muted)}.chat-message__bubble--loading{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.chat-message__spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-input-area{padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + var(--safe-area-bottom));background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--color-border-light)}.chat-input-wrapper{max-width:720px;margin:0 auto;position:relative;display:flex;align-items:flex-end;gap:var(--space-2);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.chat-input-wrapper:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a,var(--shadow-md)}.chat-input{flex:1;border:none;outline:none;resize:none;font-size:var(--text-sm);line-height:1.6;padding:var(--space-2) 0;min-height:24px;max-height:120px;background:transparent;color:var(--color-text)}.chat-input::placeholder{color:var(--color-text-muted)}.chat-send-btn{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xl);background:var(--gradient-bg);color:#fff;transition:all var(--transition-fast);box-shadow:0 2px 8px #667eea4d}.chat-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #667eea66}.chat-send-btn:active{transform:scale(.95)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.insight-overlay{position:fixed;inset:0;background:#0f172a99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:40;opacity:0;animation:fadeIn var(--transition-base) forwards}.insight-panel{display:flex;flex-direction:column;width:var(--insight-width);height:100%;background:var(--gradient-surface);border-left:1px solid var(--color-border);position:fixed;right:0;top:0;z-index:50;transform:translate(100%);transition:transform var(--transition-slow);will-change:transform}.insight-panel.is-open{transform:translate(0)}.insight-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border-light);min-height:var(--header-height)}.insight-panel__title{font-size:var(--text-sm);font-weight:700;display:flex;align-items:center;gap:var(--space-2)}.insight-panel__close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.insight-panel__close-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.insight-panel__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-4)}.insight-section{margin-bottom:var(--space-6)}.insight-section__title{font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3)}.insight-card{background:var(--color-surface);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);box-shadow:var(--shadow-xs)}.insight-card__text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.8}.insight-card__loading{color:var(--color-text-muted);font-style:italic;animation:pulse-loading 1.5s ease-in-out infinite}@keyframes pulse-loading{0%,to{opacity:.5}50%{opacity:1}}.insight-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.insight-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;border:1px solid;transition:all var(--transition-fast)}.insight-tag--default{background:var(--color-accent-light);color:#92400e;border-color:#fde68a}.insight-tag--info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.chat-message__debug{margin-top:8px;padding:10px 12px;background-color:#1e1e32e6;border-radius:var(--radius-md);font-size:11px;font-family:monospace;color:#e2e8f0;border:1px solid rgba(102,126,234,.3);text-align:left;max-width:100%;overflow-x:auto;line-height:1.6}.chat-message__debug-role{color:#fbbf24;font-weight:700}.chat-message__debug-heading{margin-top:4px;font-weight:700;color:#667eea}.chat-message__debug-flags{margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}.debug-float-btn{position:fixed;bottom:80px;right:16px;z-index:100;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:#ffffffe6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:all var(--transition-fast);opacity:.8}.debug-float-btn:hover{opacity:1;transform:scale(1.1)}.debug-float-btn--active{border:2px solid #667eea;background:#eef2ff}@media(min-width:768px){.sidebar{position:static;transform:translate(0);flex-shrink:0}.sidebar__mobile-header,.chat-header{display:none}.chat-area{border-radius:0}.chat-messages{padding:var(--space-8)}.chat-input-area{padding:var(--space-4) var(--space-8)}.message__text{font-size:var(--text-base)}}@media(min-width:1024px){.insight-panel{position:static;transform:translate(0);flex-shrink:0}.insight-panel__close-btn{display:none}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--space-4);background:var(--gradient-bg);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(245,158,11,.12) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(118,75,162,.15) 0%,transparent 40%);animation:bgShift 20s ease-in-out infinite}@keyframes bgShift{0%,to{transform:translate(0)}50%{transform:translate(2%,-2%)}}.login-card{position:relative;z-index:1;width:100%;max-width:400px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-2xl);padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-xl),0 0 60px #00000014;text-align:center;animation:cardIn .5s ease-out}@keyframes cardIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-card__icon{width:64px;height:64px;margin:0 auto var(--space-6);border-radius:50%;background:var(--gradient-bg);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px #667eea4d;animation:pulse-glow 3s ease-in-out infinite}.login-card__icon svg{color:#fff}.login-card__title{font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--space-2);background:var(--gradient-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-card__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-8);line-height:1.8}.login-form{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4);text-align:left}.login-form__field{display:flex;flex-direction:column;gap:var(--space-2)}.login-form__label-row{display:flex;align-items:center;justify-content:space-between}.login-form__label{font-size:var(--text-sm);font-weight:600;color:var(--color-text);letter-spacing:.01em}.login-form__forgot-link{font-size:var(--text-xs);color:#667eea;text-decoration:none;font-weight:500;transition:all var(--transition-fast)}.login-form__forgot-link:hover{color:#764ba2;text-decoration:underline}.login-form__input-wrapper{position:relative;display:flex;align-items:center}.login-form__input-icon{position:absolute;left:var(--space-3);color:var(--color-text-muted);pointer-events:none;transition:color var(--transition-fast);z-index:1}.login-form__input-wrapper:focus-within .login-form__input-icon{color:#667eea}.login-form__input{width:100%;padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-3) + 18px + var(--space-3));border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm);font-family:var(--font-base);color:var(--color-text);background:var(--color-surface);transition:all var(--transition-fast);outline:none}.login-form__input::placeholder{color:var(--color-text-muted)}.login-form__input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.login-form__input:hover:not(:focus){border-color:var(--color-text-muted)}.login-form__toggle-password{position:absolute;right:var(--space-3);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;background:none;border:none}.login-form__toggle-password:hover{color:var(--color-text-secondary);background:var(--color-surface-hover)}.login-card__btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-6);border-radius:var(--radius-xl);font-weight:600;font-size:var(--text-sm);transition:all var(--transition-fast);box-shadow:var(--shadow-md);cursor:pointer;border:none}.login-card__btn svg{width:20px;height:20px}.login-card__btn--primary{color:#fff;background:var(--gradient-bg);box-shadow:0 4px 15px #667eea59}.login-card__btn--primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea73}.login-card__btn--primary:active{transform:translateY(0) scale(.98)}.login-card__btn--google{color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);box-shadow:var(--shadow-sm)}.login-card__btn--google:hover{background:var(--color-surface-hover);border-color:var(--color-text-muted);transform:translateY(-1px);box-shadow:var(--shadow-md)}.login-card__btn--google:active{transform:translateY(0) scale(.98)}.login-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-4) 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-divider__text{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500;letter-spacing:.05em}.login-card__inapp-notice{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;line-height:1.7;padding:var(--space-3) var(--space-4);background:#667eea0f;border:1px solid rgba(102,126,234,.15);border-radius:var(--radius-lg)}.login-card__signup{margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.login-card__signup-link{color:#667eea;text-decoration:none;font-weight:600;margin-left:var(--space-1);transition:all var(--transition-fast)}.login-card__signup-link:hover{color:#764ba2;text-decoration:underline}.login-form__error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);color:#ef4444;text-align:center;animation:shakeIn .3s ease-out}@keyframes shakeIn{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.otp-input-group{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6)}.otp-input-group__digit{width:48px;height:56px;text-align:center;font-size:var(--text-2xl);font-weight:700;font-family:var(--font-base);color:var(--color-text);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);outline:none;transition:all var(--transition-fast);caret-color:#667eea}.otp-input-group__digit:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26;transform:scale(1.05)}.otp-input-group__digit:hover:not(:focus){border-color:var(--color-text-muted)}.otp-resend{margin-top:var(--space-6);text-align:center}.otp-resend__text{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.otp-resend__btn{background:none;border:none;color:#667eea;font-size:var(--text-sm);font-weight:600;font-family:var(--font-base);cursor:pointer;transition:all var(--transition-fast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg)}.otp-resend__btn:hover:not(:disabled){color:#764ba2;background:#667eea14}.otp-resend__btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.login-card__btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.insight-summary-page{position:fixed;inset:0;background:var(--color-bg);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:100}.insight-summary__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);height:var(--header-height);background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:10;flex-shrink:0}.insight-summary__back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.insight-summary__back-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.insight-summary__header-center{text-align:center}.insight-summary__page-title{font-size:var(--text-base);font-weight:700;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--gradient-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.insight-summary__page-subtitle{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.insight-summary__content{padding:var(--space-4);padding-bottom:var(--space-12);max-width:680px;margin:0 auto;width:100%;animation:fadeInUp .5s ease-out}.insight-summary__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.insight-summary__stat-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.insight-summary__stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.insight-summary__stat-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.insight-summary__stat-icon--sessions{background:linear-gradient(135deg,#667eea,#764ba2)}.insight-summary__stat-icon--tags{background:linear-gradient(135deg,#f59e0b,#ef4444)}.insight-summary__stat-icon--total{background:linear-gradient(135deg,#10b981,#3b82f6)}.insight-summary__stat-info{display:flex;flex-direction:column;align-items:center}.insight-summary__stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);line-height:1.2}.insight-summary__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500}.insight-summary__categories{margin-bottom:var(--space-6)}.insight-summary__section-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin-bottom:var(--space-4)}.insight-summary__cat-list{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:var(--space-3)}.insight-summary__cat-item{display:flex;align-items:center;gap:var(--space-3)}.insight-summary__cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.insight-summary__cat-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);white-space:nowrap;min-width:120px}.insight-summary__cat-bar-bg{flex:1;height:6px;background:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}.insight-summary__cat-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.34,1.56,.64,1);opacity:.75}.insight-summary__cat-count{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);white-space:nowrap;min-width:28px;text-align:right}.insight-summary__ranking{margin-bottom:var(--space-6)}.insight-summary__tag-list{display:flex;flex-direction:column;gap:var(--space-2)}.insight-summary__tag-item{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.insight-summary__tag-item:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border)}.insight-summary__tag-main{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left;transition:all var(--transition-fast);cursor:pointer}.insight-summary__tag-main:hover{background:var(--color-surface-hover)}.insight-summary__tag-main:active{transform:none}.insight-summary__tag-rank{flex-shrink:0}.insight-summary__rank-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--text-xs);font-weight:700;background:var(--color-bg);color:var(--color-text-secondary)}.insight-summary__rank-number--top1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 2px 8px #f59e0b59}.insight-summary__rank-number--top2{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;box-shadow:0 2px 6px #64748b4d}.insight-summary__rank-number--top3{background:linear-gradient(135deg,#cd7f32,#b8860b);color:#fff;box-shadow:0 2px 6px #b8860b4d}.insight-summary__tag-content{flex:1;min-width:0}.insight-summary__tag-name-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.insight-summary__tag-cat-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);font-size:10px;border:1px solid;flex-shrink:0;line-height:1}.insight-summary__tag-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insight-summary__tag-bar-row{display:flex;align-items:center;gap:var(--space-2)}.insight-summary__tag-bar-bg{flex:1;height:6px;background:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}.insight-summary__tag-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.34,1.56,.64,1)}.insight-summary__tag-count{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.insight-summary__chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.insight-summary__chevron.is-rotated{transform:rotate(90deg)}.insight-summary__tag-detail{padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-4) + 40px);background:var(--color-bg);border-top:1px solid var(--color-border-light);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.insight-summary__tag-detail-header{display:flex;align-items:center;gap:var(--space-1);font-size:10px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.insight-summary__tag-episodes{display:flex;flex-direction:column;gap:var(--space-2)}.insight-summary__episode{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-xs)}.insight-summary__episode-date{color:var(--color-text-muted);white-space:nowrap;font-weight:500;font-variant-numeric:tabular-nums}.insight-summary__episode-text{color:var(--color-text-secondary);line-height:1.6}.insight-summary__tendency{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);margin-bottom:var(--space-8)}.insight-summary__tendency-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.insight-summary__tendency-icon{font-size:var(--text-xl);line-height:1}.insight-summary__tendency-title{font-size:var(--text-base);font-weight:700;color:var(--color-text)}.insight-summary__tendency-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.8;margin-bottom:var(--space-4)}.insight-summary__sw-cards{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.insight-summary__sw-card{padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid}.insight-summary__sw-card--strength{background:linear-gradient(135deg,#f59e0b0f,#fbbf240a);border-color:#f59e0b33}.insight-summary__sw-card--weakness{background:linear-gradient(135deg,#6366f10f,#8b5cf60a);border-color:#6366f133}.insight-summary__sw-header{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:700;margin-bottom:var(--space-2)}.insight-summary__sw-card--strength .insight-summary__sw-header{color:#b45309}.insight-summary__sw-card--weakness .insight-summary__sw-header{color:#4f46e5}.insight-summary__sw-text{font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary)}@media(min-width:768px){.insight-summary__content{padding:var(--space-8);padding-bottom:var(--space-12)}.insight-summary__stat-card{flex-direction:row;padding:var(--space-5);gap:var(--space-4)}.insight-summary__stat-info{align-items:flex-start}.insight-summary__stat-value{font-size:var(--text-3xl)}.insight-summary__sw-cards{grid-template-columns:1fr 1fr}.insight-summary__cat-label{min-width:150px}}@media(min-width:1024px){.insight-summary__content{max-width:960px}}.settings-page{position:fixed;inset:0;background:var(--color-bg);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:100}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);height:var(--header-height);background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:10;flex-shrink:0}.settings-header__back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.settings-header__back-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.settings-header__center{text-align:center}.settings-header__title{font-size:var(--text-base);font-weight:700;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--gradient-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-content{padding:var(--space-4);padding-bottom:var(--space-12);max-width:680px;margin:0 auto;width:100%;animation:fadeInUp .5s ease-out}.settings-section{margin-bottom:var(--space-6)}.settings-section__title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin-bottom:var(--space-4)}.settings-section__description{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.6}.settings-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm)}.settings-info{display:flex;flex-direction:column;gap:var(--space-3)}.settings-info__row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0}.settings-info__row:not(:last-child){border-bottom:1px solid var(--color-border-light);padding-bottom:var(--space-3)}.settings-info__label{font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-info__value{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.settings-form{display:flex;flex-direction:column;gap:var(--space-4)}.settings-form__field{display:flex;flex-direction:column;gap:var(--space-1)}.settings-form__label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}.settings-form__input-wrapper{display:flex;align-items:center;gap:var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 var(--space-3);transition:border-color var(--transition-fast)}.settings-form__input-wrapper:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.settings-form__input-icon{color:var(--color-text-muted);flex-shrink:0}.settings-form__input{flex:1;border:none;background:none;padding:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-text);outline:none;font-family:var(--font-base)}.settings-form__input::placeholder{color:var(--color-text-muted)}.settings-form__toggle-password{display:flex;align-items:center;justify-content:center;padding:var(--space-1);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.settings-form__toggle-password:hover{color:var(--color-text-secondary)}.settings-form__submit{padding:var(--space-3) var(--space-4);background:var(--gradient-bg);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);font-family:var(--font-base)}.settings-form__submit:hover{opacity:.9}.settings-form__submit:disabled{opacity:.6;cursor:not-allowed}.settings-success{background:#22c55e14;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);color:#16a34a}.settings-error{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);color:#dc2626}@media(min-width:768px){.settings-content{padding:var(--space-8);padding-bottom:var(--space-12)}}.usage-page{position:fixed;inset:0;background:var(--color-bg);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:100}.usage-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);height:var(--header-height);background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:10;flex-shrink:0}.usage-header__back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.usage-header__back-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.usage-header__center{text-align:center}.usage-header__title{font-size:var(--text-base);font-weight:700;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--gradient-bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.usage-content{padding:var(--space-4);padding-bottom:var(--space-12);max-width:680px;margin:0 auto;width:100%;animation:fadeInUp .5s ease-out}.usage-cards{display:flex;flex-direction:column;gap:var(--space-4)}.usage-limit-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.usage-limit-card:hover{box-shadow:var(--shadow-md)}.usage-limit-card__header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-weight:600;font-size:var(--text-sm);color:var(--color-text);border-bottom:1px solid var(--color-border-light)}.usage-limit-card__body{padding:var(--space-5) var(--space-4)}.usage-limit{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.usage-limit__counts{display:flex;align-items:baseline;gap:.25rem}.usage-limit__current{font-size:var(--text-2xl);font-weight:700;line-height:1.2;color:var(--color-text)}.usage-limit__separator,.usage-limit__max{font-size:var(--text-lg);color:var(--color-text-secondary)}.usage-limit__unit{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:.25rem;align-self:flex-end;padding-bottom:.15rem}.usage-limit__bar{width:100%;height:6px;background:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}.usage-limit__bar-fill{height:100%;background:var(--gradient-bg);border-radius:var(--radius-full);transition:width .6s cubic-bezier(.34,1.56,.64,1)}.usage-limit__bar-fill--warning{background:#f59e0b}.usage-limit__bar-fill--danger{background:#ef4444}.usage-limit__meta{display:flex;justify-content:space-between;align-items:center}.usage-limit__percent{font-size:var(--text-xs);color:var(--color-text-muted)}.usage-limit__reset{font-size:var(--text-xs);color:var(--color-text-secondary)}.usage-loading{display:flex;flex-direction:column;align-items:center;padding-top:60px}.usage-spinner{animation:usage-spin 1s linear infinite;color:var(--color-text-muted)}@keyframes usage-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.usage-loading__text{text-align:center;margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}.usage-error{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:#dc2626;text-align:center}@media(min-width:768px){.usage-content{padding:var(--space-8);padding-bottom:var(--space-12)}}
