/* LAN Control — the portals (partners, founders, members). Brand: navy #100069 · amber #FFA904 · red #FF0404 · Montserrat.
   Themes (Settings): light (default) · navy · black · device (follows the device). Tokens only below the theme blocks. */
:root {
  --bg:#f5f5fa; --surface:#ffffff; --soft:#f0f0f7; --hover:#e9e9f3; --ink:#14142b; --ink-2:#3d3d5c; --muted:#6b6b85; --line:#e4e4ee; --line-2:#d3d3e2;
  --accent:#100069; --accent-ink:#ffffff; --accent-soft:#ecebff; --accent-text:#2a1fa8; --amber:#ffa904; --amber-soft:#fff4dc; --amber-ink:#8a5a00; --red:#e00303;
  --ok:#1d7a3a; --ok-soft:#e3f4e8; --warn:#8a5a00; --warn-soft:#fff3d9; --bad:#b3261e; --bad-soft:#fde8e6;
  --sb-bg:linear-gradient(180deg, #100069 0%, #0c0058 62%, #08003f 100%); --sb-ink:#e9e7ff; --sb-muted:#a9a3e0; --sb-on:rgba(255,255,255,.12); --sb-hi:#ffa904;
  --shadow:0 1px 2px rgba(20,20,43,.06), 0 8px 24px -12px rgba(20,20,43,.18); --radius:12px;
  color-scheme: light;
}
:root[data-theme="navy"] {
  --bg:#07032a; --surface:#0f0a3d; --soft:#161050; --hover:#1d165e; --ink:#f2f1ff; --ink-2:#c9c6ec; --muted:#8f8bc0; --line:#221b5e; --line-2:#2e2672;
  --accent:#6f5cff; --accent-soft:#1f1868; --accent-text:#b1a8ff; --amber-soft:#2f2208; --amber-ink:#ffd27a;
  --ok:#4fd6a0; --ok-soft:#0b2a26; --warn:#ffb938; --warn-soft:#2e2208; --bad:#ff5a5a; --bad-soft:#330b1a;
  --sb-bg:linear-gradient(180deg, #0d0556 0%, #0a0345 60%, #060130 100%); --shadow:0 1px 2px rgba(0,0,0,.35), 0 10px 28px -10px rgba(0,0,0,.6);
  color-scheme: dark;
}
:root[data-theme="black"] {
  --bg:#08080a; --surface:#111114; --soft:#18181d; --hover:#202027; --ink:#f4f4f6; --ink-2:#c9c9d2; --muted:#8b8b98; --line:#222229; --line-2:#303039;
  --accent:#4535ff; --accent-soft:#191540; --accent-text:#9b92ff; --amber:#ff2a2a; --amber-soft:#2b0b0d; --amber-ink:#ff9a9a;
  --ok:#3fd49a; --ok-soft:#0c2419; --warn:#ffb13b; --warn-soft:#2a1d08; --bad:#ff4d4d; --bad-soft:#2e0d10;
  --sb-bg:linear-gradient(180deg, #0e0e11 0%, #09090b 60%, #050506 100%); --sb-hi:#ff2a2a; --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 28px -10px rgba(0,0,0,.75);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) { :root[data-theme="device"] {
  --bg:#08080a; --surface:#111114; --soft:#18181d; --hover:#202027; --ink:#f4f4f6; --ink-2:#c9c9d2; --muted:#8b8b98; --line:#222229; --line-2:#303039;
  --accent:#6f5cff; --accent-soft:#1f1868; --accent-text:#b1a8ff; --amber-soft:#2f2208; --amber-ink:#ffd27a;
  --ok:#3fd49a; --ok-soft:#0c2419; --warn:#ffb13b; --warn-soft:#2a1d08; --bad:#ff4d4d; --bad-soft:#2e0d10;
  --sb-bg:linear-gradient(180deg, #0e0e11 0%, #09090b 60%, #050506 100%); --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 28px -10px rgba(0,0,0,.75);
  color-scheme: dark;
} }

* { box-sizing:border-box; }
html, body { margin:0; background:var(--bg); color:var(--ink); }
body { font:14px/1.5 Montserrat, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; -webkit-font-smoothing:antialiased; }
a { color:var(--accent-text); text-decoration:none; }
a:hover { text-decoration:underline; }
h1, h2, h3 { margin:0; line-height:1.25; }
h1 { font-size:22px; font-weight:700; letter-spacing:-.01em; }
h2 { font-size:16px; font-weight:700; }
h3 { font-size:14px; font-weight:700; }
p { margin:0 0 10px; }
.muted { color:var(--muted); }
.small { font-size:12px; }
.hide { display:none !important; }
.i { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }

/* ── Layout ── */
.shell { display:grid; grid-template-columns:248px minmax(0, 1fr); min-height:100vh; }
.sb { background:var(--sb-bg); color:var(--sb-ink); display:flex; flex-direction:column; padding:18px 12px; position:sticky; top:0; height:100vh; overflow:auto; }
.sb-logo { display:flex; align-items:center; gap:10px; padding:4px 8px 16px; }
.sb-logo img { height:34px; width:auto; }
.sb-logo b { font-size:13px; line-height:1.2; }
.sb-logo span { display:block; font-size:11px; color:var(--sb-muted); font-weight:500; }
.sb-who { margin:0 4px 14px; padding:10px; border-radius:10px; background:rgba(255,255,255,.06); }
.sb-who b { display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sb-who select { width:100%; margin-top:6px; background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.18); border-radius:8px; padding:6px 8px; font:inherit; font-size:12px; }
.sb-who select option { color:#14142b; }
.sb nav { display:flex; flex-direction:column; gap:2px; }
.sb nav a { display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; color:var(--sb-ink); font-weight:500; font-size:13px; text-decoration:none; position:relative; }
.sb nav a:hover { background:rgba(255,255,255,.07); }
.sb nav a.on { background:var(--sb-on); font-weight:700; }
.sb nav a.on::before { content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:3px; background:var(--sb-hi); }
.sb nav a .bdg { margin-left:auto; background:var(--sb-hi); color:#100069; border-radius:99px; font-size:11px; font-weight:700; padding:0 7px; }
.sb-foot { margin-top:auto; padding:12px 8px 0; font-size:11px; color:var(--sb-muted); }
.sb-foot button { background:none; border:0; color:var(--sb-ink); font:inherit; font-size:12px; cursor:pointer; padding:0; text-decoration:underline; }
.bars { display:flex; gap:4px; margin:0 8px 14px; }
.bars i { height:4px; border-radius:4px; flex:1; background:#100069; }
.bars i:nth-child(1) { background:#ffffff; } .bars i:nth-child(2) { background:#ffa904; } .bars i:nth-child(3) { background:#ff0404; }

.top { display:none; }
main { padding:26px 30px 60px; max-width:1180px; width:100%; }
/* The bar on top of every page: the bell (notifications), Facebook-style */
.pcol { min-width:0; display:flex; flex-direction:column; }
.ptop { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:10px 30px; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.ptop-t { margin-right:auto; color:var(--muted); font-size:12.5px; font-weight:600; }
.nt-slot, .nt-slot-m { display:inline-flex; align-items:center; }
.top .nt-slot-m { margin-left:auto; }
.top .nt-bell { width:34px; height:34px; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.25); color:#fff; }
.page-h { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.page-h p { margin:4px 0 0; color:var(--muted); }
.crumb { font-size:12px; color:var(--muted); margin-bottom:6px; }
.crumb a { color:var(--muted); }

/* ── Blocks ── */
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); margin-bottom:16px; }
.panel-h { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.panel-b { padding:16px; }
.panel-b.flush { padding:0; }
.grid2 { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; margin-bottom:16px; }
.grid2 > .panel { margin:0; }
.figs { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px; margin-bottom:16px; }
.fig { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px; }
.fig b { display:block; font-size:22px; font-weight:700; letter-spacing:-.02em; }
.fig span { font-size:12px; color:var(--muted); }
.hero { background:linear-gradient(120deg, #100069 0%, #1b0f8a 60%, #2a0f6e 100%); color:#fff; border-radius:var(--radius); padding:22px 22px 18px; margin-bottom:16px; position:relative; overflow:hidden; }
.hero::after { content:""; position:absolute; right:-40px; top:-40px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle, rgba(255,169,4,.35), transparent 70%); }
.hero h1 { color:#fff; }
.hero p { color:#d9d6ff; margin:6px 0 0; max-width:720px; }
.hero .pill { background:rgba(255,255,255,.14); color:#fff; }
.facts { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:12px 18px; }
.facts div span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; }
.facts div b { font-weight:600; }

/* Tables */
.tbl-wrap { overflow-x:auto; }
table.t { width:100%; border-collapse:collapse; font-size:13px; }
table.t th { text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); padding:10px 12px; border-bottom:1px solid var(--line); white-space:nowrap; background:var(--soft); }
table.t td { padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
table.t tr:last-child td { border-bottom:0; }
table.t tr.go { cursor:pointer; }
table.t tr.go:hover td { background:var(--hover); }
table.t td.num, table.t th.num { text-align:right; white-space:nowrap; }
table.t td.nw { white-space:nowrap; }
.empty { padding:26px 16px; text-align:center; color:var(--muted); }

/* Pills, progress */
.pill { display:inline-block; font-size:11px; font-weight:600; border-radius:99px; padding:2px 9px; background:var(--soft); color:var(--ink-2); white-space:nowrap; }
.pill.ok { background:var(--ok-soft); color:var(--ok); }
.pill.warn { background:var(--warn-soft); color:var(--warn); }
.pill.bad { background:var(--bad-soft); color:var(--bad); }
.pill.acc { background:var(--accent-soft); color:var(--accent-text); }
.pill.amber { background:var(--amber-soft); color:var(--amber-ink); }
.bar { height:8px; border-radius:99px; background:var(--soft); overflow:hidden; min-width:80px; }
.bar i { display:block; height:100%; background:linear-gradient(90deg, var(--accent), #5b3cff); border-radius:99px; }
.bar.amber i { background:linear-gradient(90deg, #ffa904, #ff6a00); }
.prog { display:flex; align-items:center; gap:8px; }
.prog small { color:var(--muted); white-space:nowrap; }
.steps { display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.steps span { font-size:12px; padding:6px 10px; border-radius:8px; background:var(--soft); color:var(--muted); font-weight:500; }
.steps span.done { background:var(--ok-soft); color:var(--ok); }
.steps span.now { background:var(--accent); color:#fff; font-weight:700; }
.hero .steps span { background:rgba(255,255,255,.1); color:#cfcaff; }
.hero .steps span.done { background:rgba(79,214,160,.18); color:#a6f0cf; }
.hero .steps span.now { background:#ffa904; color:#100069; }

/* Forms */
.btn { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:13px; font-weight:600; border:1px solid var(--line-2); background:var(--surface); color:var(--ink); border-radius:9px; padding:8px 14px; cursor:pointer; text-decoration:none; }
.btn:hover { background:var(--hover); text-decoration:none; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn.primary:hover { filter:brightness(1.1); }
.btn.amber { background:#ffa904; border-color:#ffa904; color:#100069; }
.btn.ghost { background:transparent; border-color:transparent; }
.btn.small { padding:5px 10px; font-size:12px; }
.btn.danger { color:var(--bad); }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.field { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.field label { font-size:12px; font-weight:600; color:var(--ink-2); }
.field .hint { font-size:12px; color:var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=date], input[type=time], input[type=url], input[type=search], select, textarea {
  font:inherit; font-size:14px; color:var(--ink); background:var(--surface); border:1px solid var(--line-2); border-radius:9px; padding:9px 11px; width:100%; }
textarea { min-height:90px; resize:vertical; }
input:focus, select:focus, textarea:focus { outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent); outline-offset:0; border-color:var(--accent); }
.form-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 14px; }
.form-grid .wide { grid-column:1 / -1; }
.check { display:flex; gap:8px; align-items:center; font-size:13px; }
select.inline { width:auto; padding:5px 8px; font-size:12px; }
.seg { display:inline-flex; background:var(--soft); border:1px solid var(--line); border-radius:10px; padding:3px; gap:2px; flex-wrap:wrap; }
.seg button { font:inherit; font-size:12px; font-weight:600; border:0; background:transparent; color:var(--muted); padding:6px 12px; border-radius:8px; cursor:pointer; }
.seg button.on { background:var(--surface); color:var(--ink); box-shadow:0 1px 2px rgba(0,0,0,.12); }
.files { display:flex; flex-direction:column; gap:6px; }
.file { display:flex; align-items:center; gap:8px; font-size:13px; }
.file a { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:320px; }
.drop { border:1.5px dashed var(--line-2); border-radius:10px; padding:14px; text-align:center; color:var(--muted); font-size:13px; cursor:pointer; }
.drop:hover, .drop.over { border-color:var(--accent); color:var(--accent-text); background:var(--accent-soft); }
.note { border-left:3px solid var(--amber); background:var(--amber-soft); color:var(--ink); padding:10px 12px; border-radius:0 8px 8px 0; margin-bottom:12px; font-size:13px; }
.note.acc { border-left-color:var(--accent); background:var(--accent-soft); }
.log { display:flex; flex-direction:column; gap:10px; }
.log div { font-size:13px; }
.log div small { color:var(--muted); display:block; font-size:11px; }
.star { background:none; border:0; cursor:pointer; font-size:18px; line-height:1; color:var(--line-2); padding:0 2px; }
.star.on { color:#ffa904; }
.perk { display:grid; grid-template-columns:96px minmax(0, 1fr) auto; gap:14px; align-items:start; padding:14px 16px; border-bottom:1px solid var(--line); }
.perk:last-child { border-bottom:0; }
.perk .ph { width:96px; height:72px; border-radius:8px; background:var(--soft) center / cover no-repeat; display:flex; align-items:center; justify-content:center; color:var(--muted); font-weight:700; font-size:22px; }
.code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; background:var(--soft); border:1px dashed var(--line-2); padding:3px 8px; border-radius:6px; font-size:13px; }

/* Theme picker */
.themes { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:12px; }
.theme { border:2px solid var(--line); border-radius:12px; padding:10px; cursor:pointer; background:var(--surface); text-align:left; font:inherit; color:var(--ink); display:flex; flex-direction:column; justify-content:flex-start; }
.theme.on { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.theme .sw { height:70px; border-radius:8px; display:grid; grid-template-columns:30% 1fr; overflow:hidden; margin-bottom:8px; border:1px solid var(--line); }
.theme .sw i:first-child { display:block; }
.theme b { display:block; font-size:13px; }
.theme span { font-size:12px; color:var(--muted); }

/* Modal, toast */
.modal-bg { position:fixed; inset:0; background:rgba(8,6,30,.55); display:flex; align-items:flex-start; justify-content:center; padding:6vh 14px; z-index:50; overflow:auto; }
.modal { background:var(--surface); border-radius:14px; width:100%; max-width:620px; box-shadow:0 30px 80px -20px rgba(0,0,0,.5); }
.modal .panel-h h2 { font-size:17px; }
.modal-f { display:flex; justify-content:flex-end; gap:8px; padding:12px 16px; border-top:1px solid var(--line); }
.toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:#100069; color:#fff; padding:10px 16px; border-radius:10px; font-size:13px; font-weight:600; z-index:60; box-shadow:0 12px 30px -10px rgba(0,0,0,.5); }
.toast.err { background:var(--bad); }

/* Sign in */
.login { min-height:100vh; display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); }
.login-art { background:linear-gradient(140deg, #100069 0%, #1b0f8a 55%, #3a0a5e 100%); color:#fff; padding:48px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.login-art::after { content:""; position:absolute; right:-120px; bottom:-120px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(255,169,4,.35), transparent 70%); }
.login-art img { height:64px; width:auto; align-self:flex-start; background:#fff; padding:10px 14px; border-radius:12px; }
.login-art h1 { font-size:30px; color:#fff; max-width:440px; }
.login-art p { color:#d9d6ff; max-width:440px; }
.login-art ul { list-style:none; padding:0; margin:18px 0 0; display:flex; flex-direction:column; gap:8px; color:#e9e7ff; }
.login-art li::before { content:""; display:inline-block; width:8px; height:8px; border-radius:2px; background:#ffa904; margin-right:10px; }
.login-form { display:flex; align-items:center; justify-content:center; padding:32px 20px; }
.login-form form { width:100%; max-width:360px; }
.login-form h2 { font-size:20px; margin-bottom:4px; }
.err { color:var(--bad); font-size:13px; min-height:18px; }

@media (max-width: 900px) {
  .shell { grid-template-columns:1fr; }
  .sb { position:fixed; inset:0 auto 0 0; width:268px; transform:translateX(-105%); transition:transform .2s; z-index:40; }
  .sb.open { transform:none; box-shadow:0 0 0 100vmax rgba(8,6,30,.45); }
  .top { display:flex; align-items:center; gap:10px; padding:10px 16px; background:#100069; color:#fff; position:sticky; top:0; z-index:30; }
  .top button { background:none; border:0; color:#fff; cursor:pointer; padding:4px; }
  .top b { font-size:14px; }
  .ptop { display:none; }
  main { padding:18px 16px 60px; }
  .grid2, .form-grid { grid-template-columns:1fr; }
  .login { grid-template-columns:1fr; }
  .login-art { padding:28px 20px; min-height:auto; }
  .login-art h1 { font-size:22px; }
  .perk { grid-template-columns:64px minmax(0, 1fr); }
  .perk .ph { width:64px; height:56px; }
  .perk > :last-child { grid-column:1 / -1; }
  table.t th, table.t td { padding:9px 10px; }
}

/* Settings → My profile */
.pf { display:grid; grid-template-columns:auto 1fr; gap:20px 26px; align-items:start; }
.pf-photo { display:grid; justify-items:center; gap:10px; }
.pf-photo .row { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.pf-ava { width:104px; height:104px; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:var(--soft); color:var(--ink-2); font-size:32px; font-weight:700; border:2px solid var(--line-2); }
.pf-ava img { width:100%; height:100%; object-fit:cover; display:block; }
.pf-f { max-width:520px; }
.pf-f input[readonly] { background:var(--soft); color:var(--muted); }
@media (max-width: 640px) { .pf { grid-template-columns:1fr; } }
