@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;600;700&family=Source+Han+Sans+SC:wght@400;500;600;700&display=swap";:root{--ink: #172435;--muted: #6d7785;--paper: #f8f5ef;--line: #ded7ca;--gold: #b98a34;--gold-dark: #88601c;--mist: #f0ece4;--success: #2c7659;--danger: #a7463d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Source Han Sans SC,PingFang SC,sans-serif;font-size:14px}body:before{content:"";position:fixed;inset:0;z-index:-1;opacity:.35;background:radial-gradient(circle at 88% 12%,#eadcb855,transparent 25rem),radial-gradient(circle at 10% 90%,#d8e1de66,transparent 28rem),repeating-linear-gradient(90deg,transparent 0 119px,#17243507 120px)}button,input,textarea{font:inherit}button{cursor:pointer}.topbar{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(20px,4vw,70px);gap:40px;background:#faf8f3ee;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:"Noto Serif SC",serif;font-size:19px;letter-spacing:.05em}.brand span,.monogram{display:grid;place-items:center;width:30px;height:30px;background:var(--ink);color:#fff;font-size:16px;font-weight:700}.topbar nav{display:flex;align-self:stretch;gap:5px}.topbar nav button,.identity button{border:0;background:transparent;color:var(--muted);padding:0 14px}.topbar nav button.active{color:var(--gold-dark);border-bottom:2px solid var(--gold);font-weight:700}.identity{margin-left:auto;display:flex;gap:12px;align-items:center}.identity button{padding:6px;color:var(--muted)}.shell{max-width:1440px;margin:0 auto;padding:48px clamp(20px,4vw,64px) 110px}.hero{display:flex;justify-content:space-between;align-items:end;gap:30px;border-top:2px solid var(--gold);padding-top:22px;margin-bottom:24px}.eyebrow{margin:0 0 9px;color:var(--gold-dark);font-weight:700;letter-spacing:.13em;font-size:11px}.hero h1,.people h1,.empty h1{font-family:"Noto Serif SC",serif;margin:0;font-size:clamp(28px,4vw,44px);letter-spacing:.02em}.muted{color:var(--muted);margin:8px 0 0}.metrics{display:flex;border-left:1px solid var(--line)}.metric{min-width:112px;padding:5px 0 5px 20px;margin-left:20px}.metric span,.scoreboard span{display:block;color:var(--muted);font-size:12px}.metric b{font-family:"Noto Serif SC",serif;font-size:26px;line-height:1.5}.metric.emphasis b,.scoreboard .total b{color:var(--gold-dark)}.scoreboard{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#fcfbf8;margin-bottom:32px}.scoreboard>div{padding:16px 22px;border-right:1px solid var(--line)}.scoreboard>div:last-child{border:0}.scoreboard b{font-family:"Noto Serif SC",serif;font-size:25px}.table-sheet{background:#fcfbf8;border:1px solid var(--line)}.section-head{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.section-head h2,.modal h2{font-family:"Noto Serif SC",serif;margin:0;font-size:24px}.primary,.outline{border:1px solid var(--gold);padding:10px 17px;font-weight:700;transition:all .18s}.primary{background:var(--gold);color:#fff}.primary:hover{background:var(--gold-dark);border-color:var(--gold-dark)}.outline{background:transparent;color:var(--gold-dark)}.outline:hover{background:#f3ead7}.primary:disabled{opacity:.42;cursor:not-allowed}.performance-ledger{display:grid;gap:26px;padding:24px}.dimension-block{border:1px solid #e3dccf;background:#fffdf9;overflow:hidden}.dimension-block>header{min-height:44px;padding:10px 16px;background:linear-gradient(90deg,#f1eadc,#fbf8f1 72%);display:flex;align-items:center;justify-content:space-between}.dimension-block>header small{color:var(--muted);font-variant-numeric:tabular-nums}.ledger-head,.goal-row{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(240px,1.15fr) minmax(230px,1.05fr) 132px;gap:0}.performance-ledger.employee .ledger-head,.performance-ledger.employee .goal-row{grid-template-columns:minmax(280px,1.6fr) minmax(280px,1.2fr) 140px}.ledger-head{min-height:35px;background:#f8f5ef;color:#78818b;font-size:11px;font-weight:700;letter-spacing:.07em}.ledger-head span{padding:10px 14px;border-right:1px solid #e8e1d6}.ledger-head span:last-child{border-right:0}.goal-row{border-top:1px solid #e9e2d7;min-height:164px}.goal-row>div{padding:17px 15px;border-right:1px solid #eee8dd;min-width:0}.goal-row>div:last-child{border-right:0}.goal-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.goal-title h3{margin:0;font-family:"Noto Serif SC",serif;font-size:17px;line-height:1.45}.weight{flex:0 0 auto;color:var(--gold-dark);border:1px solid #dfd0ae;background:#fff8e8;padding:3px 7px;font-size:11px;font-variant-numeric:tabular-nums}.goal-brief dl{display:grid;gap:8px;margin:15px 0 0}.goal-brief dl div{display:grid;gap:2px}.goal-brief dt,.employee-entry label>span,.reviewer-entry label>span,.score-cells span{color:var(--muted);font-size:11px;font-weight:600}.goal-brief dd{margin:0;color:#4a5662;line-height:1.55;font-size:13px}.employee-entry,.reviewer-entry{display:grid;gap:12px;align-content:start}.employee-entry label,.reviewer-entry label{display:grid;gap:6px}.employee-entry p,.reviewer-entry p{margin:0;min-height:38px;color:#2a3643;line-height:1.55;white-space:pre-wrap}.performance-ledger textarea,.performance-ledger input,.modal input,.modal textarea{width:100%;border:1px solid #ddd4c7;background:#fffefb;padding:9px 10px;outline:none;border-radius:3px}.performance-ledger textarea{min-height:57px;resize:vertical}.performance-ledger textarea:focus,.performance-ledger input:focus,.modal input:focus,.modal textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d7a64422}.score-input{max-width:132px}.reviewer-entry .score-input{max-width:100%}.reviewer-entry em{font-style:normal;color:#929aa2;font-weight:400;margin-left:4px}.score-cells{display:grid;align-content:start;gap:13px;background:#fcfaf5}.score-cells div{display:grid;gap:3px}.score-cells b{font-family:"Noto Serif SC",serif;color:var(--gold-dark);font-size:23px;font-variant-numeric:tabular-nums}.dimension{font-size:11px;color:var(--gold-dark);font-weight:700}.num{text-align:center;font-variant-numeric:tabular-nums}.serif{font-family:"Noto Serif SC",serif;font-size:16px}.actionbar{position:fixed;z-index:9;bottom:0;left:0;right:0;min-height:72px;background:#172435f2;color:#eef2f5;display:flex;align-items:center;justify-content:flex-end;gap:26px;padding:13px clamp(20px,4vw,64px);-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px)}.actionbar .primary{min-width:150px}.review-layout{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 70px)}.people{border-right:1px solid var(--line);padding:34px 18px;background:#f5f1e9}.people h1{font-size:28px}.search{margin:25px 0 10px;width:100%;padding:10px;border:1px solid var(--line);background:#fbfaf7}.person-list{margin:0 -18px}.person{width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:16px 20px;display:grid;gap:3px;color:var(--ink)}.person:hover,.person.selected{background:#fffaf0}.person.selected{border-left:3px solid var(--gold);padding-left:17px}.person span,.person small{color:var(--muted)}.review-main{padding:38px 42px 110px;min-width:0}.review-main .hero{margin-top:0}.admin-table{display:table;width:100%}.admin-row{display:grid;grid-template-columns:2fr 1fr 1.3fr 1.3fr 1fr .55fr;align-items:center;gap:16px;padding:15px 24px;border-bottom:1px solid var(--line)}.admin-row.header{background:var(--mist);color:var(--muted);font-size:12px}.pill{justify-self:start;padding:4px 9px;border-radius:999px;background:#eeeae1;font-size:12px}.stage-员工填写中,.stage-上级评分中{background:#f4e4bf;color:#735419}.stage-已关闭{background:#dce9e2;color:#276045}.text-btn{border:0;background:transparent;color:var(--gold-dark);font-weight:700}.text-btn:disabled{opacity:.35}.modal-backdrop{position:fixed;inset:0;background:#15203075;display:grid;place-items:center;z-index:20;padding:20px}.modal{position:relative;width:min(520px,100%);background:#fffcf6;border-top:3px solid var(--gold);padding:32px;display:grid;gap:15px}.modal label{font-weight:600;display:grid;gap:7px}.modal textarea{min-height:100px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;color:var(--muted)}.hint{font-size:12px;color:var(--muted);line-height:1.6}.toast{position:fixed;z-index:30;right:24px;top:85px;max-width:360px;background:#172435;color:#fff;display:grid;gap:4px;padding:15px 18px;border-left:3px solid var(--gold);box-shadow:0 10px 28px #17243533}.toast small{display:block;margin-top:6px;color:#c5cfda}.toast.success{border-left-color:#4d9b74}.toast.error{border-left-color:#d45a4d}.loading,.empty{min-height:80vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:12px}.loading .monogram,.empty .monogram{width:46px;height:46px;font-size:22px}.empty p{color:var(--muted)}.empty-search{color:var(--muted);padding:16px 20px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.guide-grid article{min-height:245px;padding:26px;background:#fcfbf8;border:1px solid var(--line)}.guide-grid article span{display:block;color:var(--gold);font-family:"Noto Serif SC",serif;font-size:30px}.guide-grid h2{font-family:"Noto Serif SC",serif;margin:9px 0;font-size:24px}.guide-grid p{color:var(--muted);line-height:1.8;margin:0 0 14px}.guide-grid b{font-size:13px;line-height:1.65}.guide-note{margin-top:16px;padding:21px 24px;border-left:3px solid var(--gold);background:#f0ece4;display:grid;gap:6px;line-height:1.7}.guide-note span{color:var(--muted)}@media(max-width:900px){.topbar{gap:10px;padding:0 16px}.topbar nav{gap:0}.topbar nav button{padding:0 7px;font-size:12px}.identity span{display:none}.shell,.review-main{padding:30px 16px 100px}.hero{display:grid}.metrics{border-left:0;border-top:1px solid var(--line);padding-top:12px}.metric{margin-left:0;padding:0;flex:1}.scoreboard{grid-template-columns:repeat(2,1fr)}.scoreboard>div:nth-child(2){border-right:0}.scoreboard>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.review-layout{display:block}.people{border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.people h1{font-size:25px}.person-list{display:flex;overflow:auto;margin:0 -16px}.person{min-width:170px;border-right:1px solid var(--line);border-top:1px solid var(--line)}.admin-row{grid-template-columns:1.6fr 1fr .7fr;padding:15px}.admin-row span:nth-child(3),.admin-row span:nth-child(4){display:none}.admin-row.header span:nth-child(3),.admin-row.header span:nth-child(4){display:none}.section-head{padding:17px}.section-head h2{font-size:21px}.actionbar{justify-content:space-between;gap:10px;padding:12px 16px;font-size:12px}.actionbar .primary{min-width:128px}.table-sheet{margin:0 -16px}.performance-ledger{padding:14px;gap:16px}.ledger-head{display:none}.goal-row,.performance-ledger.employee .goal-row{display:grid;grid-template-columns:1fr}.goal-row>div{border-right:0;border-bottom:1px solid #eee8dd;padding:15px}.goal-row>div:last-child{border-bottom:0}.employee-entry,.reviewer-entry{grid-template-columns:minmax(0,1fr) 110px}.employee-entry label:first-child,.reviewer-entry label:last-child{grid-column:1 / -1}.score-input{max-width:none}.score-cells{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-title h3{font-size:16px}.goal-brief dl{gap:10px}.dimension-block>header{padding:10px 14px}.toast{left:16px;right:16px;top:82px;max-width:none}.brand b{font-size:16px}.guide-grid{grid-template-columns:1fr}.guide-grid article{min-height:0}}
