:root {
  --bg: #eef2f7;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --rail: #13213a;
  --rail-2: #182842;
  --rail-line: rgba(255,255,255,.08);
  --text: #1f2733;
  --muted: #6d778a;
  --line: #dbe3ee;
  --line-strong: #c6d0df;
  --blue: #0073ea;
  --blue-2: #0a5fd7;
  --blue-soft: rgba(0,115,234,.10);
  --shadow: 0 18px 44px rgba(15, 23, 42, .10);
  --shadow-soft: 0 8px 18px rgba(15, 23, 42, .05);
  --r-xl: 24px;
  --r-lg: 18px;
  --r-md: 14px;
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  color: var(--text);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: linear-gradient(180deg, #f6f8fb 0%, #eef2f7 100%);
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.muted { color: var(--muted); }
.eyebrow {
  color: #7f8a9d;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 800;
}
.nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 288px minmax(0, 1fr) 360px;
}
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
  padding: 16px 14px;
  color: #eaf0fb;
  background: linear-gradient(180deg, var(--rail) 0%, var(--rail-2) 100%);
  border-right: 1px solid var(--rail-line);
}
.sidebar-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
  width: 120px;
  height: 48px;
  display: block;
  overflow: hidden;
  border: 0;
  background: transparent;
  border-radius: 0;
}
.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.avatar {
  width: 40px; height: 40px; border-radius: 14px; display: grid; place-items: center; overflow: hidden;
  color: #fff; font-weight: 800; background: linear-gradient(135deg, var(--blue), #3fb0ff);
}
.brand-title { font-weight: 800; }
.brand-subtitle { color: rgba(234,240,251,.72); font-size: .88rem; }
.sidebar-close, .menu-btn {
  display: none; width: 42px; height: 42px; align-items: center; justify-content: center;
  border-radius: 14px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.06); color: #fff;
}
.sidebar-block { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--rail-line); }
.sidebar-empty { padding: 10px 12px; color: rgba(234,240,251,.60); font-size: .92rem; }
.block-label {
  margin-bottom: 10px; color: rgba(234,240,251,.54); text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 800;
}
.nav-link, .view-chip, .ghost-btn, .primary-btn, .filter-btn, .subtab {
  border-radius: 14px;
  border: 1px solid transparent;
  font-weight: 700;
}
.nav-link, .view-chip {
  padding: 11px 12px;
  color: #eaf0fb;
}
.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
}
.nav-link-icon {
  width: 22px;
  flex: 0 0 22px;
  display: grid;
  place-items: center;
  font-size: 1rem;
  opacity: .95;
}
.nav-link-text {
  min-width: 0;
  flex: 1;
}
.nav-count {
  margin-left: auto;
}
.nav-link:hover, .nav-link.is-active, .view-chip:hover, .view-chip.is-active {
  background: rgba(255,255,255,.08);
}
.nav-link.is-active {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.view-chip { margin-bottom: 6px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.04); }
.saved-views-panel { display: grid; gap: 10px; }
.sidebar-block-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.saved-views-toggle-form { margin: 0; }
.saved-views-toggle {
  width: 32px; height: 32px; display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,.10); border-radius: 10px;
  background: rgba(255,255,255,.06); color: #fff; font-weight: 800;
}
.saved-views-notice {
  padding: 10px 12px;
  border-radius: 12px;
  font-size: .92rem;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  color: #eaf0fb;
}
.saved-views-notice.success { border-color: rgba(0,200,117,.22); background: rgba(0,200,117,.10); }
.saved-views-notice.info { border-color: rgba(0,115,234,.22); background: rgba(0,115,234,.10); }
.saved-views-notice.warning { border-color: rgba(253,171,61,.22); background: rgba(253,171,61,.10); }
.saved-views-list { display: grid; gap: 8px; }
.saved-view-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.saved-view-chip { display: flex; align-items: center; gap: 10px; width: 100%; margin-bottom: 0; }
.saved-view-icon { width: 18px; flex: 0 0 18px; text-align: center; opacity: .95; }
.saved-view-empty { opacity: .72; }
.saved-view-editor-shell { position: relative; }
.saved-view-edit {
  width: 32px; height: 32px; display: grid; place-items: center;
  border-radius: 10px; border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04); color: rgba(234,240,251,.92);
  opacity: 0; transform: translateX(-2px); transition: opacity .15s ease, transform .15s ease;
}
.saved-view-item:hover .saved-view-edit, .saved-view-editor-shell[open] .saved-view-edit { opacity: 1; transform: translateX(0); }
.saved-view-editor { margin-top: 8px; padding: 12px; background: #fff; color: #344054; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-soft); }
.saved-view-form { display: grid; gap: 10px; }
.saved-view-form label { display: grid; gap: 6px; color: #344054; font-weight: 700; }
.saved-view-form select { width: 100%; }
.saved-view-form input { width: 100%; }
.saved-view-label { min-width: 0; }
.saved-view-actions-row, .saved-view-editor-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.saved-view-editor-actions { margin-top: 8px; }
.ghost-btn.danger { color: #b42318; border-color: rgba(180,35,24,.2); }
.saved-view-add-form { margin-top: 4px; }
.saved-view-add { width: 100%; }
.saved-view-add.is-saved, .saved-view-cta.is-saved { border-color: rgba(0,115,234,.28); background: rgba(0,115,234,.10); color: #dbeafe; }
.saved-view-hint { margin-top: 6px; font-size: .86rem; color: rgba(234,240,251,.70); }
.profile-top { display: flex; gap: 12px; align-items: center; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-actions { display: flex; gap: 10px; margin-top: 12px; }
.profile-card-drawer {
  margin-bottom: 14px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid var(--line);
  color: #344054;
  background: linear-gradient(180deg, #fff, #f8fbff);
  box-shadow: var(--shadow-soft);
}
.profile-card-drawer .muted { color: var(--muted); }
.profile-card-drawer .ghost-btn { background: #fff; }
.ghost-btn, .primary-btn, .filter-btn, .subtab {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 11px 16px; background: var(--panel); color: #344054;
  border: 1px solid var(--line); box-shadow: var(--shadow-soft);
}
.primary-btn {
  background: var(--blue); color: #fff; border-color: var(--blue); box-shadow: 0 8px 18px rgba(0,115,234,.22);
}
.primary-btn:hover { background: var(--blue-2); }
.content-shell {
  min-width: 0;
  padding: 0;
  display: grid;
  grid-template-rows: auto 1fr;
}
.topbar {
  position: sticky; top: 0; z-index: 20;
  margin: 14px 14px 0;
  padding: 14px 18px;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(18px);
}
.topbar-left, .topbar-right { display: flex; align-items: center; gap: 12px; }
.top-title { margin: 3px 0 0; font-size: 1.08rem; letter-spacing: -.03em; }
.search { min-width: 360px; }
.search input {
  width: 100%; padding: 12px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel);
  box-shadow: var(--shadow-soft); outline: none;
}
.main-canvas { padding: 14px; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow); }
.detail-page { padding: 20px; }

/* Detail grids */
.detail-grid, .detail-grid-sheet {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.detail-grid > div, .detail-grid-sheet > div {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fbff;
  box-shadow: var(--shadow-soft);
}
.detail-grid > div span, .detail-grid-sheet > div span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .76rem;
  font-weight: 800;
}
.detail-grid > div strong, .detail-grid-sheet > div strong {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.detail-grid .location-tile strong, .detail-grid-sheet .location-tile strong { display: inline; }
@media (max-width: 900px) {
  .detail-grid, .detail-grid-sheet { grid-template-columns: 1fr; }
}
.hero { padding: 20px; display: grid; gap: 14px; }
.hero-top { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.hero-copy { max-width: 60ch; }
.inbox-page { padding: 20px 20px 24px; display: grid; gap: 18px; border-bottom: 1px solid var(--line); margin-bottom: 28px; }
.inbox-page .hero-copy { max-width: 64ch; }
.inbox-page .hero-copy p { margin: 0; color: var(--muted); }
.inbox-tabs { margin-top: 8px; }
.inbox-list-panel { padding: 0; margin-top: 8px; background: transparent; border: 0; box-shadow: none; }
.inbox-list { display: grid; gap: 12px; padding-top: 0; }
.inbox-item { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-soft); }
.inbox-item.is-unread { border-color: rgba(0,115,234,.22); background: #f6faff; }
.inbox-item[open] { border-color: rgba(0,115,234,.25); box-shadow: 0 14px 32px rgba(0,115,234,.08); }
.inbox-summary {
  display: grid;
  grid-template-columns: 170px 18px minmax(0, 1.6fr) .8fr .9fr 22px;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  list-style: none;
  cursor: pointer;
}
.inbox-summary::-webkit-details-marker { display: none; }
.inbox-summary:hover { background: #fbfdff; }
.inbox-summary:focus-visible { outline: 2px solid rgba(0,115,234,.35); outline-offset: 3px; border-radius: 16px; }
.inbox-from-col { display: grid; gap: 2px; min-width: 0; }
.inbox-from-label { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.inbox-from-name { font-size: .92rem; font-weight: 800; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inbox-subject { font-weight: 800; letter-spacing: -.01em; min-width: 0; }
.inbox-kind, .inbox-sent { color: var(--muted); font-weight: 700; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inbox-kind { color: #475569; }
.inbox-sent { text-align: right; }
.inbox-expand { display: grid; gap: 14px; padding: 14px 16px 16px; border-top: 1px solid var(--line); background: linear-gradient(180deg, #fbfdff, #fff); }
.inbox-detail-grid { margin: 0; }
.inbox-detail-grid .location-tile strong { display: inline; }
.inbox-detail-grid .location-tile a { color: var(--blue); font-weight: 800; }
.inbox-body-text { line-height: 1.7; color: #1f2937; max-width: 78ch; }
.inbox-body-text p { margin: 0 0 12px; }
.inbox-action-stack { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.inbox-action-stack form { margin: 0; }
.inbox-action-stack .primary-btn, .inbox-action-stack .ghost-btn { min-width: 140px; justify-content: center; }
.inbox-message-page { padding: 20px; display: grid; gap: 16px; }
.inbox-message-head { align-items: flex-start; }
.mail-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.mail-meta > div { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--line); background: #f8fbff; }
.mail-meta span { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 800; }
.mail-meta strong { display: block; margin-top: 4px; font-size: .95rem; word-break: break-word; }
.mail-paper { padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(180deg, #fff, #fcfdff); box-shadow: var(--shadow-soft); }
.mail-body { line-height: 1.7; color: #1f2937; font-size: 1rem; }
.mail-body p { margin: 0 0 12px; }
.mail-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.inbox-item.is-unread { border-color: rgba(0,115,234,.25); background: #f5f9ff; }
.inbox-item-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.inbox-title-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.inbox-title-row h3 { margin: 0; }
.inbox-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inbox-actions form { margin: 0; }
.inbox-project-inline { margin-top: 0; font-size: .88rem; }
.inbox-project-inline a { font-weight: 800; }
.inbox-body { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line); display: grid; gap: 14px; }
.inbox-body[hidden] { display: none; }
.inbox-body-meta { display: flex; flex-wrap: wrap; gap: 10px; color: var(--muted); font-size: .92rem; }
.inbox-body-meta strong { color: #0f172a; }
.inbox-body-text { line-height: 1.7; color: #1f2937; max-width: 78ch; }
.inbox-body-text p { margin: 0 0 12px; }
.inbox-item.is-open { border-color: rgba(0,115,234,.22); box-shadow: 0 16px 34px rgba(0,115,234,.10); }
.inbox-item.is-open .inbox-preview { -webkit-line-clamp: 1; }
.inbox-toggle { flex: 1; min-width: 0; padding: 0; border: 0; background: transparent; text-align: left; color: inherit; }
.inbox-toggle:focus-visible { outline: 2px solid rgba(0,115,234,.35); outline-offset: 4px; border-radius: 16px; }
.inbox-main { display: grid; gap: 8px; min-width: 0; }
.inbox-meta-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--muted); font-size: .85rem; font-weight: 700; }
.inbox-source { color: #0f172a; font-weight: 800; }
.inbox-dot { color: #94a3b8; }
.inbox-date { color: var(--muted); font-size: .78rem; font-weight: 700; }
.inbox-project { margin-top: 12px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; color: var(--muted); }
.inbox-project a { font-weight: 800; }
.inbox-summary { display: flex; gap: 8px; flex-wrap: wrap; }

.form-card p, .auth-form label { display: grid; gap: 6px; margin: 0 0 12px; }
.form-card input, .auth-form input {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fff; outline: none;
}
.form-card ul { margin: 8px 0 0 18px; color: var(--muted); }
.form-card .helptext { color: var(--muted); font-size: .9rem; }
.form-card .errorlist { color: #b42318; }
.login-page {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: hidden;
}
.login-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  width: 100vw;
  height: 100vh;
  display: block;
}
.login-shell {
  position: relative;
  z-index: 1;
  width: min(1160px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  gap: 18px;
  margin: auto;
  align-self: center;
}
.login-promo, .login-card { min-width: 0; overflow: hidden; }
.login-promo {
  position: relative;
  display: grid; place-items: center; min-height: 520px;
  background:
    radial-gradient(circle at 50% 35%, rgba(0,115,234,.12), transparent 33%),
    radial-gradient(circle at 20% 20%, rgba(0,200,117,.10), transparent 20%),
    linear-gradient(180deg, #fff, #f7faff);
}
.data-motion { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.data-grid {
  position: absolute; inset: -20%;
  background-image:
    linear-gradient(rgba(15,23,42,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.06) 1px, transparent 1px);
  background-size: 56px 56px;
  transform: rotate(-6deg) scale(1.05);
  opacity: .32;
}
.data-row, .data-line, .speed-bar, .data-table, .data-node {
  position: absolute; display: block;
}
.data-row {
  left: -10%; right: -10%; height: 2px; border-radius: 999px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,115,234,.10) 18%, rgba(0,115,234,.34) 50%, rgba(0,115,234,.10) 82%, transparent 100%);
  filter: blur(.6px);
  opacity: .42;
  animation: sweep-x 7.8s linear infinite;
}
.row-1 { top: 18%; animation-duration: 8.4s; }
.row-2 { top: 33%; animation-duration: 6.8s; animation-delay: -1.7s; }
.row-3 { top: 49%; animation-duration: 7.5s; animation-delay: -3.1s; }
.row-4 { top: 70%; animation-duration: 8.1s; animation-delay: -2.2s; }
.data-line {
  left: 5%; right: 5%; height: 1px; background: repeating-linear-gradient(90deg, rgba(15,23,42,.07) 0 18px, transparent 18px 30px);
  opacity: .38;
}
.line-1 { top: 27%; }
.line-2 { top: 43%; }
.line-3 { top: 58%; }
.line-4 { top: 79%; }
.speed-bar {
  width: 18%; height: 10px; border-radius: 999px;
  background: linear-gradient(90deg, rgba(253,171,61,.40), rgba(0,115,234,.42));
  box-shadow: 0 0 0 8px rgba(0,115,234,.025);
  opacity: .45;
  animation: speed-rise 6.4s ease-in-out infinite;
}
.speed-a { left: 8%; top: 14%; animation-delay: 0s; }
.speed-b { left: 58%; top: 62%; animation-delay: -1.2s; width: 22%; }
.speed-c { left: 38%; top: 77%; animation-delay: -2.4s; width: 16%; background: linear-gradient(90deg, rgba(0,200,117,.42), rgba(0,115,234,.40)); }
.data-table {
  width: 22%; height: 52px; border-radius: 14px; border: 1px solid rgba(0,115,234,.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(245,249,255,.72)),
    repeating-linear-gradient(0deg, transparent 0 12px, rgba(0,115,234,.05) 12px 14px),
    repeating-linear-gradient(90deg, transparent 0 18px, rgba(0,115,234,.05) 18px 20px);
  box-shadow: none;
  opacity: .48;
  animation: float-table 9.5s ease-in-out infinite;
}
.table-a { left: 8%; top: 58%; }
.table-b { left: 68%; top: 23%; animation-delay: -2.6s; width: 16%; }
.data-node {
  width: 12px; height: 12px; border-radius: 999px;
  background: linear-gradient(135deg, rgba(14,165,233,.52), rgba(29,78,216,.52));
  box-shadow: 0 0 0 0 rgba(14,165,233,.12);
  opacity: .52;
  animation: pulse-node 3.6s ease-out infinite;
}
.node-a { left: 18%; top: 24%; }
.node-b { left: 55%; top: 47%; animation-delay: .9s; }
.node-c { left: 78%; top: 74%; animation-delay: 1.8s; }
@keyframes sweep-x {
  0% { transform: translateX(-16%); opacity: 0; }
  12% { opacity: .95; }
  100% { transform: translateX(16%); opacity: 0; }
}
@keyframes speed-rise {
  0%, 100% { transform: translateY(0) scaleX(1); opacity: .7; }
  50% { transform: translateY(-8px) scaleX(1.08); opacity: 1; }
}
@keyframes float-table {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-10px) rotate(1deg); }
}
@keyframes pulse-node {
  0% { transform: scale(.7); box-shadow: 0 0 0 0 rgba(14,165,233,.20); }
  70% { transform: scale(1); box-shadow: 0 0 0 16px rgba(14,165,233,0); }
  100% { transform: scale(.7); box-shadow: 0 0 0 0 rgba(14,165,233,0); }
}
.promo-center {
  position: relative;
  z-index: 1;
  width: min(520px, 100%);
  display: grid; justify-items: center; gap: 16px; padding: 20px;
  text-align: center;
}
.brand-lockup {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 14px;
  padding: 22px 26px;
  border-radius: 28px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 16px 40px rgba(15,23,42,.08);
  backdrop-filter: blur(10px);
}
.login-logo {
  display: block;
  max-width: min(230px, 52vw);
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 14px 28px rgba(15, 23, 42, .10));
}
.brand-copy {
  display: grid;
  justify-items: center;
  gap: 0;
  text-align: center;
}
.login-brand-text {
  position: relative;
  display: block;
  width: max-content;
  padding: 2px 8px 12px;
  color: transparent;
  font-weight: 900;
  font-size: clamp(1.9rem, 3.6vw, 2.9rem);
  letter-spacing: -.05em;
  line-height: 1.1;
  text-transform: uppercase;
  background: linear-gradient(135deg, #0c1a2f 0%, #153e75 42%, #0ea5e9 72%, #19c37d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 1px 0 rgba(255,255,255,.72), 0 16px 28px rgba(15,23,42,.12);
}
.login-brand-text::after {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 0;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(0,115,234,.0), rgba(0,115,234,.28), rgba(0,200,117,.38), rgba(0,115,234,.0));
  opacity: .95;
}
.login-form-head { margin-bottom: 4px; }
.login-form-head h1 { margin: 6px 0 0; letter-spacing: -.04em; line-height: 1.02; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.auth-form { display: grid; gap: 18px; }
.auth-form label {
  width: 100%; min-width: 0; display: grid; gap: 10px;
  color: #344054; font-weight: 700; line-height: 1.1;
}
.auth-form input {
  min-width: 0; width: 100%; padding: 15px 16px; border-radius: 16px;
  border: 1px solid var(--line-strong); background: #fff; box-shadow: inset 0 1px 2px rgba(15,23,42,.03);
}
.auth-form input::placeholder { color: #98a2b3; }
.login-card { align-self: stretch; }
.login-card-inner { height: 100%; display: grid; align-content: center; gap: 18px; padding: 52px 44px; }
.login-card .primary-btn { width: 100%; padding: 14px 18px; }


/* Projects */
.project-layout { margin-top: 14px; }
.project-toolbar { padding: 16px 20px; margin-top: 14px; display: grid; gap: 14px; }
.sheet-filters { display: grid; grid-template-columns: auto repeat(auto-fit, minmax(0, max-content)); gap: 8px; align-items: center; }
.sheet-filter-label { color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .74rem; }
.filter-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.filter-btn, .subtab, .sheet-sort-link { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--text); font-weight: 800; box-shadow: none; }
.filter-btn:hover, .subtab:hover, .sheet-sort-link:hover { background: #fbfdff; }
.filter-btn.is-active, .subtab.is-active, .sheet-sort-link.is-active { border-color: rgba(0,115,234,.22); background: #f5f9ff; color: var(--blue); }
.board-layout { margin-top: 14px; }
.project-list-panel { padding: 0; overflow: hidden; }
.project-article-head { padding: 20px 20px 0; }
.project-header-grid, .sheet-header-grid { padding: 0 16px 6px; display: grid; grid-template-columns: 170px minmax(0, 1fr) 24px; gap: 12px; align-items: center; }
.project-list { display: grid; gap: 12px; padding: 16px 20px 22px; }
.project-item { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-soft); }
.project-item:hover { box-shadow: 0 10px 22px rgba(15, 23, 42, .08); }
.project-summary, .sheet-sort-link { display: grid; grid-template-columns: 170px minmax(0, 1fr) 24px; gap: 12px; align-items: center; padding: 14px 16px; list-style: none; cursor: pointer; }
.project-summary::-webkit-details-marker { display: none; }
.project-summary:hover { background: #fbfdff; }
.project-summary:focus-visible, .sheet-sort-link:focus-visible { outline: 2px solid rgba(0,115,234,.35); outline-offset: 3px; border-radius: 16px; }
.project-code, .project-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-code { font-weight: 900; }
.project-name { color: var(--text); font-weight: 700; }
.project-caret, .sheet-sort-icon { color: var(--muted); font-size: 1.1rem; font-weight: 900; justify-self: end; }
.project-expand { display: grid; gap: 14px; padding: 14px 16px 16px; border-top: 1px solid var(--line); background: linear-gradient(180deg, #fbfdff, #fff); }
.project-detail-grid { margin: 0; }
.project-action-stack { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.project-action-stack form { margin: 0; }
@media (max-width: 900px) {
  .project-toolbar { padding: 14px; }
  .sheet-filters { grid-template-columns: 1fr; }
  .filter-actions { justify-content: flex-start; }
  .project-summary, .sheet-sort-link { grid-template-columns: 1fr; }
  .project-summary > *:nth-child(n+2), .sheet-sort-link > *:nth-child(n+2) { display: none; }
  .project-caret, .sheet-sort-icon { justify-self: start; }
  .project-header-grid, .sheet-header-grid { display: none; }
}

/* Stock */
.stock-hero { padding-bottom: 16px; }
.stock-toolbar { padding: 16px 20px; margin-top: 14px; display: grid; gap: 14px; }
.stock-filters { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 12px; align-items: center; }
.stock-filters input { width: 100%; }
.stock-size-tabs, .stock-sort-actions, .stock-type-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.stock-layout { margin-top: 14px; }
.stock-list-panel { padding: 0; overflow: hidden; }
.stock-article-head { padding: 20px 20px 0; }
.stock-header-grid { padding: 0 16px 6px; }
.stock-list { display: grid; gap: 12px; padding: 16px 20px 22px; }
.stock-item { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-soft); }
.stock-item.is-selected { border-color: rgba(0,115,234,.24); background: #f8fbff; }
.stock-item.is-archived { opacity: .55; }
.stock-summary { display: grid; grid-template-columns: 170px minmax(0, 1fr) 24px; gap: 12px; align-items: center; padding: 14px 16px; list-style: none; cursor: pointer; }
.stock-summary::-webkit-details-marker { display: none; }
.stock-summary:hover { background: #fbfdff; }
.stock-summary:focus-visible { outline: 2px solid rgba(0,115,234,.35); outline-offset: 3px; border-radius: 16px; }
.stock-code-cell, .stock-name-cell { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stock-code-cell { font-weight: 900; }
.stock-name-cell { color: var(--text); font-weight: 700; }
.stock-caret { color: var(--muted); font-size: 1.1rem; font-weight: 900; justify-self: end; }
.stock-expand { display: grid; gap: 14px; padding: 14px 16px 16px; border-top: 1px solid var(--line); background: linear-gradient(180deg, #fbfdff, #fff); }
.stock-detail-grid { margin: 0; }
.stock-inline-section { margin-top: 0; }
.stock-inline-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.stock-inline-actions form { margin: 0; }
.stock-history { display: grid; gap: 10px; }
.stock-history-row { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #f8fbff; }
.stock-history-top, .stock-history-meta { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.stock-history-changes { display: grid; gap: 6px; }
.stock-change-row { display: flex; justify-content: space-between; gap: 10px; padding-top: 6px; border-top: 1px solid rgba(148,163,184,.2); font-size: .92rem; }
.stock-change-row strong { color: var(--text); }
.stock-change-row span { color: var(--muted); text-align: right; }
.stock-admin-panel { margin-top: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbff; }
.stock-admin-panel summary { cursor: pointer; font-weight: 800; }
.stock-admin-form { display: grid; gap: 8px; margin-top: 10px; }
.stock-admin-form input, .stock-admin-form textarea { width: 100%; }
.stock-admin-form textarea { resize: vertical; }
.stock-type-tabs .subtab { white-space: nowrap; }
@media (max-width: 900px) {
  .stock-filters { grid-template-columns: 1fr; }
  .stock-summary { grid-template-columns: 1fr; }
  .stock-summary > *:nth-child(n+2) { display: none; }
  .stock-caret { justify-self: start; }
  .stock-header-grid { display: none; }
}


/* Stock v2 */
.drawer > .profile-card-drawer:first-child { margin-top: 0; }
.drawer .profile-card-drawer { margin-bottom: 16px; }
.stock-sheet { padding: 22px; }
.stock-sheet .article-head { margin-bottom: 4px; }
.stock-table-shell {
  margin-top: 14px;
  padding: 16px;
  display: grid;
  gap: 12px;
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 20px;
}
.stock-header-grid { padding: 0 12px 6px; }
.stock-row { padding: 14px 12px; border-radius: 14px; background: #fff; }
.stock-form-shell {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fbfdff;
  box-shadow: var(--shadow-soft);
}
.stock-form { display: grid; gap: 14px; }
.stock-form .detail-grid-sheet {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.stock-form .detail-grid-sheet > div {
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  box-shadow: none;
}
.stock-form .detail-grid-sheet > div span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .76rem;
  font-weight: 800;
}
.stock-form input,
.stock-form select,
.stock-form textarea,
.stock-admin-form input,
.stock-admin-form textarea {
  width: 100%;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 10px 12px;
  box-shadow: none;
}
.stock-form textarea { min-height: 120px; }
.stock-form .drawer-section { margin-top: 18px; }
.stock-history { display: grid; gap: 10px; }
.stock-history-row {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fbff;
  display: grid;
  gap: 8px;
}
.stock-history-top, .stock-history-meta { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.stock-history-changes { display: grid; gap: 6px; }
.stock-change-row { display: flex; justify-content: space-between; gap: 10px; padding-top: 6px; border-top: 1px solid rgba(148,163,184,.2); font-size: .92rem; }
.stock-change-row strong { color: var(--text); text-transform: none; }
.stock-change-row span { color: var(--muted); text-align: right; }
@media (max-width: 900px) {
  .stock-form .detail-grid-sheet { grid-template-columns: 1fr; }
}
