/* v1.10 studio: the page around the app (the app itself is styled by the plugin's app.css) */
html, body { margin: 0; padding: 0; }
body.aivs-studio {
  background: rgba(20, 42, 60, .62); color: #eceff1;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Thai", "Sarabun", "Leelawadee UI", "Thonburi", Tahoma, sans-serif;
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
body.aivs-studio #aivs-app {
  margin: 0 auto; padding: 12px max(16px, env(safe-area-inset-right)) 48px max(16px, env(safe-area-inset-left));
}
body.aivs-studio button, body.aivs-studio input, body.aivs-studio select, body.aivs-studio textarea { font-family: inherit; }
body.aivs-studio .aivs-loading { padding: 40px 0; text-align: center; }

/* log in / set a password */
.st-wrap { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 28px 16px; box-sizing: border-box;
  background: linear-gradient(180deg, rgba(105, 158, 211, .14) 0%, rgba(20, 42, 60, .62) 60%); }
.st-card { width: 100%; max-width: 384px; box-sizing: border-box; background: #0d2030; border: 1px solid rgba(140, 195, 230, .351); border-radius: 16px;
  padding: 28px 24px 24px; box-shadow: 0 12px 32px rgba(0, 0, 0, .26); }
.st-brand { display: flex; align-items: center; gap: 10px; font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.st-brand img { width: 34px; height: 34px; }
.st-brand img { object-fit: contain; }
.st-brand--logo img { width: auto; height: auto; max-width: min(260px, 100%); max-height: 64px; }   /* v1.33.1: the studio's whole logo */
.st-title { font-size: 16px; font-weight: 600; margin: 20px 0 4px; }
.st-sub { color: #c4c6ca; margin: 0 0 18px; font-size: 13.5px; line-height: 1.5; }
.st-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; font-size: 13.5px; font-weight: 600; }
.st-field small { font-weight: 400; color: #c4c6ca; }
.st-field input { font-size: 16px; padding: 11px 12px; border: 1px solid rgba(140, 195, 230, .48); border-radius: 9px; background: #0d2030; color: #eceff1; }
.st-field input:focus { outline: 2px solid #2271b1; outline-offset: 0; border-color: #2271b1; }
/* v1.43.1: show / hide the password */
.st-pw { position: relative; display: flex; }
.st-pw input { flex: 1; min-width: 0; padding-right: 78px; }
.st-pw__eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); min-width: 60px; min-height: 36px; padding: 0 10px;
  border: 0; border-radius: 8px; background: transparent; color: #98c6eb; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.st-pw__eye:hover { background: rgba(34, 113, 177, .08); }
.st-pw__eye:focus-visible { outline: 2px solid #2271b1; outline-offset: 1px; }
.st-btn { width: 100%; font-size: 16px; font-weight: 600; padding: 12px; border: 0; border-radius: 9px; background: #2271b1; color: #fff; cursor: pointer; margin-top: 4px; }
.st-btn:hover { background: #135e96; }
.st-btn[disabled] { opacity: .6; cursor: default; }
.st-err { color: #f7d9d9; background: rgba(223, 93, 104, .14); border: 1px solid rgba(216, 100, 103, .45); border-radius: 9px; padding: 9px 11px; font-size: 13.5px; margin: 0 0 14px; line-height: 1.45; }
.st-warn { color: #f0e2c0; background: rgba(224, 202, 108, .14); border: 1px solid #ebd99e; border-radius: 9px; padding: 9px 11px; font-size: 13px; margin: 0 0 14px; line-height: 1.45; }
.st-note { color: #c4c6ca; font-size: 12.5px; margin: 16px 0 0; line-height: 1.55; }
.st-code { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: #1d2327; color: #e7e9ee;
  padding: 10px 12px; border-radius: 8px; font-size: 12px; line-height: 1.5; word-break: break-all; margin-top: 8px; user-select: all; }
.st-role { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: rgba(105, 158, 211, .14); color: #b4d8f3; }
.st-link { display: inline-block; margin-top: 14px; font-size: 14px; color: #98c6eb; }
/* v1.44.0 สมัคร / เข้าสู่ระบบด้วย Google และ LINE: one button each (text, no brand artwork; Google's dark button colours, LINE's green),
   the sign-up page's terms - dark surfaces and light words like the rest of the dark design system */
.st-social { display: flex; flex-direction: column; gap: 10px; margin: 0 0 6px; }
.st-sbtn { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 14px; box-sizing: border-box;
  border-radius: 9px; font-size: 16px; font-weight: 600; text-decoration: none; border: 1px solid transparent; }
.st-sbtn__mark { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 14px; font-weight: 700; flex: none; }
.st-sbtn--google { background: #131314; color: #e3e3e3; border-color: #8e918f; }
.st-sbtn--google:hover { background: #1f2021; }
.st-sbtn--google .st-sbtn__mark { background: transparent; box-shadow: inset 0 0 0 2px #e3e3e3; color: #e3e3e3; }
.st-sbtn--line { background: #05803c; color: #fff; border-color: #06c755; }   /* LINE's green, deep enough for white words (5:1) */
.st-sbtn--line:hover { background: #046e33; }
.st-sbtn--line .st-sbtn__mark { background: transparent; box-shadow: inset 0 0 0 2px #fff; color: #fff; }
.st-sbtn:focus-visible { outline: 2px solid #98c6eb; outline-offset: 2px; }
.st-or { display: flex; align-items: center; gap: 10px; margin: 16px 0 14px; color: #c4c6ca; font-size: 12.5px; }
.st-or::before, .st-or::after { content: ""; flex: 1; height: 1px; background: rgba(140, 195, 230, .351); }
.st-agree { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 16px; font-size: 13.5px; line-height: 1.55; color: #eceff1; cursor: pointer; }
.st-agree input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: #3fd6a9; }
.st-agree a { color: #98c6eb; }
.st-ok { color: #d9f2e3; background: rgba(6, 199, 85, .12); border: 1px solid rgba(6, 199, 85, .45); border-radius: 9px; padding: 9px 11px; font-size: 13.5px; margin: 0 0 14px; line-height: 1.45; }
.st-note--su a { color: #98c6eb; font-weight: 600; }
.st-links { display: flex; flex-wrap: wrap; gap: 0 20px; }
