:root{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;--sat: env(safe-area-inset-top);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left);--sar: env(safe-area-inset-right)}[data-theme=light]{--bg-color: #f8f9fa;--card-bg: #ffffff;--text-color: #212529;--secondary-text: #6c757d;--border-color: #dee2e6;--accent-color: #5B5CFF;--accent-hover: #4A4BE6;--accent-light: #EEEEFF;--accent-secondary: #318BFF;--brand-gradient: linear-gradient(180deg, #5B5CFF, #00C2FF);--header-bg: #ffffff;--input-bg: #ffffff;--input-border: #ced4da;--input-text: #333;--disabled-bg: #e9ecef;--hover-bg: #f0f0f0;--card-shadow: 0 1px 3px rgba(0, 0, 0, .1);--button-bg: #f8f9fa;--button-text: #212529;--icon-color: #495057;--error-color: #dc3545;--success-color: #16a34a;--warning-color: #f59e0b;--info-color: #3b82f6;--badge-new: #dbeafe;--badge-new-text: #1e40af;--badge-progress: #fef3c7;--badge-progress-text: #92400e;--badge-complete: #d1fae5;--badge-complete-text: #065f46;--importance-required: #fecaca;--importance-required-text: #991b1b;--importance-frequent: #fed7aa;--importance-frequent-text: #9a3412;--importance-possible: #e0e7ff;--importance-possible-text: #3730a3;--overlay-bg: rgba(0, 0, 0, .5);--toast-bg: #ffffff;--toast-shadow: 0 4px 12px rgba(0, 0, 0, .15);--divider-color: #e1e8ed;--code-bg: #f1f5f9}[data-theme=dark]{--bg-color: #131314;--card-bg: #1e1f20;--text-color: #e3e3e3;--secondary-text: #9aa0a6;--border-color: #333537;--accent-color: #7B7CFF;--accent-hover: #9595FF;--accent-light: #1a1a3e;--accent-secondary: #318BFF;--brand-gradient: linear-gradient(180deg, #5B5CFF, #00C2FF);--header-bg: #1e1f20;--input-bg: #282a2c;--input-border: #3c4043;--input-text: #e3e3e3;--disabled-bg: #333537;--hover-bg: #2c2c2e;--card-shadow: 0 1px 2px rgba(0, 0, 0, .6);--button-bg: #2c2c2e;--button-text: #e3e3e3;--icon-color: #9aa0a6;--error-color: #f28b82;--success-color: #81c995;--warning-color: #fdd663;--info-color: #318BFF;--badge-new: #1a1a3e;--badge-new-text: #9595FF;--badge-progress: #332b00;--badge-progress-text: #fdd663;--badge-complete: #0d3220;--badge-complete-text: #81c995;--importance-required: #3c1111;--importance-required-text: #f28b82;--importance-frequent: #3c1e05;--importance-frequent-text: #fcad70;--importance-possible: #1a1a3e;--importance-possible-text: #b4b4f8;--overlay-bg: rgba(0, 0, 0, .75);--toast-bg: #282a2c;--toast-shadow: 0 4px 12px rgba(0, 0, 0, .5);--divider-color: #333537;--code-bg: #282a2c}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}body{margin:0;min-width:320px;overscroll-behavior-y:none;background-color:var(--bg-color);color:var(--text-color);transition:background-color .2s ease,color .2s ease}h1,h2,h3,h4,h5,h6{color:var(--text-color);line-height:1.3}h1{font-size:1.75rem;font-weight:700}h2{font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:600}button{border-radius:8px;border:1px solid transparent;padding:.5em 1em;font-size:.875rem;font-weight:500;font-family:inherit;background-color:var(--button-bg);color:var(--button-text);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}button:hover{background-color:var(--hover-bg)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background-color:var(--accent-color);color:#fff}button.primary:hover{background-color:var(--accent-hover)}input,select,textarea{font-family:inherit;font-size:.875rem;background-color:var(--input-bg);color:var(--input-text);border:1px solid var(--input-border);border-radius:6px;padding:.5em .75em;transition:border-color .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-color)}a{color:var(--accent-color);text-decoration:none}a:hover{color:var(--accent-hover)}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:rgba(0,0,0,.2) transparent}[data-theme=dark] *:hover{scrollbar-color:rgba(255,255,255,.2) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}*:hover::-webkit-scrollbar-thumb{background:#00000026}[data-theme=dark] *:hover::-webkit-scrollbar-thumb{background:#ffffff26}@media(max-width:768px){h1{font-size:1.5rem}h2{font-size:1.25rem}input,select,textarea{font-size:16px}}[data-theme=dark] .katex{color:var(--text-color)}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;gap:.75rem}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin .7s linear infinite}.loading-message{color:var(--secondary-text);font-size:.85rem}@keyframes spin{to{transform:rotate(360deg)}}.upgrade-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upgrade-modal{background:var(--bg-color);border-radius:16px;padding:32px;max-width:400px;width:100%;position:relative;text-align:center;box-shadow:0 20px 60px #0000004d}.upgrade-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:8px}.upgrade-modal-close:hover{background:var(--bg-hover)}.upgrade-modal-icon{margin-bottom:16px}.upgrade-modal-title{font-size:1.25rem;font-weight:700;color:var(--text-color);margin:0 0 8px}.upgrade-modal-desc{font-size:.9rem;color:var(--text-secondary);margin:0 0 20px;line-height:1.5}.upgrade-modal-benefits{background:var(--bg-secondary);border-radius:12px;padding:16px;margin-bottom:16px;text-align:left}.upgrade-modal-benefits h4{font-size:.85rem;font-weight:600;color:var(--text-color);margin:0 0 8px}.upgrade-modal-benefits ul{list-style:none;padding:0;margin:0}.upgrade-modal-benefits li{font-size:.85rem;color:var(--text-secondary);padding:4px 0;display:flex;align-items:center;gap:8px}.upgrade-modal-benefits li:before{content:"✓";color:#5b5cff;font-weight:700}.upgrade-modal-price{font-size:.9rem;color:var(--text-secondary);margin-bottom:20px}.upgrade-modal-price strong{color:var(--text-color);font-weight:700}.upgrade-modal-actions{display:flex;flex-direction:column;gap:8px}.upgrade-modal-btn-primary{background:linear-gradient(135deg,#5b5cff,#9b59b6);color:#fff;border:none;border-radius:12px;padding:12px 24px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s}.upgrade-modal-btn-primary:hover{opacity:.9}.upgrade-modal-btn-secondary{background:none;color:var(--text-secondary);border:none;padding:8px;font-size:.85rem;cursor:pointer}.upgrade-modal-btn-secondary:hover{color:var(--text-color)}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:10000;display:flex;flex-direction:column-reverse;gap:.5rem;max-width:380px}.toast{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;background:var(--toast-bg);box-shadow:var(--toast-shadow);border:1px solid var(--border-color);animation:toast-in .2s ease-out;font-size:.875rem}.toast-icon{font-size:1rem;flex-shrink:0}.toast-success .toast-icon{color:var(--success-color)}.toast-error .toast-icon{color:var(--error-color)}.toast-warning .toast-icon{color:var(--warning-color)}.toast-info .toast-icon{color:var(--info-color)}.toast-message{flex:1;color:var(--text-color)}.toast-close{background:none;border:none;color:var(--secondary-text);font-size:1.25rem;cursor:pointer;padding:0;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.toast-container{left:1rem;right:1rem;bottom:1rem;max-width:none}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-color)}.error-boundary-card{max-width:420px;width:100%;text-align:center;padding:48px 32px;background:var(--card-bg);border-radius:16px;border:1px solid var(--border-color)}.error-boundary-icon{color:var(--text-secondary);margin-bottom:20px}.error-boundary-title{font-size:1.25rem;font-weight:700;color:var(--text-color);margin:0 0 12px}.error-boundary-desc{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin:0 0 28px}.error-boundary-actions{display:flex;gap:12px;justify-content:center}.error-boundary-btn-primary{padding:10px 24px;border-radius:10px;border:none;background:var(--accent-color);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s}.error-boundary-btn-primary:hover{opacity:.85}.error-boundary-btn-secondary{padding:10px 24px;border-radius:10px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.error-boundary-btn-secondary:hover{background:var(--hover-bg)}
