/* === Numely.net - Global Styles === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;line-height:1.6;color:var(--color-text);background:var(--color-bg);min-height:100vh;display:flex;flex-direction:column}
img,picture,video,canvas,svg{display:block;max-width:100%}
input,button,textarea,select{font:inherit}
a{color:var(--color-primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--color-primary-dark);text-decoration:underline}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}

:root{
    --color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-primary-light:#dbeafe;
    --color-secondary:#16a34a;--color-secondary-light:#dcfce7;
    --color-accent:#f59e0b;
    --color-bg:#fff;--color-bg-alt:#f8fafc;--color-bg-dark:#1e293b;
    --color-text:#1e293b;--color-text-light:#64748b;--color-text-inverse:#fff;
    --color-border:#e2e8f0;--color-border-dark:#cbd5e1;
    --color-success:#16a34a;--color-error:#dc2626;--color-warning:#f59e0b;--color-info:#2563eb;
    --font-mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
    --max-width:1200px;--sidebar-width:320px;
    --border-radius:8px;--border-radius-lg:12px;
    --shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);
    --shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);
    --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);
    --space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;
    --color-footer-text:#94a3b8;--color-footer-border:#334155;--color-footer-muted:#64748b
}

/* Layout */
.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}
.main-content{flex:1;padding:var(--space-xl) 0}
.two-column{display:grid;grid-template-columns:1fr var(--sidebar-width);gap:var(--space-xl);align-items:start}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}

/* Typography */
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;color:var(--color-text);margin-bottom:var(--space-md)}
h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}
p{margin-bottom:var(--space-md)}

/* Navbar */
.navbar{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:var(--space-md) 0;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}
.navbar .container{display:flex;align-items:center;justify-content:space-between}
.navbar-brand{font-size:1.4rem;font-weight:800;color:var(--color-primary);text-decoration:none;display:flex;align-items:center;gap:var(--space-sm)}
.navbar-brand:hover{color:var(--color-primary-dark);text-decoration:none}
.brand-icon{font-size:1.6rem}
.brand-logo{max-height:40px;width:auto;object-fit:contain}
.brand-name{white-space:nowrap}
.navbar-nav{display:flex;gap:var(--space-xs);align-items:center}
.navbar-nav a{padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius);color:var(--color-text);font-weight:500;font-size:.9rem;transition:background .2s,color .2s}
.navbar-nav a:hover{background:var(--color-primary-light);color:var(--color-primary);text-decoration:none}
.navbar-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:var(--space-sm);color:var(--color-text)}

/* Breadcrumb */
.breadcrumb{padding:var(--space-md) 0;font-size:.85rem;color:var(--color-text-light)}
.breadcrumb a{color:var(--color-text-light)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .separator{margin:0 var(--space-sm);color:var(--color-border-dark)}

/* Hero */
.hero{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-text-inverse);padding:var(--space-3xl) 0;text-align:center;margin-bottom:var(--space-xl)}
.hero h1{color:var(--color-text-inverse);font-size:2.5rem;margin-bottom:var(--space-md)}
.hero p{font-size:1.15rem;opacity:.9;max-width:600px;margin:0 auto var(--space-lg)}

/* Cards */
.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card-icon{font-size:2rem;margin-bottom:var(--space-sm)}
.card-title{font-size:1.1rem;font-weight:600;margin-bottom:var(--space-sm)}
.card-title a{color:var(--color-text)}.card-title a:hover{color:var(--color-primary);text-decoration:none}
.card-desc{font-size:.9rem;color:var(--color-text-light);margin-bottom:var(--space-md)}
.card-meta{font-size:.8rem;color:var(--color-text-light);display:flex;align-items:center;gap:var(--space-sm)}

/* Section */
.section{margin-bottom:var(--space-3xl)}
.section-title{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-primary);display:inline-block}

/* Forms */
.form-group{margin-bottom:var(--space-lg)}
.form-group label{display:block;font-weight:600;margin-bottom:var(--space-sm);color:var(--color-text);font-size:.9rem}
.form-group .help-text{font-size:.8rem;color:var(--color-text-light);margin-top:var(--space-xs)}
.form-control{width:100%;padding:.6rem .9rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:1rem;background:var(--color-bg);transition:border-color .2s,box-shadow .2s}
.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}
.form-control.error{border-color:var(--color-error);box-shadow:0 0 0 3px #fef2f2}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}
.form-error{color:var(--color-error);font-size:.8rem;margin-top:var(--space-xs);display:none}
.form-error.visible{display:block}
.radio-group,.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.radio-option,.checkbox-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:border-color .2s,background .2s;flex:1;min-width:150px}
.radio-option:hover,.checkbox-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}
.radio-option:has(input:checked),.checkbox-option:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-light)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.65rem 1.5rem;border:none;border-radius:var(--border-radius);font-weight:600;font-size:1rem;cursor:pointer;transition:background .2s,transform .1s;text-decoration:none}
.btn:hover{text-decoration:none}.btn:active{transform:scale(.98)}
.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}
.btn-primary:hover{background:var(--color-primary-dark);color:var(--color-text-inverse)}
.btn-secondary{background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border)}
.btn-secondary:hover{background:var(--color-border);color:var(--color-text)}
.btn-success{background:var(--color-success);color:var(--color-text-inverse)}
.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}
.btn-lg{padding:.85rem 2rem;font-size:1.1rem}
.btn-block{width:100%}

/* Footer */
.site-footer{background:var(--color-bg-dark);color:var(--color-text-inverse);padding:var(--space-3xl) 0 var(--space-lg);margin-top:auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}
.footer-section h3{color:var(--color-text-inverse);font-size:1rem;margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.5px}
.footer-section p{color:var(--color-footer-text);font-size:.9rem;line-height:1.7}
.footer-section ul li{margin-bottom:var(--space-sm)}
.footer-section ul a{color:var(--color-footer-text);font-size:.9rem;transition:color .2s}
.footer-section ul a:hover{color:var(--color-text-inverse);text-decoration:none}
.footer-bottom{border-top:1px solid var(--color-footer-border);padding-top:var(--space-lg);text-align:center;color:var(--color-footer-muted);font-size:.85rem}

/* Flash */
.flash-message{padding:var(--space-md) var(--space-lg);border-radius:var(--border-radius);margin-bottom:var(--space-lg);font-weight:500}
.flash-message.success{background:var(--color-secondary-light);color:#166534;border:1px solid #86efac}
.flash-message.error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}
.flash-message.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}

/* 404 */
.page-404{text-align:center;padding:var(--space-3xl) 0}
.page-404 h1{font-size:5rem;color:var(--color-primary)}
.page-404 p{font-size:1.2rem;color:var(--color-text-light)}

/* Content blocks (from EditorJS) */
.callout{background:#fffbeb;border-left:4px solid var(--color-warning);padding:var(--space-md) var(--space-lg);border-radius:0 var(--border-radius) var(--border-radius) 0;margin:var(--space-lg) 0}
.callout strong{display:block;margin-bottom:var(--space-xs);color:#92400e}
.callout p{margin:0;color:#78350f}
figure{margin:var(--space-lg) 0}
figure img{border-radius:var(--border-radius);max-width:100%;height:auto}
figcaption{text-align:center;font-size:.85rem;color:var(--color-text-light);margin-top:var(--space-sm)}
blockquote{border-left:4px solid var(--color-primary);padding:var(--space-md) var(--space-lg);margin:var(--space-lg) 0;background:var(--color-bg-alt);border-radius:0 var(--border-radius) var(--border-radius) 0}
blockquote p{margin:0;font-style:italic}
blockquote cite{display:block;margin-top:var(--space-sm);font-size:.85rem;color:var(--color-text-light);font-style:normal}
.content-section table{border-collapse:collapse;width:100%;margin:var(--space-lg) 0}
.content-section th,.content-section td{border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-align:left}
.content-section th{background:var(--color-bg-alt);font-weight:600}

/* Ad */
.ad-container{margin:var(--space-lg) 0;text-align:center;min-height:100px}

/* Utility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-light)}
.mt-1{margin-top:var(--space-md)}.mt-2{margin-top:var(--space-xl)}.mb-1{margin-bottom:var(--space-md)}.mb-2{margin-bottom:var(--space-xl)}

/* Responsive */
@media(max-width:768px){
    .two-column{grid-template-columns:1fr}.grid-3{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr}.hero h1{font-size:1.8rem}.hero{padding:var(--space-2xl) 0}
    .navbar-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-bg);flex-direction:column;padding:var(--space-md);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md)}
    .navbar-nav.active{display:flex}.navbar-toggle{display:block}
}
@media(max-width:480px){
    .grid-2,.grid-3{grid-template-columns:1fr}h1{font-size:1.5rem}.container{padding:0 var(--space-md)}.hero h1{font-size:1.5rem}
}

/* Columns */
.nm-cols{display:grid;gap:1.5rem;margin:1.5rem 0}
.nm-cols-2{grid-template-columns:1fr 1fr}
.nm-cols-3{grid-template-columns:1fr 1fr 1fr}
.nm-cols-23{grid-template-columns:2fr 1fr}
@media(max-width:768px){.nm-cols-2,.nm-cols-3,.nm-cols-23{grid-template-columns:1fr}}

/* Button/CTA */
.nm-btn{display:inline-block;padding:.75rem 1.5rem;border-radius:var(--border-radius,8px);text-decoration:none;font-weight:600;transition:all .2s}
.nm-btn-primary{background:var(--color-primary);color:#fff}
.nm-btn-primary:hover{opacity:.9;transform:translateY(-1px)}
.nm-btn-secondary{background:var(--color-secondary,#64748b);color:#fff}
.nm-btn-secondary:hover{opacity:.9;transform:translateY(-1px)}
.nm-btn-outline{border:2px solid var(--color-primary);color:var(--color-primary);background:transparent}
.nm-btn-outline:hover{background:var(--color-primary);color:#fff}

/* Accordion */
.nm-accordion details{border:1px solid var(--color-border,#e2e8f0);border-radius:var(--border-radius,8px);margin-bottom:.5rem;overflow:hidden}
.nm-accordion summary{padding:1rem 1.25rem;font-weight:600;cursor:pointer;background:var(--color-bg-alt,#f8fafc);list-style:none}
.nm-accordion summary::marker,.nm-accordion summary::-webkit-details-marker{display:none}
.nm-accordion summary::after{content:'+';float:right;font-size:1.2rem}
.nm-accordion details[open] summary::after{content:'\2212'}
.nm-accordion-body{padding:1rem 1.25rem}

/* Scroll animations */
[data-animate]{opacity:0;transition:opacity .6s ease,transform .6s ease}
[data-animate="slide-up"]{transform:translateY(30px)}
[data-animate="slide-left"]{transform:translateX(-30px)}
[data-animate="slide-right"]{transform:translateX(30px)}
[data-animate].nm-animated{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-animate]{opacity:1;transform:none;transition:none}}

/* === State Hub Pages === */
.state-data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1.5rem 0}
.state-data-card{background:var(--color-bg-secondary,#f8f9fa);border-radius:8px;padding:1rem;text-align:center;border:1px solid var(--color-border,#e9ecef)}
.state-data-value{display:block;font-size:1.4rem;font-weight:700;color:var(--color-primary)}
.state-data-label{display:block;font-size:.85rem;color:var(--text-muted,#6c757d);margin-top:.25rem}
.sidebar-count{display:block;font-size:.85rem;color:var(--text-muted,#6c757d);margin-bottom:.5rem}

/* === Category Grouping === */
.category-group{margin-bottom:2.5rem}
.category-group-title{font-size:1.15rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-border,#e9ecef)}
.category-group-expand{border:1px solid var(--color-border,#e9ecef);border-radius:8px;margin-top:1rem;overflow:hidden}
.category-group-expand summary{padding:.75rem 1rem;cursor:pointer;font-weight:600;font-size:.95rem;background:var(--color-bg-alt,#f8fafc);list-style:none;display:flex;justify-content:space-between;align-items:center}
.category-group-expand summary::-webkit-details-marker{display:none}
.category-group-expand summary::after{content:'+';font-size:1.2rem;color:var(--color-text-light,#64748b)}
.category-group-expand[open] summary::after{content:'\2212'}
.category-group-expand .grid-2{padding:1rem}
.category-search{margin-bottom:1.5rem}
.category-search-input{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;font-size:1rem;background:var(--color-bg,#fff);color:var(--color-text)}
.category-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.category-no-results{text-align:center;padding:2rem;color:var(--color-text-light,#64748b);font-size:1.1rem}
