:root{color-scheme:light;--ink:#1d292b;--muted:#657376;--teal:#087c80;--deep:#075e63;--line:#dfe8e7;--pale:#edf6f4;--paper:#f6f8f7;--danger:#b33142;--radius:22px;--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:125px}body{margin:0;color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.65;background:#fff;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--deep);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #27a3a9;outline-offset:4px}button,input,select,textarea{max-width:100%}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.28;letter-spacing:-.035em}h1{font-size:clamp(30px,3.9vw,48px);font-weight:650;margin-bottom:18px}h2{font-size:clamp(25px,2.4vw,34px);font-weight:620;margin-bottom:14px}h3{font-size:19px;font-weight:620;letter-spacing:-.015em;margin-bottom:12px}p{margin-bottom:16px}small{font-size:12px}strong{font-weight:650}button{border:0}svg{vertical-align:middle}.skip-link{position:fixed;top:-70px;left:16px;padding:12px 20px;background:#fff;z-index:1000}.skip-link:focus{top:12px}.container{max-width:1232px;margin:0 auto;padding:0 40px}.glass{background:rgba(255,255,255,.9);border:1px solid rgba(218,230,227,.95);box-shadow:0 6px 28px rgba(37,74,67,.06),inset 0 1px rgba(255,255,255,.95)}@supports ((backdrop-filter:blur(16px)) or (-webkit-backdrop-filter:blur(16px))){.glass{background:rgba(255,255,255,.76);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%)}}#site-header{position:sticky;top:0;z-index:30;padding:18px 28px 0;pointer-events:none}.nav-bar{max-width:1280px;margin:auto;min-height:68px;border-radius:24px;display:flex;align-items:center;padding:9px 15px 9px 20px;gap:24px;pointer-events:auto}.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;color:var(--ink);white-space:nowrap}.brand:hover{text-decoration:none}.brand img{width:34px;height:34px;object-fit:contain}.brand-name{font-size:22px;letter-spacing:-1px;font-weight:750;line-height:1.15}.brand-divider{width:1px;height:22px;background:var(--line);margin:0 3px}.brand-sub{font-size:22px;font-weight:750;letter-spacing:0;color:#000;line-height:1.15}.nav-links{display:flex;align-items:center;gap:4px;flex:1;justify-content:flex-end}.nav-links a,.nav-links button{font-size:13px;min-height:44px;padding:11px 13px;border-radius:14px;white-space:nowrap;font-weight:550;background:transparent;color:#3b4d4e}.nav-links a:hover,.nav-links button:hover{background:#eaf3f1;text-decoration:none}.nav-links a.nav-login{background:var(--teal);color:white;padding-inline:19px}.nav-links .active{background:var(--pale);color:var(--deep)}.nav-separator{height:20px;width:1px;background:var(--line);margin:0 8px}#main{min-height:70vh;outline:none}.hero{position:relative;isolation:isolate;overflow:hidden;padding:83px 0 70px}.hero:before{content:"";position:absolute;z-index:-1;width:680px;height:620px;border-radius:50%;background:radial-gradient(ellipse,#e2f2ed 0,rgba(235,246,241,.5) 45%,transparent 72%);right:calc(50% - 780px);top:-110px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:76px;align-items:center}.eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--deep);font-weight:650;margin-bottom:20px}.status-dot{width:7px;height:7px;border-radius:50%;background:#27968a;box-shadow:0 0 0 4px #e4f3ec;flex:none}.hero h1{font-size:clamp(38px,4.2vw,58px);line-height:1.19;letter-spacing:-.055em;margin-bottom:24px}.hero h1 span{display:block;color:var(--teal)}.hero-description{max-width:500px;font-size:16px;line-height:1.9;color:var(--muted);margin-bottom:29px}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:14px;padding:11px 19px;font-weight:600;font-size:14px;background:#f0f4f3;color:var(--deep);border:1px solid transparent;line-height:1.5;text-align:center;text-decoration:none;transition:background .15s,transform .15s}.button:hover{background:#e2edeb;text-decoration:none}.button:active{transform:translateY(1px)}.button.primary{background:var(--teal);color:#fff;box-shadow:0 5px 14px #087c801c,inset 0 1px #ffffff24}.button.primary:hover{background:var(--deep)}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.secondary:hover{background:var(--paper)}.button.danger{background:#fbeced;color:var(--danger)}.button.small{min-height:44px;padding:9px 13px;font-size:13px}.button.link{background:transparent;box-shadow:none;color:var(--teal);padding-left:0}.hero-note{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--muted);margin-top:22px}.hero-note .icon{flex:none}.hero-aside{position:relative;padding:29px 30px 25px;border-radius:24px;background:rgba(255,255,255,.7);border:1px solid #ffffff;box-shadow:0 16px 45px #295f5010}.hero-aside:before{content:"";position:absolute;inset:10px -11px -11px 10px;z-index:-1;border-radius:24px;border:1px solid #d9eae4;background:#ebf6f0;transform:rotate(3deg)}.aside-label{font-size:11px;letter-spacing:.14em;color:var(--teal);font-weight:650;margin-bottom:24px}.journey-step{display:grid;grid-template-columns:38px 1fr;gap:12px;padding-bottom:24px;position:relative}.journey-step:last-child{padding-bottom:0}.journey-step:not(:last-child):after{content:"";position:absolute;left:16px;top:35px;bottom:5px;width:1px;background:#d9e5e2}.step-num{height:32px;width:32px;border-radius:50%;background:#e5f2ed;color:var(--deep);display:grid;place-items:center;font-size:12px;font-weight:650;border:1px solid #d3e6de}.journey-step h3{font-size:15px;margin:4px 0 3px;letter-spacing:0}.journey-step p{font-size:12px;color:var(--muted);margin:0}.section{padding:58px 0}.section.soft{background:var(--paper);border-top:1px solid #edf1ef;border-bottom:1px solid #edf1ef}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:28px}.section-head h2{margin-bottom:7px}.section-head p{color:var(--muted);margin:0;font-size:14px}.section-kicker{font-size:11px;color:var(--teal);font-weight:650;letter-spacing:.16em;margin-bottom:10px}.period-tag{font-size:12px;color:var(--muted);padding:9px 13px;border:1px solid var(--line);border-radius:10px;white-space:nowrap;background:#fff}.boards{display:grid;grid-template-columns:1fr 1fr;gap:28px}.board{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 26px;min-width:0}.board-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.board-heading h3{font-size:19px;margin:0}.board-heading span{font-size:11px;color:var(--muted);letter-spacing:.06em}.rank-list{list-style:none;margin:0;padding:0}.rank-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:60px;border-top:1px solid #eef2f0}.rank-row:first-child{border-top:none}.rank-number{font-size:12px;color:#758280;white-space:nowrap}.rank-number .trophy{font-size:19px;display:block;line-height:1.1}.rank-number .rank-text{font-size:9px}.rank-number:not(:has(.trophy)){padding-left:0;font-size:13px}.rank-name{font-size:14px;font-weight:550;overflow-wrap:anywhere}.rank-name .badge{margin-left:7px;vertical-align:1px}.rank-points{font-variant-numeric:tabular-nums;font-size:17px;font-weight:650}.rank-points small{font-size:10px;font-weight:400;color:var(--muted);margin-left:4px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:2px 7px;line-height:1.6;border:1px solid #dae6e1;border-radius:6px;background:#f4f8f5;color:#63786e;white-space:nowrap;font-weight:500}.badge.teal{color:var(--deep);background:#e9f5f2;border-color:#cde7df}.badge.amber{background:#fff8e8;border-color:#efe0b4;color:#926717}.badge.red{background:#fff0f1;border-color:#f2d6da;color:#a83a49}.badge.gray{background:#f2f4f5;border-color:#e1e6e7;color:#657376}.section-note{font-size:12px;color:var(--muted);margin:19px 0 0;line-height:1.75}.participate{display:grid;grid-template-columns:1.2fr .8fr;gap:72px;align-items:start}.rule-heading{display:flex;align-items:center;gap:12px}.rule-heading h2{margin:0}.rule-meta{font-size:12px;color:var(--muted);margin:13px 0 24px}.invite-panel{background:linear-gradient(135deg,#ecf6f2,#f7faf6);padding:31px;border:1px solid #dcebe4;border-radius:24px;position:sticky;top:124px}.invite-panel .section-kicker{margin-bottom:19px}.invite-panel h3{font-size:25px;margin-bottom:13px}.invite-panel p{font-size:14px;color:var(--muted);line-height:1.8}.invite-info{display:flex;gap:30px;padding:20px 0;margin-bottom:18px;border-top:1px solid #dce8df;border-bottom:1px solid #dce8df}.invite-info strong{font-size:25px;font-weight:620;line-height:1.2}.invite-info span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.invite-panel .button{width:100%}.prose{line-height:1.85;overflow-wrap:anywhere;font-size:15px;min-width:0}.prose p{margin:0 0 16px}.prose h2{font-size:24px;margin:28px 0 13px}.prose h3{font-size:20px;margin:23px 0 12px}.prose h4{font-size:17px;margin:20px 0 10px}.prose ul,.prose ol{padding-left:1.6em}.prose blockquote{margin:18px 0;padding:12px 20px;border-left:3px solid #9ecbc3;background:var(--paper);color:#526b68}.prose a{text-decoration:underline}.prose img{max-width:100%;height:auto}.site-footer{border-top:1px solid var(--line);background:#fbfcfb;padding:35px 0 28px}.footer-row{display:flex;justify-content:space-between;gap:25px;align-items:center}.footer-brand{font-size:18px;font-weight:700;letter-spacing:-.7px}.footer-brand small{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:13px}.footer-links{display:flex;gap:22px;font-size:12px;align-items:center}.footer-small{margin:17px 0 0;font-size:11px;color:#84908d}.page{padding-top:50px;padding-bottom:76px}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:31px}.page-title h1{font-size:36px;margin:0 0 8px}.page-title p{color:var(--muted);font-size:14px;margin:0}.workspace{display:grid;grid-template-columns:178px minmax(0,1fr);gap:42px}.side-nav{align-self:start;position:sticky;top:120px;display:flex;flex-direction:column;gap:5px;border-right:1px solid var(--line);padding-right:22px}.side-nav a{padding:11px 13px;min-height:44px;color:#657775;font-size:14px;border-radius:11px;font-weight:500}.side-nav a:hover{background:var(--paper);text-decoration:none}.side-nav a.active{color:var(--deep);background:#e9f4ef;font-weight:650}.side-nav .side-label{font-size:10px;color:#86928e;letter-spacing:.1em;padding:0 13px 10px}.workspace-content{min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px}.metric{border-bottom:2px solid #e2ece7;padding:6px 0 22px;min-width:0}.metric-label{color:var(--muted);font-size:12px;margin-bottom:11px}.metric-value{font-size:32px;font-weight:620;letter-spacing:-1px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric-note{font-size:11px;color:#80908a;margin-top:8px}.panel{border:1px solid var(--line);border-radius:20px;padding:26px;background:#fff;margin-bottom:25px;min-width:0}.panel.subtle{background:var(--paper)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.panel-head h2,.panel-head h3{margin:0}.panel-head h2{font-size:22px}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:0 0 22px}.filters .field{margin:0;flex:1;min-width:120px}.filters .field label{font-size:11px;margin-bottom:5px}.filters .field.search{min-width:190px;flex:2}.filters input,.filters select{min-height:44px;padding:10px 12px;font-size:13px}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:15px;overscroll-behavior-x:contain}.table{border-collapse:collapse;width:100%;font-size:13px;text-align:left;min-width:600px}.table th{font-size:11px;font-weight:550;color:#74817c;background:#f7f9f7;white-space:nowrap;padding:13px 16px;border-bottom:1px solid var(--line)}.table td{padding:16px;border-bottom:1px solid #eaf0ed;vertical-align:top;max-width:360px;overflow-wrap:anywhere}.table tr:last-child td{border-bottom:0}.table td .button{white-space:nowrap}.table td strong{font-weight:550}.table .nowrap{white-space:nowrap}.table .subtext{font-size:11px;color:var(--muted);display:block;margin-top:4px}.table td:first-child{min-width:72px}.table td a{font-weight:550}.table .compact-actions{display:flex;gap:7px;flex-wrap:wrap}.feedback-list{border-top:1px solid var(--line)}.feedback-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.feedback-title{font-size:16px;font-weight:560;line-height:1.5;overflow-wrap:anywhere;margin-bottom:9px}.feedback-title a{color:var(--ink)}.feedback-meta{display:flex;flex-wrap:wrap;gap:8px 13px;font-size:11px;color:var(--muted);align-items:center}.feedback-score{text-align:right;align-self:center;font-size:21px;white-space:nowrap;font-variant-numeric:tabular-nums}.feedback-score small{display:block;font-size:11px;color:var(--muted)}.pagination{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:22px;color:var(--muted);font-size:12px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination .button{min-width:44px}.empty{padding:42px 24px;text-align:center;border-radius:15px;background:#f8faf8;color:var(--muted)}.empty-symbol{width:43px;height:43px;margin:0 auto 15px;display:grid;place-items:center;border:1px solid #dbe9e1;border-radius:13px;color:#81a496;font-size:21px;background:white}.empty h3{font-size:15px;margin-bottom:7px;color:#405c51}.empty p{font-size:12px;margin:0 auto;max-width:370px}.empty .button{margin-top:20px}.notice{padding:14px 17px;border-radius:12px;background:#edf6f1;border:1px solid #d9ebe2;color:#3b6855;font-size:13px;margin-bottom:20px;line-height:1.7;overflow-wrap:anywhere}.notice.warning{background:#fff8ec;border-color:#eee0c4;color:#826b3b}.notice.error{background:#fff1f3;border-color:#f1d1d8;color:#9e3348}.notice p:last-child{margin-bottom:0}.notice[hidden]{display:none}.auth-page{max-width:480px;margin:0 auto;padding:55px 24px 75px}.auth-card{border:1px solid var(--line);border-radius:24px;padding:30px;background:#fff;box-shadow:0 18px 60px #1b51440b}.auth-page h1{font-size:30px;margin-bottom:12px}.auth-page .intro{color:var(--muted);font-size:13px;margin-bottom:24px}.auth-tabs{display:flex;gap:8px;margin-bottom:25px;background:var(--paper);padding:5px;border-radius:12px}.auth-tabs a{flex:1;padding:9px;text-align:center;font-size:13px;border-radius:8px;min-height:44px}.auth-tabs a.active{background:white;box-shadow:0 2px 5px #1b514408;color:var(--deep);font-weight:650}.field{display:flex;flex-direction:column;gap:0;margin-bottom:19px;min-width:0}.field>label{display:block;font-size:13px;font-weight:550;margin-bottom:8px;color:#3b4f48}.field input,.field textarea,.field select{width:100%;min-height:46px;border:1px solid #d6e2dd;border-radius:11px;padding:11px 13px;background:#fff;color:var(--ink);line-height:1.55;transition:border .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:#429b87}.field textarea{resize:vertical;min-height:120px}.field .help{color:var(--muted);font-size:11px;margin-top:7px;font-weight:400}.field input[type=file]{padding:9px;font-size:12px}.field input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--teal)}.check-label{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400}.check-label input{margin-top:4px;flex:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 19px}.form-grid>.full{grid-column:1/-1}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:8px}.auth-card .form-actions .button{width:100%}.auth-footer{text-align:center;color:var(--muted);font-size:12px;margin-top:22px}.captcha-row{display:flex;gap:10px;align-items:center}.captcha-row input{min-width:0;flex:1}.captcha-button{padding:0;width:144px;height:50px;min-width:120px;flex-shrink:0;background:#f4f7f5;border:1px solid var(--line);border-radius:10px;overflow:hidden}.captcha-button img{width:100%;height:100%;object-fit:contain}.captcha-button:empty:after{content:"加载验证码…";font-size:11px;color:var(--muted)}.form-status{margin-top:16px;margin-bottom:0}.privacy-list{font-size:11px;line-height:1.9;color:var(--muted);padding-left:18px;margin-bottom:23px}.initial-loading{display:flex;gap:12px;align-items:center;justify-content:center;min-height:350px;color:var(--muted)}.spinner{width:19px;height:19px;border:2px solid #dceae3;border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notifications{position:fixed;z-index:80;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast{padding:13px 22px;border:1px solid #b9d8c7;border-radius:14px;background:#f5fff8;box-shadow:0 8px 32px #254d351f;color:#2b6645;margin-top:9px;font-size:13px;overflow-wrap:anywhere}.toast.error{background:#fff4f5;color:#a33048;border-color:#edc1cc}.back-link{display:inline-flex;gap:8px;align-items:center;font-size:13px;min-height:44px;margin-bottom:13px;color:var(--muted)}.detail-header{border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:27px}.detail-header h1{font-size:29px;overflow-wrap:anywhere}.detail-header .feedback-meta{font-size:12px;gap:10px 16px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:30px}.detail-body{min-width:0}.text-block{margin-bottom:25px}.text-block h3{font-size:13px;color:var(--muted);margin-bottom:9px;font-weight:550}.plain-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:14px}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-bottom:25px}.attachment{display:block;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--paper)}.attachment img{display:block;width:100%;height:112px;object-fit:cover}.attachment span{display:block;font-size:10px;padding:7px 9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline{margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}.timeline h2{font-size:21px}.timeline-entry{padding:17px 19px;border-radius:13px;background:#f6f8f6;margin-bottom:12px;border:1px solid #e6ece7}.timeline-entry.admin{background:#eff7f3;border-color:#dcece2}.timeline-meta{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px;margin-bottom:9px}.timeline-entry .plain-text{font-size:13px}.detail-aside .panel{padding:20px}.detail-aside h3{font-size:14px}.detail-aside .metric-value{font-size:35px}.detail-aside .field{margin-bottom:13px}.detail-aside .field label{font-size:12px}.detail-aside .field textarea{min-height:90px}.detail-aside .button{width:100%}.score-value{font-weight:650;font-variant-numeric:tabular-nums;color:var(--deep);white-space:nowrap}.score-value.negative{color:var(--danger)}.account-name{font-size:14px;margin-bottom:20px;overflow-wrap:anywhere}.invitation-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px;color:#225e50;letter-spacing:.03em;word-break:break-all}.invite-record{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line)}.invite-record:last-child{border-bottom:0}.record-meta{font-size:11px;color:var(--muted);margin-top:7px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.editor-wrap{margin-bottom:20px;min-width:0}.editor-wrap .ql-toolbar{border-color:var(--line)!important;border-radius:12px 12px 0 0;background:var(--paper);font-family:var(--font)}.editor-wrap .ql-container{border-color:var(--line)!important;border-radius:0 0 12px 12px;font-family:var(--font);font-size:15px}.editor-wrap .ql-editor{min-height:290px;line-height:1.85;padding:20px}.ql-toolbar.ql-snow .ql-formats{margin-right:9px!important}.ql-snow .ql-picker.ql-font{width:130px!important}.ql-snow .ql-picker.ql-size{width:76px!important}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=system-ui]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=system-ui]:before{content:"系统默认"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]:before{content:"无衬线"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"衬线"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"等宽"}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:attr(data-value)!important}.ql-snow .ql-picker.ql-size .ql-picker-label:not([data-value]):before{content:"16px"!important}.ql-toolbar button{min-height:32px;min-width:32px}.preview-panel{padding:24px;border:1px dashed #a9c8b8;border-radius:14px;margin:20px 0;background:#fbfdfb}.preview-label{font-size:10px;color:var(--teal);font-weight:650;letter-spacing:.1em;margin-bottom:18px}.batch-preview{background:#f5f9f6;border:1px solid #d5e6da;border-radius:15px;padding:22px;margin-top:20px}.batch-preview h3{font-size:17px}.selection-list{max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px 15px;margin-bottom:18px}.selection-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf1ee;font-size:13px;min-height:44px}.selection-row:last-child{border:0}.selection-row input{accent-color:var(--teal);width:17px;height:17px}.selection-row .badge{margin-left:auto}.log-details{white-space:pre-wrap;word-break:break-word;font-size:11px;margin:0;color:var(--muted);max-width:360px;font-family:var(--font)}dialog{border:1px solid var(--line);border-radius:22px;max-width:500px;width:calc(100vw - 32px);padding:28px;color:var(--ink);box-shadow:0 20px 80px #20433130}dialog::backdrop{background:#18382d55;backdrop-filter:blur(3px)}dialog h2{font-size:23px}dialog .form-actions{justify-content:flex-end}.section-anchor{scroll-margin-top:118px}.muted{color:var(--muted)}.text-small{font-size:12px}.spacer{height:22px}.full-width{width:100%}.no-margin{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1550px){.hero{padding-top:94px;padding-bottom:80px}.container{max-width:1260px}.hero-grid{gap:105px}.section{padding-block:68px}}
@media(max-width:1100px){.container{padding-inline:28px}.nav-bar{gap:12px;padding-left:15px}.nav-links a,.nav-links button{padding-inline:9px;font-size:12px}.brand-sub{font-size:12px}.hero-grid{gap:40px}.workspace{grid-template-columns:153px minmax(0,1fr);gap:27px}.side-nav{padding-right:14px}.detail-layout{grid-template-columns:minmax(0,1fr) 215px;gap:22px}.participate{gap:42px}.metric-grid{gap:13px}.metric-value{font-size:29px}}
@media(max-width:860px){#site-header{padding:12px 18px 0}.nav-bar{flex-wrap:wrap;gap:4px;padding:12px 14px 5px;min-height:0;border-radius:20px}.brand{padding-left:5px}.brand img{width:28px;height:28px}.brand-name{font-size:20px}.nav-links{flex-basis:100%;justify-content:flex-start;overflow:auto;scrollbar-width:none;gap:3px}.nav-links::-webkit-scrollbar{display:none}.nav-links a,.nav-links button{font-size:12px;padding:10px 11px;min-height:42px}.nav-links .nav-login{margin-left:auto}.nav-separator{display:none}.hero{padding-top:50px;padding-bottom:50px}.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:28px}.hero h1{font-size:42px}.hero-description{font-size:14px}.hero-aside{padding:24px 21px}.board{padding:22px 20px}.boards{gap:20px}.rank-row{gap:7px;grid-template-columns:35px minmax(0,1fr) auto}.rank-name{font-size:13px}.rank-name .badge{font-size:9px;margin-left:4px;padding:1px 4px}.participate{grid-template-columns:1fr .85fr;gap:28px}.invite-panel{padding:25px;top:150px}.workspace{grid-template-columns:1fr;gap:24px}.side-nav{position:static;flex-direction:row;border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px;overflow:auto;gap:5px;scrollbar-width:thin}.side-nav .side-label{display:none}.side-nav a{white-space:nowrap;font-size:13px;flex:none}.page{padding-top:37px}.page-title h1{font-size:32px}.two-column{gap:20px}.detail-layout{grid-template-columns:minmax(0,1fr) 240px}.footer-brand small{display:block;margin:5px 0 0}}
@media(max-width:650px){.container{padding-inline:20px}#site-header{padding:10px 12px 0}.nav-bar{padding-inline:10px;border-radius:18px}.nav-links a,.nav-links button{padding-inline:10px;min-height:44px}.brand{margin-bottom:2px}.hero{padding:40px 0 43px}.hero-grid{grid-template-columns:1fr;gap:33px}.hero h1{font-size:42px;margin-bottom:19px}.hero-description{font-size:15px;max-width:460px}.hero-aside{display:none}.hero-note{margin-top:19px}.hero:before{width:550px;right:-290px;top:-150px}.eyebrow{font-size:10px;margin-bottom:16px}.section{padding:40px 0}.section-head{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:23px}.section-head h2{font-size:27px}.section-head p{font-size:12px}.section-kicker{font-size:10px}.period-tag{font-size:10px;padding:7px 10px;white-space:normal}.boards{grid-template-columns:1fr;gap:17px}.board{padding:20px}.board-heading h3{font-size:18px}.rank-row{min-height:57px;gap:12px;grid-template-columns:40px minmax(0,1fr) auto}.rank-name{font-size:14px}.rank-name .badge{font-size:10px;margin-left:6px}.section-note{font-size:11px}.participate{grid-template-columns:1fr;gap:33px}.invite-panel{position:static;padding:25px}.invite-info{gap:45px}.footer-row{align-items:flex-start;flex-direction:column;gap:17px}.footer-links{gap:18px}.site-footer{padding:27px 0 24px}.footer-brand small{display:inline;margin-left:10px;font-size:11px}.footer-small{font-size:10px}.page{padding-top:29px;padding-bottom:50px}.page-title{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:22px}.page-title h1{font-size:29px}.page-title p{font-size:12px}.page-title .button{min-height:44px}.side-nav{margin-inline:-20px;padding-inline:20px;padding-bottom:12px}.side-nav a{font-size:12px;padding-inline:12px}.workspace{gap:21px}.metric-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:26px}.metric{padding-bottom:17px}.metric-value{font-size:29px}.metric-label{font-size:11px}.metric-note{font-size:10px}.panel{padding:20px;border-radius:17px}.panel-head{align-items:flex-start}.panel-head h2{font-size:20px}.filters{gap:9px}.filters .field{min-width:calc(50% - 8px)}.filters .field.search{min-width:100%}.filters>.button{flex:1}.feedback-row{gap:13px;padding-block:19px}.feedback-title{font-size:14px}.feedback-meta{font-size:10px;gap:6px 10px}.feedback-score{font-size:19px}.feedback-score small{font-size:10px}.pagination{font-size:10px;gap:8px;align-items:flex-start;flex-wrap:wrap}.pagination-controls{gap:5px}.pagination .button{font-size:11px;padding:9px 11px}.form-grid,.two-column,.detail-layout{grid-template-columns:1fr}.detail-header h1{font-size:25px}.detail-header .feedback-meta{font-size:11px}.detail-aside{display:grid;grid-template-columns:1fr;gap:0}.detail-aside .panel{margin-bottom:18px}.detail-aside .button{width:auto}.auth-page{padding:35px 17px 50px}.auth-card{padding:25px 21px}.auth-page h1{font-size:27px}.captcha-button{width:128px;min-width:112px}.invite-record{align-items:flex-start;gap:14px}.invitation-code{font-size:14px}.invite-record .button{padding:9px 12px}.empty{padding:30px 18px}.table{font-size:12px}.table td,.table th{padding:13px}.editor-wrap .ql-editor{padding:15px}.ql-toolbar.ql-snow{padding:9px 6px!important}.ql-toolbar.ql-snow .ql-formats{margin-right:3px!important}.ql-toolbar button{min-height:44px;min-width:35px}.ql-snow .ql-picker{height:36px!important}.ql-snow .ql-picker-label{padding-top:7px}.preview-panel{padding:18px}.timeline-meta{flex-wrap:wrap;gap:4px}.notifications{bottom:16px}.hero .button-row{gap:9px}.hero .button{font-size:13px;padding-inline:16px}}
@media(max-width:359px){.container{padding-inline:16px}.hero h1{font-size:36px}.brand-sub{font-size:11px}.nav-links a,.nav-links button{font-size:11px;padding-inline:9px}.hero-description{font-size:14px}.board{padding:18px 16px}.rank-name{font-size:12px}.rank-name .badge{font-size:9px;margin-left:4px}.rank-points{font-size:15px}.side-nav{margin-inline:-16px;padding-inline:16px}.field label{font-size:12px}.captcha-button{width:108px;min-width:100px}.auth-card{padding:23px 18px}.panel{padding:17px}.hero .button{padding-inline:14px}.footer-brand small{display:block;margin:5px 0 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.spinner{border-top-color:#087c80;border-right-color:#087c80}}

[hidden]{display:none!important}.demo-banner{text-align:center;font-size:11px;line-height:1.6;color:#777048;background:#fffbed;border-bottom:1px solid #f0e9d4;padding:9px 18px;margin-top:14px}.trophy svg{width:22px;height:22px;stroke-width:1.8}.trophy.gold{color:#ad801d}.trophy.silver{color:#74818d}.trophy.bronze{color:#a56b47}

.status-overview{display:flex;gap:9px;flex-wrap:wrap;margin:-7px 0 27px}.status-summary{font-size:11px;border:1px solid #e1eae5;background:#f6f9f6;border-radius:9px;min-height:44px;display:inline-flex;align-items:center;padding:9px 13px;color:#536c60}.status-summary:hover{background:#edf5ee;text-decoration:none}.ql-toolbar button{min-height:44px!important;min-width:44px!important}.ql-snow .ql-picker{height:44px!important}.ql-snow .ql-picker-label{min-height:44px;padding-top:11px!important}.ql-snow .ql-picker-options .ql-picker-item{min-height:36px;display:block;padding-top:8px!important}

/* Visual QA revision: account access stays visible; mobile links wrap instead of clipping. */
.nav-account{flex:none;margin-left:4px}.nav-login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border-radius:13px;background:var(--teal);color:#fff;font-size:13px;font-weight:550;white-space:nowrap}.nav-login:hover{background:var(--deep);color:#fff;text-decoration:none}.account-menu{position:relative}.account-menu summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;background:#eaf4ef;border:1px solid #dce9e1;border-radius:13px;color:var(--deep);font-size:13px;font-weight:550;cursor:pointer}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary>span:first-child{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu summary:focus-visible{outline:3px solid #27a3a9;outline-offset:4px}.account-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:178px;border-radius:14px;padding:7px;display:flex;flex-direction:column;z-index:45}.account-dropdown a,.account-dropdown .button{min-height:44px;padding:11px 13px;text-align:left;justify-content:flex-start;font-size:13px;border-radius:9px;color:var(--deep)}.account-dropdown a:hover,.account-dropdown .button:hover{background:#e9f3ee;text-decoration:none}
@media(max-width:860px){.nav-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:10px 12px 7px}.nav-bar>.brand{grid-column:1;grid-row:1;min-width:0}.nav-account{grid-column:2;grid-row:1;margin-left:0}.nav-links{grid-column:1/-1;grid-row:2;justify-content:space-between;overflow:visible;gap:4px;flex-basis:auto}.nav-links a{flex:1;text-align:center}.nav-login{font-size:12px;padding-inline:14px}.account-menu summary{font-size:12px;padding-inline:12px}.account-menu summary>span:first-child{max-width:95px}}
@media(max-width:650px){html{scroll-padding-top:194px}.nav-bar{gap:5px 7px;padding:8px 10px 7px}.nav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 5px}.nav-links a{min-height:44px;padding:11px 7px;font-size:12px;display:flex;align-items:center;justify-content:center}.nav-links a:last-child{grid-column:2/4}.nav-bar>.brand{padding-left:0;gap:7px}.brand-divider{margin-inline:1px}.brand img{width:27px;height:27px}.brand-sub{font-size:11px}.brand-name{font-size:19px}.nav-login{font-size:11px;padding:10px 12px;border-radius:11px}.account-menu summary{padding:10px;font-size:11px;gap:5px}.account-menu summary>span:first-child{max-width:86px}.hero{padding-top:34px}.section-anchor{scroll-margin-top:194px}}
@media(max-width:359px){.brand img{width:25px;height:25px}.brand{gap:5px!important}.brand-name{font-size:18px}.brand-sub{font-size:10px}.nav-login{padding-inline:10px;font-size:11px}.nav-links a{font-size:11px}.account-menu summary>span:first-child{max-width:70px}}

.rank-number .rank-text{font-size:10px}
/* Chinese typography QA: keep essential labels readable at every viewport. */
body{font-size:16px}.prose{font-size:16px}.nav-links a,.nav-links button,.nav-login,.account-menu summary{font-size:14px}.brand-sub{font-size:13px}.eyebrow,.aside-label,.section-kicker,.preview-label{font-size:12px}.hero-description{font-size:16px}.hero-note{font-size:13px}.journey-step h3{font-size:16px}.journey-step p{font-size:13px}.step-num{font-size:13px}.section-head p{font-size:14px}.period-tag{font-size:12px}.board-heading span{font-size:12px}.rank-number,.rank-number .rank-text{font-size:12px}.rank-number:not(:has(.trophy)){font-size:12px}.rank-name{font-size:15px}.rank-name .badge,.badge{font-size:12px}.rank-points small{font-size:12px}.section-note,.rule-meta,.footer-small,.footer-links,.record-meta{font-size:13px}.footer-brand small{font-size:13px}.invite-info span{font-size:13px}.invite-panel p{font-size:15px}.side-nav a{font-size:14px}.side-nav .side-label{font-size:12px}.metric-label{font-size:13px}.metric-note{font-size:12px}.metric-value{font-size:32px}.status-summary{font-size:13px}.filters .field label{font-size:13px}.filters input,.filters select{font-size:14px}.table{font-size:14px}.table th{font-size:13px}.table .subtext{font-size:12px}.feedback-title{font-size:16px}.feedback-meta{font-size:13px}.feedback-score small{font-size:12px}.pagination{font-size:13px}.empty h3{font-size:16px}.empty p{font-size:14px}.notice{font-size:14px}.auth-page .intro{font-size:14px}.auth-tabs a{font-size:14px}.field>label,.detail-aside .field label{font-size:14px}.field .help{font-size:12px}.field input[type=file]{font-size:13px}.check-label{font-size:14px}.auth-footer,.privacy-list{font-size:13px}.captcha-button:empty:after{font-size:12px}.text-small{font-size:14px}.back-link{font-size:14px}.text-block h3{font-size:14px}.plain-text{font-size:16px}.attachment span{font-size:12px}.timeline-meta{font-size:13px}.timeline-entry .plain-text{font-size:15px}.detail-header .feedback-meta{font-size:13px}.detail-aside h3{font-size:15px}.record-meta{font-size:12px}.selection-row{font-size:14px}.log-details{font-size:12px}.demo-banner{font-size:12px}.account-dropdown a,.account-dropdown .button{font-size:14px}.button.small,.pagination .button{font-size:13px}.rank-number .trophy{margin-bottom:2px}.rank-row{min-height:66px}.rank-number{line-height:1.3}
@media(max-width:650px){.nav-links a,.nav-links button,.nav-login,.account-menu summary{font-size:14px}.nav-links a{padding:10px 6px}.nav-login{padding-inline:11px}.brand-sub{font-size:12px}.brand-name{font-size:19px}.nav-account{min-width:0}.account-menu summary>span:first-child{max-width:80px}.hero-description{font-size:16px}.hero-note{font-size:13px}.hero .button{font-size:14px}.section-head p,.section-note,.rule-meta{font-size:13px}.period-tag{font-size:12px}.rank-name{font-size:14px}.rank-name .badge{font-size:12px;padding:1px 5px;margin-left:5px}.rank-points{font-size:18px}.rank-points small{font-size:12px}.rank-row{grid-template-columns:43px minmax(0,1fr) auto;gap:9px;min-height:68px}.side-nav a{font-size:14px}.page-title p{font-size:14px}.feedback-meta{font-size:12px}.feedback-title{font-size:16px}.feedback-score small{font-size:12px}.pagination{font-size:12px}.pagination .button{font-size:13px}.metric-value{font-size:30px}.metric-label{font-size:13px}.metric-note{font-size:12px}.table{font-size:14px}.table th{font-size:13px}.footer-links,.footer-small,.footer-brand small{font-size:12px}.invitation-code{font-size:15px}.record-meta{font-size:12px}.timeline-meta{font-size:12px}.detail-header .feedback-meta{font-size:12px}}
@media(max-width:359px){.brand img{width:24px;height:24px}.brand-name{font-size:18px}.brand-sub{font-size:12px}.brand-divider{margin:0}.brand{gap:5px!important}.nav-login{font-size:13px;padding-inline:9px}.account-menu summary{font-size:13px;padding-inline:8px}.account-menu summary>span:first-child{max-width:68px}.nav-links a{font-size:14px}.rank-name{font-size:14px}.rank-name .badge{font-size:12px;display:table;margin:2px 0 0}.rank-number .rank-text{font-size:12px}.rank-points{font-size:17px}.rank-row{gap:7px;min-height:76px}.hero-description{font-size:16px}.field>label{font-size:14px}.section-note{font-size:13px}}
.unread-count{display:inline-flex;align-items:center;justify-content:center;background:#c43c49;color:#fff;border:2px solid #fff;border-radius:30px;min-width:22px;height:22px;padding:0 5px;font-size:12px!important;font-weight:650;line-height:1;vertical-align:middle;margin-left:5px;flex:none;letter-spacing:0}.nav-links a{display:inline-flex;align-items:center;justify-content:center}.notifications-panel{margin:0 0 30px;padding:22px 24px;background:#f6f9f6;border:1px solid #deebe2;border-radius:18px}.notifications-panel .panel-head{margin-bottom:12px}.notifications-panel h2{display:flex;align-items:center;gap:6px;font-size:21px}.notification-list{border-top:1px solid #e1eae3}.notification-row{display:grid;grid-template-columns:8px minmax(0,1fr) 16px;gap:13px;padding:15px 0;border-bottom:1px solid #e1eae3;align-items:center;color:var(--ink)}.notification-row:last-child{border-bottom:0}.notification-row:hover{text-decoration:none;color:var(--teal)}.notification-indicator{height:7px;width:7px;background:#c8d5ce;border-radius:50%}.notification-row.unread .notification-indicator{background:#c43c49}.notification-title{font-size:14px;font-weight:550;overflow-wrap:anywhere;margin-bottom:4px}.notification-meta{font-size:12px;color:var(--muted)}.notification-row:not(.unread){opacity:.82}.nav-links a:has(.unread-count:not([hidden])){gap:0}.account-dropdown a{display:flex;align-items:center}.side-nav a:has(.unread-count){display:flex;align-items:center;justify-content:space-between}
@media(max-width:650px){.notifications-panel{padding:19px 17px}.notifications-panel .panel-head{align-items:center}.notifications-panel h2{font-size:19px}.notification-row{gap:9px}.notification-meta{font-size:12px}.nav-links .unread-count{margin-left:4px}.unread-count{min-width:21px;height:21px;font-size:12px!important;padding-inline:4px}.nav-links a:last-child{justify-content:center}}
.invite-chooser{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 20px}.invite-chooser .field{min-width:220px;max-width:480px;flex:1;margin:0}.batch-page-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invite-code-list{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;border-top:1px solid var(--line)}.invite-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 17px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);min-width:0}.invite-code-row .invitation-code{font-size:16px;line-height:1.5}.invite-code-row .record-meta{overflow-wrap:anywhere}.invite-code-row .button{white-space:nowrap}.invite-code-row.unavailable .invitation-code{color:#88938e}.invite-code-row.unavailable .record-meta{color:#85908b}.invite-code-row.unavailable .button{opacity:1;color:#76817b;background:#e9eeea}.invite-code-row.selected{background:#edf6ee;border-radius:10px;padding:16px 12px;outline:2px solid #b8d8c4;outline-offset:3px}.invite-row-error{grid-column:1/-1;font-size:13px;color:#aa344a;padding:10px 12px;background:#fff2f4;border-radius:8px}.workspace .invite-code-list{grid-template-columns:1fr}.workspace .invite-code-row{padding-block:17px}.invite-catalogue .notice{font-size:14px}.invite-code-info{min-width:0}
@media(max-width:650px){.invite-code-list{grid-template-columns:1fr}.invite-code-row{gap:10px 12px;padding-block:18px}.invite-code-row .invitation-code{font-size:15px}.invite-code-row .record-meta{font-size:12px}.invite-chooser .field{min-width:0;max-width:100%;width:100%}.invite-chooser{align-items:stretch}.invite-code-row .button{font-size:13px;padding-inline:12px}.invite-record{flex-wrap:wrap}.invite-record>div{min-width:0;max-width:100%}.invite-row-error{font-size:13px}}

.ql-snow .ql-picker.ql-font .ql-picker-label:not([data-value]):before{content:"系统默认"}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"正文"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"二级标题"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"三级标题"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"四级标题"}.ql-snow .ql-tooltip:before{content:"访问链接："}.ql-snow .ql-tooltip[data-mode=link]:before{content:"链接地址："}.ql-snow .ql-tooltip a.ql-action:after{content:"编辑"}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"保存"}.ql-snow .ql-tooltip a.ql-remove:before{content:"删除"}

/* Quill default formats match the visible 16px system-font document. */
.editor-wrap .ql-container{font-size:16px}.ql-snow .ql-picker.ql-size .ql-picker-item:not([data-value]):before,.ql-snow .ql-picker.ql-size .ql-picker-label:not([data-value]):before{content:"16px"!important}.ql-snow .ql-picker.ql-font .ql-picker-item:not([data-value]):before,.ql-snow .ql-picker.ql-font .ql-picker-label:not([data-value]):before{content:"系统默认"}

.ql-snow .ql-picker.ql-size .ql-picker-item:not([data-value]):before,.ql-snow .ql-picker.ql-size .ql-picker-label:not([data-value]):before{content:"默认"!important}.editor-wrap .ql-editor h2{font-size:24px}.editor-wrap .ql-editor h3{font-size:20px}.editor-wrap .ql-editor h4{font-size:17px}

/* Keep the public subtitle and rank labels aligned at every viewport. */
.brand-sub{font-size:22px;font-weight:750;color:#000}.rank-number{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding-left:0}.rank-number .rank-text{font-size:13px}.invite-info>div{text-align:center}.rule-heading{margin-bottom:22px}
@media(max-width:650px){.brand-sub{font-size:19px}}
@media(max-width:359px){.brand-sub{font-size:18px}}

.registration-login-hint{color:#000;font-weight:700}
