/* ============================================================
   mifu-gold.css — Mifuyu OS visual gold pass (v1, 2026-08-27)
   Loaded right after style.css in index.html. Surface-level polish
   only: no layout, no motion timing, no logic. Both her themes are
   handled (light default + :root[data-theme="dark"]), and body.calm
   plus prefers-contrast keep stripping decoration like always.
   Remove the one <link> in index.html to revert everything.
   ============================================================ */

/* selection — was default browser blue on a snowfox-pastel app */
::selection{ background:rgba(255,158,216,.35); color:var(--ink,#3a3550); }
[data-theme="dark"] ::selection{ background:rgba(255,147,198,.32); color:var(--ink,#F8F2FA); }

/* atmosphere — a third icy glow + faint vignette on the light canvas.
   The dark theme's own body rule carries higher specificity and wins;
   its variant below layers a soft sakura corner into the night sky. */
html:not([data-theme="dark"]) body:not(.calm){
  background-image:
    radial-gradient(80% 50% at 100% 0%, #f7e0f3 0%, transparent 60%),
    radial-gradient(70% 50% at 0% 0%, #e2e9fb 0%, transparent 55%),
    radial-gradient(55% 42% at 88% 100%, rgba(159,195,232,.30) 0%, transparent 62%),
    radial-gradient(140% 90% at 50% 42%, transparent 64%, rgba(120,130,200,.05) 100%);
}
:root[data-theme="dark"] body:not(.calm){
  background-image:
    radial-gradient(80% 50% at 100% 0%, rgba(255,147,198,.10) 0%, transparent 60%),
    radial-gradient(70% 50% at 0% 0%, rgba(139,147,224,.12) 0%, transparent 55%),
    radial-gradient(55% 42% at 88% 100%, rgba(126,226,216,.05) 0%, transparent 62%),
    radial-gradient(140% 90% at 50% 42%, transparent 60%, rgba(0,0,0,.28) 100%);
}
/* paper grain — felt, not seen. body::after was unused (verified). */
body:not(.calm)::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:9998;
  opacity:.018;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:280px 280px;
}
:root[data-theme="dark"] body:not(.calm)::after{ opacity:.03; }
@media (prefers-contrast:more){ body::after{ content:none!important; } }
@media print{ body::after{ content:none!important; } }

/* panels catch light — inner top highlight, like frosted acrylic */
body .panel{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.85),
    var(--shadow-sm, 0 2px 8px rgba(120,130,200,.10));
}
[data-theme="dark"] body .panel{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    var(--shadow-sm, 0 2px 12px rgba(0,0,0,.4));
}
body .soft-card{ box-shadow:inset 0 1px 0 rgba(255,255,255,.6); }
[data-theme="dark"] body .soft-card{ box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }

/* active sidebar item gets a sakura accent bar */
body .nv.active{ box-shadow:inset 3px 0 0 var(--sakura,#ff9ed8), var(--shadow-sm, 0 2px 8px rgba(120,130,200,.10)); }

/* gradient button sheen */
body .btn-grad{ box-shadow:inset 0 1px 0 rgba(255,255,255,.35), var(--shadow-sm, 0 2px 8px rgba(120,130,200,.10)); }
body .btn{ box-shadow:inset 0 1px 0 rgba(255,255,255,.7); }
[data-theme="dark"] body .btn{ box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }

/* inner-pane scrollbars pick up the brand (the page bar stays hidden) */
::-webkit-scrollbar-thumb{ background:linear-gradient(180deg, rgba(117,138,198,.45), rgba(255,158,216,.45)); border-radius:9px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb{ background:linear-gradient(180deg, rgba(139,147,224,.45), rgba(255,147,198,.4)); }

/* whisper of row feedback on data tables */
body tbody tr:hover td{ background:rgba(117,138,198,.05); }
[data-theme="dark"] body tbody tr:hover td{ background:rgba(255,255,255,.03); }

/* headings: a hair tighter + no orphan words */
body h1, body h2, body h3{ letter-spacing:-.012em; text-wrap:balance; }

/* soft halo added to keyboard focus (zero-spec — component styles win) */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  box-shadow:0 0 0 4px rgba(255,158,216,.18);
}
