:root{--bg: #ffffff;--fg: #16181d;--muted: #5b6472;--border: #e4e7ec;--accent: #2563eb;--accent-dark: #1d4ed8;--code-bg: #f4f5f7;--radius: 8px;--max-width: 780px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg);line-height:1.6}.container{max-width:1080px;margin:0 auto;padding:0 1.25rem}.site-header{border-bottom:1px solid var(--border);padding:1rem 0}.site-header nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.brand{font-weight:700;font-size:1.05rem;color:var(--fg);text-decoration:none}.nav-links{display:flex;gap:1.25rem;flex-wrap:wrap}.nav-links a{color:var(--muted);text-decoration:none;font-size:.92rem}.nav-links a:hover{color:var(--accent)}main{min-height:60vh}.site-footer{border-top:1px solid var(--border);margin-top:3rem;padding:2rem 0;color:var(--muted);font-size:.9rem}.site-footer a{color:var(--accent)}.prose{max-width:var(--max-width);margin:0 auto;padding:2.5rem 1.25rem}.prose h1{font-size:2rem;line-height:1.25;margin-bottom:.5rem}.prose h2{font-size:1.4rem;margin-top:2rem}.prose h3{font-size:1.15rem;margin-top:1.5rem}.prose p{margin:1rem 0}.prose ul,.prose ol{margin:1rem 0;padding-left:1.5rem}.prose li{margin:.35rem 0}.prose code{background:var(--code-bg);padding:.15em .4em;border-radius:4px;font-size:.9em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.prose pre{background:var(--code-bg);padding:1rem;border-radius:var(--radius);overflow-x:auto}.prose pre code{background:none;padding:0}.prose a{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.25rem 1rem;color:var(--muted)}.prose table{width:100%;border-collapse:collapse;margin:1rem 0}.prose th,.prose td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.meta{color:var(--muted);font-size:.9rem}.hero{padding:3.5rem 1.25rem 2.5rem;text-align:center;border-bottom:1px solid var(--border)}.hero h1{font-size:2.2rem;margin-bottom:.75rem}.hero p{color:var(--muted);max-width:620px;margin:0 auto;font-size:1.05rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;max-width:1080px;margin:2.5rem auto;padding:0 1.25rem}.card{border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-decoration:none;color:var(--fg);display:block;transition:border-color .15s ease}.card:hover{border-color:var(--accent)}.card h3{margin:0 0 .5rem;font-size:1.1rem}.card p{margin:0;color:var(--muted);font-size:.92rem}.tool-page{max-width:720px;margin:0 auto;padding:2.5rem 1.25rem}.tool-form{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.5rem 0}.tool-form input,.tool-form select{flex:1;min-width:180px;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem}.tool-form button{padding:.6rem 1.25rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;cursor:pointer}.tool-form button:hover{background:var(--accent-dark)}.tool-form button:disabled{opacity:.6;cursor:not-allowed}.result-box{margin-top:1.5rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.result-box table{width:100%;border-collapse:collapse;font-size:.92rem}.result-box th,.result-box td{padding:.6rem .9rem;border-bottom:1px solid var(--border);text-align:left;word-break:break-word}.result-box th{background:var(--code-bg)}.result-box tr:last-child td{border-bottom:none}.status-ok{color:#15803d;font-weight:600}.status-warn{color:#b45309;font-weight:600}.status-error{color:#b91c1c;font-weight:600}.hint{color:var(--muted);font-size:.85rem;margin-top:.5rem}.blog-list{display:flex;flex-direction:column;gap:1.5rem}.blog-list article{border-bottom:1px solid var(--border);padding-bottom:1.5rem}.blog-list h2{margin:0 0 .35rem;font-size:1.25rem}.blog-list h2 a{color:var(--fg);text-decoration:none}.blog-list h2 a:hover{color:var(--accent)}.cta-box{margin:2rem 0;padding:1.25rem 1.5rem;background:var(--code-bg);border-radius:var(--radius);border:1px solid var(--border)}
