/* Niche Finder — product polish layer.
   Loaded after each page's own styles; carries the micro-craft that separates
   an operating product from a generated mockup: one radius scale, engineered
   form controls, hover/press states, quiet scrollbars, and restrained motion. */

/* ---------- brand identity: NicheFinder gold + royal blue ----------
   Canonical palette taken from the NicheFinder logo — vivid gold for "Niche",
   royal blue for "Finder". Overrides every page's local :root definitions. */
html:root{
  --gold:#E8A61A;
  --gold-bright:#FFC53D;
  --gold-dim:rgba(232,166,26,.5);
  --blue:#3D85E0;
}
.brand-mark{
  width:30px !important;height:30px !important;border:none !important;border-radius:0 !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cpath d='M84 34h9v22a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2z' fill='%23E8A61A'/%3E%3Cpath d='M97 20h9v36a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2z' fill='%233D85E0'/%3E%3Cpath d='M33 89L18 104' stroke='%23E8A61A' stroke-width='10' stroke-linecap='round'/%3E%3Ccircle cx='56' cy='66' r='30' fill='none' stroke='%233D85E0' stroke-width='7'/%3E%3Ccircle cx='56' cy='66' r='20' fill='none' stroke='%23E8A61A' stroke-width='4'/%3E%3Cpath d='M56 50c-7 0-12 5-12 11.5C44 68.5 50.5 75 56 82c5.5-7 12-13.5 12-20.5C68 55 63 50 56 50z' fill='%23FFC53D'/%3E%3Ccircle cx='56' cy='62' r='5' fill='%232F5FA8'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.brand-mark i{display:none !important}
.brand>span:not(.brand-mark){color:var(--gold) !important}
.brand em{color:var(--blue) !important;font-style:normal !important}

/* ---------- brand hairline: single signature accent, top of viewport ---------- */
body::before{
  content:"";position:fixed;top:0;left:0;right:0;height:2px;z-index:120;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(232,166,26,0) 6%,rgba(232,166,26,.6) 32%,rgba(255,197,61,.85) 46%,rgba(61,133,224,.75) 60%,rgba(61,133,224,0) 92%,transparent);
}

/* ---------- one radius scale: 8px surfaces, 5px controls, pills stay pills ---------- */
.block,.panel,.rail-card,.kpi,.tile,section.blk,.hub-card,.bcard,.brief-card,.card,.dash,.metric,
details.adv,.niche,.doc,.note{border-radius:8px !important}
.opt,.seg button,select,input[type=text],input[type=email],input[type=number],textarea,
.btn,.hub-btn,.action,.btn-generate,.field,.chip-btn{border-radius:5px !important}

/* ---------- engineered range slider (the default one screams template) ---------- */
input[type=range]{
  -webkit-appearance:none;appearance:none;height:26px;background:transparent;cursor:pointer;padding:0;border:none;
}
input[type=range]::-webkit-slider-runnable-track{
  height:3px;border-radius:2px;
  background:linear-gradient(90deg,#E8A61A 0%,#E8A61A var(--fill,10%),rgba(139,147,165,.25) var(--fill,10%));
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6.5px;border-radius:50%;
  background:#FFC53D;border:2px solid #070B14;box-shadow:0 0 0 1px #E8A61A,0 2px 8px rgba(0,0,0,.5);
  transition:transform .15s;
}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:rgba(139,147,165,.25)}
input[type=range]::-moz-range-progress{height:3px;border-radius:2px;background:#E8A61A}
input[type=range]::-moz-range-thumb{
  width:14px;height:14px;border-radius:50%;background:#FFC53D;border:2px solid #070B14;
  box-shadow:0 0 0 1px #E8A61A,0 2px 8px rgba(0,0,0,.5);
}

/* ---------- quiet scrollbars ---------- */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(139,147,165,.22);border-radius:5px;border:2px solid #070B14}
*::-webkit-scrollbar-thumb:hover{background:rgba(232,166,26,.45)}
*{scrollbar-width:thin;scrollbar-color:rgba(139,147,165,.3) transparent}

/* ---------- press states: buttons should feel mechanical ---------- */
.btn:active,.btn-generate:active,.hub-btn:active,.action:active,.opt:active,.seg button:active,
.top-up:active,.chip:active,button[type=submit]:active{transform:translateY(1px) !important}
.btn-generate,.btn.gold,.nav-cta{box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 22px -10px rgba(232,166,26,.45)}

/* ---------- data surfaces: row hover + tabular digits everywhere ---------- */
table.simple tr:hover td,table.heat tr:hover td,table.fin tr:hover td,table.doc-t tr:hover td{
  background:rgba(255,255,255,.022);
}
.v,.amt,.score10,.acu .v,td{font-variant-numeric:tabular-nums}

/* ---------- typography discipline ---------- */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}

/* ---------- restrained motion: one heartbeat per page is enough ---------- */
.sync i,.strip i,.dash-bar .live i{animation-duration:3.2s}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
}

/* ---------- selection + focus, consistent everywhere ---------- */
::selection{background:#E8A61A;color:#070B14}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,
[role="switch"]:focus-visible{outline:2px solid #FFC53D;outline-offset:2px}

/* ---------- footer links: reveal underline on hover, like a publication ---------- */
footer.site a:hover{color:#FFC53D !important;text-decoration:underline;text-underline-offset:3px}
