:root,page{--dipei-primary: #1F6B5A;--dipei-primary-pressed: #165246;--dipei-on-primary: #FFFFFF;--dipei-accent: #C4A574;--dipei-bg: #F3F5F4;--dipei-card: #FFFFFF;--dipei-elevated: #FFFFFF;--dipei-wash: #E8F3EF;--dipei-text: #14201C;--dipei-muted: #5F6B66;--dipei-warning: #D4A017;--dipei-warning-ink: #7A5810;--dipei-danger: #C45C5C;--dipei-border: #D5DDD9;--dipei-bone: #E4EBE8;--dipei-bone-mid: #F4F7F6;--dipei-radius: 12px;color:var(--dipei-text);background:var(--dipei-bg)}button.primary:active,a.primary:active,.primary:active{background:var(--dipei-primary-pressed);color:var(--dipei-on-primary)}:root{color:var(--dipei-text);background:var(--dipei-bg);font-family:Segoe UI,PingFang SC,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--dipei-bg)}button,input{font:inherit;color: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)}.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-card);border-top:1px solid var(--dipei-border)}.tabs a{text-align:center;padding:12px 4px 16px;font-size:12px;color:var(--dipei-muted)}.tabs a.router-link-active{color:var(--dipei-primary);font-weight:600}.badge{display:inline-block;min-width:16px;margin-left:4px;padding:0 4px;border-radius:8px;background:var(--dipei-danger);color:var(--dipei-on-primary);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)}.notice p{margin:4px 0 0}a.quiet{display:inline-block;margin-top:8px;font-size:13px;color:var(--dipei-primary)}h1{margin:0 0 8px;font-size:28px;font-weight:650}.muted{color:var(--dipei-muted);font-size:14px;line-height:1.5}.hero{margin:16px 0;padding:20px;border-radius:var(--dipei-radius);background:var(--dipei-primary);color:var(--dipei-on-primary)}.chips,.stack{display:flex;flex-wrap:wrap;gap:8px}.chip,.card,.panel{border-radius:var(--dipei-radius)}.card,.panel{background:var(--dipei-card)}.chip{padding:8px 12px;background:var(--dipei-wash);color:var(--dipei-text);border:1px solid transparent}.card,.panel{display:block;padding:16px;margin-top:12px;border:1px solid var(--dipei-border)}.callout{margin:12px 0;padding:12px;border-radius:12px;background:var(--dipei-wash);border:1px solid var(--dipei-accent)}.card strong,.panel strong{display:block;margin-bottom:4px}.price{color:var(--dipei-primary);font-weight:650}button.primary,a.primary,button.ghost,a.ghost,button.danger{border-radius:999px;padding:10px 16px;cursor:pointer;font-weight:650}button.primary,a.primary{background:var(--dipei-primary);color:var(--dipei-on-primary);border:0}a.primary{display:inline-block}.actions{display:grid;gap:12px}a.card.action{border:1px solid var(--dipei-accent);background:var(--dipei-wash)}button.ghost,a.ghost{background:transparent;color:var(--dipei-primary);border:1px solid var(--dipei-primary)}.lang button.on{background:var(--dipei-primary);color:var(--dipei-on-primary);border-color:var(--dipei-primary)}button.ghost[aria-pressed=true]{background:var(--dipei-wash);border-color:var(--dipei-accent)}.chips button.ghost{padding:8px 12px;font-size:14px}button.danger{background:transparent;color:var(--dipei-danger);border:1px solid var(--dipei-danger)}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}input{width:100%;border:1px solid var(--dipei-border);border-radius:12px;padding:10px 12px;background:var(--dipei-card)}.next{margin:8px 0 0;font-weight:650}.card.due{background:var(--dipei-wash);border:1px solid var(--dipei-accent)}.bone{height:72px;margin-top:12px;border-radius:16px;background:var(--dipei-bone)}.bone.short{height:28px;width:46%}.error{color:var(--dipei-danger);background:var(--dipei-wash);border:1px solid var(--dipei-border);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.5}.warn{color:var(--dipei-warning-ink);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:var(--dipei-wash);box-shadow:inset 0 0 0 1px var(--dipei-border)}.seg{display:flex;gap:8px;margin:12px 0}.bubble{max-width:85%;margin:8px 0;padding:10px 12px;border-radius:12px;background:var(--dipei-card)}.bubble.mine{margin-left:auto;background:var(--dipei-wash)}.bubble p{margin:4px 0 0}.composer{display:flex;gap:8px;margin-top:12px}.composer input{flex:1}
