* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; line-height: 1.6; }

.navbar { position: fixed; top: 0; width: 100%; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(10px); padding: 1rem 2rem; display: flex; justify-content: space-between; align-items: center; z-index: 1000; border-bottom: 1px solid #1e293b; }
.nav-brand { font-size: 1.25rem; font-weight: 700; color: #60a5fa; }
.nav-links { display: flex; gap: 1.5rem; }
.nav-links a { color: #94a3b8; text-decoration: none; font-size: 0.9rem; transition: color 0.3s; }
.nav-links a:hover { color: #60a5fa; }

.container { max-width: 1200px; margin: 0 auto; padding: 6rem 2rem 2rem; }
.section { margin-bottom: 4rem; padding: 2rem; background: #1e293b; border-radius: 16px; border: 1px solid #334155; }
.section h1, .section h2 { color: #f1f5f9; margin-bottom: 1rem; }
.section h1 { font-size: 2rem; }
.section h2 { font-size: 1.5rem; border-bottom: 2px solid #3b82f6; padding-bottom: 0.5rem; }
.intro { color: #94a3b8; font-size: 1.1rem; margin-bottom: 2rem; }

/* Timeline */
.timeline { display: flex; justify-content: space-between; margin: 2rem 0; padding: 1rem; background: #0f172a; border-radius: 12px; overflow-x: auto; }
.timeline-item { text-align: center; padding: 1rem; min-width: 120px; }
.timeline-item span { display: block; font-size: 0.8rem; color: #60a5fa; font-weight: 600; margin-bottom: 0.5rem; }
.timeline-item h4 { font-size: 0.9rem; color: #f1f5f9; margin-bottom: 0.25rem; }
.timeline-item p { font-size: 0.75rem; color: #64748b; }

/* Cards */
.method-cards, .mode-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.card, .mode { background: #0f172a; border: 1px solid #334155; border-radius: 12px; padding: 1.5rem; cursor: pointer; transition: all 0.3s; }
.card:hover, .mode:hover { border-color: #3b82f6; transform: translateY(-2px); }
.card h3, .mode h4 { color: #f1f5f9; margin-bottom: 0.5rem; }
.card p, .mode p { color: #64748b; font-size: 0.9rem; }
.tag { display: inline-block; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.75rem; margin-top: 0.5rem; }
.tag.safe { background: #065f46; color: #6ee7b7; }
.tag.warn { background: #78350f; color: #fcd34d; }
.tag.info { background: #1e3a8a; color: #93c5fd; }
.tag.new { background: #581c87; color: #d8b4fe; }

/* Flow Demo */
.flow-demo { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 1.5rem; background: #0f172a; border-radius: 12px; margin: 1rem 0; flex-wrap: wrap; }
.flow-demo .step { background: #334155; padding: 1rem 1.5rem; border-radius: 8px; font-size: 0.9rem; transition: all 0.3s; }
.flow-demo .step.active { background: #3b82f6; color: white; }
.flow-demo .step.completed { background: #10b981; color: white; }
.flow-demo .arrow { color: #64748b; font-size: 1.5rem; }
.btn { background: #3b82f6; color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 8px; cursor: pointer; font-size: 0.9rem; transition: background 0.3s; margin-top: 1rem; }
.btn:hover { background: #2563eb; }

/* Code Block */
.code-block { background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 1rem; margin: 1rem 0; overflow-x: auto; }
.code-block pre { color: #a5b4fc; font-family: 'Fira Code', monospace; font-size: 0.85rem; white-space: pre-wrap; }

/* Info Boxes */
.info-box { padding: 1rem 1.5rem; border-radius: 8px; margin: 1rem 0; }
.info-box h4 { margin-bottom: 0.5rem; }
.info-box ul { margin-left: 1.5rem; }
.info-box.success { background: rgba(16, 185, 129, 0.1); border-left: 4px solid #10b981; }
.info-box.success h4 { color: #6ee7b7; }
.info-box.warn { background: rgba(245, 158, 11, 0.1); border-left: 4px solid #f59e0b; }
.info-box.warn h4 { color: #fcd34d; }
.info-box.danger { background: rgba(239, 68, 68, 0.1); border-left: 4px solid #ef4444; }
.info-box.danger h4 { color: #fca5a5; }

/* Compare Box */
.compare-box { display: flex; align-items: stretch; gap: 1rem; margin: 1.5rem 0; flex-wrap: wrap; }
.compare-box .old, .compare-box .new { flex: 1; min-width: 200px; padding: 1.5rem; border-radius: 12px; }
.compare-box .old { background: rgba(239, 68, 68, 0.1); border: 1px solid #ef4444; }
.compare-box .new { background: rgba(16, 185, 129, 0.1); border: 1px solid #10b981; }
.compare-box .vs { display: flex; align-items: center; font-weight: bold; color: #64748b; }
.compare-box h4 { margin-bottom: 0.5rem; }
.compare-box ul { margin-left: 1rem; font-size: 0.9rem; color: #94a3b8; }

/* Two Phase */
.two-phase { display: flex; flex-direction: column; gap: 1rem; }
.two-phase .phase { background: #0f172a; padding: 1rem; border-radius: 8px; }
.two-phase .phase h4 { color: #60a5fa; margin-bottom: 0.5rem; }

/* Simulator */
.simulator { background: #0f172a; border: 1px solid #334155; border-radius: 12px; padding: 1.5rem; margin: 1.5rem 0; }
.simulator h4 { color: #f1f5f9; margin-bottom: 1rem; }
.simulator select, .simulator input { background: #1e293b; border: 1px solid #334155; color: #e2e8f0; padding: 0.5rem; border-radius: 4px; margin-right: 0.5rem; }
.simulator .result { margin-top: 1rem; padding: 1rem; background: #1e293b; border-radius: 8px; }
.simulator .result .low { color: #10b981; }
.simulator .result .high { color: #ef4444; }
.simulator .config { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; }
.simulator .config label { display: flex; align-items: center; gap: 0.5rem; }
.hidden { display: none; }

/* Architecture */
.architecture { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: 2rem; background: #0f172a; border-radius: 12px; margin: 1.5rem 0; }
.architecture .layer { display: flex; gap: 1rem; }
.architecture .box { background: #334155; padding: 1rem 2rem; border-radius: 8px; text-align: center; }
.architecture .box.highlight { background: #3b82f6; }
.architecture .arrow-down { color: #64748b; font-size: 1.2rem; }
.architecture.aa .layer.bottom { gap: 2rem; }

/* Features Grid */
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.feature { background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 1rem; text-align: center; }
.feature h4 { color: #60a5fa; font-size: 0.9rem; margin-bottom: 0.25rem; }
.feature p { color: #64748b; font-size: 0.8rem; }

/* Attack Cards */
.attack-cards { display: flex; flex-direction: column; gap: 1rem; }
.attack { background: #0f172a; border: 1px solid #334155; border-radius: 12px; overflow: hidden; cursor: pointer; }
.attack-header { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.5rem; }
.attack-header .icon { font-size: 1.5rem; }
.attack-header h4 { flex: 1; color: #f1f5f9; }
.severity { padding: 0.25rem 0.75rem; border-radius: 4px; font-size: 0.75rem; }
.severity.high { background: #7f1d1d; color: #fca5a5; }
.severity.medium { background: #78350f; color: #fcd34d; }
.attack-content { display: none; padding: 1rem 1.5rem; border-top: 1px solid #334155; background: #1e293b; }
.attack.expanded .attack-content { display: block; }
.attack-flow { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.attack-flow span { padding: 0.5rem 1rem; background: #334155; border-radius: 4px; }
.attack-flow .danger { background: #7f1d1d; color: #fca5a5; }
.malicious-example { background: #0f172a; padding: 1rem; border-radius: 8px; margin: 1rem 0; }
.malicious-example pre { color: #fca5a5; font-size: 0.85rem; }
.defense { margin-top: 1rem; }
.defense h5 { color: #10b981; margin-bottom: 0.5rem; }
.defense ul { margin-left: 1.5rem; color: #94a3b8; }
.case { background: #7f1d1d; padding: 1rem; border-radius: 8px; margin: 1rem 0; color: #fca5a5; }

/* Checklist */
.checklist { background: #0f172a; border: 1px solid #334155; border-radius: 12px; padding: 1.5rem; margin-top: 2rem; }
.checklist h3 { color: #f1f5f9; margin-bottom: 1rem; }
.checklist label { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; background: #1e293b; border-radius: 8px; margin-bottom: 0.5rem; cursor: pointer; transition: background 0.3s; }
.checklist label:hover { background: #334155; }
.checklist input[type="checkbox"] { width: 20px; height: 20px; accent-color: #10b981; }
.score-bar { height: 8px; background: #334155; border-radius: 4px; margin-top: 1rem; overflow: hidden; }
.score-bar .fill { height: 100%; background: linear-gradient(90deg, #ef4444, #f59e0b, #10b981); width: 0%; transition: width 0.5s; }

/* Table */
.table-container { overflow-x: auto; margin: 1.5rem 0; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 1rem; text-align: center; border: 1px solid #334155; }
th { background: #0f172a; color: #f1f5f9; }
td { background: #1e293b; }
td.good { color: #10b981; }
td.bad { color: #ef4444; }
td.neutral { color: #f59e0b; }

/* Relationship SVG */
.relationship { margin-top: 2rem; }
.relationship h3 { margin-bottom: 1rem; }
.relation-svg { width: 100%; max-width: 600px; margin: 0 auto; display: block; background: #0f172a; border-radius: 12px; }
.relation-svg text { font-size: 12px; font-weight: 600; }

/* Principles */
.principles { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.principle { background: #0f172a; border: 1px solid #334155; border-radius: 12px; padding: 1.5rem; }
.principle h4 { color: #60a5fa; margin-bottom: 0.5rem; }
.principle > p { color: #94a3b8; margin-bottom: 1rem; }
.principle ul { margin-left: 1.5rem; color: #64748b; font-size: 0.9rem; }

/* Best Practice Flow */
.best-practice { margin-top: 2rem; }
.best-practice h3 { margin-bottom: 1rem; }
.practice-flow { display: flex; align-items: center; justify-content: center; gap: 0.5rem; flex-wrap: wrap; padding: 1.5rem; background: #0f172a; border-radius: 12px; }
.pstep { background: #334155; padding: 1rem; border-radius: 8px; text-align: center; min-width: 120px; }
.pstep span { display: inline-block; width: 24px; height: 24px; background: #3b82f6; border-radius: 50%; line-height: 24px; font-size: 0.8rem; margin-bottom: 0.5rem; }
.pstep h4 { font-size: 0.9rem; color: #f1f5f9; margin-bottom: 0.25rem; }
.pstep p { font-size: 0.75rem; color: #64748b; }
.parrow { color: #64748b; font-size: 1.5rem; }

/* Footer */
footer { text-align: center; padding: 2rem; color: #64748b; border-top: 1px solid #1e293b; }

/* Responsive */
@media (max-width: 768px) {
    .navbar { flex-direction: column; gap: 1rem; }
    .nav-links { flex-wrap: wrap; justify-content: center; }
    .container { padding: 8rem 1rem 1rem; }
    .section { padding: 1.5rem; }
    .compare-box { flex-direction: column; }
    .compare-box .vs { justify-content: center; padding: 0.5rem; }
}
