:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#172724;background:#f1f5f4;font-size:14px;--green:#0e5b50;--green2:#157362;--pale:#eaf4f1;--line:#d8e3e0;--muted:#6b7d79}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:0;border-radius:9px;padding:10px 15px;font-weight:700;cursor:pointer;color:inherit}.primary{background:var(--green2);color:#fff}.secondary{background:var(--pale);color:var(--green)}.wide{width:100%}.muted{color:var(--muted)}.loading{padding:70px;text-align:center;color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#073f37,#16816f)}.login-card{width:min(430px,92vw);background:#fff;border-radius:24px;padding:36px;box-shadow:0 28px 80px #062f2866}.brand{font-size:25px;font-weight:900;margin-bottom:7px}.field{display:grid;gap:7px;margin:17px 0}.field input,.field select,.filters input,.filters select{height:43px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:#fff}.hint{margin-top:18px;padding:13px;background:#f0f6f4;border-radius:10px;color:#607773}.error{color:#b42318;margin-top:10px}.portal{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#0b4038;color:#d8ebe6;padding:26px 20px;display:flex;flex-direction:column}.logo{display:flex;gap:13px;align-items:center;padding:2px 10px 26px}.logo>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff33;border-radius:13px;font-size:25px}.logo strong{font-size:17px;line-height:1.45}.logo small,.account small{display:block;color:#8fb8af;margin-top:3px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{display:flex;align-items:center;gap:13px;background:transparent;color:#b9d2cc;text-align:left;font-size:16px;padding:13px 15px}.sidebar nav button i{font-style:normal;width:22px;font-size:19px}.sidebar nav button.active{color:#fff;background:#ffffff18;border-left:4px solid #f2b950;padding-left:11px}.account{margin-top:auto;border-top:1px solid #ffffff1f;padding:19px 10px 0}.account b{display:block}.account button{width:100%;margin-top:14px;background:#ffffff12;color:#c8ded9}.workspace{min-width:0}.workspace-head{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;color:var(--muted)}.workspace-head>div:last-child{display:flex;align-items:center;gap:17px}.workspace-head a{color:var(--green2);text-decoration:none}.workspace-head button{background:none;padding:0;color:var(--green2)}.role-pill,.status-chip{display:inline-block;border:1px solid #c8ddd8;background:#f1f8f6;border-radius:999px;padding:7px 12px;color:var(--green)}#content{max-width:1500px;margin:auto;padding:28px 34px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-title.compact{margin-bottom:16px}.page-title h1{font-size:29px;margin:5px 0}.page-title p,.panel-head p{color:var(--muted);margin:0}.eyebrow{color:var(--green2);font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:20px}.metrics button{background:#fff;border:1px solid var(--line);text-align:left;padding:20px;border-radius:14px}.metrics b{font-size:30px;color:#194d44;margin-right:10px}.metrics span{color:#526b65}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0 0 5px;font-size:19px}.link-button{background:transparent;color:var(--green2)}.task-list{display:grid}.task-list>button{border-radius:0;background:#fff;border-bottom:1px solid #edf2f1;display:grid;grid-template-columns:10px 1fr auto;gap:13px;align-items:center;text-align:left;padding:17px 22px}.task-list small,.project-row small,.supplier-line small{display:block;color:var(--muted);margin-top:5px}.task-list em{font-style:normal;color:var(--green2)}.task-dot{width:8px;height:8px;border-radius:50%;background:#e6a83f}.filters{display:grid;grid-template-columns:1fr .7fr .8fr 1.5fr;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;margin-bottom:14px}.filters label{display:grid;gap:6px;color:#536a65;font-weight:700}.project-table-head,.project-row{display:grid;grid-template-columns:minmax(300px,2fr) minmax(130px,.8fr) minmax(120px,.75fr) minmax(130px,.8fr) minmax(200px,1fr);gap:16px;align-items:center}.project-table-head{padding:14px 20px;background:#f4f8f7;color:#657874;font-weight:800}.project-row{padding:17px 20px;border-top:1px solid #e8efed;cursor:pointer}.project-row:hover{background:#fbfdfc}.project-row b{font-size:15px}.row-actions{display:flex;gap:7px;justify-content:flex-end}.row-actions button{padding:8px 11px;background:#eaf3f1;color:var(--green)}.row-actions button.primary{background:var(--green2);color:#fff}.workbench-tools{display:grid;grid-template-columns:auto minmax(350px,1fr) auto;gap:13px;align-items:center;margin-bottom:20px}.workbench-tools select{height:48px;border:1px solid var(--line);border-radius:11px;padding:0 14px;font-weight:700}.workbench-tools button{border:1px solid var(--line);background:#fff}.project-hero{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:26px 30px;background:#f7fbfa;border:1px solid var(--line);border-radius:16px;margin-bottom:18px}.project-hero h1{font-size:28px;margin:6px 0}.project-hero p{color:var(--muted);margin:0}.stage{text-align:right}.stage b,.stage span{display:block}.stage b{font-size:17px;color:var(--green)}.stage span{margin-top:6px;color:#9b6b18}.supplier-table-head,.supplier-line{display:grid;grid-template-columns:1.3fr 1fr 1.2fr .8fr .9fr;gap:14px;align-items:center}.supplier-table-head{padding:13px 20px;background:#f4f8f7;font-weight:800;color:#61736f}.supplier-line{padding:16px 20px;border-top:1px solid #e8efed}.empty{padding:28px;text-align:center;color:var(--muted)}.migration-card{padding:26px}.migration-card b{font-size:19px}.migration-card span{color:var(--green2)}.error-card{padding:20px;border:1px solid #f1c4c0;background:#fff5f4;color:#b42318;border-radius:12px}.modal{position:fixed;inset:0;background:#0b211fa6;display:grid;place-items:center;padding:20px;z-index:20}.dialog{width:min(760px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:25px}.dialog h2{margin-top:0}.close{float:right;background:#eef4f2}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-grid .full{grid-column:1/-1}.dialog-grid .field{margin:7px 0}.dialog-grid .narrow{max-width:180px}.actions{display:flex;gap:9px;flex-wrap:wrap}@media(max-width:1050px){.portal{grid-template-columns:210px minmax(0,1fr)}.project-table-head{display:none}.project-row{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}.row-actions{justify-content:flex-start}}@media(max-width:700px){.portal{display:block}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:1fr 1fr}.account{display:none}.workspace-head{padding:0 16px}.workspace-head>div:last-child a{display:none}#content{padding:20px 14px}.page-title{align-items:flex-start;flex-direction:column}.metrics,.filters,.project-row{grid-template-columns:1fr}.workbench-tools{grid-template-columns:1fr}.supplier-table-head{display:none}.supplier-line{grid-template-columns:1fr 1fr}.dialog-grid{grid-template-columns:1fr}.dialog-grid .full{grid-column:auto}}
.login-register-divider{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:#78908c;font-size:13px}.login-register-divider::before,.login-register-divider::after{content:"";height:1px;background:#dce8e5;flex:1}.login-register-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.login-register-actions button{min-height:44px;border:1px solid #b8d3cd;background:#f3f9f7;color:#075f50;font-weight:700}.login-register-note{margin:10px 0 0;color:#6b817d;font-size:12px;line-height:1.6;text-align:center}.registration-success{padding:34px;text-align:center}.registration-success b{display:block;color:#087664;font-size:24px;margin-bottom:10px}.registration-review-list article{display:grid;grid-template-columns:minmax(260px,1.3fr) minmax(260px,1fr) 110px auto;align-items:center;gap:18px;padding:20px;border-bottom:1px solid #dce8e5}.registration-review-list article>div{display:flex;flex-direction:column;gap:5px}.registration-review-list .wide{grid-column:1/-1}.public-registration{max-width:760px}
