:root{
  --bg:#f4f5fb;
  --surface:#ffffff;
  --sidebar:#ffffff;
  --ink:#1f2330;
  --ink-soft:#6b7280;
  --muted:#9aa1ad;
  --line:#eceef4;
  --line-2:#e4e7f0;
  --brand:#7c5cff;
  --brand-2:#a78bff;
  --brand-soft:#f0ecff;
  --accent:#ff8a3d;
  --accent-soft:#fff1e8;
  --green:#27c498;
  --radius:18px;
  --radius-sm:12px;
  --shadow:0 10px 30px rgba(31,35,48,.06);
  --shadow-lg:0 18px 50px rgba(31,35,48,.10);
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}

/* Библиотека */
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.lib-item{position:relative;display:block;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0f1117;cursor:pointer;transition:.15s;box-shadow:0 1px 2px rgba(20,20,40,.05)}
.lib-item:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 8px 22px rgba(124,92,255,.18)}
.lib-item img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.lib-item .lib-tag{position:absolute;top:8px;left:8px;background:rgba(124,92,255,.92);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.lib-item .lib-date{position:absolute;bottom:8px;right:8px;background:rgba(15,17,23,.6);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px}
html,body{height:100%}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink);
  font-size:14px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
svg{width:20px;height:20px;display:block}

/* ---------- App grid ---------- */
.app{display:flex;min-height:100vh}

/* ---------- Sidebar ---------- */
.sidebar{
  width:248px;flex-shrink:0;background:var(--sidebar);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;
  padding:18px 14px;position:sticky;top:0;height:100vh;
}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}
.brand-mark{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  color:#fff;font-weight:800;font-size:18px;
  box-shadow:0 6px 16px rgba(124,92,255,.35);
}
.brand-name{font-weight:800;font-size:20px;letter-spacing:-.02em;
  background:linear-gradient(135deg,var(--brand),#5b8cff);-webkit-background-clip:text;background-clip:text;color:transparent}

.nav{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}
.nav-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:12px;color:var(--ink-soft);
  font-weight:600;font-size:14px;transition:.15s;position:relative;
}
.nav-item:hover{background:var(--bg);color:var(--ink)}
.nav-item.is-active{background:var(--brand-soft);color:var(--brand)}
.nav-item.is-active .nav-ic{color:var(--brand)}
.nav-ic{display:grid;place-items:center;color:var(--muted)}
.nav-item:hover .nav-ic,.nav-item.is-active .nav-ic{color:inherit}
.nav-label{flex:1}
.nav-item.is-disabled{opacity:.65;cursor:default}
.nav-item.is-disabled:hover{background:none;color:var(--ink-soft)}
.nav-badge{
  font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  background:linear-gradient(135deg,var(--accent),#ff5d7a);color:#fff;
  padding:3px 7px;border-radius:8px;
}
.nav-badge.soon{background:var(--line-2);color:var(--muted)}

.nav-group{margin-top:14px;padding-top:8px}
.nav-group-title{
  display:block;font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);padding:6px 12px;
}

.sidebar-bottom{display:flex;flex-direction:column;gap:2px;padding-top:12px;border-top:1px solid var(--line)}

/* ---------- Main ---------- */
.main{flex:1;display:flex;flex-direction:column;min-width:0}

/* ---------- Topbar ---------- */
.topbar{
  height:64px;display:flex;align-items:center;gap:10px;
  padding:0 24px;background:var(--bg);position:sticky;top:0;z-index:30;
}
.topbar-spacer{flex:1}
.burger{display:none;flex-direction:column;gap:4px;padding:8px}
.burger span{width:20px;height:2px;background:var(--ink);border-radius:2px}

.plan-badge{
  display:flex;align-items:center;gap:8px;background:var(--accent-soft);
  color:#b85a17;border:1px solid #ffe0cc;padding:6px 8px 6px 12px;border-radius:30px;font-weight:600;font-size:13px;
}
.plan-badge svg{width:16px;height:16px;color:#ff7a2d}
.plan-up{background:#ff7a2d;color:#fff;border-radius:20px;padding:4px 12px;font-weight:700;font-size:12px}
.credits{
  display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-2);
  padding:6px 8px 6px 12px;border-radius:30px;font-weight:700;color:var(--ink);
}
.credits svg{width:15px;height:15px;color:#ffb020}
.credits-plus{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand)}
.credits-plus svg{width:14px;height:14px}
.t-icon{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-2);border-radius:30px;padding:7px 12px;color:var(--ink-soft);font-weight:700;font-size:13px}
.t-icon.round{border-radius:50%;padding:8px}
.avatar{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line-2);border-radius:30px;padding:4px 8px 4px 4px;font-weight:700}
.avatar span{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ff8a3d,#ff5d7a);color:#fff;display:grid;place-items:center;font-size:13px}
.avatar svg{width:16px;height:16px;color:var(--muted)}

/* ---------- Content ---------- */
.content{padding:8px 24px 40px;max-width:1320px;width:100%}
.page-head{margin-bottom:20px}
.page-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;font-size:13px;margin-bottom:10px}
.page-title{font-size:24px;font-weight:800;letter-spacing:-.02em}
.page-sub{color:var(--ink-soft);margin-top:4px}

/* ---------- Cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:18px}
.card-title{font-weight:700;font-size:15px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}

/* ---------- Home dashboard ---------- */
.hero{
  position:relative;overflow:hidden;border-radius:24px;padding:34px;margin-bottom:24px;color:#fff;
  background:radial-gradient(120% 140% at 0% 0%,#8b6bff 0%,#6f54ff 45%,#5b8cff 100%);
  box-shadow:var(--shadow-lg);
}
.hero h1{font-size:30px;font-weight:800;letter-spacing:-.02em;max-width:560px;line-height:1.15}
.hero p{margin-top:10px;opacity:.9;max-width:520px}
.hero .hero-actions{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:12px;padding:12px 20px;transition:.15s}
.btn svg{width:18px;height:18px}
.btn-primary{background:#fff;color:var(--brand)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(4px)}
.hero-glow{position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.14);filter:blur(10px)}

.section-title{font-size:18px;font-weight:800;margin:26px 0 14px;letter-spacing:-.01em}
.grid{display:grid;gap:16px}
.grid-tools{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.tool{
  display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:var(--radius);
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transition:.18s;position:relative;
}
.tool:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.tool.is-soon{opacity:.75}
.tool-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff}
.tool-ic svg{width:24px;height:24px}
.tool h3{font-size:16px;font-weight:700}
.tool p{color:var(--ink-soft);font-size:13px;line-height:1.5}
.tool .tool-go{margin-top:auto;color:var(--brand);font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:6px}
.tool-tag{position:absolute;top:16px;right:16px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;border-radius:8px;background:var(--line);color:var(--muted)}
.tool-tag.new{background:linear-gradient(135deg,var(--accent),#ff5d7a);color:#fff}

.g-violet{background:linear-gradient(135deg,#7c5cff,#a78bff)}
.g-orange{background:linear-gradient(135deg,#ff8a3d,#ff5d7a)}
.g-blue{background:linear-gradient(135deg,#3d8bff,#43c6ff)}
.g-green{background:linear-gradient(135deg,#27c498,#19b3c4)}
.g-pink{background:linear-gradient(135deg,#ff5d9e,#a06bff)}
.g-dark{background:linear-gradient(135deg,#2b2f45,#4b4f6b)}

/* ---------- Кнопка входа / меню пользователя ---------- */
.btn-login{display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;font-weight:700;font-size:13px;border-radius:30px;padding:9px 18px}
.btn-login:hover{background:#6a49f0}
.credits{cursor:pointer}
.avatar-img{width:30px;height:30px;border-radius:50%;object-fit:cover}

.usermenu{position:relative}
.usermenu>summary{list-style:none;cursor:pointer}
.usermenu>summary::-webkit-details-marker{display:none}
.usermenu-pop{
  position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:#fff;border:1px solid var(--line-2);
  border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:60
}
.um-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;display:flex;flex-direction:column;gap:2px}
.um-head b{font-size:14px}
.um-head span{font-size:12px;color:var(--muted);word-break:break-all}
.um-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-weight:600;color:var(--ink-soft)}
.um-item svg{width:16px;height:16px}
.um-item:hover{background:var(--brand-soft);color:var(--brand)}

/* ---------- Страница входа ---------- */
.auth-body{background:radial-gradient(800px 500px at 50% -10%,var(--brand-soft),var(--bg))}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line-2);border-radius:22px;box-shadow:var(--shadow-lg);padding:32px 28px;text-align:center}
.auth-brand{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:18px;margin-bottom:18px}
.auth-brand .brand-mark{width:30px;height:30px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center}
.auth-card h1{font-size:22px;margin-bottom:6px}
.auth-sub{color:var(--muted);font-size:13px;margin-bottom:22px}
.auth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;border-radius:12px;border:1px solid var(--line-2);font-weight:700;font-size:14px;margin-bottom:12px;transition:.15s;background:#fff;color:var(--ink)}
.auth-btn:hover{background:#f7f8fc;border-color:var(--line)}
.auth-btn.yandex{background:#000;color:#fff;border-color:#000}
.auth-btn.yandex:hover{background:#161616}
.auth-legal{color:var(--muted);font-size:11px;margin-top:8px}

/* ---------- Транзакции ---------- */
.tx-top{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
@media(max-width:720px){.tx-top{grid-template-columns:1fr}}
.balance-card{display:flex;flex-direction:column;justify-content:center}
.balance-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:13px}
.balance-label svg{width:16px;height:16px;color:#ffb020}
.balance-value{font-size:34px;font-weight:800;margin-top:6px}
.balance-value span{font-size:15px;font-weight:600;color:var(--muted)}
.price-card{display:flex;flex-direction:column;justify-content:center;gap:10px}
.price-row{display:flex;align-items:center;justify-content:space-between;font-weight:600}
.price-row span{display:flex;align-items:center;gap:8px;color:var(--ink-soft)}
.price-row svg{width:18px;height:18px;color:var(--brand)}
.price-row b{font-size:15px}

.tx-empty{color:var(--muted);padding:16px 0}
.tx-table-wrap{overflow-x:auto}
.tx-table{width:100%;border-collapse:collapse;font-size:13px}
.tx-table th,.tx-table td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line)}
.tx-table th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.tx-table td.num,.tx-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.tx-date{color:var(--ink-soft);white-space:nowrap}
.tx-desc{color:var(--ink-soft)}
.tx-tag{display:inline-block;padding:3px 10px;border-radius:20px;font-weight:700;font-size:12px}
.tx-tag.minus{background:var(--accent-soft);color:#d2691e}
.tx-tag.plus{background:#e7faf3;color:#159b76}
.c-minus{color:#e05656;font-weight:700}
.c-plus{color:var(--green);font-weight:700}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .sidebar{position:fixed;z-index:50;transform:translateX(-100%);transition:.2s;box-shadow:var(--shadow-lg)}
  .sidebar.open{transform:none}
  .burger{display:flex}
}
@media(max-width:640px){
  .plan-badge span,.t-icon span{display:none}
  .content{padding:8px 14px 30px}
  .hero{padding:24px}
  .hero h1{font-size:23px}
}
