*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f8f9fa;--card:#fff;--text:#212529;--muted:#6c757d;--accent:#4361ee;--accent2:#f72585;--border:#dee2e6;--radius:12px;--shadow:0 2px 12px rgba(0,0,0,.06)}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;font-size:16px;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}
header{background:var(--card);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* touch optimization */
a,button,input,select,textarea,.card,.tool-card,.toc-toggle,.article-nav-card{touch-action:manipulation}
nav{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.logo{font-size:1.3em;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap}
.nav-links{display:flex;gap:6px;flex:1;flex-wrap:wrap}
.nav-links a{color:var(--text);text-decoration:none;padding:8px 14px;border-radius:8px;font-size:.92em;transition:background .2s;white-space:nowrap}
.nav-links a.active{background:#eef0ff;color:var(--accent)}
@media(hover:hover){.nav-links a:hover{background:#eef0ff;color:var(--accent)}}
.lang-select{padding:6px 10px;border:1px solid var(--border);border-radius:8px;font-size:.85em;background:var(--card);cursor:pointer;outline:none}
.hero{text-align:center;padding:60px 20px 40px;background:linear-gradient(135deg,#eef0ff 0%,#fff0f6 100%);min-height:220px}
.hero h1{font-size:2.4em;margin-bottom:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero p{color:var(--muted);font-size:1.15em;max-width:700px;margin:0 auto}
main{max-width:1200px;margin:0 auto;padding:20px}
.section{margin-bottom:48px}
.section h2{font-size:1.6em;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.section h2 .icon{font-size:1.2em}
.section>.desc{color:var(--muted);margin-bottom:20px;font-size:.95em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:transform .15s,box-shadow .15s;text-decoration:none;color:var(--text);display:block}
@media(hover:hover){.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}}
.card h2,.card h3{font-size:1.05em;margin-bottom:8px;color:#1a1a2e}
.card p{color:var(--muted);font-size:.9em;line-height:1.5}
.card .tag{display:inline-block;background:#eef0ff;color:var(--accent);padding:2px 10px;border-radius:10px;font-size:.75em;margin-bottom:10px}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.tool-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;text-decoration:none;color:var(--text);display:block;transition:transform .15s,box-shadow .15s}
@media(hover:hover){.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}}
.tool-card .tool-icon{font-size:2.4em;margin-bottom:10px}
.tool-card h2,.tool-card h3{font-size:1em;margin-bottom:6px}
.tool-card p{color:var(--muted);font-size:.85em}
.tool-card .btn{display:inline-block;margin-top:10px;padding:8px 20px;background:var(--accent);color:#fff;border-radius:20px;font-size:.85em;text-decoration:none}
/* TOC (Table of Contents) */
.toc{margin:24px 0 32px;padding:16px 20px;background:var(--card);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;font-size:.92em;line-height:1.7}
.toc-title{font-weight:700;color:var(--text);margin-bottom:10px;font-size:1em}
.toc-list{list-style:none;padding:0;margin:0}
.toc-list li{margin:3px 0}
.toc-list li a{color:var(--muted);text-decoration:none;transition:color .15s;display:block;padding:2px 0}
.toc-list li a:focus{color:var(--accent)}
@media(hover:hover){.toc-list li a:hover{color:var(--accent)}}
.toc-list .toc-h3{padding-left:18px;font-size:.92em}
.toc-toggle{display:none;background:none;border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:.85em;color:var(--muted);cursor:pointer;width:100%;text-align:left;margin-bottom:0}
footer{text-align:center;padding:30px 20px;color:var(--muted);font-size:.85em;border-top:1px solid var(--border);margin-top:40px}
@media (max-width:768px){
.toc-toggle{display:block}
.toc-body{display:none}
.toc-toggle.open+.toc-body{display:block}
.toc{padding:12px 14px}
.hero h1{font-size:1.6em}.hero{padding:40px 16px 30px;min-height:150px}.grid{grid-template-columns:1fr}.tools-grid{grid-template-columns:1fr 1fr}nav{padding:10px 12px;gap:8px}}
@media (max-width:480px){.tools-grid{grid-template-columns:1fr}}

/* ========== Mobile Nav Hamburger ========== */
.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:6px;padding:8px 10px;cursor:pointer;font-size:1.2em;line-height:1;color:var(--text)}
.nav-toggle::after{content:'\2630'}
.nav-toggle.open::after{content:'\2715'}
@media (max-width:768px){
.nav-toggle{display:block}
.nav-links{display:none;flex-basis:100%;flex-direction:column;gap:2px}
.nav-links.open{display:flex}
.nav-links a{padding:10px 14px;font-size:.95em}
}

/* ========== Article Navigation (Prev/Next) - Card Style ========== */
.article-nav{display:flex;gap:16px;max-width:900px;margin:40px auto 0;padding:0}
.article-nav-card{flex:1;display:flex;flex-direction:column;gap:4px;text-decoration:none;background:#f5f5f5;border-radius:6px;padding:16px 18px;transition:background .15s,box-shadow .15s}
@media(hover:hover){.article-nav-card:hover{background:#ebebeb;box-shadow:0 1px 4px rgba(0,0,0,.06)}}
.article-nav-label{font-size:.8em;color:#888;line-height:1.4}
.article-nav-title{font-size:.95em;font-weight:600;color:#184d7a;line-height:1.5}
@media(hover:hover){.article-nav-card:hover .article-nav-title{color:#0d3557}}
.article-nav-prev{align-items:flex-start;text-align:left}
.article-nav-next{align-items:flex-end;text-align:right}
@media (max-width:768px){
.article-nav{flex-direction:column;gap:10px;margin-top:36px;padding-top:24px;border-top:1px solid var(--border)}
.article-nav-card{padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--card)}
.article-nav-label{font-size:.78em;color:var(--muted);margin-bottom:2px}
.article-nav-title{font-size:15px}
.article-nav-next{align-items:flex-start;text-align:left}
}

/* ========== Article Page Layout ========== */
.article-page-wrapper{display:flex;max-width:1200px;margin:0 auto;padding:20px;gap:24px;align-items:flex-start}
.article-content-wrapper{flex:1;min-width:0;max-width:900px}
.article-content-wrapper main{max-width:none;padding:0}

/* ---------- TOC Sidebar ---------- */
.toc-sidebar{width:240px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:80px;background:#f5f5f5;padding:12px;border-radius:6px;font-size:.9em;line-height:1.7;max-height:calc(100vh - 100px);overflow-y:auto}
.toc-sidebar .toc-title{font-weight:700;color:#555;margin-bottom:8px;font-size:1em}
.toc-sidebar .toc-list{list-style:none;padding-left:0;margin:0}
.toc-sidebar .toc-list li{margin:4px 0}
.toc-sidebar .toc-list li a{color:#555;text-decoration:none;transition:color .15s;display:block;padding:1px 0;font-size:.9em}
@media(hover:hover){.toc-sidebar .toc-list li a:hover{color:#184d7a}}
.toc-sidebar .toc-list li a.active{color:#184d7a;font-weight:700}


.toc-sidebar .toc-toggle{display:none;background:none;border:1px solid #ccc;border-radius:6px;padding:8px 14px;font-size:.9em;color:#333;cursor:pointer;width:100%;text-align:left}

/* ---------- Reading Time ---------- */
.reading-time{font-size:16px;color:#666;margin:-8px 0 16px 0;line-height:1.4}
.reading-time strong{font-weight:700;color:#222}

/* ---------- Article Typography ---------- */
.article-content{font-family:Arial,sans-serif;font-size:16px;line-height:1.7;color:#222}
.article-content h1{color:#184d7a;font-size:2em;font-weight:700;margin:0 0 8px 0}
.article-content h2{color:#184d7a;font-size:24px;font-weight:700;margin:32px 0 12px 0;border:none;background:none;-webkit-text-fill-color:#184d7a;scroll-margin-top:80px}
.article-content h3{color:#184d7a;font-size:20px;font-weight:600;margin:24px 0 8px 0;scroll-margin-top:80px}
.article-content p{margin:0 0 14px 0}
.article-content ul,.article-content ol{line-height:1.7;margin:0 0 16px 0;padding-left:24px}
.article-content ul li,.article-content ol li{margin-bottom:4px}
.article-content hr{margin:24px 0;border:none;border-top:1px solid #dee2e6}
.article-content blockquote{margin:16px 0;padding:12px 16px;background:#f8f9fa;border-left:4px solid #dee2e6}

/* ---------- Table Styles ---------- */
.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0 24px 0;border-radius:8px;border:1px solid var(--border)}
.table-wrapper table{margin:0;width:100%;min-width:500px;border:none}
.article-content table{border-collapse:collapse;width:100%;margin:16px 0 24px 0;font-size:.95em}
.article-content th,.article-content td{border-bottom:1px solid #e8e8e8;padding:10px 14px;text-align:left}
.article-content th:last-child,.article-content td:last-child{border-right:none}
.article-content th{background:#f0f3f8;font-weight:700;color:#222;font-size:.9em;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.article-content td{font-size:.92em;color:#333}
.article-content tr:nth-child(even) td{background:#f8f9fb}
@media(hover:hover){.article-content tbody tr:hover td{background:#eef0ff}}

/* ---------- Note / Tip Box ---------- */
.article-content .note,
.article-content .tip{background:#eef8ff;padding:12px 16px;border-left:4px solid #2b7;margin:16px 0;border-radius:0 6px 6px 0;font-size:.95em}

/* ========== Responsive ========== */
@media (max-width:1024px){
.toc-sidebar{width:200px}
}

@media (max-width:768px){
.article-page-wrapper{flex-direction:column;padding:12px;gap:0}
.toc-sidebar{width:100%;position:static;max-height:none;overflow:visible;margin-bottom:24px;border-radius:8px;background:#f7f8fa;border:1px solid var(--border);padding:0}
.toc-sidebar .toc-toggle{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:16px;font-weight:600;color:#333;background:none;border:none;width:100%;text-align:left;cursor:pointer;gap:8px}
.toc-sidebar .toc-toggle::after{content:'▾';font-size:12px;transition:transform .25s;flex-shrink:0}
.toc-sidebar .toc-toggle.open::after{transform:rotate(180deg)}
.toc-sidebar .toc-title{display:none}
.toc-sidebar .toc-body{display:none;padding:0 16px 14px;overflow:hidden}
.toc-sidebar .toc-body.open{display:block}
.toc-sidebar .toc-list li a{padding:6px 8px;border-radius:6px;font-size:15px}
.toc-sidebar .toc-list li a.active{background:#eef0ff;padding-left:10px}
.article-content-wrapper{max-width:100%}
.article-content h1{font-size:1.5em;margin-bottom:4px}
.article-content h2{font-size:19px;margin-top:28px;margin-bottom:10px}
.article-content h3{font-size:17px}
}
