@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap');

:root {
  --ink: #172522;
  --muted: #6f7975;
  --line: #dfe4df;
  --paper: #f5f4ef;
  --surface: #ffffff;
  --deep: #173a35;
  --deep-2: #0f2d29;
  --mint: #b9e3d4;
  --mint-bright: #74cdb1;
  --sand: #e9dfcb;
  --danger: #a6403f;
  --warning: #ad7123;
  --shadow: 0 18px 50px rgba(19, 48, 43, .1);
  --radius: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Roboto", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 245px 1fr; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 30; width: 245px;
  display: flex; flex-direction: column; padding: 28px 20px;
  color: #fff; background: var(--deep-2);
}
.sidebar::after {
  content: ""; position: absolute; inset: auto -60px 8% auto; width: 180px; height: 180px;
  border: 1px solid rgba(185, 227, 212, .15); border-radius: 50%; pointer-events: none;
}
.brand { display: flex; align-items: center; color: inherit; text-decoration: none; padding: 0 2px; }
.brand-logo { display: block; height: auto; object-fit: contain; }
.brand-logo-sidebar { width: 100%; max-width: 205px; padding: 7px 9px; border-radius: 12px; background: rgba(255,255,255,.96); }
.brand-logo-login { width: min(330px, 100%); margin-bottom: 25px; }
.brand-logo-loading { width: min(240px, 72vw); }
.main-nav { display: grid; gap: 8px; margin-top: 62px; }
.nav-item {
  display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px;
  width: 100%; padding: 12px 13px; border: 0; border-radius: 12px;
  color: #a9bbb6; background: transparent; text-align: left; transition: .2s ease;
}
.nav-item:hover, .nav-item.active { color: #fff; background: rgba(185, 227, 212, .11); }
.nav-item.active { box-shadow: inset 3px 0 var(--mint-bright); }
.nav-icon { font-size: 19px; }
.nav-count { min-width: 25px; padding: 2px 7px; border-radius: 20px; background: rgba(255,255,255,.1); font-size: 11px; text-align: center; }
.sidebar-note {
  display: flex; align-items: center; gap: 11px; margin-top: auto; padding: 14px;
  border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.04);
}
.sidebar-note strong, .sidebar-note small { display: block; }
.sidebar-note strong { font-size: 12px; }
.sidebar-note small { margin-top: 3px; color: #87a09a; font-size: 10px; }
.pulse-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 5px rgba(173,113,35,.13); }
.pulse-dot.online { background: var(--mint-bright); box-shadow: 0 0 0 5px rgba(116,205,177,.13); }
.sidebar-footer { display: grid; margin-top: 18px; padding: 8px 14px; color: #6f8d85; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.sidebar-footer small { margin-top: 3px; font-size: 9px; }

.main-content { grid-column: 2; min-width: 0; padding: 0 38px 64px; }
.topbar {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between;
  min-height: 105px; padding: 20px 0; background: rgba(245,244,239,.9); backdrop-filter: blur(18px);
}
.page-heading h1 { margin: 4px 0 0; font: 500 32px/1.1 "Roboto", sans-serif; }
.eyebrow { margin: 0; color: #81908a; font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px; font-weight: 600; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .55; cursor: wait; transform: none; }
.button-primary { color: #fff; background: var(--deep); box-shadow: 0 8px 20px rgba(23,58,53,.16); }
.button-primary:hover { background: var(--deep-2); }
.button-ghost { color: var(--ink); border-color: var(--line); background: transparent; }
.button-secondary { color: var(--deep); background: var(--mint); }
.button-danger { color: #fff; background: var(--danger); }
.button-icon { font-size: 18px; line-height: 1; }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 24px; }

.view { display: none; }
.view.active { display: block; animation: fade-in .25s ease; }
@keyframes fade-in { from { opacity: 0; transform: translateY(5px); } }

.hero-card {
  position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr 260px; align-items: center;
  min-height: 260px; padding: 40px 44px; border-radius: 26px; color: #fff;
  background: linear-gradient(125deg, #173a35, #285b52); box-shadow: var(--shadow);
}
.hero-card::before { content: ""; position: absolute; width: 380px; height: 380px; right: -170px; top: -220px; border-radius: 50%; background: rgba(185,227,212,.12); }
.hero-kicker { color: var(--mint); font-size: 10px; font-weight: 700; letter-spacing: .19em; }
.hero-card h2 { margin: 10px 0 12px; font: 500 39px/1.08 "Roboto", sans-serif; }
.hero-card h2 em { color: var(--mint); }
.hero-card p:last-child { max-width: 620px; margin-bottom: 0; color: #c4d4cf; font-size: 14px; line-height: 1.7; }
.hero-orbit { position: relative; height: 185px; }
.orbit { position: absolute; inset: 50%; border: 1px solid rgba(185,227,212,.25); border-radius: 50%; transform: translate(-50%,-50%); }
.orbit-one { width: 170px; height: 170px; }
.orbit-two { width: 112px; height: 112px; }
.orbit-one::after, .orbit-two::after { content: ""; position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--mint); }
.orbit-one::after { top: 21px; right: 21px; }
.orbit-two::after { bottom: 6px; left: 31px; background: #fff; }
.orbit-core { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; transform: translate(-50%,-50%); color: var(--deep); background: var(--mint); font: 500 24px "Roboto", sans-serif; box-shadow: 0 0 40px rgba(185,227,212,.25); }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 18px 0; }
.metric-card { padding: 21px 23px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.65); }
.metric-card span, .metric-card small { display: block; color: var(--muted); }
.metric-card span { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.metric-card strong { display: block; margin: 8px 0 2px; font: 500 32px "Roboto", sans-serif; }
.metric-card small { font-size: 11px; }

.dashboard-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 18px; }
.panel { padding: 25px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 25px; }
.panel-heading h3 { margin: 5px 0 0; font: 500 23px "Roboto", sans-serif; }
.panel-badge { padding: 5px 9px; border-radius: 8px; color: var(--deep); background: #edf5f2; font-size: 10px; font-weight: 700; }
.score-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; min-height: 170px; align-items: end; }
.score-item { display: grid; grid-template-rows: 130px auto; gap: 9px; text-align: center; }
.score-track { position: relative; overflow: hidden; align-self: end; height: 130px; border-radius: 12px; background: #edf0ec; }
.score-fill { position: absolute; inset: auto 0 0; min-height: 2px; border-radius: 12px; background: linear-gradient(#75cdb2, #1e554b); transition: height .6s ease; }
.score-fill span { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 12px; font-weight: 700; }
.score-item small { color: var(--muted); font-size: 10px; line-height: 1.25; }
.recommendation-chart { display: grid; gap: 13px; }
.decision-row { display: grid; grid-template-columns: 95px 1fr 25px; align-items: center; gap: 10px; font-size: 11px; }
.decision-track { height: 9px; overflow: hidden; border-radius: 12px; background: #edf0ec; }
.decision-fill { height: 100%; border-radius: inherit; background: var(--deep); }
.decision-row strong { text-align: right; }

.recent-section { margin-top: 38px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 16px; }
.section-heading h2 { margin: 5px 0 0; font: 500 27px "Roboto", sans-serif; }
.text-button { border: 0; color: var(--deep); background: transparent; font-size: 12px; font-weight: 700; }
.paper-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 17px; }
.paper-card {
  position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 250px;
  padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
  transition: .2s ease;
}
.paper-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: #c9d7d2; }
.paper-card::after { content: ""; position: absolute; right: -38px; bottom: -48px; width: 120px; height: 120px; border-radius: 50%; background: #f1f5f1; }
.paper-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.file-type { color: var(--danger); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.status-chip { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 20px; color: var(--muted); background: #eef0ed; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.status-chip.reviewed { color: #17634e; background: #dff2eb; }
.status-chip.reviewing { color: #8b5a13; background: #f8ead1; }
.status-chip.failed { color: #963d3c; background: #f5dddd; }
.paper-card h3 { margin: 19px 0 9px; font: 500 21px/1.22 "Roboto", sans-serif; }
.paper-card .authors { overflow: hidden; min-height: 36px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.paper-meta { display: flex; gap: 13px; margin-top: auto; padding-top: 20px; color: #87908d; font-size: 10px; }
.paper-decision { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding-top: 14px; border-top: 1px solid #edf0ed; }
.paper-decision span { color: var(--muted); font-size: 10px; }
.paper-decision strong { color: var(--deep); font-size: 11px; }
.paper-open { position: absolute; inset: 0; z-index: 3; border: 0; background: transparent; font-size: 0; }

.library-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.search-box { display: flex; align-items: center; gap: 10px; width: min(430px, 100%); padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.search-box input { width: 100%; height: 44px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 12px; }
.filter-tabs { display: flex; padding: 4px; border-radius: 12px; background: #e9ebe7; }
.filter-tabs button { padding: 8px 11px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font-size: 10px; font-weight: 700; }
.filter-tabs button.active { color: var(--deep); background: #fff; box-shadow: 0 3px 10px rgba(20,45,40,.07); }
.library-summary { display: flex; justify-content: space-between; margin: 11px 2px 15px; color: var(--muted); font-size: 11px; }
.library-summary strong { color: var(--ink); }
.empty-state { padding: 70px 20px; text-align: center; color: var(--muted); }
.empty-state > span { font-size: 40px; }
.empty-state h3 { margin-bottom: 5px; color: var(--ink); }
.hidden { display: none !important; }

.drawer-backdrop, .modal-backdrop { position: fixed; inset: 0; z-index: 50; visibility: hidden; opacity: 0; background: rgba(8,24,21,.38); backdrop-filter: blur(4px); transition: .2s ease; }
.drawer-backdrop.open, .modal-backdrop.open { visibility: visible; opacity: 1; }
.detail-drawer { position: fixed; inset: 0 0 0 auto; z-index: 60; width: min(760px, 94vw); overflow-y: auto; transform: translateX(102%); background: var(--paper); box-shadow: -20px 0 60px rgba(8,24,21,.18); transition: .3s ease; }
.detail-drawer.open { transform: translateX(0); }
.drawer-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; padding: 25px 30px; border-bottom: 1px solid var(--line); background: rgba(245,244,239,.93); backdrop-filter: blur(16px); }
.drawer-header .status-chip { margin-top: 8px; }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: #fff; font-size: 21px; }
.drawer-body { padding: 30px; }
.profile-title { margin: 0; font: 500 35px/1.12 "Roboto", sans-serif; }
.profile-authors { margin: 12px 0 20px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.profile-facts { display: flex; flex-wrap: wrap; gap: 8px; }
.fact { padding: 8px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--muted); font-size: 10px; }
.abstract-card { margin: 24px 0; padding: 20px; border-left: 3px solid var(--mint-bright); border-radius: 0 13px 13px 0; background: #fff; }
.abstract-card h4 { margin: 0 0 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; }
.abstract-card p { margin: 0; color: #56635f; font-size: 12px; line-height: 1.72; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 22px 0 30px; }
.review-config { display: flex; align-items: center; gap: 8px; padding: 4px 4px 4px 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.review-config label { color: var(--muted); font-size: 10px; }
.review-config select { height: 35px; border: 0; outline: 0; color: var(--deep); background: transparent; font-size: 11px; font-weight: 700; }
.strictness-note { flex-basis: 100%; margin: -21px 0 26px; padding: 10px 12px; border-radius: 10px; color: var(--muted); background: #eef2ef; font-size: 10px; line-height: 1.55; }
.strictness-note strong { color: var(--deep); }
.review-history { display: grid; gap: 10px; }
.review-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.review-row h4 { margin: 0 0 6px; font-size: 13px; }
.review-row p { margin: 0; color: var(--muted); font-size: 10px; }
.review-row button { align-self: center; }
.review-title-line, .report-identity { display: flex; align-items: center; gap: 9px; }
.review-title-line h4 { margin: 0; }
.strictness-chip { display: inline-flex; align-items: center; width: fit-content; padding: 5px 9px; border-radius: 8px; color: #185542; background: #dff2eb; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.strictness-chip.strict { color: #913d3c; background: #f5dddd; }
.strictness-chip.lenient { color: #805816; background: #f8ead1; }
.review-score-preview { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.review-score-preview span { padding: 5px 7px; border-radius: 7px; color: var(--muted); background: #f1f3f0; font-size: 9px; }
.review-score-preview b { margin-left: 3px; color: var(--deep); }
.review-comparison { margin-top: 29px; padding-top: 26px; border-top: 1px solid var(--line); }
.comparison-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; }
.comparison-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 10px; white-space: nowrap; }
.comparison-table th, .comparison-table td { padding: 12px 13px; border-bottom: 1px solid #edf0ed; text-align: left; }
.comparison-table th { color: var(--muted); background: #f5f6f3; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.comparison-table tr:last-child td { border-bottom: 0; }
.error-box { margin-top: 9px; padding: 11px; border-radius: 9px; color: #8d3534; background: #f9e3e2; font-size: 11px; line-height: 1.5; }
.report-view { margin-top: 25px; padding-top: 25px; border-top: 1px solid var(--line); }
.report-toolbar { position: sticky; top: 88px; z-index: 1; display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.94); }
.language-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 13px; padding: 5px; border: 1px solid var(--line); border-radius: 14px; background: #e9ede9; }
.language-tab { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 10px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 700; transition: .18s ease; }
.language-tab span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; color: var(--deep); background: rgba(255,255,255,.7); font-size: 9px; letter-spacing: .04em; }
.language-tab.active { color: var(--deep); background: #fff; box-shadow: 0 4px 12px rgba(20,45,40,.08); }
.language-tab.active span { color: #fff; background: var(--deep); }
.language-panel { display: none; }
.language-panel.active { display: block; animation: fade-in .2s ease; }
.report-markdown { padding: 26px; border: 1px solid var(--line); border-radius: 16px; background: #fff; font-size: 13px; line-height: 1.75; }
.report-markdown h1 { margin: 30px 0 12px; font: 500 30px "Roboto", sans-serif; }
.report-markdown h1:first-child { margin-top: 0; }
.report-markdown h2 { margin: 28px 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--line); font: 500 23px "Roboto", sans-serif; }
.report-markdown h3 { margin: 23px 0 9px; color: var(--deep); font-size: 15px; }
.report-markdown p { margin: 8px 0; }
.report-markdown ol { padding-left: 22px; }
.report-markdown table { width: 100%; border-collapse: collapse; }
.report-markdown th, .report-markdown td { padding: 10px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.report-markdown pre { overflow-x: auto; padding: 16px; border-radius: 10px; background: #f1f3f0; }
.report-markdown blockquote { margin: 15px 0; padding: 8px 18px; border-left: 3px solid var(--mint-bright); color: var(--muted); }
.report-markdown hr { margin: 28px 0; border: 0; border-top: 1px solid var(--line); }

.modal-backdrop { display: grid; place-items: center; padding: 20px; }
.modal { width: min(650px, 96vw); padding: 28px; border-radius: 23px; background: var(--paper); box-shadow: 0 30px 80px rgba(7,28,24,.25); transform: translateY(15px); transition: .2s ease; }
.modal-backdrop.open .modal { transform: translateY(0); }
.modal-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 22px; }
.modal-header h2 { margin: 5px 0 0; font: 500 29px "Roboto", sans-serif; }
.dropzone { display: grid; place-items: center; min-height: 205px; padding: 25px; border: 1.5px dashed #aac1ba; border-radius: 18px; background: rgba(255,255,255,.7); text-align: center; transition: .2s ease; }
.dropzone.dragging { border-color: var(--deep); background: #e8f4f0; }
.dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload-symbol { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; border-radius: 16px; color: var(--deep); background: var(--mint); font-size: 26px; }
.dropzone strong { font-size: 14px; }
.dropzone small { margin-top: 6px; color: var(--muted); font-size: 10px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 17px; }
.form-grid label span { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 700; }
.form-grid label small { color: var(--muted); font-weight: 400; }
.form-grid input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: #fff; font-size: 11px; }
.form-grid input:focus { border-color: var(--mint-bright); box-shadow: 0 0 0 3px rgba(116,205,177,.15); }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }

.toast-region { position: fixed; right: 22px; top: 22px; z-index: 100; display: grid; gap: 9px; max-width: calc(100vw - 32px); }
.toast { min-width: 280px; max-width: 420px; padding: 14px 17px; border-radius: 13px; color: #fff; background: var(--deep); box-shadow: var(--shadow); font-size: 12px; animation: toast-in .25s ease; }
.toast.error { background: var(--danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }

@media (max-width: 1050px) {
  .paper-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { width: 245px; transform: translateX(-102%); transition: .25s ease; }
  .sidebar.open { transform: translateX(0); }
  .main-content { padding: 0 18px 45px; }
  .mobile-menu { display: block; }
  .topbar { min-height: 88px; gap: 10px; }
  .page-heading { margin-right: auto; }
  .page-heading h1 { font-size: 24px; }
  .topbar > .button { width: 44px; overflow: hidden; padding: 0; white-space: nowrap; color: transparent; }
  .topbar > .button .button-icon { color: #fff; }
  .hero-card { grid-template-columns: 1fr; padding: 31px 27px; }
  .hero-card h2 { font-size: 32px; }
  .hero-orbit { display: none; }
  .paper-grid { grid-template-columns: 1fr; }
  .library-toolbar { align-items: stretch; flex-direction: column; }
  .filter-tabs { overflow-x: auto; }
  .filter-tabs button { white-space: nowrap; }
  .score-bars { gap: 8px; }
  .form-grid { grid-template-columns: 1fr; }
  .drawer-body { padding: 23px 18px; }
  .profile-title { font-size: 29px; }
  .language-tab { padding: 0 8px; font-size: 10px; }
  .report-toolbar { align-items: stretch; flex-direction: column; gap: 8px; }
}
@media (max-width: 440px) {
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .metric-card { padding: 17px; }
  .metric-card strong { font-size: 27px; }
}

.login-screen { min-height: 100vh; display: grid; place-items: center; padding: 30px; background: radial-gradient(ellipse at 20% 0%, #d7ebe2, transparent 60%), var(--paper); }
.login-card { width: min(620px, 100%); padding: 50px; background: #fff; border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow); }
.login-card > .brand-logo { margin-bottom: 25px; }
.auth-loading-card { display: grid; justify-items: center; gap: 15px; color: var(--muted); }
.login-card h1 { font-size: 39px; line-height: 1.3; font-weight: 500; }
.login-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.8; }
#google-login { margin: 28px 0 10px; min-height: 44px; }
#login-status { font-size: 13px; min-height: 48px; }
.login-features { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 24px; border-top: 1px solid var(--line); }
.login-features span { padding: 7px 10px; font-size: 11px; background: #edf5f2; border-radius: 8px; }
.account-nav { border-top: 1px solid #36564e; padding-top: 15px; margin-top: 20px; }
.sidebar-account { display: grid; gap: 10px; padding: 20px 14px; color: var(--mint); }
.sidebar-account strong { font-size: 13px; overflow-wrap: anywhere; }
.sidebar-account button { justify-self: start; border: 0; padding: 0; font-size: 11px; color: #9bb8ae; background: none; }
.account-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.account-grid h2, .account-section h2, #admin-view h2 { margin-top: 8px; font-weight: 500; font-size: 25px; }
.account-muted { font-size: 13px; color: var(--muted); line-height: 1.8; }
.account-form { display: grid; gap: 17px; margin-top: 22px; }
.account-form > label, .settings-grid > label { display: grid; gap: 8px; font-size: 13px; font-weight: 500; }
.account-form input:not([type=checkbox]), .account-form textarea { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: #fff; color: var(--ink); font: inherit; }
.account-form input:focus, .account-form textarea:focus { outline: 2px solid var(--mint-bright); outline-offset: 2px; }
.account-form small { font-size: 12px; line-height: 1.7; color: var(--muted); }
.account-form > button { justify-self: start; }
.account-form textarea { resize: vertical; }
.account-form .check-label, .check-label { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 400; }
.check-label input { width: 17px; height: 17px; accent-color: var(--deep); }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.review-type-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 20px 0; }
.review-type-card { display: grid; gap: 9px; text-align: left; padding: 18px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; }
.review-type-card.selected { border-color: var(--deep); background: #edf5f2; }
.review-type-card small, .review-type-card span { color: var(--muted); font-size: 12px; line-height: 1.6; }
#review-type-form textarea { font: 13px/1.7 monospace; }
.review-type-config { flex-basis: 100%; min-width: 0; }
.review-type-config select { min-width: 0; max-width: 100%; flex: 1; }
.account-section { margin-top: 22px; }
.wallet-hero { background: linear-gradient(125deg, #173a35, #285b52); border-radius: 22px; padding: 38px; color: #fff; }
.wallet-hero h2 { font-size: 60px; margin: 30px 0; }
.wallet-hero h2 small { font-size: 25px; color: var(--mint); }
.wallet-hero p:not(.hero-kicker) { color: #c4d4cf; font-size: 14px; line-height: 1.7; }
.amount-presets { display: flex; gap: 8px; flex-wrap: wrap; }
.amount-presets .button { padding: 0 12px; }
.ledger-list { display: grid; }
.ledger-list > div { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.ledger-list small { display: block; color: var(--muted); margin-top: 5px; overflow-wrap: anywhere; }
.credit-positive { color: #17634e; }
.danger-text { color: var(--danger); margin-top: 20px; padding: 0; }
.captcha-overlay { position: fixed; inset: 0; z-index: 210; display: grid; place-items: center; background: rgba(8,24,21,.55); padding: 18px; }
.captcha-overlay .panel { width: min(410px, 100%); }
.captcha-overlay .button { margin-top: 20px; }
.toast-region { z-index: 230; }
.sidebar { overflow-y: auto; }
@media (max-width: 950px) { .account-grid, .settings-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) {
  .login-screen { padding: 14px; }
  .login-card { padding: 30px 18px; }
  .login-card h1 { font-size: 29px; }
  .wallet-hero { padding: 26px; }
  .wallet-hero h2 { font-size: 48px; }
}
