.companion-section{max-width:1184px;margin:0 auto 78px;padding:54px 40px;background:#173b31;color:#f7f1e5;border-top:8px solid var(--orange)}
.companion-section-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:30px}
.companion-section .kicker{color:#bfd0c3}.companion-section h2{font:500 clamp(34px,5vw,58px)/1.08 Georgia,"Noto Serif SC",serif;margin:10px 0 12px}.companion-section-head p{max-width:680px;margin:0;color:#d6e0d8;line-height:1.75}
.companion-primary,.companion-head-actions button{border:0;border-radius:999px;background:var(--orange);color:#fff;padding:13px 20px;font-weight:800;cursor:pointer;white-space:nowrap}.companion-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.companion-head-actions .companion-dashboard-button{background:transparent;border:1px solid #d6e0d8;color:#f7f1e5}
.companion-plan-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.companion-plan-card{background:#fbf8f0;color:var(--ink);padding:22px;border:2px solid #a99f8d;display:flex;flex-direction:column;min-height:300px}
.companion-plan-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.companion-date{font:italic 15px Georgia,serif;color:var(--forest)}.companion-demo-badge{font-size:10px;letter-spacing:.08em;color:#7a7164;border:1px solid #bdb3a3;border-radius:999px;padding:4px 7px}
.companion-plan-card h3{font:600 24px/1.25 Georgia,"Noto Serif SC",serif;margin:20px 0 10px}.companion-plan-summary{color:#657469;line-height:1.65;margin:0 0 18px}.companion-plan-meta{display:grid;gap:8px;font-size:12px;color:#526158;margin-bottom:22px}
.companion-plan-card button{margin-top:auto;border:1px solid var(--forest);background:transparent;color:var(--forest);padding:11px 14px;font-weight:800;cursor:pointer}.companion-plan-card button:hover{background:var(--forest);color:#fff}
.companion-card-link{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:8px 12px;border:1px solid #9a4a2e;border-radius:999px;color:#9a4a2e;font:700 12px/1 Inter,"Noto Sans SC",sans-serif;cursor:pointer;position:relative;z-index:2}.companion-card-link:hover,.companion-card-link:focus{background:#9a4a2e;color:#fff;outline:none}
.companion-dialog{width:min(720px,calc(100vw - 32px));max-height:86vh;border:0;padding:0;background:transparent}.companion-dialog::backdrop{background:rgba(10,18,14,.7);backdrop-filter:blur(4px)}.companion-dialog-inner{position:relative;background:var(--cream);border-top:7px solid var(--orange);padding:32px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.dialog-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#ebe5d9;color:var(--ink);font-size:22px;cursor:pointer}.companion-dialog h2{font:500 32px/1.2 Georgia,"Noto Serif SC",serif;margin:0 46px 10px 0}.dialog-note{color:#657469;line-height:1.65;margin:0 0 22px}.companion-dialog .companion-plan-list{grid-template-columns:1fr}.companion-dialog .companion-plan-card{min-height:0}
.companion-empty{text-align:center;padding:42px 18px;border:1px dashed var(--line)}.companion-empty strong{font:600 24px Georgia,"Noto Serif SC",serif}.companion-empty p{color:#657469;line-height:1.7;margin:12px auto 22px;max-width:440px}
.wechat-login-box{text-align:center}.wechat-logo{width:64px;height:64px;margin:4px auto 18px;border-radius:18px;background:#07c160;color:#fff;display:grid;place-items:center;font-size:34px}.wechat-login-box ul{text-align:left;max-width:430px;margin:22px auto;color:#657469;line-height:1.8}.wechat-login-button{width:100%;max-width:420px;border:0;border-radius:10px;background:#07c160;color:#fff;padding:14px 20px;font-weight:800;font-size:16px;cursor:pointer}.wechat-login-status{display:block;min-height:38px;margin-top:12px;color:#9a4a2e;font-size:12px;line-height:1.5}.privacy-note{font-size:11px;color:#7a7164;margin:10px 0 0}.dialog-open{overflow:hidden}
@media(max-width:900px){.companion-section{margin-left:28px;margin-right:28px}.companion-plan-list{grid-template-columns:1fr}.companion-section-head{align-items:start;flex-direction:column}.companion-head-actions{width:100%}.companion-head-actions button{flex:1}}
@media(max-width:580px){.companion-section{margin:0 18px 50px;padding:34px 18px}.companion-dialog-inner{padding:26px 18px}.companion-dialog h2{font-size:26px}.companion-card-link{margin-top:8px;padding:7px 10px}.companion-plan-card{padding:18px;min-height:0}}

.wechat-code-panel{max-width:420px;margin:18px auto 0;padding:18px;border:2px dashed #07c160;background:#effaf3}.wechat-code-panel span,.wechat-code-panel small{display:block;color:#657469}.wechat-code-panel strong{display:block;margin:10px 0;font:700 30px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;color:#173b31;user-select:all}.wechat-code-panel small{font-size:12px;line-height:1.6}.wechat-login-button:disabled{opacity:.55;cursor:wait}.clerk-verified .wechat-required::after{content:" · 已登录";font-size:10px;opacity:.75}

.wechat-account-qr{display:block;width:150px;height:150px;object-fit:contain;margin:2px auto 18px;border:8px solid #fff;box-shadow:0 6px 22px rgba(23,33,27,.14)}
.wechat-passphrase-form{max-width:420px;margin:18px auto 0;text-align:left}.wechat-passphrase-form label{display:block;margin-bottom:7px;color:#41594d;font-size:13px;font-weight:700}.wechat-passphrase-form input{box-sizing:border-box;width:100%;margin-bottom:10px;padding:13px 14px;border:1px solid #b8c9bf;border-radius:10px;background:#fff;color:#173b31;font-size:16px;outline:none}.wechat-passphrase-form input:focus{border-color:#07c160;box-shadow:0 0 0 3px rgba(7,193,96,.12)}
.companion-form label{display:block;color:#41594d;font-size:13px;font-weight:700}.companion-form input,.companion-form textarea{box-sizing:border-box;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #b8c9bf;border-radius:8px;background:#fff;color:#173b31;font:inherit;outline:none}.companion-form textarea{min-height:110px;resize:vertical}.companion-form input:focus,.companion-form textarea:focus{border-color:#07c160;box-shadow:0 0 0 3px rgba(7,193,96,.12)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-wide{grid-column:1/-1}.companion-submit{margin-top:18px;border:0;border-radius:8px;background:var(--forest);color:#fff;padding:13px 22px;font-weight:800;cursor:pointer}.companion-submit:disabled{opacity:.55}.form-status{display:inline-block;margin-left:12px;color:#9a4a2e;font-size:12px}.companion-live-badge{font-size:10px;letter-spacing:.08em;color:#087c45;border:1px solid #75aa8d;border-radius:999px;padding:4px 7px}.companion-author{font-size:11px;color:#7a7164}.companion-dashboard-dialog{width:min(850px,calc(100vw - 32px))}.dashboard-section{margin-top:24px}.dashboard-section h3{border-bottom:1px solid var(--line);padding-bottom:9px}.dashboard-item{border:1px solid #c9c0b1;background:#fff;padding:16px;margin:10px 0}.dashboard-item p{color:#657469;line-height:1.55}.dashboard-status{display:inline-block;border-radius:999px;background:#eee8dc;padding:4px 8px;font-size:11px}.dashboard-actions{display:flex;gap:8px}.dashboard-actions button{border:1px solid var(--forest);background:#fff;color:var(--forest);padding:7px 11px;cursor:pointer}.dashboard-empty,.dashboard-loading{color:#7a7164}.companion-error{grid-column:1/-1;padding:24px;background:#f8eee8;color:#9a4a2e}
.companion-form select{box-sizing:border-box;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #b8c9bf;border-radius:8px;background:#fff;color:#173b31;font:inherit;outline:none}.companion-form select:focus{border-color:#07c160;box-shadow:0 0 0 3px rgba(7,193,96,.12)}
.required-mark{color:#b33a2b;font-weight:800}
.dashboard-item .dashboard-contact{padding:10px 12px;background:#eff8f2;color:#173b31;border-left:3px solid #07c160;word-break:break-word}
.dashboard-actions .danger-button{border-color:#a43c2f;color:#a43c2f}
@media(max-width:580px){.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.form-status{display:block;margin:10px 0 0}.companion-head-actions{display:grid}.companion-head-actions button{width:100%}}
