:root{--primary: #5C7F4A;--primary-dark: #4A6B3C;--primary-light: #7A9A6A;--primary-soft: #9AB585;--bg: #F5EFE2;--card: #FFFFFF;--text: #2C3520;--muted: #7A8270;--muted-light: #A8A899;--border: #E0DAC8;--green-bg: #EEF2E5;--green-bg-deep: #DEE5D0;--danger: #e25555;--radius: 18px;--shadow: 0 2px 12px rgba(120, 90, 40, .08);--grad-primary: linear-gradient(135deg, #7A9A6A, #5C7F4A);--grad-primary-dark: linear-gradient(135deg, #7A9A6A, #4A6B3C);--grad-bar: linear-gradient(90deg, #9AB585, #5C7F4A);--tabbar-h: 64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;padding:0}body{background:#efe9da;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.app-shell{min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column}.app-main{flex:1;display:flex;flex-direction:column;width:100%}.page-wrap{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box}.page-wrap.with-tab{padding-bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom))}@media (min-width: 768px){.page-wrap{padding:28px 24px 56px}.page-wrap.with-tab{padding-bottom:56px}}.topbar{display:flex;align-items:center;gap:10px;padding:8px 2px 12px}.topbar .back{width:34px;height:34px;border-radius:50%;background:var(--grad-primary-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;border:none;cursor:pointer;flex-shrink:0;box-shadow:0 2px 8px #4a6b3c40}.topbar .title{font-size:18px;font-weight:700;flex:1}.topbar .extra{margin-left:auto}.brandbar{display:flex;align-items:center;gap:8px;padding:8px 2px 0}.brandbar .logo-mark{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow);flex-shrink:0}.brandbar .logo-mark img{width:34px;height:34px;object-fit:contain}.brandbar .logo{font-size:22px;font-weight:900;letter-spacing:1px;background:var(--grad-primary-dark);-webkit-background-clip:text;background-clip:text;color:transparent}.brandbar .slogan{font-size:12px;color:var(--muted)}.brandbar .domain{margin-left:auto;font-size:12px;color:#c4b79b;font-weight:600}.hello{padding:14px 2px 8px}.hello .h1{font-size:21px;font-weight:800}.hello .p{color:var(--muted);font-size:13px;margin-top:4px}.hello .accent{color:var(--primary);font-weight:700}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}.row{display:flex;align-items:center}.grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:12px}.sec-title{font-size:16px;font-weight:700;margin:18px 2px 10px;display:flex;align-items:center;justify-content:space-between}.sec-title .more{font-size:12px;color:var(--muted);font-weight:400;cursor:pointer}.btn{display:block;width:100%;padding:14px;border-radius:14px;background:var(--grad-primary);color:#fff;font-size:15px;font-weight:700;text-align:center;box-shadow:0 4px 14px #5c7f4a59;border:none;cursor:pointer;box-sizing:border-box;text-decoration:none;transition:opacity .15s,transform .1s}.btn:active{opacity:.85;transform:scale(.99)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--grad-primary);color:#fff}.btn.outline{background:var(--green-bg);color:var(--primary);box-shadow:none;border:2px solid #C8D6B8}.btn.ghost{background:var(--green-bg);color:var(--primary);box-shadow:none;border:1px solid #C8D6B8}.btn.ghost.sm,.btn.sm{width:auto;padding:8px 16px;font-size:13px;border-radius:999px}.btn.danger{background:linear-gradient(135deg,#e87979,#d64545);box-shadow:0 4px 14px #d246464d}.btn.gray{background:#f4efe4;color:#7a7466;box-shadow:none;border:1px solid #F0E9DB}.btn-row{display:flex;gap:12px}.chip{display:inline-flex;align-items:center;gap:3px;padding:5px 12px;border-radius:999px;background:#e8efdf;color:#4a6b3c;font-size:12px;margin:0 6px 6px 0;border:1px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.chip.sel{background:var(--primary);color:#fff}.chip.add{border:1px dashed #9AB585;color:var(--primary);background:#fff}.chip.onhero{background:#fff3;color:#fff}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.badge.strong{background:#e8efdf;color:#4a6b3c}.badge.early{background:#e8efdf;color:var(--primary)}.badge.collect{background:#f3f4f6;color:var(--muted)}.badge.vs{background:#faf1d6;color:#7a5c2c}.emoji-box{width:46px;height:46px;border-radius:14px;flex-shrink:0;background:linear-gradient(135deg,#eef2e5,#dee5d0);display:flex;align-items:center;justify-content:center;font-size:24px}.exp-card{display:flex;gap:12px;align-items:center}.exp-card .h3{font-size:15px;font-weight:700}.exp-card .sub{font-size:12px;color:var(--muted);margin-top:3px}.exp-card .card-action{margin-left:auto;margin-right:-16px;flex-shrink:0;align-self:center}.progress{height:6px;background:#e8e2d2;border-radius:99px;overflow:hidden;margin-top:8px}.progress .fill{display:block;height:100%;background:var(--grad-bar);border-radius:99px}.statbar{margin:10px 0}.statbar .lab{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}.statbar .lab .val{color:var(--primary);font-weight:700}.statbar .track{height:10px;background:#e5ddc8;border-radius:99px;overflow:hidden}.statbar .fill{height:100%;border-radius:99px;background:var(--grad-bar)}.statbar .fill.blue{background:linear-gradient(90deg,#6366f1,#4f46e5)}.vote-bar{margin:8px 0}.vote-bar .vote-lab{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.vote-bar .vote-track{height:32px;background:#e8e2d2;border-radius:10px;overflow:hidden;position:relative}.vote-bar .vote-fill{height:100%;border-radius:10px;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#fff;font-size:12px;font-weight:600;transition:width .3s;min-width:0}.vote-bar .vote-fill.empty{color:var(--muted)}.field{margin-bottom:18px}.field .lab{font-size:14px;font-weight:600;margin-bottom:10px}.input,.textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:12px;font-size:14px;background:#f5f0e2;box-sizing:border-box;color:var(--text);outline:none;font-family:inherit}.input:focus,.textarea:focus{border-color:var(--primary-soft)}.textarea{resize:vertical;line-height:1.5}textarea.input,textarea.textarea{min-height:80px}.toggle{width:56px;height:32px;border-radius:99px;background:#e7e0d2;position:relative;transition:.2s;flex-shrink:0;border:none;cursor:pointer;padding:0}.toggle.on{background:var(--primary)}.toggle .knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 4px #0003}.toggle.on .knob{left:27px}.switch{width:48px;height:28px;border-radius:99px;background:#d5cfc0;position:relative;transition:.2s;border:none;cursor:pointer;padding:0;flex-shrink:0}.switch.on{background:var(--primary)}.switch .knob{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 4px #0003}.switch.on .knob{left:22px}.stepper{display:flex;align-items:center;gap:16px}.stepper .step-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;font-size:20px;color:var(--primary);cursor:pointer;display:flex;align-items:center;justify-content:center}.stepper .val{font-size:20px;font-weight:800;min-width:90px;text-align:center}.stepper .val .unit{font-size:12px;color:var(--muted);font-weight:400}.stars{display:flex;gap:8px}.stars .star{font-size:28px;color:#d5cfc0;transition:.15s;cursor:pointer;background:none;border:none;padding:0}.stars .star.on{color:var(--primary-light)}.stars .star.readonly{cursor:default}input[type=range].slider{width:100%;accent-color:var(--primary);height:32px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal .day{aspect-ratio:1;border-radius:8px;background:#e8e2d2;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted)}.cal .day.hit{background:var(--grad-primary-dark);color:#fff;font-weight:700}.cal .day.today{border:2px solid var(--primary);box-sizing:border-box}.trend{display:flex;align-items:flex-end;gap:10px;height:110px;padding:10px 4px 0}.trend .bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.trend .bar{width:60%;border-radius:6px 6px 0 0;background:var(--grad-primary-dark);transition:height .3s}.trend .bar-x{font-size:9px;color:var(--muted)}.trend-enhanced{height:160px;gap:12px}.trend-enhanced .bar-wrap{height:100%;gap:2px}.trend-enhanced .bar-val{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:2px}.trend-enhanced .bar-track{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.trend-enhanced .bar-track .bar{width:24px;min-height:4px}.trend-enhanced .bar-x{margin-top:6px;font-size:10px}.hero{background:var(--grad-primary-dark);color:#fff;border-radius:var(--radius);padding:20px 18px;margin-bottom:14px;box-shadow:0 6px 18px #4a6b3c4d}.hero .big{font-size:40px}.hero .h2{font-size:19px;margin:8px 0 4px;font-weight:700}.hero .p{font-size:13px;opacity:.9}.numrow{display:flex;text-align:center;margin:14px 0}.numrow .cell{flex:1}.numrow .num{font-size:19px;font-weight:700;display:block}.numrow .num.green{color:var(--primary)}.numrow .lab{font-size:11px;color:var(--muted)}.disclaimer{font-size:11px;color:var(--muted-light);text-align:center;padding:6px 20px 14px;line-height:1.6}.warn-strip{background:#fff9f0;border:1px solid #FDE68A;color:#92400e;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.6;margin-bottom:12px}.encourage-card{background:linear-gradient(135deg,#eef2e5,#dee5d0);border-radius:var(--radius);padding:16px;margin-bottom:12px}.search-box{background:#fff;border-radius:12px;padding:11px 14px;color:var(--muted-light);font-size:14px;margin-bottom:14px;box-shadow:var(--shadow)}.search-input-wrap{padding:0;overflow:hidden;display:flex;align-items:center}.search-input{width:100%;padding:12px 14px;font-size:14px;color:var(--text);background:transparent;border:none;outline:none;box-sizing:border-box}.search-input::placeholder{color:var(--muted-light)}.locked-mask{text-align:center;padding:22px 10px}.locked-mask .lock-emoji{font-size:34px}.locked-mask .lock-title{font-size:16px;font-weight:700;margin:8px 0 4px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border);font-size:14px}.setting-row.last{border-bottom:none}.skeleton{animation:shimmer 1.6s ease-in-out infinite}@keyframes shimmer{0%{opacity:1}50%{opacity:.45}to{opacity:1}}.skel-box{background:#d5cfc0;border-radius:12px}.skel-line{height:14px;background:#d5cfc0;border-radius:7px;margin-bottom:10px}.skel-line.w100{width:100%}.skel-line.w60{width:60%}.skel-line.w40{width:40%}.skel-line.w80{width:80%}.skel-line.w30{width:30%}.skel-line.sm{height:10px;margin-bottom:8px}.skel-card{padding:16px;margin-bottom:12px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.skel-circle{width:46px;height:46px;border-radius:50%;background:#d5cfc0;flex-shrink:0}.skel-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.skel-grid{display:flex;gap:12px}.skel-grid .skel-card{flex:1;height:68px}.empty-state{text-align:center;padding:48px 24px;color:var(--muted-light)}.empty-state .empty-icon{font-size:40px;margin-bottom:12px;opacity:.6}.empty-state .empty-title{font-size:17px;font-weight:700;color:var(--muted);margin-bottom:6px}.empty-state .empty-desc{font-size:13px;line-height:1.6}.empty-state .empty-action{margin-top:16px;display:inline-block;padding:10px 24px;border-radius:20px;background:var(--primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer}.tab-bar{display:flex;margin-bottom:12px;background:#fff;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.tab-item{flex:1;text-align:center;padding:12px 0;font-size:15px;font-weight:600;color:var(--muted);position:relative;transition:all .2s;cursor:pointer;border:none;background:none}.tab-item.active{color:var(--primary);font-weight:700}.tab-item.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:var(--primary);border-radius:2px}.exp-selector-wrap{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.exp-selector-wrap::-webkit-scrollbar{display:none}.exp-chip{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:8px 14px;border-radius:20px;font-size:14px;font-weight:600;background:#fff;color:var(--muted);border:1.5px solid var(--border);cursor:pointer;transition:all .2s}.exp-chip.active{background:var(--green-bg);border-color:var(--primary);color:var(--primary)}.chip-days{font-size:10px;color:var(--muted-light);font-weight:400}.exp-chip.active .chip-days{color:var(--primary)}.chip-status{font-size:10px;font-weight:600;line-height:1;padding:3px 7px;border-radius:8px;flex-shrink:0}.chip-status.completed{background:var(--green-bg);color:var(--primary)}.chip-status.archived{background:#f5efe0;color:#8a7b5c}.chip-status.quitted{background:#f7e8e8;color:#a05c5c}.template-scroll{display:flex;gap:10px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.template-scroll::-webkit-scrollbar{display:none}.template-card{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:92px;padding:14px 10px;border-radius:14px;background:#fff;box-shadow:0 2px 10px #785a280f;flex-shrink:0;cursor:pointer}.template-card:active{background:var(--green-bg);transform:scale(.96)}.template-emoji{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#eef2e5,#dee5d0);display:flex;align-items:center;justify-content:center;font-size:26px}.template-name{font-size:13px;font-weight:600;color:var(--text);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.template-meta{font-size:11px;color:var(--muted-light)}.custom-tab-bar{display:none}@media (max-width: 767px){.custom-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--tabbar-h);background:#fff;border-top:1px solid #E5DFCE;align-items:stretch;padding-bottom:env(safe-area-inset-bottom);z-index:30;box-shadow:0 -2px 12px #0000000f}}.custom-tab-bar .tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--muted-light);border:none;background:none}.custom-tab-bar .tab-item.active{color:var(--primary)}.custom-tab-bar .tab-icon{font-size:21px;line-height:1}.custom-tab-bar .tab-text{font-size:11px}.custom-tab-bar .tab-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;border:none;background:none}.custom-tab-bar .center-circle{width:46px;height:46px;border-radius:50%;background:var(--grad-primary);display:flex;align-items:center;justify-content:center;margin-top:-22px;box-shadow:0 4px 12px #5c7f4a66;border:3px solid #fff}.custom-tab-bar .center-plus{font-size:26px;color:#fff;font-weight:300;line-height:1}.custom-tab-bar .tab-label{font-size:11px;margin-top:2px}.tag-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.tag-scroll::-webkit-scrollbar{display:none}.tag-scroll .chip{flex-shrink:0;margin:0}.row-labels{display:flex;flex-wrap:wrap}.row-labels .rl-item{width:50%;padding:6px 0}.row-labels .rl-lab{font-size:12px;color:var(--muted-light)}.row-labels .rl-val{font-size:14px;font-weight:600;margin-top:2px}.tag-edit{background:var(--green-bg);border-radius:var(--radius);padding:14px;margin-bottom:12px}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;padding:18px 12px 8px;font-size:12px;color:var(--muted-light)}.footer-links span{cursor:pointer}.footer-links span:hover{color:var(--muted)}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:999;display:flex;align-items:flex-end;justify-content:center}.sheet-panel{width:100%;max-width:480px;max-height:88vh;overflow-y:auto;background:#fff9f0;border-radius:20px 20px 0 0;padding:12px 20px 32px;box-shadow:0 -4px 24px #0000001f;animation:slideUp .3s ease;box-sizing:border-box}.sheet-handle{width:40px;height:4px;border-radius:2px;background:#d8cfbb;margin:4px auto 16px}@keyframes slideUp{0%{transform:translateY(60px);opacity:.4}to{transform:translateY(0);opacity:1}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1001;display:flex;align-items:center;justify-content:center;padding:32px}.modal-panel{width:100%;max-width:340px;background:#fff;border-radius:18px;padding:24px 20px 18px;box-shadow:0 10px 40px #0003;animation:popIn .2s ease}.modal-panel .modal-title{font-size:16px;font-weight:700;text-align:center;margin-bottom:10px}.modal-panel .modal-body{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:18px;text-align:center}.modal-panel .modal-body.left{text-align:left}.modal-panel .modal-input{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:16px;outline:none;box-sizing:border-box}.modal-panel .modal-actions{display:flex;gap:12px}.modal-panel .modal-actions .btn{padding:11px;font-size:14px}@keyframes popIn{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.actionsheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1001;display:flex;align-items:flex-end;justify-content:center}.actionsheet-panel{width:100%;max-width:480px;background:#f5f0e2;border-radius:16px 16px 0 0;overflow:hidden;animation:slideUp .25s ease;padding-bottom:env(safe-area-inset-bottom)}.actionsheet-item{display:block;width:100%;padding:16px;text-align:center;font-size:16px;color:var(--text);background:#fff;border:none;border-bottom:1px solid #EFE9DA;cursor:pointer}.actionsheet-item:active{background:#f5f0e2}.actionsheet-item.danger{color:var(--danger)}.actionsheet-cancel{display:block;width:100%;padding:16px;text-align:center;font-size:16px;font-weight:600;color:var(--muted);background:#fff;border:none;margin-top:8px;cursor:pointer}.toast-wrap{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);z-index:2000;pointer-events:none}.toast-item{background:#1e2018e0;color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;max-width:280px;text-align:center;animation:toastIn .2s ease;box-shadow:0 4px 16px #00000040}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-page{min-height:100%;display:flex;flex-direction:column;padding:40px 24px 32px}.login-brand{text-align:center;margin-bottom:24px}.login-brand .logo-img{width:120px;height:auto}.login-brand .slogan{font-size:16px;font-weight:700;color:var(--primary);margin-top:12px}.login-brand .desc{font-size:13px;color:var(--muted);margin-top:6px}.login-actions{margin-top:8px}.login-wechat{display:flex;align-items:center;justify-content:center;gap:8px}.dev-login{margin-top:20px}.dev-login .dev-title{font-size:12px;color:var(--muted-light);text-align:center;margin-bottom:8px}.agree-row{display:flex;align-items:flex-start;gap:8px;margin:20px 8px;font-size:12px;color:var(--muted);cursor:pointer}.check-box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border);background:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;margin-top:1px}.check-box.checked{background:var(--primary);border-color:var(--primary)}.agree-row .link{color:var(--primary)}.agree-page{padding:16px}.agree-section{margin-bottom:24px}.agree-section .agree-title{font-size:18px;font-weight:800;margin-bottom:4px}.agree-section .agree-date{font-size:12px;color:var(--muted-light);margin-bottom:12px}.agree-section .agree-para{font-size:14px;line-height:1.9;color:var(--text);margin-bottom:10px}.cert-card{border:2px solid var(--primary);border-radius:var(--radius);padding:20px;text-align:center;background:linear-gradient(160deg,#fdfcf8,#f5f1e4);margin-bottom:12px}.cert-card .cert-logo{width:56px;height:56px;border-radius:14px;background:#fff;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;overflow:hidden}.cert-card .cert-logo img{width:42px;height:42px;object-fit:contain}.cert-card .cert-title{font-size:18px;font-weight:800;color:var(--primary-dark)}.cert-card .cert-exp{font-size:15px;font-weight:700;margin:8px 0 4px}.cert-card .cert-sub{font-size:13px;color:var(--muted)}.cert-card .cert-goals{margin:12px 0}.cert-card .cert-goal{font-size:14px;color:var(--primary);font-weight:600;margin:4px 0}.cert-card .cert-no{font-size:11px;color:var(--muted-light);margin-top:12px}.cert-card .cert-brand{font-size:12px;color:var(--primary);font-weight:700;margin-top:6px}.poster-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;z-index:1200;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px}.poster-mask img{max-height:74vh;max-width:88vw;border-radius:10px;box-shadow:0 8px 40px #0006}.poster-hint{color:#ffffffd9;font-size:13px;margin-top:16px}.share-card{background:#fff;border-radius:16px;padding:20px;text-align:center}.share-card .share-emoji{font-size:44px}.share-card .share-name{font-size:17px;font-weight:700;margin:6px 0 2px}.share-card .share-action{font-size:13px;color:var(--muted)}.share-card .share-meta{font-size:12px;color:var(--muted-light);margin-top:8px}.share-card .share-code{font-size:16px;font-weight:700;color:var(--primary);letter-spacing:3px;margin-top:8px}.share-card .share-qr{width:120px;height:120px;border:1.5px dashed #D8CFBB;border-radius:12px;margin:14px auto 8px;display:flex;align-items:center;justify-content:center;color:var(--muted-light);font-size:12px}.bool-row{transition:background .15s}.bool-row.selected{background:var(--green-bg);border-radius:12px}.param-row{display:flex;gap:8px;margin-bottom:10px;align-items:center}.param-row .input{flex:1}.creator-bar{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px dashed #D97706;border-radius:14px;padding:12px 14px;margin-bottom:12px;font-size:13px;color:#7a5c2c}.creator-bar .creator-actions{display:flex;gap:10px;margin-top:10px}.creator-bar .creator-actions .btn{padding:8px;font-size:13px}.concl-tag{display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border-radius:999px;background:#f4efe4;font-size:13px;margin:0 8px 8px 0;cursor:pointer;border:1.5px solid transparent;-webkit-user-select:none;user-select:none}.concl-tag.liked{background:#fff3e8;border-color:var(--primary)}.share-unlock-btn{display:flex;align-items:center;justify-content:center;gap:6px}.flex{display:flex}.aic{align-items:center}.jcb{justify-content:space-between}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb12{margin-bottom:12px}.center{text-align:center}.fw700{font-weight:700}.fs12{font-size:12px}.fs13{font-size:13px}.fs15{font-size:15px}.c-muted{color:var(--muted)}.c-primary{color:var(--primary)}.c-danger{color:var(--danger)}.w100{width:100%}.link-btn{background:none;border:none;color:var(--primary);font-size:inherit;cursor:pointer;padding:0;font-family:inherit}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.site-header{position:sticky;top:0;z-index:40;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.site-header-inner{max-width:1080px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;gap:22px}.site-brand{display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0}.site-brand img{width:34px;height:34px;border-radius:9px;box-shadow:var(--shadow)}.site-brand .name{font-size:19px;font-weight:900;letter-spacing:.5px;white-space:nowrap;background:var(--grad-primary-dark);-webkit-background-clip:text;background-clip:text;color:transparent}.site-nav{display:flex;align-items:center;gap:2px}.site-nav a{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:15px;font-weight:600;color:var(--muted);text-decoration:none;transition:.15s;white-space:nowrap}.site-nav a .ico{font-size:15px}.site-nav a:hover,.site-nav a.active{background:var(--green-bg);color:var(--primary)}.site-user{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}.site-user .login-btn{padding:8px 20px;border-radius:999px;background:var(--grad-primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;box-shadow:0 2px 8px #5c7f4a4d}.user-chip{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 10px 4px 4px;border-radius:999px;transition:background .15s}.user-chip:hover{background:var(--green-bg)}.user-chip .avatar{width:32px;height:32px;border-radius:50%;background:var(--grad-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.user-chip .nick{font-size:14px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 860px){.site-brand .name{font-size:16px}.site-nav a{padding:7px 10px;font-size:14px}}@media (max-width: 767px){.site-nav{display:none}.site-header-inner{height:54px;padding:0 14px}}.site-footer{text-align:center;padding:26px 20px 30px;color:var(--muted-light);font-size:12px;border-top:1px solid var(--border);background:#efe9da;line-height:1.8}.site-footer .links{display:flex;justify-content:center;gap:20px;margin-bottom:8px;flex-wrap:wrap}.site-footer .links span{cursor:pointer;color:var(--muted)}.site-footer .links span:hover{color:var(--primary)}.site-footer .copy{color:var(--muted-light)}.card-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 860px){.card-grid{grid-template-columns:1fr 1fr}}.card-grid .card{margin-bottom:0}.narrow{width:100%;max-width:680px;margin:0 auto}.narrow-sm{width:100%;max-width:520px;margin:0 auto}@media (min-width: 860px){.hero{display:flex;align-items:center;gap:20px}.hero .big{font-size:56px}.hero .hero-body{flex:1}.split-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}}.nav-dropdown{position:relative}.user-chip .caret{font-size:11px;color:var(--muted-light);margin-left:2px}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #00000024;padding:6px;z-index:70;animation:popIn .15s ease}.dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:none;border-radius:9px;font-size:14px;color:var(--text);cursor:pointer;text-align:left;font-family:inherit}.dropdown-item:hover{background:var(--green-bg);color:var(--primary)}.dropdown-item.danger{color:var(--danger)}.dropdown-item.danger:hover{background:#fbeaea;color:var(--danger)}.dropdown-sep{height:1px;background:var(--border);margin:4px 10px}.home-hero{display:none}.home-mobile-head{display:block}@media (min-width: 860px){.home-mobile-head{display:none}.home-hero{display:flex;align-items:center;gap:28px;background:var(--grad-primary-dark);color:#fff;border-radius:20px;padding:34px 38px;margin-bottom:22px;box-shadow:0 8px 26px #4a6b3c52}.home-hero img{width:96px;height:96px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:22px;padding:12px;box-shadow:0 4px 14px #0000002e}.home-hero .hero-body{flex:1}.home-hero h1{font-size:26px;margin:0 0 8px;font-weight:800}.home-hero p{margin:0 0 18px;font-size:15px;opacity:.92}.home-hero .cta{display:flex;gap:12px}.home-hero .cta .btn{width:auto;padding:11px 24px;margin:0}.home-hero .cta .btn.light{background:#fff;color:var(--primary);box-shadow:none}}.home-layout{display:block}.home-side{display:none}@media (min-width: 860px){.home-layout{display:grid;grid-template-columns:248px 1fr;gap:20px;align-items:start}.home-side{display:block;position:sticky;top:80px}.home-main{min-width:0}}.side-title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px}.side-link{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:10px;font-size:14px;cursor:pointer;color:var(--text)}.side-link:hover{background:var(--green-bg);color:var(--primary)}.side-cta{background:var(--grad-primary-dark);color:#fff;border:none}.side-cta .side-cta-title{font-size:16px;font-weight:700;margin-bottom:6px}.side-cta .muted{color:#ffffffd9;margin-bottom:14px}.side-cta .btn{background:#fff;color:var(--primary);box-shadow:none}
