:root {
    --background-color: #121212;
    --text-color: #e0e0e0;
    --primary-color:  #03dac6;
    --secondary-color: #bb86fc;
    --border-color: #333;
    --nav-background: #1f1f1f;
    --flash-background: #333;
    --flash-border: #bb86fc;
    --flash-success-border: #28a745;
    --flash-error-border: #dc3545;
}

*, *::before, *::after { box-sizing: border-box; }

html { font-family: sans-serif; background: var(--background-color); color: var(--text-color); padding: 1rem; }
body { max-width: 960px; margin: 0 auto; line-height: 1.6; background: #1e1e1e; }
h1 { font-family: serif; color: var(--primary-color); margin: 1rem 0; }
h2 { font-size: 1.25rem; margin: 1.75rem 0 0.75rem; color: var(--secondary-color); }
p { margin: 0.75rem 0; }
a { color: var(--primary-color); }
hr { border: none; border-top: 1px solid var(--border-color); }
nav { background: var(--nav-background); display: flex; align-items: center; padding: 0 0.5rem; }
nav h1 { flex: auto; margin: 0; }
nav h1 a { text-decoration: none; padding: 0.25rem 0.5rem; }
nav ul  { display: flex; list-style: none; margin: 0; padding: 0; }
nav ul li a, nav ul li span, header .action { display: block; padding: 0.5rem; }
footer { border-top: 1px solid var(--border-color); background: var(--nav-background); color: var(--text-color); padding: 0.75rem 1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; background: #171a1f;}
footer nav ul { display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0; }
footer nav a { color: var(--text-color); text-decoration: none;}
footer nav a:hover,
footer nav a:focus { text-decoration: underline;}


.home-page-link { font-size: large; }
.profile-container { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--border-color); padding: 1rem; }
.content { padding: 0 1rem 1rem; }
.content > header { border-bottom: 1px solid var(--border-color); display: flex; align-items: flex-end; }
.content > header h1 { flex: auto; margin: 1rem 0 0.25rem 0; }
.flash { margin: 1em 0; padding: 1em; background: var(--flash-background); border: 1px solid var(--flash-border); }
.flash.success { background: #d4edda; border-color: var(--flash-success-border); color: #155724; }
.flash.error { background: #f8d7da; border-color: var(--flash-error-border); color: #721c24; }
input.danger { color: #cf6679; }
input[type=submit] { align-self: start; min-width: 10em; background: var(--primary-color); color: var(--background-color); border: none; }


.hp-small { font-size: 0.92rem; opacity: 0.9; }
.hp-disclaimer { margin-top: 0.5rem; }

.home-public .hp-btn { display: inline-block; padding: 0.55rem 1rem; background: var(--primary-color); color: var(--background-color); border: 1px solid transparent; text-decoration: none; border-radius: 10px; font-weight: 600; transition: transform .04s ease, filter .15s ease, background .2s ease, border-color .2s ease; }
.home-public .hp-btn:hover,
.home-public .hp-btn:focus { filter: brightness(1.05); transform: translateY(-1px); outline: none; }
.home-public .hp-btn:focus-visible { box-shadow: 0 0 0 3px rgba(3,218,198,0.25); }
.home-public .hp-btn.ghost { background: transparent; border: 1px dashed var(--border-color); color: var(--text-color); }

.home-public .hp-hero { border-radius: 16px; background: radial-gradient(1200px 400px at 20% -20%, #1a2733 0%, #10161b 60%, #0c1116 100%); box-shadow: 0 10px 24px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04); }
.home-public .hp-cta-row { display: flex; gap: 0.65rem; flex-wrap: wrap; margin-top: 0.85rem; }
.home-public .hp-pill { font-size: 0.9rem; opacity: 0.9; }

.home-public .hp-card { border-radius: 14px; background: #1b1f24; transition: transform .06s ease, border-color .2s ease, box-shadow .2s ease; }
.home-public .hp-card:hover { transform: translateY(-2px); border-color: #3a3a3a; box-shadow: 0 8px 22px rgba(0,0,0,0.28); }

.home-public .hp-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 980px) { .home-public .hp-grid-3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px) { .home-public .hp-grid-3 { grid-template-columns: 1fr; } }

.home-public .hp-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 1100px) { .home-public .hp-grid-4 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 820px) { .home-public .hp-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 520px) { .home-public .hp-grid-4 { grid-template-columns: 1fr; } }

.home-public .hp-compare { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 700px) { .home-public .hp-compare { grid-template-columns: 1fr; } }

.home-public .hp-section-title { margin: 1.75rem 0 0.85rem; color: var(--secondary-color); position: relative; }
.home-public .hp-section-title::after { content: ""; display: block; height: 2px; width: 64px; margin-top: 6px; background: linear-gradient(90deg, var(--secondary-color), transparent); opacity: 0.8; }

.home-public .hp-tdf .hp-card h3 { margin-top: 0.25rem; }


.about-wrap { max-width: 820px; margin: 0 auto; padding: 0 1.25rem 4rem; }
.about-prose { line-height: 1.65; color: #e7e7e7; }
.about-prose h2 { margin: 2rem 0 0.5rem; font-size: 1.5rem; color: #fff; }
.about-prose .lead { font-size: 1.08rem; opacity: 0.95; }
.about-prose p { margin: 0.75rem 0; }

.about-hero { max-width: 980px; margin: 1rem auto 2rem; padding: 1.25rem 1.25rem 1.4rem; background: radial-gradient(1200px 400px at 20% -20%, #1a2733 0%, #0f1419 60%, #0c1116 100%); border: 1px solid rgba(255,255,255,0.06); border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04); }
.about-hero__kicker { margin: 0 0 0.4rem; font-size: 0.9rem; letter-spacing: 0.12em; text-transform: uppercase; color: #7ac6ff; opacity: 0.9; }
.about-hero__value { margin: 0; font-size: 1.25rem; font-weight: 600; color: #eaf6ff; line-height: 1.45; }

.hl { font-weight: 700; color: #bfe3ff; }
.about-cta { margin-top: 2rem; }
.btn-linkedin { display: inline-block; padding: 0.6rem 1rem; border-radius: 999px; background: #0a66c2; color: #fff; text-decoration: none; font-weight: 600; border: 1px solid rgba(255,255,255,0.08); }
.btn-linkedin:hover { filter: brightness(1.08); }

.about-us h1, .about-hero + h1 { font-size: 1.75rem; }


.tier-banner { display: inline-block; margin: 0 0 1rem 0; padding: 0.4rem 0.75rem; border-radius: 9999px; font-weight: 600; letter-spacing: 0.03em; font-size: 0.9rem; }
.tier-free { background: rgba(255, 179, 71, 0.15); color: #ffb347; /* amber-ish */ border: 1px solid rgba(255, 179, 71, 0.35); }
.tier-premium { background: rgba(88, 205, 155, 0.18); color: #58cd9b; /* green */ border: 1px solid rgba(88, 205, 155, 0.4); }

.sim-card { border:1px solid rgba(255,255,255,0.1); border-radius:12px; padding:1rem; }
.sim-card > summary { font-weight:700; cursor:pointer; margin-bottom:0.5rem; }
.sim-form fieldset { border:none; margin:0 0 0.75rem 0; padding:0; }
.sim-form legend { font-weight:600; margin-bottom:0.25rem; }
.checkbox-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap:0.25rem 1rem; }
.chk { display:flex; align-items:center; gap:0.5rem; }
.dca-row { display:flex; gap:1rem; flex-wrap:wrap; }
.multi-select { display:flex; gap:0.75rem; flex-wrap:wrap; }
.tip { font-size:0.9rem; opacity:0.8; margin-bottom:0.5rem; }
.pill { display:inline-block; padding:0.2rem 0.6rem; border:1px dashed rgba(255,255,255,0.25); border-radius:999px; font-size:0.8rem; margin-bottom:0.75rem; }
.err { color:#ff7a7a; font-size:0.85rem; margin-top:0.25rem; }
