/* Shared dismissible notice banner — floats just above the AI chat FAB.
   Frosted-glass gradient card, same hue direction as the chat panel but
   more transparent. See notice.js for dismiss behavior (persists via
   localStorage so it stays dismissed once closed). */

.notice-banner{
  position:fixed;
  right:24px;
  bottom:92px;
  width:300px;
  max-width:calc(100vw - 32px);
  background:linear-gradient(100deg, rgba(60,70,90,0.42) 0%, rgba(20,20,22,0.42) 55%, rgba(40,36,46,0.42) 100%);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:18px;
  box-shadow:0 20px 50px rgba(0,0,0,0.4);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  padding:16px 34px 16px 18px;
  z-index:58;
  opacity:1;
  transform:translateY(0);
  transition:opacity .25s ease, transform .25s ease;
}
.notice-banner.is-hidden{
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
}
.notice-title{
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
  margin:0 0 4px;
  line-height:1.4;
}
.notice-text{
  font-size:12.5px;
  line-height:1.5;
  color:var(--ink-soft);
  margin:0;
}
.notice-close{
  position:absolute;
  top:12px;
  right:12px;
  width:26px;
  height:26px;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,0.1);
  color:var(--ink-soft);
  cursor:pointer;
  font-size:15px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.notice-close:hover{background:rgba(255,255,255,0.18);color:var(--ink);}

@media (max-width:480px){
  .notice-banner{right:16px;left:16px;bottom:84px;width:auto;}
}
