/* ===========================================
   NameAcronym.net — Light/Dark Mode
   =========================================== */

:root {
    /* Shared */
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --accent-dim: rgba(37,99,235,0.10);
    --gold: #b8860b;
    --gold-dim: rgba(184,134,11,0.10);
    --success: #16a34a;
    --danger: #dc2626;
    --radius: 10px;
    --radius-sm: 6px;
    --font: system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-display: Georgia, 'Times New Roman', serif;
    --ease: cubic-bezier(0.4,0,0.2,1);

    /* Page background always dark */
    --page-bg: #1e1f20;

    /* Light (default) — content areas */
    --bg: var(--page-bg);
    --bg-raised: #ffffff;
    --bg-card: #f8f9fa;
    --bg-input: #ffffff;
    --border: #e0e2e5;
    --border-light: #eaecef;
    --text: #1a1c1e;
    --text-muted: #5f6368;
    --text-dim: #9aa0a6;
    --nav-bg: #111213;
    --nav-text: #e8e9ea;
    --nav-text-muted: #a8abab;
    --nav-hover: #2d2e2f;
    --footer-bg: #111213;
    --footer-text: #9aa0a6;
    --footer-heading: #e8e9ea;
    --footer-link: #c0c3c6;
    --shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08);
    --shadow-lg: 0 4px 12px rgba(0,0,0,0.15);
    color-scheme: light dark;
}

[data-theme="dark"] {
    --bg-raised: #2a2b2c;
    --bg-card: #323334;
    --bg-input: #3a3b3c;
    --border: #444546;
    --border-light: #4e5051;
    --text: #e8e9ea;
    --text-muted: #a8abab;
    --text-dim: #7c7f7f;
    --nav-bg: #111213;
    --nav-text: #e8e9ea;
    --nav-text-muted: #a8abab;
    --nav-hover: #2a2b2c;
    --footer-bg: #111213;
    --footer-text: #7c7f7f;
    --footer-heading: #e8e9ea;
    --footer-link: #a8abab;
    --accent-dim: rgba(37,99,235,0.18);
    --gold: #d4a853;
    --gold-dim: rgba(212,168,83,0.15);
    --shadow: 0 2px 8px rgba(0,0,0,0.3);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.4);
    color-scheme: dark;
}

/* === Reset === */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;background:var(--bg);font-family:var(--font);color:var(--text);line-height:1.6;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;transition:background .2s var(--ease),color .2s var(--ease);overflow-x:hidden;min-height:100vh;min-height:100dvh}
img{max-width:100%;height:auto;border:0}
a{color:var(--accent);text-decoration:none;transition:color .15s var(--ease)}
a:hover{color:var(--accent-hover)}
table{border-collapse:collapse;width:100%;table-layout:auto;word-break:break-word}

/* === Spinner Overlay === */
.spinner-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:9999;align-items:center;justify-content:center}
.spinner-overlay.active{display:flex}
.spinner-ring{width:48px;height:48px;border:4px solid rgba(255,255,255,0.2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* === Layout === */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0}
.row{display:grid;grid-template-columns:1fr;gap:14px}
.row-2col{display:grid;grid-template-columns:1fr;gap:0}
.row-3col{display:grid;grid-template-columns:1fr;gap:14px}

/* === Header === */
#header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;min-height:44px}
.logo{height:22px;width:auto;opacity:.9;transition:opacity .15s}
.logo:hover{opacity:1}

/* === Theme Toggle === */
.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:8px;min-height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .15s var(--ease)}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.theme-toggle svg{width:18px;height:18px;fill:currentColor}
.theme-toggle .icon-moon{display:block}
.theme-toggle .icon-sun{display:none}
[data-theme="dark"] .theme-toggle .icon-moon{display:none}
[data-theme="dark"] .theme-toggle .icon-sun{display:block}

/* === Navigation === */
.site-nav{background:var(--nav-bg);border-radius:0;margin-bottom:0;overflow:hidden}
.nav-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;color:var(--nav-text);background:none;border:none;cursor:pointer;width:100%;font-family:var(--font);font-size:14px;font-weight:600;min-height:44px}
.nav-toggle svg{fill:var(--nav-text-muted);width:20px;height:20px}
.nav-toggle .nav-home-label{color:var(--nav-text);letter-spacing:.03em}
.nav-list{list-style:none;margin:0;padding:0 6px 6px;display:none}
.nav-list.open{display:block}
.nav-list li a{display:flex;align-items:center;padding:9px 12px;color:var(--nav-text-muted);font-weight:500;font-size:13px;min-height:44px;border-radius:var(--radius-sm);margin:1px 0;transition:all .15s var(--ease)}
.nav-list li a:hover{color:#fff;background:var(--nav-hover);text-decoration:none}

/* === Cards === */
.box{background:var(--bg-raised);border:none;border-bottom:1px solid var(--border);border-radius:0;padding:16px 14px;box-shadow:none;min-height:auto;overflow:hidden;transition:background .2s var(--ease),border-color .2s var(--ease)}
.box.flat-top{border-top-left-radius:0;border-top-right-radius:0}

/* === Typography === */
h1{font-family:var(--font-display);color:var(--text);font-size:26px;font-weight:700;line-height:1.2;margin:0 0 6px;letter-spacing:-.01em}
h2{font-family:var(--font-display);color:var(--accent);font-size:20px;font-weight:700;line-height:1.3;margin:0 0 6px}
.blueheader{color:var(--accent);font-family:var(--font-display);font-size:20px;font-weight:700;text-align:center;margin:4px 0}
.details{color:var(--text-muted);font-size:14px;line-height:1.6}
.details-large{color:var(--text);font-size:16px;font-weight:700;line-height:1.5}
.nameLetter{color:var(--gold);font-size:22px;font-weight:700;font-family:var(--font-display);line-height:1}
.word{color:var(--text);font-size:18px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}

/* === Forms === */
.form-input{display:block;width:100%;padding:10px 14px;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:44px;transition:all .15s var(--ease);appearance:none;-webkit-appearance:none}
.form-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-dim)}
.form-input::placeholder{color:var(--text-dim)}
select.form-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239aa0a6' d='M6 8.825L.35 3.175l.7-.7L6 7.425l4.95-4.95.7.7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.form-group{margin-bottom:14px}
.form-label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em}

/* === Buttons === */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:10px 28px;font-family:var(--font);font-size:14px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;min-height:44px;min-width:44px;text-decoration:none;transition:all .15s var(--ease);letter-spacing:.01em}
.btn-primary:hover{background:var(--accent-hover);color:#fff;box-shadow:0 4px 12px rgba(37,99,235,0.25);transform:translateY(-1px)}
.btn-dark{display:inline-flex;align-items:center;justify-content:center;padding:10px 28px;font-family:var(--font);font-size:14px;font-weight:700;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-height:44px;min-width:44px;text-decoration:none;transition:all .15s var(--ease)}
.btn-dark:hover{background:var(--border);color:var(--text)}

/* === Ad Slots (CLS-safe) === */
.ad-slot{min-height:100px;overflow:hidden;background:var(--bg-card);border:none;border-bottom:1px solid var(--border);border-radius:0;contain:layout style paint;max-width:100%;box-sizing:border-box;width:100%}
.ad-slot ins{max-width:100%!important;width:100%!important}
.ad-slot iframe{max-width:100%!important}
.ad-slot-inline{min-height:90px;overflow:hidden;contain:layout style}
.ad-label{font-size:10px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}

/* === Results === */
.results-grid{display:grid;grid-template-columns:1fr;gap:8px}
.result-item{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;padding:10px 14px;background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid transparent;transition:border-color .15s var(--ease)}
.result-item:hover{border-color:var(--accent)}

/* === Pagination === */
.pager{border:1px solid var(--border);color:var(--text-muted);padding:7px 12px;margin:2px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700;font-size:13px;font-family:var(--font);min-height:40px;min-width:40px;border-radius:var(--radius-sm);background:var(--bg-raised);cursor:pointer;transition:all .15s var(--ease)}
.pager:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.pager_1{color:#fff;background:var(--accent);padding:7px 12px;margin:2px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;min-height:40px;min-width:40px;border-radius:var(--radius-sm);border:1px solid var(--accent)}

/* === Alpha Links === */
.alpha{display:flex;flex-wrap:wrap;gap:3px}
.alpha a{color:var(--text-muted);font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:36px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);transition:all .15s var(--ease);text-decoration:none}
.alpha a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* === Footer === */
.footer{padding:32px 0;margin-top:24px;background:var(--footer-bg);color:var(--footer-text);font-size:13px}
.footer a{color:var(--footer-link);display:inline-block;padding:3px 0;min-height:32px;line-height:26px;transition:color .15s var(--ease)}
.footer a:hover{color:var(--accent)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:24px;padding:0 14px;max-width:1200px;margin:0 auto}
.footer .header{font-size:15px;font-weight:700;color:var(--footer-heading);margin-bottom:8px;letter-spacing:.01em}
.footer .line{padding:1px 0}

/* === Content Toggle === */
.shortInfo{display:block;color:var(--text-muted);font-size:14px;margin:0 0 14px;line-height:1.6}
.moreInfo{display:none;color:var(--text-muted);font-size:14px;margin:0 0 14px;line-height:1.6}

/* === Utilities === */
.text-center{text-align:center}
.text-left{text-align:left}
.text-danger{color:var(--danger)}
.clearfix::after{content:"";display:table;clear:both}
.spacer{margin:14px 0}
.spacer-sm{margin:6px 0}
.full-width{width:100%;border-spacing:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}
.desktop-only{display:none}
.mobile-only{display:block}
.table-header{font-weight:700;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;padding:8px 6px 8px 0;border-bottom:1px solid var(--border)}
table td{vertical-align:top;padding:8px 6px 8px 0;border-bottom:1px solid var(--border-light)}
table tr:last-child td{border-bottom:none}

/* === Input Group === */
.input-group{display:flex;align-items:stretch}
.input-group-label{display:flex;align-items:center;padding:0 12px;font-size:13px;font-weight:700;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm);min-height:44px}
.input-group .form-input{border-radius:0 var(--radius-sm) var(--radius-sm) 0}

/* === Recent Acronyms === */
.recentAcronyms{padding:10px;background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border-light)}

/* === Dictionary / Legacy === */
.dict{vertical-align:top;margin:8px}
.content{background:var(--bg-card);padding:10px;border-radius:var(--radius-sm)}
.textbox{border:1px solid var(--border);font-size:14px;font-family:var(--font);color:var(--text);background:var(--bg-input);min-height:44px;width:100%;margin:6px 0;padding:10px;border-radius:var(--radius-sm)}
.textbox:focus{border-color:var(--accent);outline:none}

/* === Acronym Cards === */
.acronym-grid{display:grid;grid-template-columns:1fr;gap:14px}
.acronym-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:16px 14px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.acronym-card.saved{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}
.acronym-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.acronym-card-header h2{margin:0}
.acronym-save-btn{background:none;border:none;cursor:pointer;font-size:22px;color:var(--text-muted);padding:4px 8px;min-height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s var(--ease)}
.acronym-save-btn:hover{color:var(--danger);background:rgba(220,38,38,0.08)}
.acronym-save-btn.active{color:var(--danger)}

/* === Saved Badge === */
.saved-link{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:13px;font-weight:600;text-decoration:none;padding:8px;min-height:40px;min-width:40px;border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .15s var(--ease)}
.saved-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.saved-link svg{width:18px;height:18px;fill:currentColor}
.saved-badge{display:none;align-items:center;justify-content:center;background:var(--danger);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;padding:0 5px;border-radius:9px;line-height:1}

/* ===========================================
   DESKTOP (min-width: 768px)
   =========================================== */
@media(min-width:768px){
    .container{padding:0 20px}
    .row-2col{grid-template-columns:1fr 320px;gap:20px}
    .row-3col{grid-template-columns:1fr 1fr 1fr;gap:14px}
    #header{min-height:56px;padding:14px 0}
    .logo{height:44px}
    .site-nav{border-radius:var(--radius);margin-bottom:16px}
    .nav-toggle{display:none}
    .nav-list{display:flex;flex-wrap:wrap;padding:4px}
    .nav-list li a{padding:7px 14px;font-size:13px;margin:2px}
    .box{border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
    h1{font-size:32px}
    h2{font-size:24px}
    .blueheader{font-size:24px}
    .details{font-size:15px}
    .details-large{font-size:17px}
    .nameLetter{font-size:26px}
    .word{font-size:22px}
    .shortInfo{display:none}
    .moreInfo{display:block}
    .ad-slot{min-height:250px;border:1px solid var(--border);border-radius:var(--radius-sm)}
    .results-grid{grid-template-columns:1fr 1fr}
    .footer{padding:40px 0}
    .footer-grid{grid-template-columns:repeat(3,1fr);padding:0 20px}
    .desktop-only{display:table-cell}
    .mobile-only{display:none}
    .form-centered{max-width:80%;margin:0 auto}
    .recentAcronyms{width:100%}
    .acronym-grid{grid-template-columns:1fr 1fr}
    .acronym-card{padding:20px;box-shadow:var(--shadow)}
}
@media(min-width:1024px){
    .row-2col{grid-template-columns:1fr 360px}
}
