/* Galley Studio website: sign-in, users, account and licence pages */
:root { --bg: #f4f5fb; --ink: #1c1f2e; --muted: #636a7e; --line: #e4e6f0; --pri: #4f46e5; --pri-d: #4338ca; --pri-l: #eef0ff;
  --ok: #12805c; --ok-l: #e3f7ee; --bad: #d92d20; --bad-l: #fef0ef;
  --shadow: 0 1px 2px rgba(20,22,60,.04), 0 6px 20px rgba(20,22,60,.05); --ease: cubic-bezier(.2,.7,.2,1); }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: radial-gradient(1000px 420px at 85% -160px, #e6e8ff 0%, rgba(230,232,255,0) 70%), var(--bg); color: var(--ink); font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; min-height: 100vh; }
body.is-out { display: grid; place-items: center; padding: 1.5rem 0; background: radial-gradient(900px 500px at 15% 0%, #c7d2fe 0%, transparent 60%), radial-gradient(800px 500px at 100% 100%, #fbcfe8 0%, transparent 55%), linear-gradient(160deg, #eef0ff, #fdf2f8); }
a { color: var(--pri); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .86em; background: #eef0f6; padding: .1em .35em; border-radius: 4px; overflow-wrap: anywhere; }
hr { border: 0; border-top: 1px solid var(--line); margin: .3rem 0; width: 100%; }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; width: 100%; }
.top { background: linear-gradient(90deg, #1e1b4b 0%, #2a2366 55%, #3b1d6e 100%); color: #fff; box-shadow: 0 4px 18px rgba(30,27,75,.2); }
.top-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; min-height: 64px; }
.brand { display: flex; align-items: center; gap: .7rem; color: #fff; text-decoration: none; font-weight: 700; }
.mono { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 11px; font-weight: 800; color: #fff; background: linear-gradient(135deg, #818cf8, #c084fc 50%, #f472b6); box-shadow: 0 6px 16px rgba(129,140,248,.35); }
.mono.big { width: 46px; height: 46px; border-radius: 14px; font-size: 1.2rem; }
.brand-t small { display: block; font-weight: 400; font-size: .76rem; color: #b8bbe2; }
.nav { display: flex; gap: .25rem; align-items: center; flex-wrap: wrap; }
.nav a, .linklike { color: #d9daf5; background: none; border: 0; font: inherit; cursor: pointer; padding: .4rem .7rem; border-radius: 8px; text-decoration: none; transition: background-color .15s, color .15s; }
.nav a:hover, .linklike:hover, .nav a.is-on { background: rgba(255,255,255,.12); color: #fff; }
.nav a.nav-studio { background: linear-gradient(135deg, #ec4899, #f97316); color: #fff; font-weight: 600; margin-right: .3rem; }
.nav form { margin: 0; }
.main { padding-bottom: 3rem; }
.is-out .main { padding-bottom: 0; }
h1 { font-size: 1.5rem; letter-spacing: -.01em; margin: 1.5rem 0 1rem; }
h2 { font-size: 1.08rem; margin: 0 0 .8rem; }
@keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.main > * { animation: rise .3s var(--ease) both; }
.card { background: #fff; border: 1px solid #eaecf4; border-radius: 14px; padding: 1.25rem 1.35rem; margin-bottom: 1.2rem; box-shadow: var(--shadow); }
.card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; }
.card-head h2 { margin: 0; }
.narrow { max-width: 470px; margin: 0 auto; position: relative; overflow: hidden; border: 0; box-shadow: 0 24px 60px rgba(30,27,75,.16); }
.narrow::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, #6366f1, #a855f7, #ec4899, #f97316); }
.narrow-l { max-width: 560px; }
.bare-head { display: flex; align-items: center; gap: .8rem; }
.bare-head h1 { margin: 0; font-size: 1.35rem; }
.eyebrow { margin: 0; color: var(--muted); font-size: .85rem; }
.stack { display: flex; flex-direction: column; gap: .85rem; }
.stack-s { display: flex; flex-direction: column; gap: .4rem; margin: 0; }
.grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.grid > .card, .grid > .stack > .card { margin-bottom: 0; }
.grid + .card { margin-top: 1.2rem; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.row { display: flex; gap: .5rem; flex-wrap: wrap; margin: .2rem 0 .6rem; }
.row form { margin: 0; }
.field { display: flex; flex-direction: column; gap: .3rem; }
.field > span { font-weight: 600; font-size: .9rem; }
.field small { font-weight: 400; color: var(--muted); }
input[type=text], input[type=password], input[type=number], input[type=date], input[type=search], select, textarea { width: 100%; padding: .58rem .7rem; font: inherit; border: 1px solid #d3d7e4; border-radius: 9px; background: #fff; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #818cf8; box-shadow: 0 0 0 4px rgba(99,102,241,.14); }
.mono-input { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .86rem; word-break: break-all; }
.has-error input, .has-error textarea { border-color: var(--bad); }
.field-error { color: var(--bad); font-size: .85rem; margin: .1rem 0 0; font-weight: 500; }
:focus-visible { outline: 3px solid #f0b429; outline-offset: 1px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: .56rem 1rem; border: 1px solid #d3d7e4; border-radius: 9px; background: #fff; color: var(--ink); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background-color .15s, border-color .15s, color .15s, box-shadow .18s var(--ease), transform .18s var(--ease); }
.btn:hover { border-color: #b9bdfb; background: var(--pri-l); color: var(--pri-d); }
.btn-primary { background: linear-gradient(135deg, #6366f1, #7c3aed); border-color: transparent; color: #fff; box-shadow: 0 4px 12px rgba(99,102,241,.28); }
.btn-primary:hover { background: linear-gradient(135deg, #5458ea, #6d28d9); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(99,102,241,.36); }
.btn-danger { color: var(--bad); border-color: #f3b8b2; }
.btn-danger:hover { background: var(--bad); border-color: var(--bad); color: #fff; }
.btn-sm { padding: .3rem .65rem; font-size: .82rem; border-radius: 7px; }
.btn-block { width: 100%; }
.flash { padding: .8rem 1rem; border-radius: 12px; margin-bottom: 1rem; border: 1px solid; border-left-width: 4px; box-shadow: var(--shadow); }
.flash-ok { background: var(--ok-l); border-color: #a7e3c8 #a7e3c8 #a7e3c8 #12a36e; color: #134e2e; }
.flash-error { background: var(--bad-l); border-color: #f6c5c0 #f6c5c0 #f6c5c0 var(--bad); color: #7a1a12; }
.is-out .flash { max-width: 470px; margin: 0 auto 1rem; }
.hint, .sub { color: var(--muted); font-size: .85rem; }
.hint { margin: 0; }
.center { text-align: center; }
.user-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.user-list li { display: flex; align-items: center; gap: .8rem; padding: .7rem 0; border-top: 1px solid var(--line); }
.user-list li:first-child { border-top: 0; }
.user-main { flex: 1; min-width: 0; }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; color: #fff; font-weight: 700; }
.a0 { background: linear-gradient(135deg, #6366f1, #8b5cf6); } .a1 { background: linear-gradient(135deg, #ec4899, #f97316); } .a2 { background: linear-gradient(135deg, #0ea5e9, #22d3ee); }
.a3 { background: linear-gradient(135deg, #14b8a6, #22c55e); } .a4 { background: linear-gradient(135deg, #f59e0b, #f97316); } .a5 { background: linear-gradient(135deg, #8b5cf6, #ec4899); }
.tag { font-size: .7rem; padding: 0 .4rem; border-radius: 999px; background: var(--pri-l); color: var(--pri-d); font-weight: 700; }
.role { font-weight: 600; } .r-admin { color: #7c3aed; } .r-editor { color: #0d9488; }
.user-tools { position: relative; }
.user-tools > summary { list-style: none; }
.user-tools > summary::-webkit-details-marker { display: none; }
.pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 10; width: 250px; display: grid; gap: .7rem; padding: .9rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 30px rgba(16,24,40,.14); }
.pop form { margin: 0; }
.events { list-style: none; margin: 0; padding: 0; font-size: .86rem; max-height: 360px; overflow-y: auto; }
.events li { padding: .4rem 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.status-head { display: flex; gap: .9rem; align-items: center; margin-bottom: .6rem; }
.status-head h2 { margin: 0 0 .1rem; }
.status-mark { display: grid; place-items: center; width: 46px; height: 46px; flex-shrink: 0; border-radius: 50%; font-weight: 800; font-size: 1.2rem; color: #fff; background: linear-gradient(135deg, #ec4899, #f97316); }
.status.is-on { border-left: 4px solid #12a36e; }
.status.is-on .status-mark { background: linear-gradient(135deg, #22c55e, #14b8a6); }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem 1.2rem; margin: .8rem 0; }
.facts dt { font-size: .78rem; color: var(--muted); }
.facts dd { margin: .1rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.locked { max-width: 640px; text-align: center; margin: 2rem auto; padding: 2rem; }
.lock-ico { font-size: 2.2rem; }
@media (max-width: 760px) { .grid, .two { grid-template-columns: 1fr; } .pop { position: static; width: auto; margin-top: .5rem; box-shadow: none; } .user-list li { flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* licence edition, upgrade */
.btn-upgrade { background: linear-gradient(135deg, #f6c453, #d99a1e); border-color: transparent; color: #3d2a00; font-weight: 700; box-shadow: 0 4px 12px rgba(217,154,30,.28); }
.btn-upgrade:hover { background: linear-gradient(135deg, #f2b935, #c88a12); color: #2b1d00; }
.upgrade-box { margin: .9rem 0 .4rem; padding: .8rem 1rem; border-radius: 12px; background: #fffaf0; border: 1px solid #f3dfb0; }
.upgrade-box p { margin: 0 0 .6rem; }
