/* ============================================================================
   Mebularts — Modern UI Token System & Components
   - Fluid type & spacing
   - Layered shadows & glass surfaces
   - Light/Dark/Auto themes
   - Accessible focus rings
   - Responsive containers & utilities
   - Components: header, nav, cards, forms, table, tabs, modal, toast, tooltip,
                 badges, skeletons, pagination, bottom-nav, timeline, profile, etc.
   - Progressive enhancement: container queries, prefers-reduced-motion, contrast
   ============================================================================ */

/* ----------------------------------
   0) CSS RESET (modern, minimal)
----------------------------------- */
*,*::before,*::after{box-sizing:border-box}
:where(html){-webkit-text-size-adjust:100%;text-size-adjust:100%;}
:where(body){margin:0}
:where(h1,h2,h3,h4,h5,h6,p,figure){margin:0}
:where(ul,ol){margin:0;padding:0}
:where(img,svg,video,canvas){display:block;max-width:100%;height:auto}
:where(button,input,textarea,select){font:inherit;color:inherit}
:where(a){color:inherit;text-decoration:none}
:where(table){border-collapse:collapse;border-spacing:0}

/* ----------------------------------
   1) DESIGN TOKENS
----------------------------------- */
:root {
  /* Color model */
  --brand-h: 252; /* indigo/violet axis */
  --brand-s: 84%;
  --brand-l: 56%;

  /* Semantic palette (light) */
  --bg-gradient: radial-gradient(circle at 20% -10%, hsl(190 100% 83% / .85) 0%, transparent 55%),
                 radial-gradient(circle at 80% 0%, hsl(var(--brand-h) 83% 70% / .8) 0%, transparent 55%),
                 linear-gradient(180deg, hsl(215 60% 98%) 0%, hsl(215 32% 92%) 120%);
  --surface-0: #fff;
  --surface-1: hsl(0 0% 100% / .86);
  --surface-2: hsl(0 0% 100% / .7);
  --surface-3: hsl(0 0% 100% / .5);
  --surface-glass: hsl(0 0% 100% / .75);

  --border: hsl(218 24% 22% / .12);
  --border-strong: hsl(218 24% 22% / .2);

  --text-primary: hsl(222 47% 11%);
  --text-secondary: hsl(215 16% 47%);
  --text-muted: hsl(215 16% 60%);

  --accent: hsl(var(--brand-h) var(--brand-s) var(--brand-l));
  --accent-strong: hsl(var(--brand-h) calc(var(--brand-s) + 6%) calc(var(--brand-l) - 6%));
  --accent-soft: hsl(var(--brand-h) 80% 62% / .14);

  --danger: hsl(0 72% 50%);
  --warning: hsl(38 92% 50%);
  --success: hsl(142 71% 40%);
  --info: hsl(199 89% 48%);

  /* Elevation */
  --shadow-color: 220 40% 2%;
  --shadow-3: 0 10px 20px hsl(var(--shadow-color) / .06),
              0 6px 12px -6px hsl(var(--shadow-color) / .12);
  --shadow-6: 0 16px 30px hsl(var(--shadow-color) / .08),
              0 10px 20px -10px hsl(var(--shadow-color) / .14);
  --shadow-9: 0 30px 60px hsl(var(--shadow-color) / .12),
              0 18px 40px -18px hsl(var(--shadow-color) / .18);

  /* Radii */
  --radius-2: 10px;
  --radius-3: 14px;
  --radius-4: 18px;
  --radius-5: 26px;
  --round: 999px;

  /* Fluid type scale */
  --step--2: clamp(.72rem, .67rem + .23vw, .82rem);
  --step--1: clamp(.85rem, .79rem + .26vw, .95rem);
  --step-0: clamp(1rem, .93rem + .3vw, 1.125rem);
  --step-1: clamp(1.2rem, 1.1rem + .35vw, 1.35rem);
  --step-2: clamp(1.44rem, 1.28rem + .4vw, 1.62rem);
  --step-3: clamp(1.73rem, 1.5rem + .5vw, 1.94rem);
  --step-4: clamp(2.07rem, 1.75rem + .6vw, 2.33rem);
  --step-5: clamp(2.49rem, 2.05rem + .8vw, 2.8rem);

  /* Spacing scale */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  /* Focus ring */
  --ring: 0 0 0 3px hsl(var(--brand-h) 90% 60% / .2);

  /* Layout */
  --container-w: min(1120px, 92vw);
  --header-blur: 18px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);

  /* Motion */
  --easing: cubic-bezier(.2, .8, .2, 1);
  --speed-1: .12s; --speed-2: .18s; --speed-3: .28s;

  color-scheme: light;
}

/* Dark theme (manual) */
[data-theme="dark"] {
  color-scheme: dark;
  --bg-gradient: radial-gradient(circle at 15% -20%, hsl(198 93% 55% / .38) 0%, transparent 55%),
                 radial-gradient(circle at 90% -30%, hsl(var(--brand-h) 84% 70% / .38) 0%, transparent 60%),
                 linear-gradient(180deg, hsl(222 47% 5%) 0%, hsl(222 47% 14%) 100%);
  --surface-0: hsl(222 47% 9% / .92);
  --surface-1: hsl(222 47% 9% / .82);
  --surface-2: hsl(222 47% 9% / .7);
  --surface-3: hsl(222 47% 9% / .55);
  --surface-glass: hsl(222 47% 10% / .7);

  --border: hsl(215 20% 82% / .22);
  --border-strong: hsl(215 20% 82% / .35);

  --text-primary: hsl(210 40% 96%);
  --text-secondary: hsl(215 16% 72%);
  --text-muted: hsl(215 16% 60%);

  --accent: hsl(258 92% 70%);
  --accent-strong: hsl(258 92% 62%);
  --accent-soft: hsl(258 92% 70% / .18);

  --shadow-color: 220 60% 1%;
}

/* Respect system preference if data-theme not explicitly set */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) { color-scheme: dark; }
}

/* ----------------------------------
   2) BASE TYPOGRAPHY & GLOBALS
----------------------------------- */
html,body{min-height:100%}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  background: var(--bg-gradient);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

::selection{background: hsl(var(--brand-h) 100% 60% / .18)}
:focus-visible{outline:none; box-shadow: var(--ring)}

.container{width:var(--container-w);margin-inline:auto}
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.app-main{flex:1;padding:clamp(2rem, 3vw, 3rem) 0 calc(4.5rem + var(--safe-bottom))}

.stack-lg>*+*{margin-top:2rem}
.stack-md>*+*{margin-top:1.2rem}

/* Scrollbar (Chromium/Edge) */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:hsl(215 16% 72% / .35);border-radius:8px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:hsl(215 16% 72% / .55)}

/* ----------------------------------
   3) HEADER & NAV
----------------------------------- */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(var(--header-blur));background:var(--surface-glass);border-bottom:1px solid var(--border)}
.site-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.85rem 0}
.brand-group{display:flex;align-items:center;gap:.65rem}
.brand{font-size:var(--step-2);font-weight:800;letter-spacing:-.02em}

.search-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--round);padding:.45rem .5rem;gap:.35rem;box-shadow:var(--shadow-3)}
.search-bar__icon{font-size:1rem;opacity:.7}
.search-bar__input{border:none;background:transparent;color:var(--text-primary);padding:.35rem .5rem;font-size:var(--step--1)}
.search-bar__input::placeholder{color:var(--text-secondary)}
.search-bar__input:focus{outline:none}

.nav-links{display:flex;align-items:center;gap:.5rem}
.nav-link{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:var(--round);font-size:var(--step--1);font-weight:600;color:var(--text-secondary);transition:background var(--speed-2) var(--easing), color var(--speed-2) var(--easing), transform var(--speed-2) var(--easing)}
.nav-link:hover,.nav-link:focus{color:var(--text-primary);background:var(--accent-soft);transform:translateY(-1px)}
.nav-link.is-active{color:#fff;background:var(--accent);box-shadow:var(--shadow-3)}
.nav-link__label{white-space:nowrap}
.nav-link__icon{font-size:1.15rem;line-height:1;display:inline-block}
.notification-trigger{--notification-dot-size:.6rem;--notification-dot-top:-.2rem;--notification-dot-right:-.2rem;position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem}
.notification-trigger .notification-dot{position:absolute;top:var(--notification-dot-top);right:var(--notification-dot-right);width:var(--notification-dot-size);height:var(--notification-dot-size);border-radius:var(--round);background:var(--danger);box-shadow:0 0 0 2px var(--surface-0);transform:scale(0);transform-origin:center;transition:transform var(--speed-2) var(--easing)}
.notification-trigger .notification-dot.is-visible{transform:scale(1)}
.notification-trigger .notification-dot[hidden]{display:none}

.nav-actions{display:flex;align-items:center;gap:.6rem}
.nav-user{display:flex;align-items:center;gap:.5rem;padding:.35rem .8rem;background:var(--surface-2);border-radius:var(--round);border:1px solid var(--border)}
.nav-user .avatar{flex-shrink:0;box-shadow:none}
.nav-user__name{font-weight:600;font-size:var(--step--1)}

/* ----------------------------------
   4) BUTTONS
----------------------------------- */
.button,button{font:inherit;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:var(--round);font-weight:700;transition:transform var(--speed-2) var(--easing), box-shadow var(--speed-2) var(--easing), background var(--speed-2) var(--easing);background:var(--surface-1);color:var(--text-primary);border:1px solid transparent}
.button:hover,.button:focus,button:hover,button:focus{transform:translateY(-1px);box-shadow:var(--shadow-3)}
.button:active{transform:translateY(0)}
.button-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-3)}
.button-ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border)}
.button-outline{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.button-danger{background:color-mix(in oklab, var(--danger) 24%, transparent);color:hsl(0 80% 40%);border:1px solid hsl(0 80% 40% / .2)}
.button-block{width:100%}
.button-sm{padding:.4rem .8rem;font-weight:600}
.button-lg{padding:.8rem 1.35rem;border-radius:var(--radius-5)}
.icon-button{width:2.5rem;height:2.5rem;border-radius:var(--round);display:grid;place-items:center;background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);transition:background var(--speed-2) var(--easing), transform var(--speed-2) var(--easing)}
.icon-button:hover,.icon-button:focus{background:var(--accent-soft);transform:translateY(-1px)}

/* ----------------------------------
   5) CARDS & PANELS
----------------------------------- */
.card{background:var(--surface-0);border-radius:var(--radius-5);padding:1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-6)}
.card--glass{backdrop-filter:blur(16px);background:var(--surface-glass)}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:700}
.card-meta{font-size:var(--step--1);color:var(--text-secondary)}
.card-list{list-style:none;display:grid;gap:1.25rem}

/* ----------------------------------
   6) FORMS
----------------------------------- */
.form{display:grid;gap:.9rem;background:var(--surface-0);padding:1.5rem;border-radius:var(--radius-5);border:1px solid var(--border);box-shadow:var(--shadow-6)}
.form label{font-weight:700;color:var(--text-primary)}
.input,.form input[type="text"],.form input[type="email"],.form input[type="password"],.form input[type="url"],.form input[type="search"],.form input[type="color"],.form textarea,.form select{width:100%;border-radius:var(--radius-3);border:1px solid var(--border);padding:.65rem .85rem;background:var(--surface-1);color:var(--text-primary);transition:border var(--speed-2) var(--easing), box-shadow var(--speed-2) var(--easing), background var(--speed-2) var(--easing)}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
.input--sm{padding:.45rem .7rem}
.input--lg{padding:.85rem 1rem;border-radius:var(--radius-4)}
.form-helper{font-size:var(--step--2);color:var(--text-muted)}
.switch{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;cursor:pointer}
.switch input{width:2.8rem;height:1.4rem;border-radius:var(--round);appearance:none;background:var(--border);position:relative;transition:background var(--speed-2) var(--easing)}
.switch input::after{content:"";width:1.1rem;height:1.1rem;border-radius:50%;background:var(--surface-0);position:absolute;top:.15rem;left:.15rem;transition:transform var(--speed-2) var(--easing), box-shadow var(--speed-1) var(--easing);box-shadow:var(--shadow-3)}
.switch input:checked{background:var(--accent)}
.switch input:checked::after{transform:translateX(1.35rem)}

/* Inline form */
.inline-form{display:inline-flex;align-items:center;gap:.5rem}
.input-combo{display:flex;gap:.5rem;align-items:stretch}

/* Validation states */
.is-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 3px hsl(0 78% 40% / .2)!important}
.is-valid{border-color:var(--success)!important;box-shadow:0 0 0 3px hsl(142 71% 40% / .22)!important}

/* ----------------------------------
   7) FEEDBACK
----------------------------------- */
.alert{padding:1rem 1.2rem;border-radius:var(--radius-4);font-weight:600;border:1px solid transparent;box-shadow:var(--shadow-3)}
.alert-success{background:hsl(142 71% 40% / .12);color:hsl(142 71% 30%);border-color:hsl(142 71% 40% / .24)}
.alert-error{background:hsl(0 80% 46% / .12);color:hsl(0 80% 38%);border-color:hsl(0 80% 46% / .24)}
.alert-info{background:hsl(199 89% 48% / .1);color:hsl(199 89% 38%);border-color:hsl(199 89% 48% / .22)}

.badge{display:inline-flex;align-items:center;gap:.4rem;border-radius:var(--round);padding:.25rem .6rem;font-weight:700;border:1px solid var(--border);background:var(--surface-1);font-size:var(--step--2)}
.badge--accent{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent}
.badge--success{background:hsl(142 71% 40% / .16);color:hsl(142 71% 34%);border-color:transparent}
.badge--danger{background:hsl(0 80% 46% / .14);color:hsl(0 80% 36%);border-color:transparent}

/* ----------------------------------
   8) LAYOUT UTILITIES
----------------------------------- */
.grid{display:grid;gap:1.5rem}
.grid--two{grid-template-columns:repeat(auto-fit, minmax(260px, 1fr))}
.section-header{display:grid;gap:.5rem}
.section-description{color:var(--text-secondary)}

.profile-header{display:grid;gap:1rem;padding:2rem;border-radius:var(--radius-5);background:linear-gradient(135deg, var(--profile-color, var(--accent)), hsl(0 0% 100% / .22));color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow-9)}
.profile-header::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, hsl(222 47% 11% / .24), transparent 55%);pointer-events:none}
.profile-meta{position:relative;z-index:1;display:grid;gap:.6rem}
.profile-avatar-settings{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1rem}
.profile-avatar-settings__controls{display:grid;gap:.6rem;min-width:12rem}
.profile-avatar-settings .avatar{flex-shrink:0}
.profile-bio{margin:0;color:hsl(0 0% 100% / .88)}

.tab-group{display:inline-flex;gap:.4rem;background:var(--surface-0);padding:.35rem;border-radius:var(--round);border:1px solid var(--border);box-shadow:var(--shadow-3)}
.tab{border-radius:var(--round);padding:.55rem 1.1rem;border:none;background:transparent;font-weight:700;color:var(--text-secondary);cursor:pointer}
.tab[aria-selected="true"]{background:var(--accent);color:#fff}

.empty-state{text-align:center;padding:3rem 2rem;border-radius:var(--radius-5);border:2px dashed var(--border);background:var(--surface-0);box-shadow:var(--shadow-3)}

.timeline{list-style:none;display:grid;gap:1rem}
.timeline-item{border-left:3px solid var(--accent);padding:.75rem 1rem;margin-left:.5rem;background:var(--surface-0);border-radius:var(--radius-3);box-shadow:var(--shadow-3)}
.timeline-item.read{opacity:.7}
.timeline-time{display:block;font-size:var(--step--2);color:var(--text-secondary);margin-bottom:.3rem}

/* ----------------------------------
   9) DATA TABLE
----------------------------------- */
.data-table{width:100%;background:var(--surface-0);border-radius:var(--radius-5);overflow:hidden;box-shadow:var(--shadow-6)}
.data-table th,.data-table td{padding:.9rem 1rem;border-bottom:1px solid var(--border);text-align:left;color:var(--text-secondary)}
.data-table th{text-transform:uppercase;letter-spacing:.05em;font-size:var(--step--2);color:var(--text-primary);background:var(--surface-1)}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:color-mix(in oklab, var(--accent) 2%, transparent)}

/* Responsive table (stack on small screens) */
@media (max-width:720px){
  .data-table thead{display:none}
  .data-table tr{display:grid;border-bottom:1px solid var(--border)}
  .data-table td{display:flex;justify-content:space-between;gap:1rem}
  .data-table td::before{content:attr(data-th);font-weight:700;color:var(--text-primary)}
}

/* ----------------------------------
   10) MODALS, TOASTS, TOOLTIP
----------------------------------- */
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:100}
.modal[hidden]{display:none}
.modal:not([hidden]){display:flex}
.modal__overlay{position:absolute;inset:0;background:hsl(222 47% 11% / .6);backdrop-filter:blur(8px)}
.modal__content{position:relative;z-index:1;width:min(560px, 92vw);background:var(--surface-0);color:var(--text-primary);border-radius:var(--radius-5);padding:1.75rem;border:1px solid var(--border);box-shadow:var(--shadow-9);display:grid;gap:1rem;animation:modal-in var(--speed-3) var(--easing)}
.modal__header{display:flex;justify-content:space-between;align-items:center}
@keyframes modal-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.toast{position:fixed;right:clamp(1rem,5vw,2rem);bottom:calc(clamp(1rem,5vw,2rem) + var(--safe-bottom));z-index:120;display:grid;gap:.6rem}
.toast__item{display:flex;align-items:center;gap:.6rem;background:var(--surface-0);border:1px solid var(--border);box-shadow:var(--shadow-6);border-radius:var(--radius-4);padding:.75rem 1rem}

.tooltip{position:relative}
.tooltip:hover .tooltip__bubble{opacity:1;transform:translateY(-6px);pointer-events:auto}
.tooltip__bubble{position:absolute;inset:auto auto 120% 50%;transform:translate(-50%,-2px);background:var(--text-primary);color:#fff;border-radius:8px;padding:.35rem .6rem;font-size:var(--step--2);opacity:0;pointer-events:none;transition:opacity var(--speed-2) var(--easing), transform var(--speed-2) var(--easing)}
.tooltip__bubble::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--text-primary)}

/* ----------------------------------
   11) FOOTER & BOTTOM NAV
----------------------------------- */
.site-footer{padding:2rem 0;border-top:1px solid var(--border);background:hsl(222 47% 11% / .03)}
.site-footer__inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;color:var(--text-secondary)}
.footer-link{color:var(--accent)}

.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:none;background:var(--surface-glass);border-top:1px solid var(--border);backdrop-filter:blur(var(--header-blur));z-index:60;padding:.35rem 0}
.bottom-nav__link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;font-size:.78rem;color:var(--text-secondary)}
.bottom-nav__icon{font-size:1.2rem;line-height:1}
.bottom-nav__link .notification-trigger{--notification-dot-size:.45rem;--notification-dot-top:-.1rem;--notification-dot-right:-.12rem}
.bottom-nav__link.is-active{color:var(--accent)}

/* ----------------------------------
   12) ADMIN NAV / BREADCRUMBS / PAGINATION
----------------------------------- */
.admin-nav{display:flex;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap}
.admin-nav a{padding:.5rem 1rem;border-radius:var(--round);border:1px solid var(--border);background:var(--surface-1);font-weight:700;color:var(--text-secondary);transition:background var(--speed-2) var(--easing), color var(--speed-2) var(--easing)}
.admin-nav a.is-active{background:var(--accent);color:#fff;border-color:transparent}
.admin-nav a:hover,.admin-nav a:focus{background:var(--accent-soft);color:var(--text-primary)}

.breadcrumbs{display:flex;gap:.5rem;align-items:center;font-size:var(--step--1);color:var(--text-secondary)}
.breadcrumbs a{padding:.25rem .5rem;border-radius:8px}
.breadcrumbs a:hover{background:var(--accent-soft);color:var(--text-primary)}

.pagination{display:flex;gap:.35rem;align-items:center}
.page{min-width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:var(--surface-1);font-weight:700}
.page.is-active{background:var(--accent);color:#fff;border-color:transparent}

/* ----------------------------------
   13) MISC COMPONENTS
----------------------------------- */
.feed-author{display:flex;align-items:center;gap:.75rem}
.avatar{--avatar-bg:var(--accent);position:relative;display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:var(--round);background:var(--avatar-bg);color:#fff;font-weight:700;overflow:hidden;box-shadow:var(--shadow-3)}
.avatar span[aria-hidden="true"]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar--sm{width:2.25rem;height:2.25rem;font-size:.9rem}
.avatar--md{width:3rem;height:3rem;font-size:1.1rem}
.avatar--lg{width:4rem;height:4rem;font-size:1.4rem}
.avatar--xl{width:4.8rem;height:4.8rem;font-size:2rem;box-shadow:var(--shadow-6)}
.answer-spoiler{display:grid;gap:.75rem;margin-top:.75rem}
.answer-spoiler__text{position:relative;padding:1rem;border-radius:var(--radius-3);border:1px solid var(--border);background:var(--surface-0);line-height:1.6;transition:background var(--speed-2) var(--easing), color var(--speed-2) var(--easing)}
.js-enabled .answer-spoiler__text[data-answer-hidden]{color:transparent}
.js-enabled .answer-spoiler__text[data-answer-hidden]::after{content:attr(data-answer-placeholder);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-secondary);background:linear-gradient(135deg, hsl(var(--brand-h) 70% 80% / .14), hsl(222 47% 11% / .1));border-radius:inherit}
.js-enabled .answer-spoiler__text[data-answer-hidden]::selection{background:transparent}
.answer-toggle{align-self:flex-start;font-weight:600;padding:.45rem .9rem}
.answered-banner{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-3);background:var(--surface-1);display:grid;gap:.75rem}
.answered-badge{display:inline-flex;align-items:center;font-weight:600;color:var(--success)}
.answered-text{line-height:1.6;color:var(--text-secondary)}

.chip{border:none;border-radius:var(--round);padding:.4rem .9rem;background:var(--accent-soft);color:var(--accent-strong);font-weight:700;cursor:pointer;transition:transform var(--speed-2) var(--easing)}
.chip:hover,.chip:focus{transform:translateY(-1px)}

.skeleton{--skel: hsl(215 16% 72% / .18);position:relative;overflow:hidden;background:linear-gradient(90deg, var(--skel) 25%, hsl(215 16% 72% / .3) 37%, var(--skel) 63%);background-size:400% 100%;animation:skeleton 1.3s linear infinite}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ----------------------------------
   14) RESPONSIVE, CONTAINER QUERIES & MEDIA
----------------------------------- */
@media (max-width:1024px){
  .site-header__inner{grid-template-columns:1fr;gap:.75rem}
  .nav-links{flex-wrap:wrap}
  .nav-actions{justify-content:space-between}
  .search-bar{grid-template-columns:auto 1fr}
  .search-bar button{display:none}
}
@media (max-width:720px){
  .app-main{padding:2rem 0 calc(5rem + var(--safe-bottom))}
  .container{width:90vw}
  .nav-links{display:none}
  .nav-actions{gap:.5rem}
  .nav-user__name{display:none}
  .nav-actions .button-ghost[href="/login"],
  .nav-actions .button.button-primary[href="/register"]{display:none}
  .search-bar{width:100%}
  .form{padding:1.25rem}
  .profile-header{padding:1.6rem}
  .fab{width:3.5rem;height:3.5rem;padding:0;border-radius:var(--round);justify-content:center}
  .fab__label{display:none}
  .modal__content{padding:1.4rem}
  .site-footer__inner{flex-direction:column}
  .bottom-nav{display:flex}
}

/* Container query demo (progressive) */
@container (min-width: 640px){
  .card--split{display:grid;grid-template-columns:1fr .8fr;gap:1.2rem}
}

/* ----------------------------------
   15) ACCESSIBILITY & PREFS
----------------------------------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media (prefers-contrast: more){
  :root{--border: hsl(222 47% 11% / .38);--border-strong:hsl(222 47% 11% / .48)}
}

/* ----------------------------------
   16) BG UTILS & ELEVATION
----------------------------------- */
.bg-surface-0{background:var(--surface-0)}
.bg-surface-1{background:var(--surface-1)}
.bg-surface-2{background:var(--surface-2)}
.glass{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.shadow-3{box-shadow:var(--shadow-3)}
.shadow-6{box-shadow:var(--shadow-6)}
.shadow-9{box-shadow:var(--shadow-9)}
.round{border-radius:var(--round)}

/* ----------------------------------
   17) FLOATING ACTION BUTTON
----------------------------------- */
.fab{position:fixed;right:clamp(1rem,5vw,2.5rem);bottom:calc(clamp(1.2rem,5vw,2.2rem)+var(--safe-bottom));background:var(--accent);color:#fff;border-radius:var(--round);padding:.9rem 1.35rem;display:inline-flex;align-items:center;gap:.8rem;font-weight:800;box-shadow:var(--shadow-9);border:none}
.fab__icon{font-size:1.2rem}

/* ----------------------------------
   18) ALERT DIALOG (ACCENT BORDER)
----------------------------------- */
.alert--outlined{background:transparent;border-color:var(--accent);color:var(--accent)}

/* ----------------------------------
   19) SELECTION STATES & CURSORS
----------------------------------- */
[aria-busy="true"],.is-loading{cursor:progress}
[disabled],.is-disabled{opacity:.6;pointer-events:none}

/* ----------------------------------
   20) BOTTOM SHEET (mobile modal variant)
----------------------------------- */
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--surface-0);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:var(--shadow-9);border:1px solid var(--border);transform:translateY(100%);transition:transform var(--speed-3) var(--easing)}
.sheet[open]{transform:translateY(0)}
.sheet__handle{width:48px;height:4px;border-radius:999px;background:var(--border);margin:.5rem auto}

/* ----------------------------------
   21) PROGRESS & LOADER
----------------------------------- */
.progress{height:.6rem;background:hsl(215 16% 72% / .25);border-radius:999px;overflow:hidden}
.progress__bar{height:100%;width:0;background:var(--accent);transition:width .4s var(--easing)}

.spinner{width:22px;height:22px;border-radius:50%;border:3px solid hsl(215 16% 72% / .25);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ----------------------------------
   22) PRINT STYLES (minimal)
----------------------------------- */
@media print{ .site-header,.bottom-nav,.fab,.modal,.toast{display:none!important} body{background:#fff} .card,.form{box-shadow:none;border-color:#ddd} }
