/* 妙笔全站视觉系统：延续首页的暖纸、自然绿与书本感。 */
:root{
  --c-brand-100:#e8f1e4;
  --c-brand-500:#579566;
  --c-brand-700:#347449;
  --c-ink-900:#20352b;
  --c-ink-700:#485c4f;
  --c-ink-500:#738176;
  --c-line:#e2e9de;
  --c-page:#f7f8f2;
  --c-surface:#fffefa;
  --c-accent:#d59a43;
  --grad:linear-gradient(135deg,#438a57,#2e6842);
  --sh-soft:0 5px 18px rgba(42,75,46,.055);
  --sh-2:0 12px 32px rgba(42,75,46,.1);
  --sh-brand:0 7px 18px rgba(46,104,66,.2);
}
body{background:#edf1e9;color:var(--c-ink-900)}
#app{background:var(--c-page)}
.page{background:var(--c-page)}
.btn{border-radius:15px;background:var(--grad);box-shadow:var(--sh-brand)}
.btn.ghost{border:1px solid #d6e3d2;background:#f0f5eb;color:var(--c-brand-700);box-shadow:none}
.aibar{min-height:64px;padding:14px 18px;background:rgba(247,248,242,.94);border-bottom:1px solid rgba(220,230,215,.7);backdrop-filter:blur(12px)}
.aibar h1{font-size:18px;font-weight:700;letter-spacing:.02em}
.aibar .back{width:38px;height:38px;min-width:38px;min-height:38px;margin:0;border-radius:50%;background:#eaf1e5;color:#3c6d49;font-size:25px}
/* 写作与批改：信息清楚，装饰退到后面。 */
#p-write.v2-page,#p-review.v2-page{background:var(--c-page);color:var(--home-ink)}
.flow-header{position:relative;background:#fffefa;border-bottom:1px solid #e3eadf;box-shadow:0 4px 18px rgba(48,77,48,.035)}
.v2-top{min-height:64px;padding:8px 14px 4px}
.v2-top>div b{font-size:14px;font-weight:700;letter-spacing:.01em}
.v2-top>div span{margin-top:2px;font-size:11px;color:#7b897e}
.v2-icon{width:36px;min-width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;background:#edf3e8;color:#39744c;font-size:27px}
.v2-home{min-width:48px;color:#4b7657;font-size:12px}
.v2-speaker{color:#477b56}
.v2-speaker.on{background:#438a57}
.v2-steps{margin:7px 16px 0;padding:7px 6px;border:1px solid #e7ede2;border-radius:14px;background:#f5f7f0}
.v2-step{color:#839084;font-size:11px}
.v2-step i{width:20px;height:20px;border-color:#d9e3d5;background:#fffefa;color:#758471}
.v2-step.now{color:#2e6842;font-weight:700}
.v2-step.now i{border-color:#438a57;background:#438a57;box-shadow:0 3px 8px rgba(46,104,66,.16)}
.v2-step.done i{border-color:#7ca582;background:#7ca582}
.flow-progress{height:3px;margin:8px 20px 0;accent-color:#438a57;color:#438a57}
.flow-progress::-webkit-progress-value{background:#438a57}
.flow-progress::-moz-progress-bar{background:#438a57}
.flow-stage{padding:22px 16px 118px}
.stage-head{position:relative;padding:0 3px 18px}
.stage-kicker{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;background:#e7f0e1;color:#47734f;font-size:11px;font-weight:650;letter-spacing:.04em}
.stage-title{margin-top:10px;color:#20352b;font-size:25px;font-weight:750;line-height:1.35;letter-spacing:-.025em}
.stage-lead{max-width:330px;margin-top:7px;color:#708075;font-size:13px;line-height:1.7}
.work-panel,.coach-panel,.practice-panel{border:1px solid #e1e8dc;border-radius:20px;background:#fffefa;box-shadow:0 8px 24px rgba(44,76,47,.055)}
.work-panel{padding:18px}
.coach-panel{padding:17px}
.v2-label{margin-bottom:17px;color:#425a48;font-size:14px;font-weight:650}
.v2-label input,.v2-label select,.v2-label textarea,.work-panel>textarea,.practice-panel textarea{margin-top:8px;border:1px solid #dce6d7;border-radius:13px;background:#fafbf6;color:#263c2e;font-size:16px;outline:none;transition:border-color .18s,box-shadow .18s}
.v2-label input:focus,.v2-label select:focus,.work-panel>textarea:focus{border-color:#70a17a;box-shadow:0 0 0 3px rgba(67,138,87,.09)}
.v2-note{color:#728176;font-size:13px;line-height:1.75}
.v2-mode{gap:4px;margin:-4px 0 19px;padding:4px;border:0;border-radius:13px;background:#eff3e9}
.v2-mode button{flex:1;border:0;border-radius:10px;color:#738175;font-size:14px;font-weight:600}
.v2-mode button.on{border:0;background:#fffefa;color:#347449;box-shadow:0 3px 10px rgba(45,75,46,.07)}
.v2-title-list button,.v2-chips button,.v2-tools button,.v2-mode button{min-height:42px}
.v2-title-list button,.v2-chips button,.v2-tools button{border:1px solid #dce8d6;border-radius:11px;background:#edf4e8;color:#3d714c;font-size:13px}
.v2-msg{border:1px solid #e5ebe0;border-radius:15px 15px 15px 5px;background:#fffefa;line-height:1.75}
.v2-msg.me{border:0;border-radius:15px 15px 5px 15px;background:#e7f0e1;color:#2e5038}
.v2-stances>button:not(.v2-link),.v2-sentences button{border:1px solid #dfe8da;border-radius:14px;background:#f8faf4}
.v2-stances>button.selected,.v2-sentences button.selected{border-color:#5e956b;background:#e8f2e3}
.v2-outline-seg{padding:16px 0}
.v2-word{border-radius:8px;background:#eaf2e4;color:#3d6848}
.v2-score b{color:#347449}
.flow-actions{position:fixed;left:50%;bottom:0;z-index:45;display:flex;gap:10px;width:min(var(--appw),100%);padding:12px 16px calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);border-top:1px solid #e0e8db;background:rgba(255,254,250,.96);box-shadow:0 -8px 24px rgba(48,73,45,.06);backdrop-filter:blur(12px)}
.action-back,.action-primary{min-height:50px;border-radius:15px;font-size:15px;font-weight:650}
.action-back{border:1px solid #d5e2d0;background:#f5f8f0;color:#52705a}
.action-primary{background:var(--grad);box-shadow:0 7px 18px rgba(46,104,66,.18)}
/* 素材书架：两列书架，减少无意义的长页面。 */
#p-lib.on{display:block;padding:20px 14px calc(104px + env(safe-area-inset-bottom));background:var(--c-page)}
#p-lib .libhead{min-height:66px;margin:0 3px 17px;align-items:flex-start}
#p-lib .libhead h1{font-size:25px;font-weight:750;line-height:1.3;letter-spacing:-.02em}
#p-lib .libhead p{margin-top:6px;color:#748176;font-size:12px;line-height:1.6}
#p-lib .favn{min-height:38px;padding:0 12px;border:1px solid #dbe6d6;border-radius:999px;background:#eef4e9;color:#42734e;font-size:12px}
#p-lib .lib-back{width:38px;height:38px;min-height:38px;flex-basis:38px;background:#e8f0e3;color:#347449;font-size:25px}
#p-lib .catgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
#p-lib .shelf-category{position:relative;display:flex;align-items:flex-start;min-width:0;min-height:184px;margin:0;padding:17px 14px 15px;overflow:hidden;flex-direction:column;border:1px solid #e0e8da;border-radius:19px;background:#fffefa;text-align:left;box-shadow:0 5px 16px rgba(44,72,45,.045)}
#p-lib .shelf-category:nth-child(2n){background:#f1f5e9}
#p-lib .shelf-category:nth-child(3n){background:#f7f3e8}
#p-lib .shelf-books{display:flex;align-items:flex-end;gap:4px;height:47px;margin-bottom:13px}
#p-lib .shelf-books i{display:block;width:9px;height:38px;border-radius:3px 3px 1px 1px;background:#4b7d5b;box-shadow:inset -2px 0 rgba(255,255,255,.18)}
#p-lib .shelf-books i:nth-child(2){width:11px;height:46px;background:#c18b51;transform:rotate(6deg);transform-origin:bottom}
#p-lib .shelf-books i:nth-child(3){width:8px;height:33px;background:#88a18a}
#p-lib .shelf-copy{display:flex;min-width:0;flex:1;flex-direction:column}
#p-lib .shelf-copy b{font-size:19px;font-weight:750}
#p-lib .shelf-copy>span{display:-webkit-box;margin-top:6px;overflow:hidden;color:#728074;font-size:11px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}
#p-lib .shelf-copy em{margin-top:auto;padding-top:9px;color:#477552;font-size:10px;font-style:normal}
#p-lib .shelf-favorite{display:flex;align-items:center;grid-column:1/-1;min-height:72px;padding:14px 17px;border:1px dashed #cddcc8;border-radius:17px;background:#eef4e8;color:#355d40;text-align:left}
#p-lib .shelf-favorite b{font-size:15px}
#p-lib .shelf-favorite span{margin-left:10px;color:#788678;font-size:11px}
#p-lib .shelf-favorite em{margin-left:auto;color:#477552;font-size:12px;font-style:normal}
#p-lib .srcline{margin:15px 4px 0;color:#849085;font-size:10px;line-height:1.65}
#p-lib .shelf-guide{margin-top:15px;padding:15px 17px;border-left:3px solid #8baa80;border-radius:4px 14px 14px 4px;background:#eaf1e4}
#p-lib .shelf-guide b{display:block;font-size:13px;font-weight:700}
#p-lib .shelf-guide span{display:block;margin-top:4px;color:#6d7d70;font-size:11px;line-height:1.7}
#p-lib .libtools{margin:0 0 12px;padding:9px 10px;border:1px solid #e1e8dc;border-radius:15px;background:#fffefa}
#p-lib .libsel{height:38px;border-color:#dbe6d5;background-color:#f0f5eb;color:#3d6e49}
#p-lib .book-list{display:grid;gap:12px}
#p-lib .book-row{position:relative;border:1px solid #e0e8da;border-radius:18px;background:#fffefa;box-shadow:0 4px 16px rgba(44,72,45,.04)}
#p-lib .book-open{width:100%;padding:18px 46px 17px 18px;text-align:left}
#p-lib .book-meta{color:#6b8b6b;font-size:11px}
#p-lib .book-open h2{margin-top:7px;font-size:19px;font-weight:700}
#p-lib .book-open p{display:-webkit-box;margin-top:7px;overflow:hidden;color:#6f7e72;font-size:13px;line-height:1.75;-webkit-box-orient:vertical;-webkit-line-clamp:2}
#p-lib .book-read{display:block;margin-top:10px;color:#347449;font-size:12px;font-weight:650}
#p-lib .book-fav{position:absolute;right:9px;top:10px;width:38px;height:38px;border-radius:50%;color:#b38438;background:#faf3df}
#p-lib .reader-page{overflow:hidden;border:1px solid #e0e7da;border-radius:20px;background:#fffefa;box-shadow:0 6px 22px rgba(44,72,45,.05)}
#p-lib .reader-main{padding:24px 20px}
#p-lib .reader-heading>span{color:#5d825f;font-size:11px;letter-spacing:.04em}
#p-lib .reader-heading h2{margin-top:10px;font-size:25px;font-weight:750;line-height:1.45}
#p-lib .reader-body p{margin-top:18px;color:#344b3a;font-size:17px;line-height:2}
#p-lib .reader-notes{margin:0 12px 12px;padding:18px 16px;border-radius:16px;background:#edf3e7}
#p-lib .reader-note-head b{font-size:16px;font-weight:700}
#p-lib .reader-note-head span{display:block;margin-top:5px;color:#6d7e6f;font-size:11px;line-height:1.6}
#p-lib .reader-notes li>span{background:#5c8c64;color:#fff}
/* 个人中心：头像与账户状态成为一个完整区域。 */
#p-space.on{background:var(--c-page)}
#p-space .spwrap{padding-top:14px}
#p-space .sphero{position:relative;min-height:163px;overflow:hidden;border-radius:24px;background:#f7f4e8 url('./assets/home/space-hero.webp') center/cover no-repeat;box-shadow:0 12px 26px rgba(69,94,57,.11)}
#p-space .sphero::after{display:none}
#p-space .sphero .hn{color:#294b36;font-size:20px;font-weight:750;letter-spacing:.02em;text-shadow:none}
#p-space .sphero .hs{max-width:200px;color:#64745f;font-size:12px;line-height:1.65}
#p-space .sphero .hcopy{position:relative;z-index:2}
#p-space .space-avatar{position:absolute;right:17px;top:26px;width:70px;height:70px;border:3px solid rgba(255,255,255,.8);border-radius:50%;object-fit:cover;box-shadow:0 6px 16px rgba(27,70,39,.18)}
#p-space .spdays{border:1px solid #e1e8dc;border-radius:19px;background:#fffefa;box-shadow:0 7px 20px rgba(44,72,45,.06)}
#p-space .spkeybtn{border:1px solid #d2e1cc;border-radius:15px;background:#edf4e8;color:#39734b}
#p-space .grid4{gap:12px}
#p-space .gitem{border:1px solid #e1e8dc;border-radius:18px;background:#fffefa;box-shadow:0 4px 14px rgba(44,72,45,.04)}
#p-space .gitem b{font-weight:650}
#p-space .gitem .gic{border-radius:13px;background:#e7f0e1!important;color:#3e784e!important;box-shadow:none}
#p-space .gitem:nth-child(2) .gic{background:#faf0d9!important;color:#a5752c!important}
#p-space .gitem:nth-child(3) .gic{background:#e8f2ef!important;color:#437b6c!important}
#p-space .gitem:nth-child(4) .gic{background:#f3ecdf!important;color:#8e6c3d!important}
#p-space .sg{overflow:hidden;border:1px solid #e1e8dc;border-radius:19px;background:#fffefa;box-shadow:0 5px 17px rgba(44,72,45,.04)}
#p-space .setrow{border-color:#e8ede3}
#p-space .setrow:hover{background:#f4f7ef}
/* 福利与激活：温暖促销，但不做刺眼广告。 */
#p-earn{background:linear-gradient(180deg,#edf4e6 0,#f7f8f2 330px)!important}
#p-earn .earn-hero{overflow:hidden;border:1px solid rgba(255,255,255,.25);border-radius:24px;background:linear-gradient(135deg,#4d8f5b,#2f6c44);box-shadow:0 14px 30px rgba(45,96,56,.17)}
#p-earn .earn-hero-top,#p-earn .earn-hero h2,#p-earn .earn-hero p,#p-earn .earn-code-card,#p-earn .earn-btn,#p-earn .earn-stat{position:relative;z-index:2}
#p-earn .earn-hero h2{max-width:245px;font-size:23px;line-height:1.45}
#p-earn .earn-hero p{max-width:250px}
#p-earn .earn-gift{position:absolute;z-index:1;right:-4px;top:46px;width:102px;height:102px;opacity:.25;transform:rotate(5deg)}
#p-earn .earn-code-card{border:1px solid rgba(255,255,255,.55);border-radius:15px;background:#fffefa}
#p-earn .earn-btn{border-radius:14px}
#p-earn .earn-btn.primary{background:#fffefa;color:#2f6c44}
#p-earn .earn-btn.ghost{border:1px solid #d2e2cc;background:#eaf3e5;color:#347449}
#p-earn .earn-card{border:1px solid #e0e8da;border-radius:20px;background:#fffefa;box-shadow:0 6px 20px rgba(44,72,45,.05)}
#p-earn .earn-card-head b{font-size:16px;font-weight:700}
#p-earn .earn-tiers .kv{border-radius:12px;background:#f0f5eb}
#p-earn .earn-ico{border-radius:13px;background:#e5f0df;color:#3d784d}
#p-act.on{background:var(--c-page)}
#p-act .spark{display:none}
#p-act .pagehead{padding:20px 22px 18px!important;text-align:left!important}
#p-act .pagehead:before{content:none}
#p-act .act-logo{display:block;width:76px;height:auto;margin:0 auto 12px}
#p-act .pagehead h1{font-size:25px!important;font-weight:750;text-align:center}
#p-act .pagehead p{margin-top:7px;color:#728176;font-size:13px;text-align:center}
#p-act .actcard2{position:relative;display:block;margin:0 16px;padding:19px;border:1px solid #e0e8da;border-radius:22px;background:#fffefa;box-shadow:0 8px 24px rgba(44,72,45,.055)}
#p-act .actcard2:before{content:"";position:absolute;left:20px;right:20px;top:0;height:3px;border-radius:0 0 4px 4px;background:#7da27b}
#p-act .actcard2 input{height:52px;border:1px solid #dce6d7;border-radius:13px;background:#f8faf5;color:#294231}
#p-act .actcard2 .btn{min-height:50px;margin-top:15px;border-radius:14px}
#p-act .actcard2 .foot{display:flex;gap:5px;margin-top:13px;color:#7b887e;font-size:11px;line-height:1.65}
#p-act .note28{position:static;right:auto;bottom:auto;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;margin:15px 0 0;padding:13px 15px;transform:none;border-radius:14px;background:#edf3e7;box-shadow:none;text-align:left}
#p-act .note28 .v{color:#347449;font-size:22px}
/* 成长档案弹层。 */
#statSheet .box,#worksSheet .box{border-radius:24px 24px 0 0;background:#f8faf4}
#statSheet .sh,#worksSheet .sh{border-bottom:1px solid #e1e9dc}
#statSheet .statgrid{gap:10px}
#statSheet .statbox{border:1px solid #dfe8d9;border-radius:16px;background:#fffefa}
#statSheet .statbox b{color:#347449}
#statSheet .statnote{color:#6c7c6f;line-height:1.8}
@media(max-width:359px){
  .flow-stage{padding-left:12px;padding-right:12px}
  .stage-title{font-size:23px}
  #p-lib.on{padding-left:11px;padding-right:11px}
  #p-lib .catgrid{gap:9px}
  #p-lib .shelf-category{min-height:177px;padding:14px 12px}
  #p-lib .shelf-copy>span{font-size:10px}
  #p-space .space-avatar{width:58px;height:58px;right:14px}
  #p-space .sphero .hs{max-width:150px}
  #p-act #keyInput{font-size:14px;letter-spacing:-.02em}
}
@media(min-width:768px){
  #p-lib.on{padding:26px 24px 40px}
  #p-lib .catgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #p-lib .shelf-favorite{grid-column:span 2}
  .flow-actions{position:static;width:auto;padding:16px 0 0;transform:none;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
  .flow-stage{padding-bottom:40px}
}
@media(min-width:1100px){
  #p-lib.on{display:block;max-width:960px;margin:0 auto}
  #p-space .sphero{min-height:180px}
  #p-act .pagehead{padding-left:0;padding-right:0}
}
