:root{--ink:#1f353d;--muted:#6d7b80;--accent:#176354;--accent-pale:#edf5f1;--line:#e1e7e7;--bg:#fcfdfd;--surface:#fff;--danger:#a44a3c;--serif:Georgia,'Songti SC','STSong',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82bfb0;outline-offset:4px}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:36px;line-height:1.4;letter-spacing:-1px}h2{font-size:28px}h3{font-size:21px}h4{font-size:17px}p+p{margin-top:18px}.header{border-bottom:1px solid var(--line);background:var(--surface)}.header-inner{max-width:1200px;padding:24px 36px;min-height:104px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:14px;font:600 19px/1.35 var(--serif);white-space:nowrap}.brand-mark{height:42px;width:42px;display:grid;place-items:center;background:var(--accent);color:white;font:20px var(--serif);border-radius:5px}.brand small{display:block;font:10px/1.9 system-ui;letter-spacing:2px;color:var(--muted)}nav{display:flex;align-items:center;gap:34px;font-size:15px}nav a{position:relative;padding:12px 0}nav a.active{color:var(--accent)}nav a.active:after{content:'';position:absolute;height:2px;background:var(--accent);bottom:0;left:0;right:0}.login-link{margin-left:16px;color:var(--muted)}.main{max-width:1200px;margin:auto;padding:55px 36px 80px;min-height:calc(100vh - 190px)}.footer{max-width:1128px;margin:auto;padding:25px 0;border-top:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;font-size:13px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted)}.page-top{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:35px}.page-top .eyebrow{display:block;margin-bottom:13px}.page-top p{color:var(--muted);margin-top:10px}.page-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button{border:1px solid var(--accent);background:var(--accent);color:white!important;display:inline-flex;align-items:center;justify-content:center;gap:30px;border-radius:5px;padding:10px 19px;font-size:14px;min-height:44px;transition:background .18s}.button:hover{background:#104d41}.button.secondary{background:white;color:var(--ink)!important;border-color:var(--line)}.button.secondary:hover{background:var(--accent-pale)}.button.full{width:100%;margin-top:22px;justify-content:space-between}.text-button{border:0;padding:10px 0;background:transparent;color:var(--muted);font-size:14px}label{display:block;font-size:14px;margin:18px 0 7px}input,select{min-width:0;border:1px solid #ccd8d7;background:white;border-radius:4px;padding:11px 12px;color:var(--ink);min-height:44px}input[type=password]{width:100%}.back-link{display:inline-block;color:var(--muted);font-size:14px;margin-top:28px}.notice{border:1px solid #e7ddc4;border-left:3px solid #b29457;padding:14px 18px;background:#fcfaf4;font-size:14px;margin:18px 0;border-radius:4px}.notice.error{border-color:#e6c8c3;background:#fdf7f5;color:var(--danger)}.empty{padding:60px 24px;text-align:center;border:1px dashed #d8e1df;border-radius:6px;background:#fbfcfc}.empty h2{font-size:23px;margin:12px 0}.empty p{color:var(--muted);max-width:520px;margin:12px auto 20px;font-size:15px}.empty.large{border:0;padding-top:90px}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:28px;overflow-x:auto;white-space:nowrap}.tabs a{padding:13px 0;font-size:14px;position:relative}.tabs a.selected{color:var(--accent)}.tabs a.selected:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:18px;background:#f2f6f5;margin-bottom:25px;border-radius:5px}.filters label{margin:0;flex:1;min-width:110px;font-size:12px;color:var(--muted)}.filters input,.filters select{width:100%;display:block;margin-top:5px;font-size:14px}.filters .search-field{flex:2;min-width:170px}.tag-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.tag{display:inline-block;padding:3px 10px;border:1px solid var(--line);border-radius:4px;font-size:12px;color:var(--muted)}.tag.selected{color:var(--accent);background:var(--accent-pale);border-color:#b6d5ca}.badge{font-size:11px;color:var(--accent);border:1px solid #c6ddd5;border-radius:3px;padding:2px 6px;margin-left:10px;vertical-align:middle;font-family:system-ui}.table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:6px}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums;background:white}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid var(--line)}th{font-size:12px;background:#f4f7f6;font-weight:500;color:var(--muted)}td small{display:block;font-size:11px;color:var(--muted)}td a{color:var(--accent);font-weight:500}tr:last-child td{border-bottom:0}.positive{color:var(--accent)}.negative{color:var(--danger)}.section-gap{margin-top:36px}.status-dot{width:6px;height:6px;background:#c49a4b;display:inline-block;border-radius:50%;margin-right:7px}.data-note{font-size:12px;color:var(--muted);margin-top:14px}.panel{border:1px solid var(--line);border-radius:6px;background:white;padding:24px;min-width:0}.panel h2{font-size:18px;margin-bottom:22px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.panel-header h2{margin:0}.panel-header a{font-size:13px;color:var(--accent)}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.goal{border:1px solid var(--line);border-radius:6px;padding:22px;margin:18px 0}.goal-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.goal h3{font-size:19px}.goal p{font-size:14px;color:var(--muted);margin-top:12px}.goal progress{width:100%;height:7px;accent-color:var(--accent);margin-top:20px}.goal ul{padding-left:20px;font-size:14px;color:var(--muted)}.vision{border-left:3px solid var(--accent);background:var(--accent-pale);padding:25px 30px;margin-bottom:35px}.vision p{font-family:var(--serif);font-size:24px;margin-top:10px}.menu-toggle{display:none;border:0;background:transparent;font-size:24px;min-width:44px;min-height:44px}.skip{position:absolute;left:15px;top:-80px;background:var(--accent);color:white;padding:10px;z-index:20}.skip:focus{top:15px}details>summary{cursor:pointer;font-size:14px;color:var(--accent);padding:10px 0}details p{font-size:14px;color:var(--muted)}.demo-banner{text-align:center;background:#eef4f0;color:#176354;font-size:13px;padding:7px 15px;border-bottom:1px solid #d9e4de}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell-header{max-width:1200px;margin:auto;padding:24px 36px;border-bottom:1px solid var(--line);background:var(--surface)}.shell .footer{border-top:1px solid var(--line)}
@media(max-width:1000px){nav{gap:22px}.footer{margin:0 36px}}
@media(max-width:700px){.header-inner{padding:17px 22px;min-height:83px;flex-wrap:wrap;gap:12px}.brand{font-size:18px}.menu-toggle{display:block}nav{display:none;flex-basis:100%;gap:8px;flex-wrap:wrap;justify-content:flex-start;border-top:1px solid var(--line);padding-top:8px}nav.open{display:flex}nav a{padding:9px 12px}.login-link{margin-left:auto}nav form{margin-left:auto}.main{padding:32px 22px 50px}.footer{margin:0 22px;padding:22px 0;flex-wrap:wrap;font-size:12px;gap:12px}.page-top{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:25px}h1{font-size:30px}.page-top .eyebrow{margin-bottom:8px}.tabs{gap:24px;margin-bottom:22px}.filters{padding:14px;gap:10px}.filters label{flex-basis:40%}.filters .search-field{flex-basis:100%}.grid-two{grid-template-columns:1fr;gap:16px}.panel{padding:18px}.goal-top{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* 预览通道（/dev、/test）标记，由 security.apply 注入；正式版不出现 */.channel-badge{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100;padding:7px 14px;border-radius:999px;background:#e8590c;color:#fff!important;font:600 13px/1.4 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;box-shadow:0 4px 14px rgba(0,0,0,.18);white-space:nowrap}
