/* =========================================================================
   Meridian Cyber — main stylesheet
   Loaded after Bootstrap 5 (grid/utilities only) and tokens.css.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    background: var(--paper);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
    transition: background 0.25s ease, color 0.25s ease;
}

h1, h2, h3, h4, h5, .display-font {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}

a { color: var(--teal-deep); text-decoration: none; }
a:hover { color: var(--teal); }

.text-muted-slate { color: var(--slate) !important; }

.mono { font-family: var(--font-mono); }

.container-narrow { max-width: var(--container-max); margin-inline: auto; padding-inline: 1.25rem; }

:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ---- Skip link (accessibility) ---- */
.skip-link {
    position: absolute;
    left: -999px;
    top: 0;
    background: var(--ink);
    color: var(--paper);
    padding: 0.75rem 1.25rem;
    z-index: 2000;
    border-radius: 0 0 8px 0;
}
.skip-link:focus {
    left: 0;
}

/* ==========================================================================
   Case-file tab labels — small numbered eyebrows used ONLY where sequence
   or catalog numbering is real (engagement phases, course/service IDs).
   ========================================================================== */
.case-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--teal-deep);
    background: var(--teal-soft);
    border: 1px solid var(--line);
    padding: 0.28rem 0.75rem;
    border-radius: 40px;
}

.case-id {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    color: var(--slate);
    letter-spacing: 0.04em;
}

/* ==========================================================================
   Navbar
   ========================================================================== */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: color-mix(in srgb, var(--surface) 92%, transparent);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--ink);
}

.brand-mark .glyph {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--ink);
    color: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 0.95rem;
}
[data-theme="dark"] .brand-mark .glyph { background: var(--teal); color: var(--ink); }

.site-nav .nav-link {
    color: var(--slate);
    font-weight: 500;
    font-size: 0.92rem;
    padding: 0.5rem 0.85rem !important;
}
.site-nav .nav-link.active,
.site-nav .nav-link:hover { color: var(--ink); }

.btn-signal {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 40px;
    padding: 0.55rem 1.3rem;
    font-weight: 600;
    font-size: 0.9rem;
    transition: transform 0.15s ease, opacity 0.15s ease;
}
.btn-signal:hover { color: var(--paper); opacity: 0.88; transform: translateY(-1px); }

.btn-outline-signal {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--line-strong);
    border-radius: 40px;
    padding: 0.55rem 1.3rem;
    font-weight: 600;
    font-size: 0.9rem;
    transition: 0.15s ease;
}
.btn-outline-signal:hover { border-color: var(--teal); color: var(--teal-deep); }

.theme-switch {
    border: 1px solid var(--line-strong);
    background: transparent;
    color: var(--ink);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.theme-switch:hover { border-color: var(--teal); }

/* ==========================================================================
   Hero + signature "engagement log" strip
   ========================================================================== */
.hero {
    padding: 4.5rem 0 3rem;
    border-bottom: 1px solid var(--line);
}

.hero h1 {
    font-size: clamp(2.1rem, 4vw, 3.2rem);
    line-height: 1.08;
    max-width: 16ch;
}

.hero-lede {
    font-size: 1.08rem;
    color: var(--slate);
    max-width: 52ch;
}

.engagement-log {
    margin-top: 3rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.engagement-log-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    color: var(--slate);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.engagement-log-body {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.log-step {
    padding: 1.35rem 1.25rem;
    border-right: 1px solid var(--line);
    position: relative;
}
.log-step:last-child { border-right: none; }

.log-step .log-num {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    color: var(--teal-deep);
    background: var(--teal-soft);
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 4px;
    margin-bottom: 0.6rem;
}

.log-step h3 {
    font-size: 1rem;
    margin-bottom: 0.35rem;
}

.log-step p {
    font-size: 0.85rem;
    color: var(--slate);
    margin: 0;
}

@media (max-width: 900px) {
    .engagement-log-body { grid-template-columns: repeat(2, 1fr); }
    .log-step:nth-child(2) { border-right: none; }
}
@media (max-width: 560px) {
    .engagement-log-body { grid-template-columns: 1fr; }
    .log-step { border-right: none !important; border-bottom: 1px solid var(--line); }
    .log-step:last-child { border-bottom: none; }
}

/* ==========================================================================
   Sections & cards
   ========================================================================== */
.section { padding: 4rem 0; }
.section-tight { padding: 2.5rem 0; }
.section-title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: 0.6rem; }
.section-sub { color: var(--slate); max-width: 60ch; }

.card-file {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1.6rem;
    height: 100%;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.card-file:hover {
    border-color: var(--teal);
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.card-file .case-id { display: block; margin-bottom: 0.7rem; }
.card-file h3 { font-size: 1.12rem; margin-bottom: 0.5rem; }
.card-file p { color: var(--slate); font-size: 0.92rem; }

.tag-pill {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.03em;
    color: var(--slate);
    background: var(--surface-raised);
    border: 1px solid var(--line);
    padding: 0.18rem 0.6rem;
    border-radius: 30px;
    margin: 0 0.3rem 0.3rem 0;
}

.severity-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 0.4rem; }
.severity-foundational { background: var(--teal); }
.severity-intermediate { background: var(--amber); }
.severity-advanced { background: var(--danger); }

/* ==========================================================================
   Stats / metrics strip
   ========================================================================== */
.metric-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--surface);
}
.metric-cell {
    padding: 1.5rem;
    border-right: 1px solid var(--line);
    text-align: left;
}
.metric-cell:last-child { border-right: none; }
.metric-cell .value { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--ink); }
.metric-cell .label { font-family: var(--font-mono); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--slate); }

@media (max-width: 768px) {
    .metric-strip { grid-template-columns: repeat(2, 1fr); }
    .metric-cell:nth-child(2n) { border-right: none; }
    .metric-cell:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

/* ==========================================================================
   Forms
   ========================================================================== */
.form-file {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 2rem;
}

.form-label {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--ink);
}

.form-control, .form-select {
    background: var(--surface-raised);
    border: 1px solid var(--line-strong);
    color: var(--ink);
    border-radius: var(--radius-sm);
    padding: 0.65rem 0.9rem;
}
.form-control:focus, .form-select:focus {
    background: var(--surface);
    border-color: var(--teal);
    box-shadow: 0 0 0 3px var(--teal-soft);
    color: var(--ink);
}

.form-text-hint { font-size: 0.78rem; color: var(--slate-soft); }

.alert-file {
    border-radius: var(--radius-md);
    border: 1px solid var(--line);
    padding: 0.9rem 1.1rem;
    font-size: 0.9rem;
}
.alert-file.success { background: color-mix(in srgb, var(--success) 10%, var(--surface)); border-color: var(--success); color: var(--success); }
.alert-file.error { background: color-mix(in srgb, var(--danger) 10%, var(--surface)); border-color: var(--danger); color: var(--danger); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
    background: var(--ink);
    color: color-mix(in srgb, var(--paper) 75%, transparent);
    padding: 3.5rem 0 1.5rem;
    margin-top: 4rem;
}
.site-footer a { color: color-mix(in srgb, var(--paper) 85%, transparent); }
.site-footer a:hover { color: var(--teal-deep); }
.site-footer h4 {
    color: var(--paper);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}
.site-footer .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--paper) 55%, transparent);
}

/* ==========================================================================
   Cookie consent banner
   ========================================================================== */
.cookie-banner {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 1900;
    background: var(--surface);
    border-top: 1px solid var(--line);
    box-shadow: var(--shadow-lg);
    padding: 1rem 1.25rem;
    display: none;
}
.cookie-banner.show { display: block; }
.cookie-banner p { margin: 0; font-size: 0.85rem; color: var(--slate); }

/* ==========================================================================
   Back to top
   ========================================================================== */
.back-to-top {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--paper);
    display: none;
    align-items: center;
    justify-content: center;
    border: none;
    z-index: 1500;
    box-shadow: var(--shadow-md);
}
.back-to-top.show { display: flex; }

/* ==========================================================================
   Skeleton loading
   ========================================================================== */
.skeleton {
    background: linear-gradient(90deg, var(--surface-raised) 25%, var(--line) 37%, var(--surface-raised) 63%);
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
    border-radius: var(--radius-sm);
}
@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
.breadcrumb-file {
    font-family: var(--font-mono);
    font-size: 0.78rem;
    color: var(--slate);
    padding: 1rem 0;
}
.breadcrumb-file a { color: var(--slate); }
.breadcrumb-file a:hover { color: var(--teal-deep); }

/* ==========================================================================
   AI Support widget
   ========================================================================== */
.ai-support-launcher {
    position: fixed;
    bottom: 1.5rem;
    left: 1.5rem;
    z-index: 1600;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--ink);
    color: var(--paper);
    border: none;
    border-radius: 40px;
    padding: 0.75rem 1.15rem;
    box-shadow: var(--shadow-lg);
    font-weight: 600;
    font-size: 0.88rem;
    cursor: pointer;
}
.ai-support-launcher .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--teal); display: inline-block;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal) 30%, transparent);
}

.ai-support-panel {
    position: fixed;
    bottom: 5.5rem;
    left: 1.5rem;
    width: 380px;
    max-width: calc(100vw - 2rem);
    max-height: min(560px, 72vh);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 1600;
    display: none;
    flex-direction: column;
    overflow: hidden;
}
.ai-support-panel.open { display: flex; }

.ai-support-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid var(--line);
    background: var(--surface-raised);
}
.ai-support-head .who { display: flex; align-items: center; gap: 0.55rem; }
.ai-support-head .glyph {
    width: 30px; height: 30px; border-radius: 8px;
    background: var(--teal); color: var(--ink);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-mono); font-size: 0.78rem; font-weight: 700;
}
.ai-support-head strong { font-size: 0.9rem; display: block; }
.ai-support-head span.status { font-size: 0.72rem; color: var(--slate); }
.ai-support-close {
    background: none; border: none; color: var(--slate); font-size: 1.1rem; cursor: pointer;
    width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
}
.ai-support-close:hover { color: var(--ink); }

.ai-support-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.ai-msg {
    max-width: 86%;
    font-size: 0.87rem;
    line-height: 1.45;
    padding: 0.6rem 0.85rem;
    border-radius: 12px;
}
.ai-msg.bot {
    align-self: flex-start;
    background: var(--surface-raised);
    border: 1px solid var(--line);
    color: var(--ink);
    border-bottom-left-radius: 3px;
}
.ai-msg.user {
    align-self: flex-end;
    background: var(--ink);
    color: var(--paper);
    border-bottom-right-radius: 3px;
}
.ai-msg.system-note {
    align-self: center;
    background: transparent;
    color: var(--slate-soft);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    text-align: center;
    max-width: 100%;
}

.ai-msg .topic-tag {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--teal-deep);
    background: var(--teal-soft);
    border-radius: 20px;
    padding: 0.1rem 0.5rem;
    margin-bottom: 0.35rem;
}

.ai-typing {
    display: inline-flex;
    gap: 4px;
    padding: 0.5rem 0.7rem;
}
.ai-typing span {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--slate-soft);
    animation: ai-typing-bounce 1.2s infinite ease-in-out;
}
.ai-typing span:nth-child(2) { animation-delay: 0.15s; }
.ai-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes ai-typing-bounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
    30% { transform: translateY(-4px); opacity: 1; }
}

.ai-support-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0 1.1rem 0.6rem;
}
.ai-quick-btn {
    font-size: 0.72rem;
    background: var(--surface-raised);
    border: 1px solid var(--line);
    border-radius: 30px;
    padding: 0.3rem 0.65rem;
    color: var(--slate);
    cursor: pointer;
}
.ai-quick-btn:hover { border-color: var(--teal); color: var(--teal-deep); }

.ai-support-input {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    border-top: 1px solid var(--line);
    padding: 0.75rem;
    background: var(--surface);
}
.ai-support-input textarea {
    flex: 1;
    resize: none;
    border: 1px solid var(--line-strong);
    background: var(--surface-raised);
    border-radius: var(--radius-sm);
    padding: 0.55rem 0.75rem;
    font-size: 0.85rem;
    color: var(--ink);
    max-height: 90px;
    font-family: var(--font-body);
}
.ai-support-input textarea:focus {
    outline: none;
    border-color: var(--teal);
    box-shadow: 0 0 0 3px var(--teal-soft);
}
.ai-support-send {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--paper);
    border: none;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
}
.ai-support-send:disabled { opacity: 0.4; cursor: not-allowed; }

.ai-support-foot {
    font-size: 0.68rem;
    color: var(--slate-soft);
    text-align: center;
    padding: 0 1rem 0.75rem;
}

@media (max-width: 480px) {
    .ai-support-panel { left: 0.75rem; right: 0.75rem; width: auto; bottom: 5rem; }
    .ai-support-launcher { left: 0.75rem; }
}

/* ==========================================================================
   Error / maintenance pages
   ========================================================================== */
.status-page {
    min-height: 70vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 1.25rem;
}
.status-page .status-code {
    font-family: var(--font-mono);
    font-size: 4.5rem;
    color: var(--teal);
    font-weight: 600;
}

/* ========================================================================
   Standard storefront UI
   ======================================================================== */
body{background:var(--paper);color:var(--ink)}
.site-nav{background:var(--surface);box-shadow:var(--shadow-sm)}
.brand-mark .glyph{background:var(--teal);color:#fff;border-radius:9px}
.btn-signal{background:var(--teal);border-color:var(--teal);color:#fff;border-radius:8px;padding:.65rem 1.15rem}.btn-signal:hover{background:var(--teal-deep);color:#fff;opacity:1}
.btn-outline-signal{border-radius:8px;color:var(--ink);padding:.65rem 1.15rem}.btn-outline-signal:hover{color:var(--teal-deep);border-color:var(--teal)}
.eyebrow{display:inline-block;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-deep)}
.catalog-hero{padding:5.5rem 0 4rem;background:linear-gradient(180deg,var(--surface),var(--paper));border-bottom:1px solid var(--line)}
.catalog-hero h1{font-size:clamp(2.4rem,5vw,4.2rem);max-width:760px;line-height:1.03;margin:.65rem 0 1rem}.catalog-hero p{max-width:700px;font-size:1.08rem;color:var(--slate)}
.catalog-toolbar{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.catalog-search{display:flex;gap:.75rem;width:min(520px,100%)}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.product-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem;display:flex;flex-direction:column;min-height:350px;box-shadow:var(--shadow-sm);transition:.2s ease}.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#bfdbfe}.product-top,.product-bottom,.product-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.product-level{font-size:.72rem;font-weight:700;background:var(--teal-soft);color:var(--teal-deep);padding:.3rem .55rem;border-radius:999px}.product-card h3{font-size:1.25rem;margin:1.2rem 0 .7rem}.product-card p{color:var(--slate);font-size:.94rem}.product-meta{justify-content:flex-start;color:var(--slate-soft);font-size:.82rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line)}.product-bottom{padding-top:1rem}.product-bottom strong{font-size:1.15rem}.standard-callout{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}.standard-callout h2{margin:.35rem 0}.standard-callout p{margin:0;color:var(--slate)}
.checkout-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:start}.checkout-card,.success-card,.empty-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-md)}.checkout-product{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.checkout-product h2{font-size:1.25rem;margin:.35rem 0}.checkout-product p,.checkout-note{color:var(--slate);font-size:.88rem}.checkout-product>strong{font-size:1.3rem;white-space:nowrap}.product-code{font-family:var(--font-mono);font-size:.75rem;color:var(--slate-soft)}.back-link{font-weight:600}.narrow-page{max-width:720px}.success-card{text-align:center;padding:3rem 2rem}.success-icon{width:58px;height:58px;border-radius:50%;background:#dcfce7;color:#15803d;display:grid;place-items:center;margin:0 auto 1rem;font-size:1.7rem;font-weight:700}.purchase-list{display:grid;gap:1rem}.purchase-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.25rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.purchase-card h2{font-size:1.1rem;margin:.3rem 0}.purchase-card p{margin:0;color:var(--slate);font-size:.9rem}.status-badge{display:inline-flex;padding:.45rem .7rem;border-radius:999px;background:var(--surface-raised);font-size:.8rem;font-weight:700}.status-badge.pending{background:#fef3c7;color:#92400e}.course-content{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.lesson-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow-sm)}.lesson-card>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--teal-deep);font-weight:700}.lesson-card p{color:var(--slate)}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-grid{grid-template-columns:1fr}.catalog-toolbar{align-items:stretch;flex-direction:column}.catalog-search{width:100%}}
@media(max-width:600px){.product-grid,.course-content{grid-template-columns:1fr}.catalog-search{flex-direction:column}.purchase-card,.standard-callout{align-items:flex-start;flex-direction:column}.catalog-hero{padding:4rem 0 3rem}}

:root{--paper:#f7f9fb;--surface:#fff;--ink:#111827;--slate:#64748b;--teal:#0f766e;--teal-deep:#115e59;--teal-soft:#ecfdf5;--line:#e5e7eb;--line-strong:#cbd5e1;--shadow-sm:0 8px 24px rgba(15,23,42,.06);--font-body:Inter,system-ui,sans-serif;--font-display:Space Grotesk,Inter,sans-serif;--font-mono:"IBM Plex Mono",monospace}
body{background:var(--paper)} .site-nav{background:rgba(255,255,255,.94)} .catalog-hero{padding:4.5rem 0 2.5rem;background:linear-gradient(180deg,#fff,var(--paper));border-bottom:1px solid var(--line)} .product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.product-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.35rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-height:310px;transition:.2s}.product-card:hover{transform:translateY(-3px);border-color:#99f6e4}.product-top,.product-bottom,.product-meta,.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.product-top{margin-bottom:1rem}.product-level{font-size:.78rem;padding:.25rem .6rem;border-radius:999px;background:#f1f5f9;color:#475569}.product-card p{color:var(--slate);flex:1}.product-meta{font-size:.82rem;color:var(--slate);padding:.8rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:1rem}.form-control,.form-select{border:1px solid var(--line-strong);border-radius:10px;padding:.7rem .85rem}.catalog-search{display:flex;gap:.6rem;min-width:min(100%,480px)}.standard-page{padding:4rem 0}.standard-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm)}.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:4rem 1rem}.auth-card{width:min(100%,460px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:2rem;box-shadow:var(--shadow-sm)}.notice{padding:.9rem 1rem;border-radius:10px;background:#ecfdf5;color:#065f46;margin-bottom:1rem}.error{padding:.9rem 1rem;border-radius:10px;background:#fef2f2;color:#991b1b;margin-bottom:1rem}.price-big{font-size:2rem;font-weight:700}.purchase-list{display:grid;gap:1rem}.purchase{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.hidden{display:none!important}@media(max-width:720px){.catalog-toolbar{align-items:stretch;flex-direction:column}.catalog-search{flex-direction:column}.purchase{flex-direction:column;align-items:flex-start}}
