:root{--bg-color:#0f172a;--sidebar-bg:#1e293b;--card-bg:#1e293b;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent:#38bdf8;--accent-hover:#0ea5e9;--border:#334155;--success:#10b981;--warning:#f59e0b}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.app-container{height:100vh;display:flex}.sidebar{background-color:var(--sidebar-bg);border-right:1px solid var(--border);z-index:10;flex-direction:column;flex-shrink:0;width:320px;display:flex}.sidebar-header{border-bottom:1px solid var(--border);padding:24px}.sidebar-header h1{color:var(--accent);font-size:1.25rem;font-weight:700}.sidebar-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.sidebar-tab{border:1px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:#0f172a59;border-radius:12px;padding:10px 12px;font-size:.78rem;font-weight:800;transition:all .2s}.sidebar-tab:hover{border-color:var(--accent);color:var(--text-primary)}.sidebar-tab.active{background:var(--accent);border-color:var(--accent);color:#0f172a}.sidebar-content{flex:1;padding:16px;overflow-y:auto}.class-group{margin-bottom:24px}.class-name{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);opacity:.8;margin-bottom:12px;padding-left:12px;font-size:.7rem;font-weight:700}.chapter-item{cursor:pointer;color:var(--text-secondary);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:10px 12px;font-size:.85rem;line-height:1.4;transition:all .2s;display:flex}.chapter-item-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.chapter-item-flagged{min-width:44px;color:var(--text-secondary);background:#94a3b824;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:3px 8px;font-size:.75rem;font-weight:800;display:inline-flex}.chapter-item-flagged.has-flags{color:#fdba74;background:#f973162e}.chapter-item:hover{color:var(--text-primary);background-color:#334155}.chapter-item.active{background-color:var(--accent);color:#fff;font-weight:600}.main-content{scroll-behavior:smooth;background-image:radial-gradient(circle at 100% 0,#1e293b,#0f172a);flex:1;padding:40px;position:relative;overflow-y:auto}.global-search-panel{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ab8;border-radius:20px;max-width:1100px;margin:0 auto 32px;padding:20px 24px;box-shadow:0 20px 40px #0000002e}.global-search-copy{margin-bottom:14px}.global-search-label{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:8px;font-size:.72rem;font-weight:800;display:block}.global-search-hint{color:var(--text-secondary);font-size:.92rem;line-height:1.5}.global-search-input-wrap{align-items:center;gap:12px;display:flex}.global-search-input{min-width:0;color:var(--text-primary);border:1px solid var(--border);background:#0f172a;border-radius:12px;outline:none;flex:1;padding:14px 16px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.global-search-input::placeholder{color:#64748b}.global-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf826}.global-search-clear{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:12px;padding:14px 16px;font-weight:600;transition:all .2s}.global-search-clear:hover{border-color:var(--accent);color:var(--accent)}.review-note-card{border:1px solid var(--border);background:#0f172ab8;border-radius:16px;max-width:1100px;margin:0 auto 24px;padding:18px 20px;box-shadow:0 16px 30px #0000001f}.review-note-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.review-note-title{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:6px;font-size:.82rem;font-weight:800}.review-note-subtitle{color:var(--text-secondary);font-size:.92rem;line-height:1.5}.review-status-select{border:1px solid var(--border);color:var(--text-primary);background:#0f172a;border-radius:12px;min-width:210px;padding:10px 12px;font-size:.9rem;font-weight:700}.review-status-select:disabled,.review-note-textarea:disabled{opacity:.65;cursor:not-allowed}.review-note-auth-notice{color:#bae6fd;background:#38bdf814;border:1px solid #38bdf840;border-radius:12px;margin-bottom:12px;padding:12px 14px;font-size:.88rem;line-height:1.5}.review-note-footer{justify-content:space-between;align-items:flex-start;gap:16px;margin-top:10px;display:flex}.review-note-meta{color:#94a3b8;flex-direction:column;gap:4px;font-size:.75rem;line-height:1.5;display:flex}.review-note-reviewer{color:#64748b}.review-note-save-hint,.review-note-error{text-align:right;flex-shrink:0;font-size:.75rem}.review-note-save-hint{color:#94a3b8}.review-note-error{color:#fca5a5}.sidebar-auth{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;display:flex}.sidebar-admin-link{color:var(--text-secondary);border:1px solid var(--border);text-align:center;border-radius:10px;padding:6px 10px;font-size:.78rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-block}.sidebar-admin-link:hover{border-color:var(--accent);color:var(--accent)}.auth-button{flex-direction:column;gap:10px;display:flex}.auth-button-compact{gap:8px}.auth-button-title{color:var(--text-primary);font-size:.82rem;font-weight:700}.auth-button-subtitle,.auth-button-status{color:var(--text-secondary);font-size:.75rem;line-height:1.4}.auth-button-action{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:#0f172a;border-radius:12px;padding:10px 12px;font-size:.82rem;font-weight:700;transition:all .2s}.auth-button-action:hover{border-color:var(--accent);color:var(--accent)}.auth-button-action-secondary{background:0 0}.review-note-textarea{border:1px solid var(--border);width:100%;color:var(--text-primary);resize:vertical;background:#0f172a;border-radius:12px;outline:none;padding:14px 16px;font-size:.95rem;line-height:1.6}.review-note-textarea:focus,.review-status-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf826}.view-panel{max-width:1100px;margin:0 auto}.chapter-header{border-bottom:2px solid var(--border);margin-bottom:40px;padding-bottom:20px}.chapter-header h2{margin-bottom:8px;font-size:2.25rem;font-weight:800}.chapter-header p{color:var(--accent);text-transform:uppercase;font-size:.875rem;font-weight:600}.problem-summary-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.problem-summary-card{background-color:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:20px;transition:transform .2s,border-color .2s}.problem-summary-card:hover{border-color:var(--accent);transform:translateY(-4px)}.problem-summary-id{color:var(--accent);text-transform:uppercase;margin-bottom:8px;font-size:.75rem;font-weight:700}.problem-summary-text{color:var(--text-primary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.5;display:-webkit-box;overflow:hidden}.problem-summary-status-grid,.search-result-status-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px;display:grid}.problem-summary-status-column,.search-result-status-column{flex-direction:column;gap:6px;display:flex}.problem-summary-status-label,.search-result-status-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.65rem;font-weight:800}.problem-summary-status-value,.search-result-status-value{width:fit-content;min-width:44px;color:var(--text-secondary);background:#94a3b824;border-radius:999px;justify-content:center;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.status-present{color:#7dd3fc;background:#38bdf82e}.status-empty{color:var(--text-secondary);background:#94a3b824}.search-results-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.search-result-card{text-align:left;background-color:var(--card-bg);border:1px solid var(--border);cursor:pointer;color:inherit;border-radius:12px;padding:20px;transition:transform .2s,border-color .2s,box-shadow .2s}.search-result-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 16px 30px #00000029}.search-result-meta{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:.75rem;display:flex}.search-result-meta span{align-items:center;gap:6px;display:inline-flex}.search-result-question{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.85rem;font-weight:700}.search-result-snippet{color:var(--text-primary);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:.95rem;line-height:1.55;display:-webkit-box;overflow:hidden}.question-content-block,.question-figure-inline{flex-direction:column;gap:10px;display:flex}.question-figure-thumb{object-fit:contain;border:1px solid var(--border);background:#0f172a;border-radius:10px;width:100%;max-height:220px}.question-text-inline{white-space:pre-wrap}.search-empty-state{color:var(--text-secondary);padding:28px 4px;font-size:1rem}.detail-header{align-items:center;gap:20px;margin-bottom:32px;display:flex}.back-button{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-weight:600;transition:all .2s}.back-button:hover{background:var(--accent);color:#fff}.problem-card{background-color:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:32px;box-shadow:0 20px 25px -5px #0000001a}.data-section{border-bottom:1px solid #ffffff0d;margin-bottom:24px;padding-bottom:16px}.section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:8px;font-size:.7rem;font-weight:700}.question-text{color:#f1f5f9;white-space:pre-wrap;border:1px solid var(--border);background:#0f172a;border-radius:12px;padding:20px;font-size:1.25rem;font-weight:500;line-height:1.6}.data-value-plain{font-size:1rem;line-height:1.5}.validation-container{background:#0000004d;border:1px solid #ffffff0d;border-radius:16px;flex-direction:column;gap:24px;padding:24px;display:flex}.sub-section-title{color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;font-size:1rem;font-weight:800}.steps-container{flex-direction:column;gap:24px;display:flex}.step-card{border-left:6px solid var(--accent);background-color:#1e293b;border-radius:16px;padding:24px;box-shadow:0 4px 6px #0003}.step-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.step-badge{background:var(--accent);color:#fff;border-radius:6px;padding:4px 12px;font-size:.8rem;font-weight:700}.step-action{font-size:1.1rem;font-weight:700}.step-description{color:var(--text-secondary);margin-bottom:20px;font-size:1rem;font-style:italic;line-height:1.6}.step-data-group{border:1px solid var(--border);background:#0f172a;border-radius:12px;margin-top:16px;overflow:hidden}.group-label{text-transform:uppercase;color:var(--text-primary);background:#334155;padding:6px 12px;font-size:.7rem;font-weight:800}.detail-row{border-bottom:1px solid #ffffff0d;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{width:180px;color:var(--accent);text-transform:uppercase;background:#ffffff05;border-right:1px solid #ffffff0d;padding:12px;font-size:.75rem;font-weight:700}.detail-value{flex:1;padding:12px;font-size:.9rem}.raw-object{white-space:pre-wrap;word-break:break-word;background:#0f172a;border-radius:8px;padding:12px;font-family:monospace;font-size:.8rem;overflow-x:auto}.generic-array{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.array-item-card{border:1px solid var(--border);background:#1e293b;border-radius:8px;padding:12px}.loading,.error{justify-content:center;align-items:center;height:100vh;font-size:1.5rem;display:flex}@media (max-width:900px){.app-container{flex-direction:column;height:auto;min-height:100vh}.sidebar{width:100%}.sidebar-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.main-content{padding:24px}}@media (max-width:640px){.global-search-panel{padding:16px}.global-search-input-wrap{flex-direction:column;align-items:stretch}.global-search-clear{width:100%}.chapter-header h2{font-size:1.7rem}.problem-summary-list,.search-results-list,.generic-array,.problem-summary-status-grid,.search-result-status-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#475569}.login-screen{background:radial-gradient(circle at top, #38bdf81f, transparent 35%), var(--bg-color);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:#1e293beb;border-radius:20px;width:100%;max-width:440px;padding:32px;box-shadow:0 24px 60px #00000047}.login-badge{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;background:#38bdf81f;border-radius:999px;margin-bottom:14px;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.login-title{margin-bottom:10px;font-size:1.8rem;font-weight:800}.login-subtitle{color:var(--text-secondary);margin-bottom:24px;line-height:1.6}.login-error{color:#fecaca;background:#f871711a;border:1px solid #f8717159;border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:.88rem;line-height:1.5}.login-button{border:1px solid var(--border);width:100%;color:var(--text-primary);cursor:pointer;background:#0f172a;border-radius:14px;padding:14px 16px;font-size:.95rem;font-weight:700;transition:all .2s}.login-button:hover{border-color:var(--accent);color:var(--accent)}.login-footnote{color:#64748b;text-align:center;margin-top:16px;font-size:.78rem;line-height:1.5}
