:root {
  --paper: #f2ead9;
  --paper-2: #e8ddc8;
  --ink: #332f29;
  --muted: #81796d;
  --line: rgba(74, 65, 54, .13);
  --jade: #557a69;
  --jade-dark: #38594c;
  --cinnabar: #a34e42;
  --gold: #aa8250;
  --shadow: 0 14px 40px rgba(55, 47, 37, .14);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: #d7cdbb; color: var(--ink); font-family: ui-serif, "Songti SC", "STSong", "Noto Serif SC", serif; }
button { font: inherit; color: inherit; }
.app { position: relative; width: 100%; height: 100dvh; max-width: 620px; margin: 0 auto; overflow: hidden; background: var(--paper); box-shadow: 0 0 80px rgba(33,29,24,.18); }
.world-stage { position: absolute; inset: 0 0 35.5%; 0; overflow: hidden; background: linear-gradient(180deg,#eee5d4 0%,#e5dac5 54%,#ddd0b9 100%); }
.scene { position: absolute; inset: 0; touch-action: none; }
.scene canvas { width: 100%; height: 100%; display: block; }
.wash { position: absolute; filter: blur(22px); border-radius: 50%; opacity: .34; pointer-events: none; }
.wash-a { width: 50vw; height: 50vw; max-width: 280px; max-height: 280px; right: -16%; top: 3%; background: #b8cbb9; }
.wash-b { width: 46vw; height: 46vw; max-width: 240px; max-height: 240px; left: -13%; top: 34%; background: #d7c4a9; }
.hud { position: absolute; z-index: 8; top: max(12px, env(safe-area-inset-top)); left: 12px; right: 12px; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; pointer-events: none; }
.hud button { pointer-events: auto; }
.seal-button { display: flex; gap: 8px; border: 1px solid rgba(75,66,55,.13); background: rgba(244,237,222,.82); backdrop-filter: blur(12px); border-radius: 15px; padding: 7px 10px 7px 7px; box-shadow: 0 6px 18px rgba(62,54,44,.08); }
.seal-mark { width: 31px; height: 31px; display: grid; place-items: center; background: var(--cinnabar); color: #f7ecda; border-radius: 8px 8px 8px 3px; font-weight: 800; font-size: 18px; }
.seal-copy { display: grid; text-align: left; line-height: 1.05; }
.seal-copy b { font-size: 14px; letter-spacing: .06em; }
.seal-copy small { color: var(--muted); margin-top: 5px; font-size: 9px; }
.hud-actions { display: flex; gap: 6px; }
.hud-chip, .round-button { border: 1px solid rgba(75,66,55,.13); background: rgba(244,237,222,.84); backdrop-filter: blur(12px); box-shadow: 0 6px 18px rgba(62,54,44,.08); }
.hud-chip { min-width: 50px; height: 46px; border-radius: 14px; display: grid; place-items: center; align-content: center; line-height: 1.0; padding: 0 8px; }
.hud-chip span { font-size: 13px; font-weight: 700; }
.hud-chip small { font-size: 9px; color: var(--muted); margin-top: 4px; }
.hud-chip.coin span { color: #7b5934; }
.round-button { width: 42px; height: 42px; border-radius: 14px; font-size: 19px; }
.scene-caption { position: absolute; z-index: 5; left: 14px; right: 14px; bottom: 9px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: rgba(56,50,43,.62); font-size: 10px; pointer-events: none; }
.scene-caption span:first-child { padding: 5px 8px; border-radius: 999px; background: rgba(244,237,222,.70); border: 1px solid rgba(70,61,51,.08); }
.sheet { position: absolute; z-index: 12; left: 0; right: 0; bottom: calc(68px + env(safe-area-inset-bottom)); height: 42%; min-height: 310px; border-radius: 26px 26px 0 0; background: linear-gradient(180deg, rgba(247,241,229,.98), rgba(242,233,216,.99)); box-shadow: 0 -15px 36px rgba(61,52,42,.13); border-top: 1px solid rgba(255,255,255,.58); overflow: hidden; }
.sheet-handle { width: 36px; height: 4px; border-radius: 99px; background: rgba(66,59,51,.18); margin: 8px auto 3px; }
.panel-content { height: calc(100% - 15px); overflow: auto; overscroll-behavior: contain; padding: 8px 16px 22px; scrollbar-width: none; }
.panel-content::-webkit-scrollbar { display: none; }
.eyebrow { color: var(--cinnabar); font-size: 10px; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; }
.panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin: 4px 0 12px; }
.panel-head h2 { margin: 0; font-size: 23px; font-weight: 800; letter-spacing: .03em; }
.panel-head p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.status-pill { flex: 0 0 auto; padding: 6px 9px; background: rgba(85,122,105,.10); color: var(--jade-dark); border: 1px solid rgba(85,122,105,.17); border-radius: 999px; font-size: 10px; }
.info-strip { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); border-radius: 15px; overflow: hidden; margin-bottom: 13px; background: rgba(255,255,255,.25); }
.info-item { padding: 9px 10px; border-right: 1px solid var(--line); }
.info-item:last-child { border: 0; }
.info-item small { display: block; color: var(--muted); font-size: 9px; }
.info-item b { display: block; margin-top: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.section-title { display: flex; align-items: center; justify-content: space-between; margin: 14px 1px 8px; }
.section-title b { font-size: 13px; }
.section-title small { color: var(--muted); font-size: 9px; }
.blueprint-list { display: grid; gap: 8px; }
.blueprint-card { width: 100%; border: 1px solid var(--line); background: rgba(255,255,255,.32); border-radius: 16px; padding: 10px; display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: 10px; text-align: left; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.blueprint-card:active { transform: scale(.985); }
.blueprint-card.selected { border-color: rgba(85,122,105,.48); background: rgba(102,139,120,.10); box-shadow: inset 0 0 0 1px rgba(85,122,105,.10); }
.bp-thumb { height: 48px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(145deg,#d4c6aa,#eee2ca); font-size: 25px; }
.bp-copy b { display: block; font-size: 13px; }
.bp-copy small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.bp-price { text-align: right; font-size: 12px; color: #755736; font-weight: 800; }
.bp-price small { display: block; color: var(--muted); font-size: 8px; font-weight: 400; margin-top: 3px; }
.primary-action { width: 100%; margin-top: 11px; border: 0; border-radius: 15px; padding: 13px 14px; background: linear-gradient(180deg,#587b6a,#3f6353); color: #fff9ed; box-shadow: 0 8px 18px rgba(53,83,68,.22); font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.primary-action:disabled { opacity: .43; box-shadow: none; }
.secondary-action { width: 100%; margin-top: 8px; border: 1px solid var(--line); border-radius: 14px; padding: 11px 14px; background: rgba(255,255,255,.24); font-size: 12px; }
.empty-state { border: 1px dashed rgba(70,63,54,.20); border-radius: 18px; padding: 18px 16px; color: var(--muted); font-size: 11px; line-height: 1.7; background: rgba(255,255,255,.18); }
.market-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.market-card { border: 1px solid var(--line); background: rgba(255,255,255,.30); border-radius: 17px; padding: 11px; min-height: 112px; }
.market-card .glyph { font-size: 26px; }
.market-card b { display: block; margin-top: 6px; font-size: 12px; }
.market-card p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.timeline { display: grid; gap: 10px; }
.timeline-row { display: grid; grid-template-columns: 9px 1fr; gap: 10px; }
.timeline-dot { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--jade); box-shadow: 0 0 0 4px rgba(85,122,105,.10); }
.timeline-row b { font-size: 11px; }
.timeline-row p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.bottom-nav { position: absolute; z-index: 20; left: 0; right: 0; bottom: 0; height: calc(68px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(4,1fr); background: rgba(244,236,221,.98); border-top: 1px solid var(--line); box-shadow: 0 -6px 24px rgba(60,52,43,.08); }
.nav-item { border: 0; background: transparent; display: grid; place-content: center; justify-items: center; gap: 3px; color: #8c8376; }
.nav-item span { font-size: 17px; line-height: 1; }
.nav-item b { font-size: 9px; font-weight: 500; }
.nav-item.active { color: var(--jade-dark); }
.nav-item.active span { transform: translateY(-1px); }
.toast { position: absolute; z-index: 40; left: 50%; bottom: calc(82px + env(safe-area-inset-bottom)); transform: translate(-50%, 16px); min-width: 170px; max-width: 82%; padding: 10px 13px; border-radius: 13px; background: rgba(47,43,37,.92); color: #fff8eb; text-align: center; font-size: 11px; opacity: 0; pointer-events: none; transition: .22s ease; box-shadow: var(--shadow); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.fallback-map { position: absolute; inset: 9% 4% 5%; transform: perspective(650px) rotateX(52deg) rotateZ(-4deg); transform-origin: 50% 65%; }
.fallback-street { position:absolute; left:7%; right:7%; top:44%; height:19%; background:#cfc1a5; border-radius:20px; box-shadow: inset 0 0 0 1px rgba(70,60,50,.12); }
.fallback-river { position:absolute; left:-4%; right:-4%; bottom:1%; height:25%; background:linear-gradient(180deg,#a7c6c0,#86aaa5); border-radius:45% 40% 12% 10%; opacity:.85; }
.fallback-lot { position:absolute; border:1px dashed rgba(77,68,57,.34); background:rgba(236,226,205,.86); border-radius:13px; display:grid; place-items:center; font-size:10px; color:#766c5e; box-shadow:0 10px 20px rgba(75,65,55,.10); }
.fallback-lot.occupied { background:#ded3bd; border-style:solid; }
.fallback-house { font-size:28px; display:block; margin-bottom:2px; }
@media (min-width: 621px) { body { background: #c9bfad; } .app { border-left: 1px solid rgba(255,255,255,.4); border-right: 1px solid rgba(255,255,255,.4); } }
@media (max-height: 760px) { .world-stage { bottom: 38%; } .sheet { height: 44%; min-height: 275px; } .panel-head h2 { font-size: 20px; } .blueprint-card { padding: 8px; } .bp-thumb { height: 42px; } }
.vote-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
.vote-row .primary-action, .vote-row .secondary-action { margin-top:0; }
.selected-yes { outline:2px solid rgba(85,122,105,.35); }
.selected-no { outline:2px solid rgba(163,78,66,.28); }
.success-state { margin-top:10px; border:1px solid rgba(85,122,105,.24); background:rgba(85,122,105,.09); color:var(--jade-dark); border-radius:16px; padding:14px; font-size:11px; line-height:1.65; }
.scene-error { position:absolute; inset:0; display:grid; place-items:center; padding:30px; text-align:center; color:var(--muted); font-size:12px; }
.market-list { display:grid; gap:9px; }
.offer-card { border:1px solid var(--line); background:rgba(255,255,255,.30); border-radius:17px; padding:11px; }
.offer-card.mine { background:rgba(85,122,105,.07); border-color:rgba(85,122,105,.18); }
.offer-main { display:grid; grid-template-columns:42px 1fr auto; gap:9px; align-items:center; }
.offer-main .glyph { width:40px; height:40px; border-radius:11px; display:grid; place-items:center; background:#e4d7bd; font-size:18px; }
.offer-main b { display:block; font-size:12px; }
.offer-main p { margin:3px 0 0; color:var(--muted); font-size:9px; line-height:1.45; }
.offer-main strong { color:#755736; font-size:13px; text-align:right; }
.offer-main strong small { display:block; color:var(--muted); font-size:8px; font-weight:400; }
.mini-action { width:100%; margin-top:9px; border:0; border-radius:11px; padding:9px 10px; background:var(--jade); color:#fff9ed; font-size:10px; font-weight:700; }
.mini-action.secondary { background:rgba(255,255,255,.35); color:var(--jade-dark); border:1px solid rgba(85,122,105,.20); }
.market-rule { margin-top:12px; }
.world-ai-input{width:100%;box-sizing:border-box;border:1px solid rgba(104,83,60,.24);border-radius:14px;padding:12px 13px;background:rgba(255,252,244,.9);color:#4c4034;font:inherit;line-height:1.55;resize:vertical;outline:none;margin:4px 0 12px}.world-ai-input:focus{border-color:rgba(123,91,57,.55);box-shadow:0 0 0 3px rgba(123,91,57,.08)}
/* v0.16 Living World Experience */
.bottom-nav { grid-template-columns: repeat(5,1fr); }
.life-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:2px 0 12px; }
.life-metrics div { min-width:0; padding:9px 7px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.26); }
.life-metrics small { display:block; color:var(--muted); font-size:8px; }
.life-metrics b { display:block; margin-top:4px; font-size:11px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.hero-opportunity { width:100%; border:1px solid rgba(85,122,105,.22); border-radius:18px; padding:12px; display:grid; grid-template-columns:44px 1fr auto; gap:10px; align-items:center; text-align:left; background:linear-gradient(145deg,rgba(85,122,105,.13),rgba(255,255,255,.32)); color:var(--ink); }
.hero-glyph,.op-glyph { display:grid; place-items:center; border-radius:12px; background:#e1d4bb; color:#6e5338; font-weight:800; }
.hero-glyph { width:44px; height:44px; font-size:18px; }
.hero-opportunity b,.opportunity-row b,.signal-row b { display:block; font-size:11px; }
.hero-opportunity small,.opportunity-row small,.signal-row small { display:block; margin-top:3px; color:var(--muted); font-size:9px; line-height:1.45; }
.hero-opportunity em { font-style:normal; color:var(--jade-dark); font-size:9px; white-space:nowrap; }
.opportunity-list,.thread-list,.signal-list { display:grid; gap:8px; }
.opportunity-row { width:100%; border:1px solid var(--line); border-radius:15px; padding:9px; display:grid; grid-template-columns:36px 1fr 12px; gap:9px; align-items:center; text-align:left; background:rgba(255,255,255,.25); color:var(--ink); }
.op-glyph { width:36px; height:36px; font-size:13px; }
.opportunity-row i { font-style:normal; color:var(--muted); }
.thread-card { border:1px solid var(--line); border-radius:16px; padding:11px; background:rgba(255,255,255,.25); }
.thread-card.complete { background:rgba(85,122,105,.07); border-color:rgba(85,122,105,.18); }
.thread-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.thread-head b { display:block; font-size:11px; }
.thread-head small { display:block; margin-top:3px; color:var(--muted); font-size:9px; }
.thread-head strong { color:var(--jade-dark); font-size:11px; }
.thread-track { height:4px; margin:9px 0 8px; border-radius:99px; background:rgba(80,70,60,.09); overflow:hidden; }
.thread-track span { display:block; height:100%; border-radius:inherit; background:var(--jade); }
.thread-steps { display:flex; flex-wrap:wrap; gap:5px 9px; }
.thread-steps span { color:var(--muted); font-size:8px; }
.thread-steps span.done { color:var(--jade-dark); }
.signal-row { width:100%; border:0; border-bottom:1px solid var(--line); padding:8px 2px; display:grid; grid-template-columns:28px 1fr; gap:8px; text-align:left; background:transparent; color:var(--ink); }
.signal-row>span { width:26px; height:26px; border-radius:9px; display:grid; place-items:center; background:rgba(123,91,57,.09); color:#775b3e; font-size:10px; font-weight:800; }
.now-rule { margin-top:12px; }

/* v0.22.5 — player-facing Jiangnan polish */
:root {
  --paper: #f5eedf;
  --paper-2: #e9deca;
  --ink: #282923;
  --muted: #766f63;
  --line: rgba(61, 57, 49, .12);
  --jade: #315f58;
  --jade-dark: #214a45;
  --cinnabar: #a84e3f;
  --gold: #aa7d3f;
  --shadow: 0 18px 48px rgba(42, 38, 31, .15);
}
body { background: #cfc5b3; }
.app { background: #f3ead8; }
.app::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:60; opacity:.07; mix-blend-mode:multiply; background-image: radial-gradient(circle at 20% 20%, #5f5548 .55px, transparent .75px), radial-gradient(circle at 70% 60%, #5f5548 .4px, transparent .7px); background-size: 17px 17px, 23px 23px; }
.world-stage { inset:0 0 27.5% 0; background: linear-gradient(180deg,#e9e4d7 0%,#dfe4d7 40%,#d6d4c4 100%); }
.world-stage::after { content:""; position:absolute; inset:auto 0 0; height:23%; pointer-events:none; background:linear-gradient(180deg,transparent,rgba(42,56,49,.08)); }
.hud { top:max(10px,env(safe-area-inset-top)); left:10px; right:10px; }
.seal-button,.hud-chip,.round-button { background:rgba(248,243,232,.82); border-color:rgba(55,57,49,.11); backdrop-filter:blur(18px) saturate(.92); -webkit-backdrop-filter:blur(18px) saturate(.92); box-shadow:0 7px 22px rgba(46,43,36,.09); }
.seal-button { border-radius:16px; padding:6px 10px 6px 6px; }
.seal-mark { background:#a8493c; border-radius:9px 9px 9px 3px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.22); }
.seal-copy b { font-size:15px; letter-spacing:.08em; }
.hud-chip { min-width:48px; height:44px; }
.round-button { width:40px;height:40px; }
.scene-caption { bottom:12px; font-size:9px; color:rgba(38,44,39,.58); }
.scene-caption span:first-child { background:rgba(248,243,232,.72); border-color:rgba(50,55,48,.08); }

.sheet { bottom:calc(68px + env(safe-area-inset-bottom)); height:34%; min-height:260px; border-radius:30px 30px 0 0; background:linear-gradient(180deg,rgba(250,246,236,.985),rgba(244,236,220,.995)); box-shadow:0 -18px 48px rgba(49,43,34,.14); transition:height .34s cubic-bezier(.2,.75,.25,1); }
.sheet.expanded { height:69%; }
.sheet-handle { display:block; width:72px; height:20px; border:0; background:transparent; padding:0; margin:0 auto 0; position:relative; cursor:pointer; }
.sheet-handle span { position:absolute; left:50%; top:8px; width:38px; height:4px; transform:translateX(-50%); border-radius:99px; background:rgba(51,49,43,.18); }
.panel-content { height:calc(100% - 20px); padding:3px 17px 26px; }
.context-kicker { display:flex; align-items:center; gap:6px; color:var(--cinnabar); font-size:9px; letter-spacing:.08em; margin:1px 0 5px; }
.context-kicker i { font-style:normal; opacity:.45; }
.eyebrow { color:var(--cinnabar); font-size:9px; letter-spacing:.14em; margin-bottom:5px; }
.panel-head { margin:2px 0 10px; }
.panel-head h2 { font-size:22px; letter-spacing:.035em; }
.panel-head p { max-width:420px; margin-top:4px; font-size:10px; line-height:1.6; }
.home-head { margin-bottom:8px; }
.status-pill { background:rgba(49,95,88,.08); border-color:rgba(49,95,88,.13); color:var(--jade-dark); padding:5px 9px; }
.section-title { margin:14px 2px 7px; }
.section-title b { font-size:12px; letter-spacing:.03em; }
.section-title small { font-size:8.5px; }

.hero-opportunity { border-color:rgba(49,95,88,.18); border-radius:19px; padding:11px; grid-template-columns:42px 1fr 14px; background:linear-gradient(145deg,rgba(49,95,88,.13),rgba(255,255,255,.46)); box-shadow:0 7px 18px rgba(51,67,57,.06); }
.hero-opportunity .hero-glyph { width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#ddd0b7,#efe5d2); color:#71533a; }
.hero-opportunity span:nth-child(2)>small { color:var(--cinnabar); margin:0 0 2px; letter-spacing:.06em; }
.hero-opportunity span:nth-child(2)>b { font-size:12px; }
.hero-opportunity span:nth-child(2)>em { display:block; font-style:normal; margin-top:3px; color:var(--muted); font-size:9px; line-height:1.35; }
.hero-opportunity>i { font-style:normal;color:var(--jade-dark);font-size:18px; }
.quick-row { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:9px; }
.quick-pill { border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.30); padding:8px 6px; font-size:9px; color:#5f594f; }
.quick-pill span { display:inline-grid; place-items:center; width:19px;height:19px;border-radius:7px;margin-right:4px;background:rgba(49,95,88,.08);color:var(--jade-dark);font-weight:700; }
.compact-cards { display:grid; gap:7px; }
.person-card { display:grid; grid-template-columns:36px 1fr auto; gap:9px; align-items:center; padding:8px 9px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.26); }
.portrait-seal { width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#e3d5bc;color:#6f5036;font-size:12px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(111,80,54,.08); }
.person-card b { display:block;font-size:11px; }
.person-card small { display:block;margin-top:3px;color:var(--muted);font-size:8.5px; }
.person-card button { border:1px solid rgba(49,95,88,.15);background:rgba(49,95,88,.08);color:var(--jade-dark);border-radius:10px;padding:7px 9px;font-size:9px; }
.person-card button:disabled { opacity:.5; }
.quiet-card { border:1px dashed rgba(64,60,52,.16); border-radius:16px; padding:12px; display:grid; gap:4px; background:rgba(255,255,255,.18); }
.quiet-card b { font-size:11px; }
.quiet-card span { color:var(--muted);font-size:9px;line-height:1.5; }
.quiet-card.small { padding:10px; }
.life-note { margin-top:14px; padding:11px 12px; border-left:2px solid rgba(168,78,63,.45); background:rgba(168,78,63,.035); border-radius:0 12px 12px 0; }
.life-note span,.life-note small { display:block;color:var(--muted);font-size:8.5px; }
.life-note b { display:block;margin:3px 0;font-size:11px; }
.secondary-action.soft { background:transparent;border-style:dashed;color:var(--muted); }

.info-strip { border-radius:16px; background:rgba(255,255,255,.26); margin-bottom:11px; }
.blueprint-card,.offer-card,.opportunity-row,.thread-card { background:rgba(255,255,255,.28); border-color:rgba(60,57,50,.11); }
.blueprint-card { border-radius:17px; padding:9px; }
.blueprint-card.selected { background:rgba(49,95,88,.09); border-color:rgba(49,95,88,.30); }
.bp-thumb { background:linear-gradient(145deg,#d8cbb3,#eee4d1); }
.primary-action { background:linear-gradient(180deg,#35645c,#254f49); box-shadow:0 9px 22px rgba(33,75,67,.19); border-radius:14px; }
.secondary-action { background:rgba(255,255,255,.26); }
.empty-state { border-color:rgba(64,60,52,.15); background:rgba(255,255,255,.16); }
.offer-main .glyph,.signal-row>span { background:#e5d9c2; color:#6d523a; }
.signal-row { grid-template-columns:28px 1fr 10px; }
.signal-row>i { font-style:normal;color:var(--muted);align-self:center; }
.success-state { background:rgba(49,95,88,.07); border-color:rgba(49,95,88,.18); }

.bottom-nav { height:calc(68px + env(safe-area-inset-bottom)); background:rgba(248,242,230,.96); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-top:1px solid rgba(61,57,49,.09); box-shadow:0 -9px 28px rgba(54,46,37,.08); }
.nav-item { position:relative; gap:4px; color:#7d766b; }
.nav-icon { width:29px;height:25px;display:grid;place-items:center;border-radius:10px;font-size:16px!important;transition:.18s ease; }
.nav-item b { font-size:9px; }
.nav-item.active { color:var(--jade-dark); }
.nav-item.active .nav-icon { background:rgba(49,95,88,.10); transform:translateY(-1px); }
.nav-item.active::after { content:"";position:absolute;top:2px;width:14px;height:2px;border-radius:99px;background:var(--cinnabar);opacity:.7; }
.toast { background:rgba(37,39,34,.92); }

@media (max-height:760px) {
  .world-stage { bottom:31%; }
  .sheet { height:37%; min-height:245px; }
  .sheet.expanded { height:72%; }
}

/* v0.22.6 — Scene Art Pass: Jiangnan miniature world */
.world-stage {
  background:
    radial-gradient(circle at 72% 17%, rgba(255,246,222,.78), transparent 27%),
    radial-gradient(circle at 18% 46%, rgba(180,203,188,.42), transparent 32%),
    linear-gradient(180deg,#e8e1d2 0%,#dde0d1 41%,#cfcdbb 100%);
}
.world-stage::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(55,65,56,.08),transparent 12%,transparent 88%,rgba(55,65,56,.06)),
    linear-gradient(180deg,rgba(255,250,235,.2),transparent 24%,transparent 78%,rgba(43,56,50,.11));
  mix-blend-mode:multiply;
}
.scene canvas {
  filter:saturate(.9) contrast(.97) brightness(1.02);
}
.wash-a { background:#a7c1ae; opacity:.28; filter:blur(28px); }
.wash-b { background:#ddbea2; opacity:.24; filter:blur(30px); }
.scene-caption {
  bottom:14px;
  text-shadow:0 1px 10px rgba(248,242,227,.9);
}
.scene-caption span:last-child { opacity:.82; }
.seal-button,.hud-chip,.round-button {
  border-color:rgba(69,62,52,.12);
  background:rgba(248,241,226,.79);
  box-shadow:0 8px 24px rgba(58,49,39,.10), inset 0 1px rgba(255,255,255,.5);
}
.seal-button { position:relative; overflow:hidden; }
.seal-button::after {
  content:"";
  position:absolute;
  inset:auto 8px 4px 45px;
  height:1px;
  background:linear-gradient(90deg,rgba(168,78,63,.45),transparent);
}
.hud-chip small { letter-spacing:.04em; }
.sheet {
  border-top:1px solid rgba(255,255,255,.76);
  box-shadow:0 -18px 50px rgba(48,42,34,.15), 0 -1px 0 rgba(106,82,55,.07);
}
.sheet::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image:
    radial-gradient(circle at 25% 22%, rgba(75,65,53,.4) .45px, transparent .65px),
    radial-gradient(circle at 72% 58%, rgba(75,65,53,.35) .35px, transparent .55px);
  background-size:19px 19px,27px 27px;
}
.panel-content { position:relative; z-index:1; }
.scene-error {
  position:absolute; inset:0; display:grid; place-items:center; padding:30px;
  color:#6b6257; font-size:12px; text-align:center;
  background:linear-gradient(180deg,#e8e0cf,#d9d8c8);
}
@media (min-width:520px) {
  .scene canvas { filter:saturate(.94) contrast(.985) brightness(1.02); }
}

/* v0.22.7 — Scene Composition Pass: denser lived-in Jiangnan street */
.world-stage {
  background:
    radial-gradient(circle at 76% 13%, rgba(255,247,218,.86), transparent 23%),
    radial-gradient(circle at 16% 36%, rgba(169,198,178,.38), transparent 30%),
    linear-gradient(180deg,#ebe4d4 0%,#dfe2d3 42%,#cecbb8 100%);
}
.world-stage::after {
  height:31%;
  background:
    linear-gradient(180deg,transparent 0%,rgba(38,52,46,.035) 42%,rgba(36,50,43,.12) 100%);
}
.scene canvas {
  filter:saturate(.94) contrast(.985) brightness(1.025);
}
.scene::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 58px rgba(62,61,48,.10);
  background:linear-gradient(115deg,rgba(255,249,227,.08),transparent 36%,rgba(69,89,78,.035));
}
.scene-caption span:first-child {
  box-shadow:0 4px 16px rgba(45,48,40,.055);
}
.bp-thumb {
  position:relative;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(87,73,57,.07);
}
.bp-thumb::after {
  content:"";
  position:absolute;
  left:8px;right:8px;bottom:7px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(72,89,76,.28),transparent);
}
.blueprint-card.selected .bp-thumb {
  background:linear-gradient(145deg,#cbd8c7,#eee2c8);
}
@media (max-width:430px) {
  .seal-copy small { display:none; }
  .hud-actions { gap:5px; }
  .hud-chip { min-width:46px; padding-inline:6px; }
}

/* v0.24 — visible public-world construction */
.works-progress{
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(78,68,48,.09);
  border:1px solid rgba(78,68,48,.08);
  margin:10px 0 4px;
}
.works-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(73,108,86,.72),rgba(133,116,68,.78));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
  transition:width .45s ease;
}
.works-progress.compact{height:7px;margin:10px 0 0;}

/* v0.27 — Operations Desk & premium mobile polish */
.me-tabs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin:0 0 12px;
  border:1px solid rgba(58,55,48,.10);border-radius:15px;background:rgba(232,222,203,.52);
  box-shadow:inset 0 1px rgba(255,255,255,.45);
}
.me-tabs button{border:0;border-radius:11px;padding:8px 7px;background:transparent;color:#81786b;font-size:10px;letter-spacing:.05em;transition:.18s ease;}
.me-tabs button.active{background:rgba(251,247,238,.9);color:var(--jade-dark);font-weight:800;box-shadow:0 3px 11px rgba(63,55,44,.10),inset 0 0 0 1px rgba(49,95,88,.07);}
.me-hero{position:relative;display:grid;grid-template-columns:48px 1fr auto;gap:11px;align-items:center;padding:14px 13px;border:1px solid rgba(68,61,50,.11);border-radius:20px;overflow:hidden;background:
  radial-gradient(circle at 86% 12%,rgba(200,161,101,.18),transparent 30%),
  linear-gradient(145deg,rgba(255,252,244,.82),rgba(231,223,205,.62));box-shadow:0 9px 24px rgba(64,54,42,.07);}
.me-hero::after{content:"";position:absolute;right:-18px;bottom:-35px;width:118px;height:90px;opacity:.13;background:radial-gradient(ellipse at center,transparent 28%,#315f58 30% 31%,transparent 33% 43%,#315f58 45% 46%,transparent 48%);transform:rotate(-12deg);}
.me-seal{width:44px;height:44px;display:grid;place-items:center;border-radius:13px 13px 13px 4px;background:#9e4b3d;color:#f7ead5;font-size:21px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 5px 12px rgba(128,62,49,.17);}
.me-hero span{font-size:8.5px;color:var(--cinnabar);letter-spacing:.13em}.me-hero h2{margin:2px 0 3px;font-size:19px;letter-spacing:.03em}.me-hero p{margin:0;color:var(--muted);font-size:8.5px;line-height:1.45}.me-hero strong{position:relative;z-index:1;text-align:right;font-size:18px;color:#765431}.me-hero strong small{display:block;margin-top:2px;color:var(--muted);font-size:8px;font-weight:400}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.dashboard-card{border:1px solid var(--line);border-radius:17px;padding:10px;display:grid;grid-template-columns:32px 1fr 8px;gap:8px;align-items:center;text-align:left;background:rgba(255,255,255,.31);box-shadow:0 6px 16px rgba(60,51,39,.04)}.dashboard-card.industry{background:linear-gradient(145deg,rgba(54,98,86,.10),rgba(255,255,255,.34))}.dashboard-card.finance{background:linear-gradient(145deg,rgba(166,127,70,.10),rgba(255,255,255,.34))}.dash-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#e3d5bd;color:#6c5037;font-size:12px;font-weight:800}.dashboard-card small,.dashboard-card em{display:block;font-style:normal}.dashboard-card>div>small{font-size:8px;color:var(--muted)}.dashboard-card b{display:block;margin:2px 0;font-size:10px}.dashboard-card em{font-size:7.5px;color:#8b8377;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-card>i{font-style:normal;color:var(--jade-dark);font-size:15px}
.asset-ribbon{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.23)}.asset-ribbon span{padding:9px 5px;text-align:center;border-right:1px solid var(--line)}.asset-ribbon span:last-child{border:0}.asset-ribbon b{display:block;font-size:14px;color:#534a3f}.asset-ribbon small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.choice-grid button{border:1px solid var(--line);border-radius:16px;padding:10px;display:grid;grid-template-columns:28px 1fr;text-align:left;background:rgba(255,255,255,.27);column-gap:8px}.choice-grid button>span{grid-row:1/3;width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:rgba(49,95,88,.08);color:var(--jade-dark);font-size:13px}.choice-grid b{font-size:10px}.choice-grid small{font-size:7.5px;color:var(--muted);margin-top:2px}

.operations-hero{position:relative;overflow:hidden;border:1px solid rgba(49,95,88,.14);border-radius:21px;padding:13px;background:linear-gradient(145deg,rgba(235,240,230,.86),rgba(247,239,222,.88));box-shadow:0 9px 24px rgba(44,70,60,.06)}.operations-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 18%,rgba(168,78,63,.09),transparent 25%),linear-gradient(102deg,transparent 64%,rgba(49,95,88,.05))}.operations-watermark{position:absolute;right:8px;top:-19px;font-size:98px;line-height:1;color:rgba(49,95,88,.055);font-weight:900}.operations-hero .panel-head{position:relative;margin-bottom:10px}.operations-hero .panel-head h2{font-size:18px;max-width:310px}.operations-hero .panel-head p{font-size:8.5px;max-width:340px}.operations-metrics{position:relative;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(49,95,88,.11);padding-top:9px}.operations-metrics span{text-align:center;border-right:1px solid rgba(49,95,88,.10)}.operations-metrics span:last-child{border:0}.operations-metrics b{display:block;font-size:13px;color:#355a51}.operations-metrics small{display:block;margin-top:2px;font-size:7.5px;color:var(--muted)}
.work-order-list{display:grid;gap:8px}.work-order-card{width:100%;border:1px solid var(--line);border-radius:18px;padding:10px;background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(238,229,211,.38));text-align:left;box-shadow:0 6px 16px rgba(55,47,38,.045)}.work-order-card:active{transform:scale(.992)}.work-order-top{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center}.process-seal{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#d9c7a9,#efe3cd);box-shadow:inset 0 0 0 1px rgba(102,78,54,.08);color:#735237;font-size:13px;font-weight:800}.work-order-top small{display:block;color:var(--muted);font-size:7.5px}.work-order-top b{display:block;margin-top:2px;font-size:11px}.work-order-top strong{text-align:right;font-size:13px;color:var(--jade-dark)}.work-order-top strong small{font-size:7px;font-weight:400}.work-progress{height:6px;margin:9px 0 7px;border-radius:999px;background:rgba(64,57,47,.08);overflow:hidden}.work-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#416f63,#9c7d4a);box-shadow:0 0 8px rgba(65,111,99,.16)}.work-order-foot{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;color:var(--muted);font-size:7.5px}.work-order-foot em{font-style:normal;color:var(--jade-dark);font-size:8px}.worker-stack{display:flex}.worker-stack i{width:19px;height:19px;margin-left:-4px;border:2px solid #f4ecdc;border-radius:50%;display:grid;place-items:center;background:#d6c8ae;color:#654d37;font-style:normal;font-size:7px;font-weight:800}.worker-stack i:first-child{margin-left:0}
.operations-empty{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;border:1px dashed rgba(49,95,88,.18);border-radius:18px;padding:13px;background:rgba(255,255,255,.18)}.big-glyph{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(49,95,88,.08);color:var(--jade-dark);font-size:18px}.operations-empty b{font-size:11px}.operations-empty p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.5}
.employment-list,.job-board{display:grid;gap:7px}.employment-card{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:8px 9px;background:rgba(255,255,255,.24)}.portrait-seal.labor{background:linear-gradient(145deg,#d5c6aa,#ede2cf);color:#6e5139}.employment-card b{display:block;font-size:10.5px}.employment-card small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.45}.contract-dot{font-size:7px;padding:4px 6px;border-radius:99px}.contract-dot.ok{color:#365f54;background:rgba(49,95,88,.08)}.contract-dot.warn{color:#8c4e40;background:rgba(168,78,63,.08)}
.job-card{width:100%;border:1px solid var(--line);border-radius:15px;padding:9px;display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;text-align:left;background:rgba(255,255,255,.25)}.job-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#a64d3f;color:#f8ead5;font-size:11px;font-weight:800}.job-card b{display:block;font-size:10px}.job-card small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.45}.job-card strong{text-align:right;font-size:12px;color:#765431}.job-card strong small{font-size:6.8px;font-weight:400}
.operations-note{margin-top:13px;padding:11px 12px 11px 14px;border-left:2px solid rgba(49,95,88,.38);border-radius:0 13px 13px 0;background:rgba(49,95,88,.035)}.operations-note b{display:block;font-size:10px}.operations-note p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.55}

.finance-hero{display:grid;grid-template-columns:1fr 52px;gap:10px;align-items:center;padding:13px 14px;border:1px solid rgba(166,127,70,.15);border-radius:20px;background:linear-gradient(145deg,rgba(255,250,238,.88),rgba(233,222,202,.67));box-shadow:0 8px 22px rgba(81,61,37,.05)}.finance-hero h2{margin:1px 0 2px;font-size:24px;color:#735332}.finance-hero p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}.finance-stamp{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(140,103,55,.26);outline:1px dashed rgba(140,103,55,.16);outline-offset:-5px;color:#8c6538;font-weight:800;font-size:17px;background:rgba(194,157,101,.08)}.finance-ribbon{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.finance-ribbon span{padding:8px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.24)}.finance-ribbon small{display:block;color:var(--muted);font-size:7.5px}.finance-ribbon b{display:block;margin-top:2px;font-size:11px}.bank-card{border:1px solid rgba(166,127,70,.15);border-radius:18px;padding:10px;background:rgba(255,255,255,.30)}.bank-card-head{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center}.bank-seal{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(145deg,#c9aa76,#ead9b7);color:#664a2f;font-size:12px;font-weight:800}.bank-card b{display:block;font-size:11px}.bank-card small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px}.bank-card strong{text-align:right;font-size:13px;color:#735332}.bank-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.bank-actions .secondary-action{margin:0;padding:9px}.primary-action.compact{margin-top:9px;padding:10px}.loan-card,.contract-card{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:9px;background:rgba(255,255,255,.25)}.loan-card>span,.paper-badge{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(168,78,63,.08);color:var(--cinnabar);font-size:9px;font-weight:800}.loan-card b,.contract-card b{display:block;font-size:10px}.loan-card small,.contract-card small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px}.loan-card button,.contract-card button{border:0;border-radius:10px;padding:7px 9px;background:var(--jade-dark);color:#fbf4e6;font-size:8px}.contract-card>div{display:grid;grid-template-columns:32px 1fr;column-gap:8px;align-items:center}.contract-card>div b,.contract-card>div small{grid-column:2}.contract-card .paper-badge{grid-row:1/3}.ledger-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.22)}.ledger-card div{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border-bottom:1px solid var(--line);font-size:9px}.ledger-card div:last-child{border:0}.ledger-card span{color:var(--muted)}.ledger-card b{font-size:10px}.ledger-card .total{background:rgba(166,127,70,.055)}

/* Tighter visual rhythm on the reference-style bottom sheet. */
@media (max-width:430px){
  .operations-hero .panel-head h2{font-size:17px}.dashboard-grid{grid-template-columns:1fr}.dashboard-card{grid-template-columns:31px 1fr 8px}.choice-grid{gap:6px}.choice-grid button{padding:9px}.me-hero{grid-template-columns:44px 1fr auto}.me-hero p{max-width:220px}.operations-metrics b{font-size:12px}
}
.workplace-vitals{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:15px;overflow:hidden;background:rgba(255,255,255,.24)}.workplace-vitals span{padding:8px 6px;text-align:center;border-right:1px solid var(--line)}.workplace-vitals span:last-child{border:0}.workplace-vitals small{display:block;color:var(--muted);font-size:7px}.workplace-vitals b{display:block;margin-top:2px;font-size:10px}.worksite-order{border:1px solid var(--line);border-radius:16px;padding:9px;background:rgba(255,255,255,.26);margin-bottom:7px}.worksite-order>div:first-child{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center}.worksite-order b{display:block;font-size:10px}.worksite-order small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px}

/* v0.28 — direct operations workflows. The visual language stays tactile and diegetic rather than dashboard-like. */
.operation-command-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:9px 0 2px}.operation-command-grid>button{position:relative;display:grid;grid-template-columns:34px 1fr 10px;gap:8px;align-items:center;min-height:57px;padding:9px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.39),rgba(239,230,211,.32));text-align:left;box-shadow:0 5px 14px rgba(55,47,38,.035)}.operation-command-grid>button.attention{border-color:rgba(163,78,66,.28);box-shadow:inset 0 0 0 1px rgba(163,78,66,.05)}.operation-command-grid b{display:block;font-size:10.5px}.operation-command-grid small{display:block;margin-top:2px;color:var(--muted);font-size:7.4px}.operation-command-grid i{font-style:normal;color:var(--muted);font-size:14px}.command-seal{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(70,58,45,.06)}.command-seal.red{background:#a34e42;color:#faeedb}.command-seal.jade{background:#557a69;color:#f7f0df}.command-seal.gold{background:#d9c59f;color:#745839}.command-seal.ink{background:#6a655d;color:#f4ecdc}
.order-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(75,65,53,.08)}.order-actions button{border:0;border-radius:9px;padding:7px 8px;background:rgba(85,122,105,.08);color:var(--jade-dark);font-size:7.5px;font-weight:700}.order-actions button:disabled{opacity:.36}.order-actions .quiet-danger{background:rgba(163,78,66,.06);color:#8d4d43;min-width:42px}.job-card.managed{position:relative;padding-right:35px}.job-close{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:25px;height:25px;border:0;border-radius:50%;background:rgba(163,78,66,.06);color:#8d4d43;font-size:14px}.job-mark.muted{background:#8d867c;color:#f7efdf}.empty-action-card{width:100%;display:grid;grid-template-columns:35px 1fr 10px;gap:8px;align-items:center;padding:10px;border:1px dashed rgba(85,122,105,.22);border-radius:16px;background:rgba(255,255,255,.16);text-align:left}.empty-action-card>span{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;background:rgba(85,122,105,.08);color:var(--jade-dark);font-weight:800}.empty-action-card b{display:block;font-size:10px}.empty-action-card small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.45}.empty-action-card i{font-style:normal;color:var(--muted)}
.plan-strip{display:grid;gap:6px}.plan-strip article{display:grid;grid-template-columns:31px 1fr auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid rgba(85,122,105,.12);border-radius:14px;background:rgba(85,122,105,.035)}.plan-strip article>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#6b665d;color:#f3ead9;font-size:9px;font-weight:800}.plan-strip b{display:block;font-size:9.5px}.plan-strip small{display:block;margin-top:2px;color:var(--muted);font-size:7px}.plan-strip em{font-style:normal;color:var(--jade-dark);font-size:7px}
.flow-back{border:0;background:transparent;padding:2px 0 7px;color:var(--jade-dark);font-size:9px}.workflow-head{display:grid;grid-template-columns:43px 1fr;gap:10px;align-items:center;margin-bottom:10px}.workflow-seal{width:42px;height:42px;border-radius:13px 13px 13px 5px;display:grid;place-items:center;background:linear-gradient(145deg,#587b6a,#3f6353);color:#fbf3e5;font-size:17px;font-weight:800;box-shadow:0 7px 16px rgba(56,89,74,.16)}.workflow-head small{display:block;color:var(--cinnabar);font-size:7.5px;letter-spacing:.16em}.workflow-head h2{margin:1px 0 0;font-size:17px}.workflow-head p{margin:3px 0 0;color:var(--muted);font-size:7.8px;line-height:1.45;max-width:355px}
.operation-form{display:grid;gap:9px}.operation-form label{display:grid;gap:4px}.operation-form label>span{font-size:8px;color:#62594d;font-weight:700}.operation-form label>small{font-size:7px;line-height:1.45;color:var(--muted)}.operation-form input,.operation-form select{width:100%;height:40px;border:1px solid rgba(74,65,54,.14);border-radius:12px;padding:0 11px;background:rgba(255,255,255,.38);color:var(--ink);outline:none;font-size:10px;appearance:none}.operation-form select{background-image:linear-gradient(45deg,transparent 50%,#756d62 50%),linear-gradient(135deg,#756d62 50%,transparent 50%);background-position:calc(100% - 16px) 17px,calc(100% - 12px) 17px;background-size:4px 4px,4px 4px;background-repeat:no-repeat;padding-right:28px}.operation-form input:focus,.operation-form select:focus{border-color:rgba(85,122,105,.42);box-shadow:0 0 0 3px rgba(85,122,105,.055)}.form-two{display:grid;grid-template-columns:1.25fr .75fr;gap:7px}.number-field{position:relative}.number-field input{padding-right:32px}.number-field i{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted);font-size:8px}.form-paper-note{display:grid;grid-template-columns:31px 1fr;gap:8px;align-items:start;padding:9px 10px;border:1px solid rgba(166,127,70,.12);border-radius:14px;background:linear-gradient(145deg,rgba(255,248,231,.52),rgba(236,224,202,.32))}.form-paper-note span{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:rgba(163,78,66,.08);color:var(--cinnabar);font-size:9px;font-weight:800}.form-paper-note p{margin:1px 0 0;color:var(--muted);font-size:7.5px;line-height:1.5}.range-row{display:grid;grid-template-columns:1fr 50px;gap:8px;align-items:center}.range-row input[type=range]{height:28px;padding:0;border:0;background:transparent;accent-color:var(--jade)}.range-row output{text-align:center;padding:7px 5px;border-radius:10px;background:rgba(85,122,105,.07);color:var(--jade-dark);font-size:8px;font-weight:700}.process-preview{display:grid;grid-template-columns:43px 1fr;gap:9px;align-items:center;padding:9px;border:1px solid rgba(85,122,105,.12);border-radius:15px;background:rgba(85,122,105,.035)}.process-seal.big{width:41px;height:41px}.process-preview b{display:block;font-size:10px}.process-preview small{display:block;margin-top:3px;color:var(--muted);font-size:7.5px;line-height:1.4}
.applicant-list,.assign-list{display:grid;gap:8px}.applicant-card,.assign-card{display:grid;grid-template-columns:39px 1fr auto;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.38),rgba(239,230,211,.28))}.applicant-avatar,.assign-card>span{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#d5c6aa,#eee3cf);color:#6d5139;font-size:12px;font-weight:800}.applicant-card small,.assign-card small{display:block;color:var(--muted);font-size:7px}.applicant-card b,.assign-card b{display:block;margin-top:1px;font-size:10.5px}.applicant-card p{margin:2px 0 0;color:var(--muted);font-size:7.4px}.applicant-card button,.assign-card button{border:0;border-radius:10px;padding:8px 10px;background:var(--jade-dark);color:#fbf3e6;font-size:8px;font-weight:700}

@media (max-width:390px){.operation-command-grid{grid-template-columns:1fr}.workflow-head h2{font-size:16px}.form-two{grid-template-columns:1fr 1fr}.operation-command-grid>button{min-height:51px}}
.subsection-caption{margin:-4px 1px 5px;color:var(--muted);font-size:7px;letter-spacing:.06em}.compact-title{margin-top:7px}

/* v0.29 — commissioned projects, construction crews, and logistics. */
.project-entry{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;margin:9px 0 4px;padding:11px 12px;border:1px solid rgba(134,96,55,.18);border-radius:19px;background:linear-gradient(145deg,rgba(255,249,235,.76),rgba(229,216,191,.54));box-shadow:0 8px 20px rgba(73,53,32,.045);text-align:left;color:var(--ink)}
.project-entry-seal{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#8e5e42,#b47b59);color:#fbefdc;font-size:14px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 4px 10px rgba(93,58,38,.11)}
.project-entry small{display:block;color:#94745a;font-size:7px;letter-spacing:.12em}.project-entry b{display:block;margin-top:2px;font-size:11px}.project-entry p{margin:3px 0 0;color:var(--muted);font-size:7.3px;line-height:1.45}.project-entry strong{min-width:42px;text-align:right;color:#82553b;font-size:12px}.project-entry strong i{display:block;font-style:normal;color:#a58b72;font-size:13px}
.permission-toggle{display:grid!important;grid-template-columns:18px 1fr 29px!important;gap:8px!important;align-items:center!important;padding:9px 10px;border:1px solid rgba(77,105,93,.14);border-radius:14px;background:rgba(77,105,93,.035)}.permission-toggle input{width:16px!important;height:16px!important;accent-color:var(--jade-dark)}.permission-toggle span b{display:block;font-size:9px}.permission-toggle span small{display:block;margin-top:2px;font-size:7px;color:var(--muted);line-height:1.45}.permission-toggle>i{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:rgba(77,105,93,.09);color:var(--jade-dark);font-style:normal;font-size:9px;font-weight:800}
.project-stack{display:grid;gap:10px}.project-offer-card,.project-card{position:relative;overflow:hidden;border:1px solid rgba(126,91,55,.15);border-radius:20px;padding:12px;background:linear-gradient(148deg,rgba(255,252,243,.75),rgba(231,220,199,.48));box-shadow:0 9px 22px rgba(73,53,32,.045)}.project-offer-card:before,.project-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(#a55645,#b88c57);opacity:.75}.project-card.delivered{opacity:.78}.project-ribbon{display:flex;justify-content:space-between;align-items:center;margin:-2px 0 8px;padding-left:3px}.project-ribbon span{padding:3px 7px;border-radius:999px;background:rgba(161,76,61,.09);color:#985143;font-size:7px;font-weight:700}.project-ribbon em{font-style:normal;color:var(--muted);font-size:7px}.project-offer-head{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center}.project-house-glyph,.project-seal{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#e2d0ad,#f1e5ce);color:#77563a;font-size:13px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(104,78,52,.08)}.project-offer-head small,.project-card-head small{display:block;color:var(--muted);font-size:7px}.project-offer-head h3{margin:2px 0 0;font-size:12px}.project-offer-head p,.project-card-head p{margin:3px 0 0;color:var(--muted);font-size:7px;line-height:1.4}.project-offer-head strong{font-size:16px;color:#82583c;text-align:right}.project-offer-head strong small{font-size:7px;font-weight:400}.project-money-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.project-money-strip span{padding:7px 8px;border:1px solid rgba(109,82,54,.09);border-radius:11px;background:rgba(255,255,255,.24)}.project-money-strip small{display:block;color:var(--muted);font-size:6.6px}.project-money-strip b{display:block;margin-top:2px;font-size:9px;color:#735338}.project-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:7px;margin-top:10px}.project-actions .primary-action,.project-actions .secondary-action{margin:0;padding:9px}
.project-card-head{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center}.project-card-head b{display:block;margin-top:1px;font-size:11px}.project-card-head strong{font-size:14px;color:var(--jade-dark)}.project-progress{height:7px;margin:10px 0 9px;border-radius:999px;background:rgba(72,65,56,.075);overflow:hidden}.project-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d7c70 0%,#9b7d54 62%,#b9634e 100%)}
.stage-row{display:grid;gap:6px}.stage-chip{display:grid;grid-template-columns:27px 1fr auto;gap:7px;align-items:center;padding:7px 8px;border:1px solid rgba(88,75,59,.10);border-radius:12px;background:rgba(255,255,255,.22)}.stage-chip>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:rgba(117,89,57,.08);color:#836344;font-size:8px;font-weight:800}.stage-chip.done>span{background:rgba(65,111,99,.12);color:var(--jade-dark)}.stage-chip b{display:block;font-size:8.7px}.stage-chip small{display:block;margin-top:1px;color:var(--muted);font-size:6.8px}.stage-chip button{border:0;border-radius:9px;padding:6px 8px;background:#557a69;color:#f8f0df;font-size:7px}
.project-materials{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:8px;padding:8px 9px;border:1px dashed rgba(147,105,62,.22);border-radius:12px;background:rgba(170,129,76,.035)}.project-materials b{display:block;font-size:8.5px;color:#79573c}.project-materials small{display:block;margin-top:2px;color:var(--muted);font-size:6.7px;line-height:1.4}.project-materials button{border:0;border-radius:9px;padding:7px 8px;background:#8b6544;color:#fbf1df;font-size:7px}.haul-list{display:grid;gap:5px;margin-top:8px}.haul-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;padding:7px 8px;border-radius:11px;background:rgba(76,103,92,.045);border:1px solid rgba(76,103,92,.10)}.haul-glyph{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(76,103,92,.10);color:var(--jade-dark);font-size:8px;font-weight:800}.haul-list b{display:block;font-size:8px}.haul-list small{display:block;margin-top:1px;color:var(--muted);font-size:6.6px}.haul-list button{border:0;border-radius:8px;padding:6px 7px;background:rgba(85,122,105,.13);color:var(--jade-dark);font-size:6.8px;font-weight:700}
@media(max-width:390px){.project-money-strip{grid-template-columns:1fr 1fr}.project-money-strip span:last-child{grid-column:1/-1}.project-entry{grid-template-columns:38px 1fr auto}.project-entry-seal{width:36px;height:36px}.project-offer-head{grid-template-columns:38px 1fr auto}.project-house-glyph,.project-seal{width:36px;height:36px}}

/* v0.30 — 商队与货运：仍是生活簿，不做物流 ERP。 */
.freight-entry{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;border:1px solid rgba(94,78,52,.14);background:linear-gradient(135deg,rgba(249,244,228,.94),rgba(229,236,222,.88));border-radius:18px;padding:14px 14px;margin:12px 0;box-shadow:0 10px 28px rgba(69,62,47,.07)}
.freight-entry-seal,.freight-seal{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#546f65;color:#f8f1de;font-family:serif;font-weight:800;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.freight-entry div{min-width:0}.freight-entry small,.freight-card-head small{display:block;color:#8b7d66;font-size:11px;letter-spacing:.08em}.freight-entry b{display:block;margin:2px 0;color:#2f3b34;font-size:15px}.freight-entry p{margin:3px 0 0;color:#756c5e;font-size:12px;line-height:1.45}.freight-entry strong{color:#536b63;font-size:14px;white-space:nowrap}.freight-entry strong i{font-style:normal;margin-left:5px}
.freight-stack{display:grid;gap:12px}.freight-offer-card,.freight-card{border:1px solid rgba(91,75,48,.13);border-radius:18px;background:linear-gradient(180deg,rgba(255,252,242,.95),rgba(245,240,225,.88));padding:14px;box-shadow:0 10px 26px rgba(64,57,42,.06)}.freight-card.delivered{opacity:.75}
.freight-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center}.freight-card-head>div{min-width:0}.freight-card-head b{display:block;color:#293831;font-size:15px;margin:2px 0}.freight-card-head p{margin:0;color:#756b5c;font-size:12px}.freight-card-head strong{color:#536f65;font-size:18px;text-align:right}.freight-card-head strong small{font-size:10px;color:#8d806a}
.freight-route{display:flex;align-items:flex-start;gap:0;margin:14px 2px 8px;overflow-x:auto;padding-bottom:3px}.freight-route span{position:relative;display:grid;justify-items:center;min-width:70px;flex:1;color:#9b907d}.freight-route span:not(:last-child)::after{content:"";position:absolute;top:5px;left:54%;right:-46%;height:1px;background:rgba(84,111,101,.22)}.freight-route i{width:10px;height:10px;border-radius:50%;background:#c8c0ae;border:2px solid #f7f1df;box-shadow:0 0 0 1px rgba(84,111,101,.2);z-index:1}.freight-route span.done i{background:#718e80}.freight-route span.current i{background:#b46a4f;box-shadow:0 0 0 3px rgba(180,106,79,.14)}.freight-route small{margin-top:5px;font-size:10px;white-space:nowrap}.freight-route span.current small{color:#4a5d55;font-weight:700}
.freight-progress{height:6px;border-radius:99px;background:rgba(86,102,91,.12);overflow:hidden;margin:13px 0 4px}.freight-progress i{display:block;height:100%;background:linear-gradient(90deg,#6c887b,#9bad8a);border-radius:inherit}
.freight-status-line{display:flex;justify-content:space-between;gap:10px;color:#7a6f60;font-size:11px;margin:8px 2px}.freight-status-line em{font-style:normal;color:#566f65;text-align:right}.freight-actions{display:flex;gap:9px;margin-top:12px}.freight-actions .primary-action,.freight-actions .secondary-action{margin:0;flex:1}

/* v0.31 — 学馆与传艺 */
.education-entry{width:100%;display:grid;grid-template-columns:48px 1fr auto;gap:11px;align-items:center;margin-top:10px;padding:13px 14px;border:1px solid rgba(98,82,48,.14);border-radius:20px;background:linear-gradient(145deg,rgba(248,244,226,.96),rgba(230,236,224,.82));box-shadow:0 9px 24px rgba(68,61,43,.055);text-align:left;color:var(--ink)}
.education-entry-seal{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e7dcc0,#f6efdc);box-shadow:inset 0 0 0 1px rgba(103,79,42,.09),0 4px 12px rgba(76,61,39,.06);color:#715a38;font:800 18px/1 serif}
.education-entry small{display:block;color:#8d8069;font-size:7px;letter-spacing:.08em}.education-entry b{display:block;margin:2px 0;color:#2f3a33;font-size:11px}.education-entry p{margin:3px 0 0;color:#756d60;font-size:7px;line-height:1.45}.education-entry strong{color:#536f65;font-size:11px;white-space:nowrap}.education-entry strong i{font-style:normal;margin-left:6px;color:#9a8b70}
.academy-hero{position:relative;display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;overflow:hidden;border:1px solid rgba(104,87,52,.14);border-radius:22px;padding:14px;background:radial-gradient(circle at 84% 18%,rgba(160,92,62,.08),transparent 24%),linear-gradient(145deg,rgba(250,247,232,.97),rgba(229,236,225,.88));box-shadow:0 10px 28px rgba(66,58,40,.055)}
.academy-hero:after{content:"传习";position:absolute;right:8px;bottom:-15px;font:800 48px/1 serif;color:rgba(78,96,78,.045);letter-spacing:.12em;pointer-events:none}.academy-mark{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#d9cba9,#f3e8cc);box-shadow:inset 0 0 0 1px rgba(112,86,46,.09);color:#735b38;font:800 20px/1 serif}.academy-hero small{display:block;color:#8b7d68;font-size:7px;letter-spacing:.1em}.academy-hero h3{margin:2px 0 3px;font-size:13px;color:#303a34}.academy-hero p{margin:0;color:#786f61;font-size:7.5px;line-height:1.5;max-width:260px}.academy-hero strong{font-size:18px;color:#527066;text-align:right;z-index:1}.academy-hero strong small{font-size:7px;font-weight:400;letter-spacing:0}
.course-stack,.enrollment-stack{display:grid;gap:10px}.course-card,.enrollment-card{position:relative;overflow:hidden;border:1px solid rgba(90,77,49,.13);border-radius:19px;padding:12px;background:linear-gradient(160deg,rgba(255,252,242,.94),rgba(242,237,220,.84));box-shadow:0 9px 24px rgba(65,57,43,.045)}.course-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(#8b6a43,#668176);opacity:.7}.course-card-head{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center}.course-seal{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#e8dec4,#f5edd9);color:#73593a;font:800 13px/1 serif;box-shadow:inset 0 0 0 1px rgba(94,73,45,.08)}.course-card-head small,.enrollment-head small{display:block;color:#8b7d68;font-size:7px}.course-card-head b,.enrollment-head b{display:block;margin:1px 0;font-size:11px;color:#303a34}.course-card-head p,.enrollment-head p{margin:2px 0 0;color:#776d5f;font-size:7px;line-height:1.4}.course-card-head strong{font-size:15px;color:#73593a;text-align:right}.course-card-head strong small{font-size:7px;font-weight:400}.course-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.course-meta span{padding:7px 8px;border:1px solid rgba(91,78,53,.08);border-radius:11px;background:rgba(255,255,255,.25)}.course-meta small{display:block;color:#938670;font-size:6.5px}.course-meta b{display:block;margin-top:2px;color:#4d655c;font-size:9px}.course-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.course-actions button{border:1px solid rgba(76,92,81,.13);border-radius:11px;padding:8px;background:rgba(255,255,255,.34);color:#4b645b;font-size:8px;font-weight:700}.course-actions .quiet-danger{color:#a05d4d;border-color:rgba(160,93,77,.14)}
.enrollment-card{background:linear-gradient(160deg,rgba(246,249,239,.94),rgba(238,239,219,.82))}.enrollment-head{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center}.enrollment-head>span{width:36px;height:36px;border-radius:50% 50% 44% 44%;display:grid;place-items:center;background:#d7e0d5;color:#49685d;font:800 12px/1 serif;box-shadow:inset 0 0 0 1px rgba(65,91,80,.08)}.enrollment-head strong{font-size:13px;color:#4d6a60}.learning-progress{height:7px;margin:10px 0 7px;border-radius:999px;background:rgba(65,78,64,.07);overflow:hidden}.learning-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d8a7f,#a88b58)}.learning-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#817765;font-size:7px}.learning-foot em{font-style:normal;color:#567166;font-weight:700}
.course-market{display:grid;gap:7px}.course-market article{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;border:1px solid rgba(77,92,79,.10);border-radius:14px;padding:9px 10px;background:rgba(247,245,232,.63)}.course-market article>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(104,128,116,.10);color:#506d61;font:800 11px serif}.course-market b{display:block;font-size:10px}.course-market small{display:block;margin-top:2px;color:#877b67;font-size:7px}.course-market button{border:0;border-radius:10px;padding:7px 10px;background:#5d786e;color:#f9f3e4;font-size:8px;font-weight:700}
.course-publish{margin-top:11px;border:1px solid rgba(89,79,53,.12);border-radius:17px;background:rgba(251,247,234,.62);overflow:hidden}.course-publish summary{list-style:none;display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:10px 11px;cursor:pointer}.course-publish summary::-webkit-details-marker{display:none}.course-publish summary>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(159,104,68,.10);color:#8b5f40;font:800 12px serif}.course-publish summary b{display:block;font-size:10px}.course-publish summary small{display:block;margin-top:2px;color:#8b7c67;font-size:7px}.course-publish summary i{font-style:normal;color:#6f806f;font-size:16px}.course-publish[open] summary{border-bottom:1px solid rgba(89,79,53,.08)}.course-publish .operation-form{padding:11px;margin:0}.operations-empty.slim{padding:10px 12px}.operations-empty.slim .big-glyph{width:40px;height:40px;border-radius:13px}
@media (max-width:420px){.academy-hero{grid-template-columns:46px 1fr auto;padding:12px}.academy-mark{width:44px;height:44px}.academy-hero h3{font-size:12px}.course-meta{gap:4px}.education-entry{grid-template-columns:42px 1fr auto;padding:11px 12px}.education-entry-seal{width:40px;height:40px}}
