@charset "UTF-8";#app{min-height:100%}:root{--bg-0: #e4efe9;--bg-1: #f2f7f4;--surface: rgba(255, 255, 255, .82);--surface-solid: #ffffff;--ink: #1c3a32;--ink-soft: #4f6b62;--muted: #8aa399;--line: rgba(28, 58, 50, .1);--line-strong: rgba(28, 58, 50, .16);--accent: #2f7a66;--accent-deep: #246353;--accent-soft: rgba(47, 122, 102, .12);--wood: #c08a4e;--wood-deep: #a8743d;--wood-soft: rgba(192, 138, 78, .14);--deep: #24574a;--deep-2: #1e4a3e;--danger: #b14a3c;--ok: #2f7a5b;--rest: #8a7c62;--busy: #c47a2e;--shadow-sm: 0 8px 24px rgba(36, 87, 74, .07);--shadow-md: 0 16px 40px rgba(36, 87, 74, .12);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--safe-bottom: env(safe-area-inset-bottom, 0px);--tab-h: calc(78px + var(--safe-bottom));--page-x: 16px;--font-serif: "Noto Serif SC", "Songti SC", serif;--font-sans: "Noto Sans SC", "PingFang SC", sans-serif;--font-en: "Cormorant Garamond", Georgia, serif;--sage: var(--muted);--brass: var(--wood);--brass-deep: var(--wood-deep);--gold: var(--wood);--gold-deep: var(--wood-deep);--gold-soft: var(--wood-soft);--night: var(--deep);--night-2: var(--deep-2)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(90% 55% at 0% 0%,rgba(47,122,102,.14),transparent 55%),radial-gradient(70% 45% at 100% 8%,rgba(192,138,78,.12),transparent 48%),linear-gradient(180deg,#d9ebe3 0%,var(--bg-1) 42%,#eef6f1 100%);background-attachment:fixed;line-height:1.5;font-weight:400;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit;border:none;outline:none;background:none}ul,ol{list-style:none}img{display:block;max-width:100%}.page{min-height:100%;padding:16px var(--page-x) 28px}.page-tab{padding-bottom:calc(var(--tab-h) + 22px)}.page-sub{padding-top:0;padding-bottom:calc(24px + var(--safe-bottom))}.sub-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:52px;margin:0 calc(var(--page-x) * -1);padding:0 var(--page-x);background:#f2f7f4e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.sub-nav .back{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--surface-solid);box-shadow:var(--shadow-sm);font-size:20px;color:var(--ink)}.sub-nav .title{flex:1;font-family:var(--font-serif);font-size:17px;font-weight:600;letter-spacing:.06em}.sec-label{display:flex;align-items:baseline;justify-content:space-between;margin:24px 0 14px}.sec-label h2{font-family:var(--font-serif);font-size:18px;font-weight:600;letter-spacing:.08em}.sec-label .en{font-family:var(--font-en);font-size:13px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;background:linear-gradient(135deg,#2f7a66,#246353);color:#f7fbf8;font-size:15px;letter-spacing:.1em;border-radius:999px;box-shadow:0 10px 24px #2f7a6647}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid var(--line-strong);color:var(--ink);font-size:13px;letter-spacing:.06em;border-radius:999px;background:#ffffffb3}.btn-line{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 4px;color:var(--wood-deep);font-size:13px;letter-spacing:.04em}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.status-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}.status-dot.on{color:var(--ok)}.status-dot.rest{color:var(--rest)}.status-dot.busy{color:var(--busy)}.empty-tip{padding:40px 12px;text-align:center;color:var(--muted);font-size:14px}.seg-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:8px 0 4px}.seg-tabs button{position:relative;flex-shrink:0;padding:12px 14px;font-size:14px;color:var(--muted);transition:color .2s ease}.seg-tabs button.on{color:var(--accent-deep);font-weight:600}.seg-tabs button.on:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--wood))}
