/* CURRENT polish — shared cross-app surface polish, 2026-05-31
 * Loaded by each current-* app via <link href="/shared/polish.css">.
 * SURGICAL: utility classes are opt-in. Tag-narrow rules fire only on
 * truly default chrome. App identity stays intact. */

/* ============ scrollbar — premium thin, non-intrusive ============ */
.cp-scope ::-webkit-scrollbar,
body ::-webkit-scrollbar{width:6px;height:6px}
.cp-scope ::-webkit-scrollbar-thumb,
body ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#ffffff22,#ffffff0e);border-radius:3px}
.cp-scope ::-webkit-scrollbar-thumb:hover,
body ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#ffffff3a,#ffffff22)}

/* ============ focus-visible ring — accessibility, not intrusive ============ */
:focus-visible{outline:none;box-shadow:0 0 0 2px #0a0a0f,0 0 0 4px #38bdf866;border-radius:6px}

/* ============ sticky-header utility (opt-in: add class="cp-stick") ============ */
.cp-stick{position:sticky;position:-webkit-sticky;top:0;z-index:50;
  background:linear-gradient(180deg,rgba(10,10,15,.96) 0,rgba(10,10,15,.72) 75%,rgba(10,10,15,0) 100%);
  -webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);
  border-bottom-color:transparent!important}
.cp-stick::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,#ffffff1f 18%,#ffffff1f 82%,transparent);pointer-events:none}

/* ============ panty-line killer (opt-in: add class="cp-seam") ============ */
.cp-seam{border:none!important;position:relative}
.cp-seam::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,#ffffff14 18%,#ffffff14 82%,transparent);pointer-events:none}
.cp-seam-top::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,#ffffff14 18%,#ffffff14 82%,transparent);pointer-events:none}

/* ============ default <button> chrome reset
   ONLY fires on bare <button> with NO class attribute at all — leaves every
   app-styled button untouched (panel-button, .btn, .pill, .cta etc. all pass). */
button:not([class]),button[class=""]{
  background:linear-gradient(180deg,#16161f,#101018);
  border:1px solid #ffffff14;color:#fff;
  border-radius:10px;padding:10px 18px;
  font-family:inherit;font-size:.86rem;letter-spacing:.1em;
  cursor:pointer;
  box-shadow:inset 0 1px 0 #ffffff08;
  transition:border-color .15s,background .15s,transform .1s}
button:not([class]):hover,button[class=""]:hover{
  background:linear-gradient(180deg,#1c1c26,#13131c);border-color:#ffffff28}
button:not([class]):active,button[class=""]:active{transform:translateY(1px)}

/* ============ input/textarea unscoped polish (only fires on bare elements) */
input:not([class]):not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),
textarea:not([class]){
  background:#0d0d14;border:1px solid #ffffff14;color:#fff;border-radius:10px;
  padding:11px 13px;font-family:inherit;font-size:.92rem;
  caret-color:#38bdf8;transition:border-color .15s,box-shadow .15s}
input:not([class]):not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]):focus,
textarea:not([class]):focus{border-color:#38bdf866;box-shadow:inset 0 1px 0 #ffffff06,0 0 0 1px #38bdf833;outline:none}

/* ============ subtle text selection */
::selection{background:#38bdf833;color:#fff}
