/* 方寸间 · 运营平台 — the studio's own look, taken from the company site (fangcunwujin.com):
   pale paper, green-black ink, one cobalt blue, Song-style headings, monospaced labels, square corners and thin rules.
   Everything is scoped to :root[data-theme="fangcun"], which the server sets only in console mode,
   so client workbenches keep their own brand. Warnings stay red (--rose); blue is for actions and the current place. */

:root[data-theme="fangcun"] {
  --paper: #f7f8f2;
  --paper-deep: #edf0e8;
  --sheet: #fbfcf8;
  --sheet-raised: #ffffff;
  --ink: #202820;
  --ink-2: #414b40;
  --ink-3: #657064;
  --ink-4: #9fa598;
  --rule: #dce1d6;
  --rule-soft: #e7ebe2;

  --accent: #214ad5;
  --accent-deep: #133ab7;
  --accent-soft: #dde5fc;
  --accent-wash: #eef2fd;

  --rose: #c4452d;         /* alerts only: low balance, failures */
  --rose-deep: #9c3421;
  --rose-soft: #f6e1da;
  --rose-wash: #fbf0ec;
  --celadon: #3d7a52;
  --celadon-soft: #dfeadc;
  --ochre: #b8741a;
  --ochre-soft: #f5e7cc;
  --indigo: #214ad5;
  --indigo-soft: #dde5fc;
  --vermilion: #214ad5;

  --viz-1: #214ad5;
  --viz-2: #3d7a52;
  --viz-3: #d9822b;
  --viz-emph: #c4452d;
  --viz-grid: #e3e7de;
  --viz-axis: #8a948a;
  --viz-surface: #fbfcf8;

  --font-display: "Songti SC", "STSong", "Noto Serif CJK SC", "Noto Serif SC", serif;
  --font-body: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-numeral: "SF Pro Display", "Helvetica Neue", "PingFang SC", sans-serif;
  --font-mono: "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;

  --radius-sm: 0px;
  --radius: 0px;
  --radius-lg: 0px;
  --shadow-paper: none;
  --shadow-lift: 0 18px 40px -26px rgba(32, 40, 32, .45);
  --shadow-float: 0 24px 60px -28px rgba(32, 40, 32, .5);
  --grain: none;
}

[data-theme="fangcun"] body { background: var(--paper); }
[data-theme="fangcun"] ::selection { background: #ccdaff; color: var(--ink); }
[data-theme="fangcun"] :focus-visible { outline: 3px solid #f59d24; outline-offset: 3px; border-radius: 0; }
[data-theme="fangcun"] a { color: var(--accent); }

/* labels: monospaced, tracked, like the site's eyebrows */
[data-theme="fangcun"] .eyebrow { font: 500 10.5px/1.3 var(--font-mono); letter-spacing: .16em; color: var(--ink-3); }
[data-theme="fangcun"] .topbar .eyebrow { display: inline-flex; align-items: center; gap: 8px; }
[data-theme="fangcun"] .topbar .eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
[data-theme="fangcun"] h1, [data-theme="fangcun"] h2, [data-theme="fangcun"] h3 { font-weight: 500; letter-spacing: -.01em; }

/* brand: the 2×2 mark — three solid squares and one open */
.brand-mark { width: 30px; height: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; flex: none; }
.brand-mark i { background: #214ad5; }
.brand-mark i:last-child { background: none; border: 2px solid #214ad5; }
[data-theme="fangcun"] .brand { padding: 6px 8px 22px; gap: 12px; }
[data-theme="fangcun"] .brand-name strong { font: 650 19px/1.2 var(--font-body); letter-spacing: .18em; }
[data-theme="fangcun"] .brand-name small { font: 400 9px/1 var(--font-mono); letter-spacing: .2em; margin-top: 6px; color: var(--ink-3); }

/* sidebar: flat paper and a rule, the current page marked in blue */
[data-theme="fangcun"] .sidebar { background: var(--paper); border-right: 1px solid var(--rule); }
[data-theme="fangcun"] .nav a { border-radius: 0; color: var(--ink-2); }
[data-theme="fangcun"] .nav a:hover { background: var(--paper-deep); color: var(--ink); }
[data-theme="fangcun"] .nav a.active { background: var(--sheet-raised); color: var(--accent); font-weight: 600; box-shadow: inset 0 0 0 1px var(--rule); }
[data-theme="fangcun"] .nav a.active::before { left: -14px; top: 0; bottom: 0; width: 3px; border-radius: 0; background: var(--accent); }
[data-theme="fangcun"] .nav a .badge { border-radius: 0; background: var(--accent); }
[data-theme="fangcun"] .nav-label { font-family: var(--font-mono); }
[data-theme="fangcun"] .sidebar-foot { border-top-color: var(--rule); }
[data-theme="fangcun"] .topbar { background: rgba(247, 248, 242, .9); }
[data-theme="fangcun"] .topbar.scrolled { border-bottom-color: var(--rule); }

/* surfaces: thin rules instead of shadows */
[data-theme="fangcun"] .sheet, [data-theme="fangcun"] .card { border-color: var(--rule); box-shadow: none; }
[data-theme="fangcun"] .table th { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; font-weight: 500; }
[data-theme="fangcun"] .table tr:hover td { background: var(--accent-wash); }

/* controls: square, primary in blue */
[data-theme="fangcun"] .btn { border-radius: 0; }
[data-theme="fangcun"] .btn:hover { box-shadow: none; border-color: var(--ink-3); }
[data-theme="fangcun"] .btn.primary { --btn-bg: var(--accent); --btn-fg: #fff; --btn-border: var(--accent); }
[data-theme="fangcun"] .btn.primary:hover { --btn-bg: var(--accent-deep); border-color: var(--accent-deep); }
[data-theme="fangcun"] .btn.ghost:hover { --btn-bg: var(--paper-deep); }
[data-theme="fangcun"] .chip, [data-theme="fangcun"] .tag, [data-theme="fangcun"] .search, [data-theme="fangcun"] .seal { border-radius: 0; }
[data-theme="fangcun"] .chip.active, [data-theme="fangcun"] .chip[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: #fff; }
[data-theme="fangcun"] .input:focus, [data-theme="fangcun"] .textarea:focus, [data-theme="fangcun"] .select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(33, 74, 213, .14); }
[data-theme="fangcun"] .spinner { border-top-color: var(--accent); }
[data-theme="fangcun"] .tag.indigo { background: var(--accent-soft); color: var(--accent-deep); }

/* sign-in */
[data-theme="fangcun"] .auth-layer { background: linear-gradient(#a5b1a21a 1px, transparent 1px) 0 0 / 37px 37px, linear-gradient(90deg, #a5b1a21a 1px, transparent 1px) 0 0 / 37px 37px, var(--paper); }
[data-theme="fangcun"] .auth-card { border-radius: 0; border-color: var(--rule); box-shadow: var(--shadow-lift); }
[data-theme="fangcun"] .auth-card::before { height: 3px; background: var(--accent); }
[data-theme="fangcun"] .auth-brand strong { font: 650 19px/1.2 var(--font-body); letter-spacing: .18em; }
[data-theme="fangcun"] .auth-brand small { font: 400 9px/1 var(--font-mono); letter-spacing: .2em; }
[data-theme="fangcun"] .auth-notice, [data-theme="fangcun"] .auth-error, [data-theme="fangcun"] .auth-lede code { border-radius: 0; }
[data-theme="fangcun"] .auth-colophon { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; }

/* numbers: serif figures, indices in mono blue */
[data-theme="fangcun"] .numeral { font-variant-numeric: lining-nums tabular-nums; }
[data-theme="fangcun"] .kpi strong, [data-theme="fangcun"] .tenant-balance strong, [data-theme="fangcun"] .credit-value strong {
  font-family: var(--font-numeral); font-weight: 300; letter-spacing: -.02em; font-variant-numeric: lining-nums tabular-nums; }
[data-theme="fangcun"] .health-dot { border-radius: 0; }
[data-theme="fangcun"] .notice { border-radius: 0; }
[data-theme="fangcun"] .user-chip .avatar, [data-theme="fangcun"] .avatar.large { background: var(--accent-soft); color: var(--accent-deep); border-radius: 0; }
