.sidebar{width:var(--memoir-sidebar-w, 15rem);background-color:var(--bg-secondary);border-right:1px solid var(--border-secondary);display:flex;flex-direction:column;height:100vh;flex-shrink:0;position:sticky;top:0}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid var(--border-secondary)}.logo{display:flex;align-items:center;gap:var(--space-sm);font-size:1.25rem;font-weight:700;color:var(--text-primary);text-decoration:none}.logo-icon{width:1.5rem;height:1.5rem;border-radius:var(--radius-sm);object-fit:contain}.sidebar-nav{flex:1;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:none;background:none;width:100%;text-align:left;text-decoration:none;font-size:.875rem;font-family:inherit;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.nav-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.nav-item.active{background:var(--accent-bg);color:var(--accent-primary);font-weight:500}.nav-icon{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;flex-shrink:0}.session-section{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-secondary)}.session-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-xs) var(--space-md);background:none;border:none;color:var(--text-muted);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.session-section-toggle:hover{color:var(--text-secondary)}.session-toggle-arrow{display:flex;align-items:center}.session-list{display:flex;flex-direction:column;gap:.0625rem;margin-top:var(--space-xs)}.session-group{display:flex;flex-direction:column;gap:.0625rem}.session-group-label{font-size:.7rem;font-weight:500;color:var(--text-muted);padding:.375rem var(--space-md) .125rem calc(var(--space-md) + var(--space-2));text-transform:uppercase;letter-spacing:.03em}.session-group+.session-group{margin-top:var(--space-xs)}.session-item{display:flex;align-items:center;width:100%;padding:.375rem var(--space-md) .375rem calc(var(--space-md) + var(--space-2));background:none;border:none;color:var(--text-secondary);font-size:.8125rem;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.session-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.session-item.active{background:var(--accent-bg);color:var(--accent-primary)}.session-item-content{display:flex;flex-direction:column;min-width:0;width:100%}.session-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-time{font-size:.7rem;color:var(--text-muted);margin-top:.0625rem}.sidebar-shortcut-hint{padding:var(--space-xs) var(--space-md);text-align:center;font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.sidebar-help-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.125rem;display:flex;align-items:center;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.sidebar-help-btn:hover{color:var(--accent-primary)}.sidebar-help-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.sidebar-shortcut-hint kbd{padding:.125rem .375rem;border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-size:.625rem;font-family:var(--font-mono);background:var(--bg-tertiary)}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border-secondary);display:flex;flex-direction:column;gap:var(--space-md)}.new-socrates-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);border:none;border-radius:var(--radius-full);background:var(--text-primary);color:var(--bg-primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.new-socrates-btn:hover{opacity:.9}.user-section{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);gap:var(--space-sm)}.user-info{display:flex;align-items:center;gap:var(--space-sm);overflow:hidden}.user-avatar{width:2rem;height:2rem;border-radius:50%;object-fit:cover;border:1px solid var(--border-secondary)}.user-avatar-placeholder{width:2rem;height:2rem;border-radius:50%;background-color:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.user-details{display:flex;flex-direction:column;overflow:hidden}.user-name{font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email-sub{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:none;border:none;cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;min-width:1.75rem;min-height:1.75rem}.logout-btn:hover{background-color:var(--bg-secondary);color:var(--color-error)}@media (max-width: 1023px) and (min-width: 768px){.sidebar{width:3.5rem}.logo-text,.nav-label,.session-section,.user-details,.new-socrates-btn span,.sidebar-shortcut-hint{display:none}.sidebar-header{padding:var(--space-md);display:flex;justify-content:center}.sidebar-nav{padding:var(--space-sm);align-items:center}.nav-item{justify-content:center;padding:var(--space-sm);width:auto}.new-socrates-btn{padding:var(--space-sm);width:auto;border-radius:var(--radius-md)}.sidebar-footer{padding:var(--space-sm);align-items:center}.user-section{padding:var(--space-xs);justify-content:center}.logout-btn{display:none}}@media (max-width: 767px){.sidebar{position:fixed;top:0;left:0;z-index:1000;width:16.25rem;transform:translate(-100%);transition:transform .25s ease}.sidebar--mobile-open{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#00000080}}.mobile-tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:900;height:3.5rem;padding-bottom:env(safe-area-inset-bottom);background-color:var(--bg-secondary);border-top:1px solid var(--border-secondary);display:flex;align-items:center;justify-content:space-around}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border:none;background:none;color:var(--text-muted);font-size:.6875rem;font-family:inherit;text-decoration:none;padding:.375rem 0;min-height:2.75rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--transition-fast)}.mobile-tab--active{color:var(--accent-primary)}.mobile-tab--search{color:#fff;background:var(--accent-primary);border-radius:50%;width:2.5rem;height:2.5rem;box-shadow:0 2px 8px #6d4fe866;margin-bottom:.25rem}.mobile-tab--search:active{transform:scale(.92);box-shadow:0 1px 4px #6d4fe84d}.mobile-tab__label{line-height:1;white-space:nowrap}.mobile-more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;background:#0006;-webkit-tap-highlight-color:transparent}.mobile-more-sheet{position:fixed;bottom:calc(3.5rem + env(safe-area-inset-bottom));left:0;right:0;z-index:951;background-color:var(--bg-secondary);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding:var(--space-md);box-shadow:0 -4px 24px #00000026}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.mobile-more-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.mobile-more-close{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.mobile-more-close:hover{background-color:var(--bg-tertiary)}.mobile-more-close:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.mobile-more-nav{display:flex;flex-direction:column;gap:.125rem}.mobile-more-item{display:flex;flex-direction:row;align-items:center;gap:var(--space-md);padding:var(--space-md);min-height:2.75rem;border:none;background:none;color:var(--text-primary);font-size:.9375rem;font-family:inherit;text-decoration:none;cursor:pointer;border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast)}.mobile-more-item:hover{background-color:var(--bg-tertiary)}.mobile-more-item--danger{color:var(--color-error)}.mobile-more-item--danger:hover{background-color:var(--color-error-bg, rgba(239, 68, 68, .08))}.cmd-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#00000080;display:flex;justify-content:center;padding-top:15vh;animation:cmdFadeIn .15s ease-out}@keyframes cmdFadeIn{0%{opacity:0}to{opacity:1}}.cmd-palette{width:35rem;max-width:90vw;max-height:26.25rem;background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden;animation:cmdSlideDown .15s ease-out}@keyframes cmdSlideDown{0%{opacity:0;transform:translateY(-.75rem)}to{opacity:1;transform:translateY(0)}}.cmd-palette__input-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-secondary)}.cmd-palette__search-icon{color:var(--text-muted);flex-shrink:0}.cmd-palette__input{flex:1;background:none;border:none;outline:none;font-size:1rem;color:var(--text-primary);font-family:inherit}.cmd-palette__input::placeholder{color:var(--text-muted)}.cmd-palette__kbd{font-size:.65rem;font-weight:600;padding:.125rem .375rem;border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--bg-secondary);font-family:inherit}.cmd-palette__close{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.cmd-palette__close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.cmd-palette__close:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;background:var(--bg-tertiary)}.cmd-palette__results{overflow-y:auto;padding:var(--space-xs) 0}.cmd-palette__section-header{padding:.25rem 1rem;font-size:var(--fs-caption);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cmd-palette__item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-lg);border:none;background:none;cursor:pointer;text-align:left;color:var(--text-primary);transition:background var(--transition-fast)}.cmd-palette__item:hover,.cmd-palette__item.active{background:var(--bg-tertiary)}.cmd-palette__item-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);flex-shrink:0}.cmd-palette__item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.cmd-palette__item-title{font-size:var(--fs-body-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-palette__item-meta{font-size:var(--fs-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-palette__item-badge{font-size:.65rem;font-weight:600;padding:.125rem var(--space-2);border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);text-transform:uppercase;flex-shrink:0}.cmd-palette__empty,.cmd-palette__loading,.cmd-palette__hint{padding:var(--space-xl) var(--space-lg);text-align:center;font-size:var(--fs-body-sm);color:var(--text-muted)}.cmd-palette__item-title mark{background:#6d4fe833;color:var(--accent-primary);border-radius:2px;padding:0 1px}@media (max-width: 767px){.cmd-palette-overlay{padding:0;align-items:flex-start}.cmd-palette{width:100%;max-width:100%;max-height:100vh;border-radius:0;border:none}.cmd-palette__input-row{padding:var(--space-md);padding-top:max(var(--space-md),env(safe-area-inset-top))}.cmd-palette__results{max-height:calc(100vh - 4rem)}.cmd-palette__kbd{display:none}}.shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-md);animation:cmdFadeIn .15s ease-out}.shortcuts-modal{width:28rem;max-width:95vw;max-height:85vh;background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-secondary)}.shortcuts-header h2{font-size:var(--fs-title);font-weight:600;color:var(--text-primary);margin:0}.shortcuts-close{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.shortcuts-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.shortcuts-close:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.shortcuts-body{overflow-y:auto;padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.shortcuts-section-title{font-size:var(--fs-label);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-2) 0}.shortcuts-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0}.shortcuts-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.shortcuts-keys{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.shortcuts-keys kbd{padding:.125rem .4rem;font-size:.6875rem;font-family:var(--font-mono);font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-secondary);line-height:1.6}.shortcuts-plus{color:var(--text-muted);font-size:.75rem;padding:0 .125rem}.shortcuts-desc{font-size:var(--fs-body-sm);color:var(--text-secondary);margin:0;text-align:right}.app-container{display:flex;height:100vh;height:100dvh;width:100%}.main-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-primary)}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--space-4);color:var(--text-secondary)}.skip-link{position:absolute;top:-100%;left:0;padding:var(--space-sm) var(--space-md);background:var(--accent-primary);color:var(--text-inverse);z-index:9999;border-radius:0 0 var(--radius-md) 0;font-size:.875rem;text-decoration:none}.skip-link:focus{top:0}.app-container--mobile{flex-direction:column}.app-container--mobile .main-content{padding-bottom:calc(3.5rem + env(safe-area-inset-bottom,0px))}.demo-banner{position:fixed;top:0;left:0;right:0;z-index:1002;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-primary, #6366f1);color:#fff;font-size:.85rem;font-weight:500}.demo-banner-cta{margin-left:.75rem;padding:var(--space-1) .75rem;border:1px solid rgba(255,255,255,.5);border-radius:.375rem;background:transparent;color:#fff;font-size:.8rem;cursor:pointer;transition:background .15s}.demo-banner-cta:hover{background:#ffffff26}.demo-app-container{margin-top:2.25rem;height:calc(100vh - 2.25rem)!important}@media (max-width: 767px){.demo-banner{font-size:.75rem;padding:.375rem .75rem;gap:var(--space-1)}.demo-banner-cta{font-size:.7rem;padding:.1875rem var(--space-2);margin-left:.375rem}}.auth-view{display:flex;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:1.25rem;background:var(--bg-primary)}.auth-container{width:100%;max-width:25rem;padding:2.5rem;background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-xl)}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{width:4rem;height:4rem;object-fit:contain;display:block;margin:0 auto var(--space-4);border-radius:var(--radius-md)}.auth-header h1{font-size:1.75rem;margin-bottom:var(--space-2);color:var(--text-primary)}.auth-header p{color:var(--text-secondary)}.auth-error{padding:var(--space-3);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#f87171;font-size:.9rem;text-align:center;margin-top:var(--space-4)}.oauth-section{display:flex;flex-direction:column}.oauth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.625rem;padding:.875rem;border-radius:var(--radius-lg);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.google-btn{background:#fff;color:#333;border:1px solid rgba(0,0,0,.1)}.google-btn:hover:not(:disabled){background:#f8f8f8;box-shadow:0 2px 8px #00000026}.kakao-btn{background:#fee500;color:#3c1e1e;border:none;margin-top:.625rem}.kakao-btn:hover:not(:disabled){background:#fdd835;box-shadow:0 2px 8px #fee5004d}@media (max-width: 480px){.auth-container{padding:1.75rem 1.25rem}.auth-header h1{font-size:1.4rem}.auth-logo{width:3rem;height:3rem}}.landing-page{display:grid;grid-template-columns:55fr 45fr;height:100vh;width:100%;overflow:hidden;background:var(--bg-primary);color:var(--text-primary)}.landing-left{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--space-12) var(--space-10);overflow:hidden}.landing-left-glow{position:absolute;width:36rem;height:36rem;border-radius:50%;background:radial-gradient(circle,var(--accent-bg) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.landing-left-content{position:relative;z-index:1;max-width:32rem;animation:landingFadeUp .7s ease-out}.landing-logo-img{width:4.5rem;height:4.5rem;object-fit:contain;border-radius:var(--radius-xl);margin-bottom:var(--space-6)}.landing-headline{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:800;line-height:1.3;margin-bottom:var(--space-5);letter-spacing:-.02em}.landing-subtext{font-size:var(--fs-body);line-height:1.8;color:var(--text-secondary);margin-bottom:var(--space-8)}.landing-features-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.landing-feature-mini-card{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);font-size:var(--fs-body-sm);font-weight:500;color:var(--text-primary)}.landing-feature-mini-text{display:flex;flex-direction:column;gap:2px}.landing-feature-mini-title{font-size:var(--fs-body-sm);font-weight:500;color:var(--text-primary)}.landing-feature-mini-sub{font-size:11px;color:var(--text-muted);font-weight:400}.landing-feature-mini-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);background:var(--accent-bg);color:var(--accent-primary);flex-shrink:0}.landing-right{background:var(--bg-secondary);border-left:1px solid var(--border-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-10);gap:var(--space-6)}.landing-auth-card{width:100%;max-width:22rem;background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);padding:2rem 2rem 1.75rem;animation:landingFadeUp .7s ease-out .1s both}.landing-auth-header{text-align:center;margin-bottom:1.5rem}.landing-auth-header h2{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.landing-auth-header p{font-size:var(--fs-body-sm);color:var(--text-muted)}.landing-oauth-section{display:flex;flex-direction:column;gap:var(--space-3)}.landing-oauth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.625rem;padding:.8rem;border-radius:var(--radius-lg);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.landing-oauth-btn:disabled{opacity:.6;cursor:not-allowed}.landing-google-btn{background:#fff;color:#333;border:1px solid rgba(0,0,0,.1)!important}.landing-google-btn:hover:not(:disabled){background:#f8f8f8;box-shadow:0 2px 8px #00000026}.landing-kakao-btn{background:#fee500;color:#3c1e1e}.landing-kakao-btn:hover:not(:disabled){background:#fdd835;box-shadow:0 2px 8px #fee5004d}.landing-auth-error{margin-top:var(--space-3);padding:var(--space-3);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#f87171;font-size:.85rem;text-align:center}.landing-divider{display:flex;align-items:center;gap:var(--space-3);margin:1.25rem 0 1rem;color:var(--text-muted);font-size:var(--fs-caption)}.landing-divider:before,.landing-divider:after{content:"";flex:1;height:1px;background:var(--border-secondary)}.landing-demo-btn{width:100%;padding:.625rem;background:transparent;border:none;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-body-sm);font-weight:500;cursor:pointer;transition:color var(--transition-fast);text-align:center}.landing-demo-btn:hover{color:var(--accent-primary)}.landing-footer{font-size:var(--fs-caption);color:var(--text-muted)}@keyframes landingFadeUp{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 767px){.landing-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow-y:auto}.landing-left{padding:var(--space-10) var(--space-6) var(--space-6)}.landing-left-content{text-align:center}.landing-headline{font-size:1.75rem}.landing-right{border-left:none;border-top:1px solid var(--border-secondary);padding:var(--space-8) var(--space-6);justify-content:flex-start}.landing-auth-card{max-width:100%}.landing-features-mini{justify-items:start}}:root{--bg-primary: #F9F8FC;--bg-secondary: #F2F0F8;--bg-tertiary: #EAE7F3;--bg-card: #FFFFFF;--bg-card-hover: #F5F3FB;--bg-surface-raised: #E3DFF5;--text-primary: #1A1628;--text-secondary: #4B4668;--text-muted: #5C5878;--text-inverse: #FFFFFF;--accent-primary: #6D4FE8;--accent-primary-hover: #5A3DD4;--accent-bg: rgba(109, 79, 232, .07);--accent-bg-hover: rgba(109, 79, 232, .15);--accent-gradient: linear-gradient(135deg, #7C5CFC 0%, #A855F7 100%);--border-primary: #C8C3E0;--border-secondary: #DED9F0;--border-focus: #6D4FE8;--color-success: #188038;--color-success-bg: #e6f4ea;--color-warning: #c96f00;--color-warning-bg: #fef3e0;--color-error: #d93025;--color-error-bg: #fce8e6;--shadow-sm: 0 1px 2px rgba(74,58,136,.06), 0 1px 3px rgba(74,58,136,.08);--shadow-md: 0 1px 3px rgba(74,58,136,.07), 0 4px 8px rgba(74,58,136,.08);--shadow-lg: 0 4px 6px rgba(74,58,136,.06), 0 10px 24px rgba(74,58,136,.1);--shadow-focus: 0 0 0 3px rgba(109,79,232,.2);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--fs-display: 1.75rem;--fs-headline: 1.375rem;--fs-title: 1rem;--fs-body: .875rem;--fs-body-sm: .8125rem;--fs-label: .75rem;--fs-caption: .6875rem;--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;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .1s ease-out;--transition-normal: .2s ease-out;--transition-slow: .3s ease-out;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-12);--success: var(--color-success);--warning: var(--color-warning);--error: var(--color-error)}@media (prefers-color-scheme: dark){:root:not([data-theme]){--bg-primary: #111018;--bg-secondary: #181621;--bg-tertiary: #201E2C;--bg-card: #1C1A27;--bg-card-hover: #231F30;--bg-surface-raised: #2B273C;--text-primary: #EDE9F8;--text-secondary: #A89EC8;--text-muted: #A09CBC;--text-inverse: #111018;--accent-primary: #9B7FFF;--accent-primary-hover: #B599FF;--accent-bg: rgba(155, 127, 255, .1);--accent-bg-hover: rgba(155, 127, 255, .22);--accent-gradient: linear-gradient(135deg, #9B7FFF 0%, #C084FC 100%);--border-primary: #312B45;--border-secondary: #231D38;--border-focus: #9B7FFF;--color-success: #81c995;--color-success-bg: rgba(129,201,149,.12);--color-warning: #fdd663;--color-warning-bg: rgba(253,214,99,.12);--color-error: #f28b82;--color-error-bg: rgba(242,139,130,.12);--shadow-sm: 0 1px 2px rgba(0,0,0,.5);--shadow-md: 0 1px 3px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3);--shadow-lg: 0 4px 6px rgba(0,0,0,.35), 0 10px 24px rgba(0,0,0,.45);--shadow-focus: 0 0 0 3px rgba(155,127,255,.3)}}:root[data-theme=dark]{--bg-primary: #111018;--bg-secondary: #181621;--bg-tertiary: #201E2C;--bg-card: #1C1A27;--bg-card-hover: #231F30;--bg-surface-raised: #2B273C;--text-primary: #EDE9F8;--text-secondary: #A89EC8;--text-muted: #9490AF;--text-inverse: #111018;--accent-primary: #9B7FFF;--accent-primary-hover: #B599FF;--accent-bg: rgba(155, 127, 255, .12);--accent-bg-hover: rgba(155, 127, 255, .2);--accent-gradient: linear-gradient(135deg, #9B7FFF 0%, #C084FC 100%);--border-primary: #312B45;--border-secondary: #231D38;--border-focus: #9B7FFF;--color-success: #81c995;--color-success-bg: rgba(129,201,149,.12);--color-warning: #fdd663;--color-warning-bg: rgba(253,214,99,.12);--color-error: #f28b82;--color-error-bg: rgba(242,139,130,.12);--shadow-sm: 0 1px 2px rgba(0,0,0,.5);--shadow-md: 0 1px 3px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3);--shadow-lg: 0 4px 6px rgba(0,0,0,.35), 0 10px 24px rgba(0,0,0,.45);--shadow-focus: 0 0 0 3px rgba(155,127,255,.3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{display:flex;width:100%;min-height:100vh}.card{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.card:hover{border-color:var(--border-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--fs-body);font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);height:2.25rem;font-family:inherit}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary)}.btn-ghost{background:transparent;color:var(--accent-primary);border:none;padding:var(--space-2) var(--space-3)}.btn-ghost:hover:not(:disabled){background:var(--accent-bg)}.btn-sm{height:1.75rem;padding:var(--space-1) var(--space-3);font-size:var(--fs-body-sm)}.input{width:100%;padding:.625rem .875rem;font-size:var(--fs-body);background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit}.input:hover{border-color:var(--border-primary)}.input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.input::placeholder{color:var(--text-muted)}.input-error{border-color:var(--color-error)!important}.input-error-message{color:var(--color-error);font-size:.8rem;margin-top:var(--space-1);margin-bottom:0}.url-input-group{display:flex;flex-direction:column}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:var(--radius-full);border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-3);color:var(--text-secondary);text-align:center;padding:var(--space-12) var(--space-6)}.loading-spinner{width:1.5rem;height:1.5rem;border:2.5px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .7s linear infinite}.loading-spinner.small{width:1.125rem;height:1.125rem}.state-icon{color:var(--text-muted);opacity:.4;margin-bottom:var(--space-2)}.error-state h3,.empty-state h3{color:var(--text-primary);font-weight:400;font-size:1.125rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(.625rem)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:500}.modal-content{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);padding:var(--space-6);max-width:36rem;width:90%;box-shadow:var(--shadow-lg)}.modal-content h2{font-size:var(--fs-headline);font-weight:400;margin-bottom:var(--space-5)}.modal-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:1px solid var(--border-secondary)}.tab{padding:var(--space-2) var(--space-4);font-size:var(--fs-body);font-weight:500;color:var(--text-secondary);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;transition:color var(--transition-fast);font-family:inherit}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.25rem .625rem;font-size:var(--fs-label);font-weight:500;border-radius:var(--radius-full);background:var(--bg-surface-raised);color:var(--text-secondary)}.toast-container{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-body);font-weight:500;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastIn .2s ease-out;max-width:26.25rem}.toast-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.toast-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.toast-info{background:var(--accent-bg);color:var(--accent-primary);border:1px solid var(--accent-primary)}.toast-icon{font-weight:700;flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:1.1rem;padding:0 .125rem;flex-shrink:0;min-width:2.75rem;min-height:2.75rem;display:flex;align-items:center;justify-content:center}.toast-close:hover{opacity:1}@keyframes toastIn{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 767px){.toast-container{bottom:calc(3.5rem + env(safe-area-inset-bottom,0) + var(--space-3))}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--border-secondary) 25%,var(--bg-tertiary) 50%,var(--border-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.skeleton-text{height:.875rem;margin-bottom:var(--space-2)}.skeleton-text-sm{height:.625rem;width:60%;margin-bottom:.375rem}.skeleton-title{height:1.25rem;width:40%;margin-bottom:var(--space-3)}.skeleton-card{height:5rem;border-radius:var(--radius-lg);margin-bottom:var(--space-3)}.skeleton-stat{height:4rem;border-radius:var(--radius-lg)}.page-transition{animation:pageIn .2s ease-out}@keyframes pageIn{0%{opacity:0}to{opacity:1}}.page-loading{display:flex;align-items:center;justify-content:center;flex:1;min-height:12.5rem}:root,:root[data-theme]{transition:background-color .3s ease,color .3s ease}body{transition:background-color .3s ease,color .3s ease}.card,.btn,.modal-overlay,.modal-content{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.btn:active:not(:disabled){transform:scale(.97)}button:active:not(:disabled){transform:scale(.97)}.card-hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card-hover-lift:hover{transform:translateY(-.125rem);box-shadow:var(--shadow-md)}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-content{animation:modalFadeIn .2s ease-out}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--space-8);text-align:center;gap:var(--space-4)}.error-boundary-icon{font-size:3rem;opacity:.5}.error-boundary h2{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.error-boundary p{font-size:var(--fs-body);color:var(--text-secondary);max-width:25rem;line-height:1.6}.error-boundary-details{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-muted);background:var(--bg-tertiary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);max-width:31.25rem;overflow-x:auto;word-break:break-all}.resize-handle{position:absolute;z-index:20;top:0;height:100%;width:.375rem;cursor:col-resize;background:transparent;transition:background-color .15s}.resize-handle--right{right:-.1875rem}.resize-handle--left{left:-.1875rem}.resize-handle:hover{background-color:var(--accent-primary);opacity:.4}@media (max-width: 767px){button:not(.toolbar-btn):not(.mode-btn),[role=button]{min-height:44px}.main-content{padding-bottom:env(safe-area-inset-bottom,0)}}@supports (padding: max(0px)){.app-container--mobile .main-content{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}
