:root{color:var(--dipei-text, #1a1a1a);background:var(--dipei-bg, #f7f5f3);font-family:Segoe UI,PingFang SC,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--dipei-bg, #f7f5f3)}button,input{font:inherit}a{color:inherit;text-decoration:none}.shell{min-height:100vh;display:flex;justify-content:center}.phone{width:min(480px,100%);min-height:100vh;padding:20px 16px 88px;background:var(--dipei-bg, #f7f5f3)}.tabs{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(480px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:var(--dipei-elevated, #fff);border-top:1px solid rgba(26,26,26,.08)}.tabs a{text-align:center;padding:12px 4px 16px;font-size:12px;color:var(--dipei-muted, rgba(26, 26, 26, .6))}.tabs a.router-link-active{color:var(--dipei-primary, #c4a484);font-weight:600}.badge{display:inline-block;min-width:16px;margin-left:4px;padding:0 4px;border-radius:8px;background:var(--dipei-danger, #c45c5c);color:#fff;font-size:10px;line-height:16px;font-weight:650;vertical-align:1px}.notice{cursor:pointer}.notice.unread{box-shadow:inset 3px 0 0 var(--dipei-primary, #c4a484)}.notice p{margin:4px 0 0}a.quiet{display:inline-block;margin-top:8px;font-size:13px;color:var(--dipei-accent, #b76e79)}h1{margin:0 0 8px;font-size:28px;font-weight:650}.muted{color:#6b5344;font-size:14px;line-height:1.5}.hero{margin:16px 0;padding:20px;border-radius:var(--dipei-radius, 12px);background:#1a1a1a;color:#f7f5f3}.chips,.stack{display:flex;flex-wrap:wrap;gap:8px}.chip,.card,.panel{background:var(--dipei-elevated, #fff);border-radius:var(--dipei-radius, 12px)}.chip{padding:8px 12px;border:1px solid rgba(26,26,26,.08)}.card,.panel{display:block;padding:16px;margin-top:12px}.callout{margin:12px 0;padding:12px;border-radius:12px;background:#fff8f2;border:1px solid #c4a484}.card strong,.panel strong{display:block;margin-bottom:4px}.price{color:var(--dipei-accent, #b76e79);font-weight:650}button.primary,button.ghost,a.ghost,button.danger{border:0;border-radius:999px;padding:10px 16px;cursor:pointer}button.primary,a.primary{background:var(--dipei-primary, #c4a484);color:#1a1a1a}a.primary{display:inline-block}.actions{display:grid;gap:12px}a.card.action{border:1px solid #c4a484;background:#fff8f2}button.ghost,a.ghost{background:transparent;border:1px solid rgba(26,26,26,.12)}button.ghost[aria-pressed=true]{background:#fff8f2;border-color:#c4a484}.chips button.ghost{padding:8px 12px;font-size:14px}button.danger{background:transparent;color:var(--dipei-danger, #c45c5c)}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}input{width:100%;border:1px solid rgba(26,26,26,.12);border-radius:12px;padding:10px 12px;background:#fff}.next{margin:8px 0 0;font-weight:650}.card.due{background:#fff8f2;border:1px solid #ead9c8}.bone{height:72px;margin-top:12px;border-radius:16px;background:#efeae6}.bone.short{height:28px;width:46%}.error{color:#8a4b3c;background:#fff8f2;border:1px solid #ead9c8;border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.5}.warn{color:#9a6700;font-weight:650}.lang{display:flex;gap:8px}h2{margin:16px 0 8px;font-size:16px}.person{display:flex;gap:12px;align-items:flex-start}.portrait{width:64px;height:64px;border-radius:50%;object-fit:cover;background:#c4a484}.seg{display:flex;gap:8px;margin:12px 0}.bubble{max-width:85%;margin:8px 0;padding:10px 12px;border-radius:12px;background:#fff}.bubble.mine{margin-left:auto;background:#f3e6d8}.bubble p{margin:4px 0 0}.composer{display:flex;gap:8px;margin-top:12px}.composer input{flex:1}
