:root{--color-bg: #f5f3eb;--color-surface: #fffef8;--color-border: #d5cfc3;--color-border-focus: #43a047;--color-text: #2d2a24;--color-text-muted: #7a7567;--color-primary: #2e7d32;--color-primary-hover: #1b5e20;--color-primary-light: #e8f5e9;--color-danger: #c62828;--color-danger-hover: #b71c1c;--color-ruled-line: rgba(45, 42, 36, .06);--color-margin-line: rgba(200, 80, 80, .18);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(45, 42, 36, .06);--shadow-md: 0 3px 10px rgba(45, 42, 36, .08);--shadow-lg: 0 8px 30px rgba(45, 42, 36, .1);--transition: .15s ease;--font-body: "Nanum Gothic", system-ui, -apple-system, sans-serif;--font-handwriting: "Gaegu", cursive}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-primary-hover);text-decoration:none}button{font:inherit;cursor:pointer;transition:background-color var(--transition),box-shadow var(--transition),transform var(--transition)}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;transition:border-color var(--transition),box-shadow var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #43a0472e}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-weight:700;border-radius:var(--radius-sm);border:none;transition:background-color var(--transition),box-shadow var(--transition),transform var(--transition)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-text-muted)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.btn-danger{background:transparent;color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#c6282814;color:var(--color-danger-hover)}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden;position:relative}.form-group{margin-bottom:16px}.form-group label{display:block;font-weight:700;color:var(--color-text);margin-bottom:6px;font-size:.9rem}.form-group input,.form-group textarea{width:100%;display:block}.form-group select{width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a7567' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-group textarea{min-height:80px;resize:vertical}.file-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-upload input[type=file]{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.file-upload-trigger{display:inline-flex;align-items:center;padding:10px 18px;font-weight:700;font-size:.9rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.file-upload-trigger:hover{background:var(--color-bg);border-color:var(--color-text-muted)}.file-upload-filename{font-size:.9rem;color:var(--color-text-muted)}.file-drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:16px;text-align:center;transition:border-color var(--transition),background var(--transition)}.file-drop-zone-active{border-color:var(--color-primary);background:var(--color-primary-light)}.file-drop-zone .file-upload{justify-content:center}.file-drop-hint{margin:10px 0 0;font-size:.82rem;color:var(--color-text-muted)}.file-drop-zone-active .file-drop-hint{color:var(--color-primary);font-weight:600}input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.card-link{display:block;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-weight:700;transition:box-shadow var(--transition),border-color var(--transition),background var(--transition);background-image:repeating-linear-gradient(transparent,transparent 27px,var(--color-ruled-line) 27px,var(--color-ruled-line) 28px);background-position:0 8px}.card-link:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary);color:var(--color-text);background-color:#fdfcf5}.nav-link{font-size:.9rem;font-weight:700;color:var(--color-text-muted);padding:6px 12px;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition)}.nav-link:hover{color:var(--color-primary);background:var(--color-primary-light)}.empty-state{text-align:center;padding:48px 24px;color:var(--color-text-muted);font-size:.95rem;font-family:var(--font-handwriting);font-weight:700;font-size:1.1rem}.custom-select-trigger{display:flex;align-items:center;width:100%;padding:10px 36px 10px 14px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition);text-align:left}.custom-select-trigger:hover{border-color:var(--color-text-muted)}.custom-select.open .custom-select-trigger,.custom-select-trigger:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #43a0472e}.custom-select-arrow{position:absolute;right:12px;font-size:.65rem;color:var(--color-text-muted);transition:transform var(--transition);pointer-events:none}.custom-select.open .custom-select-arrow{transform:rotate(180deg)}.custom-select .custom-select-trigger{position:relative}.qa-panel{display:flex;flex-direction:column;height:100%;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden;position:relative}.qa-header{padding:14px 16px;border-bottom:1px solid var(--color-border);font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;background:var(--color-surface)}.qa-header-right{display:flex;align-items:center;gap:8px}.qa-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:12px}.qa-badge-ready{background:var(--color-primary-light);color:var(--color-primary)}.qa-badge-pending{background:#fff3e0;color:#e65100}.qa-center-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center}.qa-index-icon{font-size:2.5rem;margin-bottom:12px}.qa-chat-area{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:6px;background:var(--color-bg);scroll-behavior:smooth}.qa-chat-area::-webkit-scrollbar{width:5px}.qa-chat-area::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.qa-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.9rem}.qa-empty-state p{margin:4px 0}.qa-message-row{display:flex;gap:8px;max-width:88%;animation:qa-fadeIn .2s ease}.qa-message-right{margin-left:auto;flex-direction:row-reverse}.qa-message-left{align-items:flex-start}.qa-message-content{display:flex;flex-direction:column;min-width:0}.qa-avatar{min-width:36px;height:28px;padding:0 6px;border-radius:8px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:800;flex-shrink:0;white-space:nowrap}.qa-bubble{padding:10px 14px;font-size:.88rem;line-height:1.65;word-break:break-word}.qa-bubble-user{background:var(--color-primary);color:#fff;border-radius:16px 16px 4px}.qa-bubble-ai{background:var(--color-surface);color:var(--color-text);border-radius:16px 16px 16px 4px;border:1px solid var(--color-border)}.qa-message-meta{display:flex;align-items:center;gap:6px;margin-top:3px;padding:0 4px}.qa-message-time{font-size:.68rem;color:var(--color-text-muted)}.qa-sending-indicator{color:var(--color-text-muted);display:flex;align-items:center}.qa-resend-btn{background:none;border:none;color:var(--color-danger);font-size:.72rem;font-weight:700;padding:2px 6px;cursor:pointer;border-radius:4px}.qa-resend-btn:hover{background:#c6282814}.qa-typing-bubble{padding:12px 18px}.qa-typing-dots{display:flex;gap:4px;align-items:center}.qa-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-muted);animation:qa-dotBounce 1.4s ease-in-out infinite}.qa-dot:nth-child(2){animation-delay:.2s}.qa-dot:nth-child(3){animation-delay:.4s}.qa-citations-list{display:flex;flex-direction:column;gap:5px;margin-top:6px}.qa-citation-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 10px;font-size:.75rem;line-height:1.5;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.qa-citation-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.qa-citation-header{display:flex;gap:6px;color:var(--color-primary);font-weight:600;margin-bottom:3px}.qa-citation-snippet{color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qa-citation-expanded{border-color:var(--color-primary);background:linear-gradient(135deg,#fafaf5,#e8f5e9);box-shadow:var(--shadow-sm)}.qa-citation-full{color:var(--color-text);white-space:pre-wrap;word-break:break-word;line-height:1.65;padding:6px 4px 2px;border-top:1px solid var(--color-border);margin-top:4px}.qa-new-msg-btn{position:absolute;bottom:110px;left:50%;transform:translate(-50%);z-index:10;background:var(--color-primary);color:#fff;border:none;border-radius:20px;padding:6px 18px;font-size:.78rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-md);animation:qa-fadeIn .15s ease}.qa-new-msg-btn:hover{background:var(--color-primary-hover)}.qa-input-area{border-top:1px solid var(--color-border);padding:10px 14px;background:var(--color-surface);flex-shrink:0}.qa-input-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.qa-toggle-label{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.qa-clear-btn{background:none;border:none;color:var(--color-text-muted);font-size:.72rem;font-weight:600;padding:2px 6px;cursor:pointer;border-radius:4px}.qa-clear-btn:hover{color:var(--color-danger);background:#c628280f}.qa-input-form{display:flex;gap:8px;align-items:flex-end}.qa-input-field{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:20px;font-size:.88rem;outline:none;background:var(--color-bg);resize:none;max-height:100px;line-height:1.5;font-family:var(--font-body)}.qa-input-field:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 2px #43a04726}.qa-send-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background-color var(--transition),transform var(--transition)}.qa-send-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.05)}.qa-send-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes qa-fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes qa-dotBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes qa-spinAnim{to{transform:rotate(360deg)}}.qa-spin{animation:qa-spinAnim 1s linear infinite}.qa-spin-large{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:qa-spinAnim .8s linear infinite;margin-bottom:12px}@keyframes mobileMenuSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.site-header{padding:12px 16px!important}.site-main{padding:20px 12px!important}.nav-link{padding:8px 12px}.header-nav-desktop{display:none!important}.header-hamburger{display:flex!important}.subject-tabs-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.subject-tabs-nav::-webkit-scrollbar{display:none}.doc-viewer-layout{flex-direction:column!important}.doc-viewer-qa{flex:none!important;max-width:none!important;min-width:0!important;width:100%!important;position:static!important;height:500px!important}.admin-subject-row{flex-direction:column!important;align-items:stretch!important;gap:10px!important}.admin-subject-actions{flex-wrap:wrap!important;justify-content:flex-start!important}.doc-list-item{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}.doc-list-actions{width:100%;flex-wrap:wrap!important;justify-content:flex-start!important}.admin-doc-item,.audio-doc-row{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}.task-author-row{flex-wrap:wrap!important;gap:4px!important}.doc-viewer-toolbar{gap:8px!important}.doc-viewer-filename{display:none!important}}@media (max-width: 480px){body{font-size:15px}.site-header{padding:10px 12px!important}.site-main{padding:16px 8px!important}.entry-page{padding:12px!important}.card-link,.btn{padding:10px 14px}.empty-state{padding:32px 16px}.card{border-radius:var(--radius-sm)}.entry-card-content{padding:32px 20px 28px 48px!important}.entry-spine{width:32px!important}.entry-ruled-bg{left:32px!important}.entry-margin-line{left:72px!important}.entry-title{font-size:1.5rem!important}.main-hero{max-width:100%!important}.main-hero-inner{padding:36px 24px 36px 56px!important}.main-hero-spine{width:40px!important}.subject-tab-btn{padding:10px 14px!important;font-size:.88rem!important}.task-input-form{flex-direction:column!important}.task-input-form .btn{width:100%}.upload-modal-content{padding:20px 16px 16px!important}.note-editor-row{flex-direction:column!important}.note-editor-row>div{min-width:0!important;width:100%!important}.note-md-hint{display:none!important}.ai-summary-header{padding:12px 14px!important}.ai-combined-header{padding:12px 14px!important;flex-direction:column!important;align-items:flex-start!important}.ai-user-toggle,.ai-user-content,.markdown-box{padding:12px 14px!important}.qa-input-field{font-size:16px!important}.dev-login-email{display:none!important}.note-toolbar{gap:1px!important;padding:4px 6px!important}.note-toolbar-btn{padding:3px 5px!important;font-size:.78rem!important;min-width:24px!important}}.note-toolbar-btn:hover{background:var(--color-primary-light, #e8f0fe)!important;border-color:var(--color-border)!important}.note-editor-fullscreen .card{border:none!important;box-shadow:none!important;border-radius:0!important}.note-preview-content h1{font-size:1.4rem;font-weight:700;margin:20px 0 10px;color:var(--color-primary);border-bottom:2px solid var(--color-primary-light);padding-bottom:6px}.note-preview-content h2{font-size:1.15rem;font-weight:700;margin:16px 0 8px}.note-preview-content h3{font-size:1rem;font-weight:600;margin:12px 0 6px;color:var(--color-text-muted)}.note-preview-content ul,.note-preview-content ol{padding-left:24px;margin:8px 0}.note-preview-content li{margin:4px 0}.note-preview-content blockquote{border-left:3px solid var(--color-primary);padding:8px 16px;margin:12px 0;background:var(--color-primary-light, #f5f5f0);border-radius:0 6px 6px 0}.note-preview-content code{background:var(--color-primary-light, #f0f0e8);padding:2px 6px;border-radius:4px;font-size:.88em}.note-preview-content pre{background:#1e1e1e;color:#d4d4d4;padding:16px;border-radius:8px;overflow-x:auto;margin:12px 0}.note-preview-content pre code{background:none;padding:0;color:inherit}.note-preview-content table{width:100%;border-collapse:collapse;margin:12px 0}.note-preview-content th,.note-preview-content td{border:1px solid var(--color-border);padding:8px 12px;text-align:left}.note-preview-content th{background:var(--color-bg, #f8f9fa);font-weight:600}.note-preview-content hr{border:none;border-top:1px solid var(--color-border);margin:16px 0}.note-preview-content a{color:var(--color-primary);text-decoration:underline}.note-preview-content img{max-width:100%;border-radius:8px}.source-badge{display:inline-flex;align-items:center;padding:1px 8px;margin:0 2px;border-radius:10px;font-size:.75em;font-weight:600;line-height:1.6;white-space:nowrap;vertical-align:text-bottom;position:relative}.source-badge-bracket{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.source-badge-textbook{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.source-badge-note{background:#dcfce7;color:#166534;border:1px solid #86efac}.source-badge-transcript{background:#f3e8ff;color:#6b21a8;border:1px solid #d8b4fe}.source-badge-audio{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.source-badge-attribution{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}.source-badge-user{background:#f0f9ff;color:#0c4a6e;border:1px solid #7dd3fc}
