*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f5f6f8;color:#20242a}a{color:#1b5bd6;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:238px;background:#11151a;color:#fff;padding:28px 20px;display:flex;flex-direction:column;position:fixed;top:0;bottom:0}.brand{font-size:25px;font-weight:750}.sub{font-size:12px;color:#8e99a8;margin:6px 0 30px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{color:#d9dee6;padding:11px 12px;border-radius:8px}.sidebar nav a:hover{background:#20262d;color:#fff}.userbox{margin-top:auto;border-top:1px solid #2a3139;padding-top:18px}.userbox small{display:block;color:#88929f;margin:4px 0 10px}.userbox a{font-size:13px;color:#9db8ff}.main{margin-left:238px;width:calc(100% - 238px);padding:38px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:7px 0 0;color:#77808c}.head-actions{display:flex;gap:10px}.button,button{display:inline-block;border:1px solid #d6dae0;background:#fff;color:#29313a;padding:9px 14px;border-radius:8px;cursor:pointer;font:inherit}.primary{background:#161b22!important;border-color:#161b22!important;color:#fff!important}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.metric,.panel,.project-summary>div{background:#fff;border:1px solid #e5e8ec;border-radius:12px}.metric{padding:20px}.metric span,.project-summary span{display:block;color:#78818c;font-size:13px}.metric b{font-size:30px;display:block;margin-top:8px}.panel{padding:20px;margin-bottom:20px}.panel-title{font-size:16px;font-weight:700;margin-bottom:16px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid #eef0f2;font-size:14px}th{color:#7c8590;font-size:12px;font-weight:600}.badge{display:inline-block;background:#eef3ff;color:#284f9c;border-radius:20px;padding:4px 9px;font-size:12px}.status-待审核{background:#fff4d8;color:#8a5b00}.status-已批准{background:#e8f7ee;color:#17633a}.status-已拒绝{background:#fdecec;color:#a12e2e}.status-已关闭{background:#eceff2;color:#57606a}.filters{display:flex;gap:10px;margin-bottom:15px}.filters input{flex:1}.filters input,.filters select,.form input,.form select,.form textarea,.user-row input{border:1px solid #d8dde3;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}.form{display:flex;flex-direction:column;gap:8px}.form label{font-size:13px;color:#5e6670;margin-top:5px}.form textarea{min-height:100px}.grid-two,.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-form{gap:16px}.grid-form>div{display:flex;flex-direction:column;gap:7px}.span2{grid-column:1/-1}.details{display:grid;grid-template-columns:105px 1fr;gap:14px 18px;margin:0}.details dt{color:#7a838d}.details dd{margin:0}.timeline-item{border-left:2px solid #dce2e8;padding:0 0 25px 18px;margin-left:5px}.timeline-meta{font-size:12px;color:#8a929c}.timeline-item h3{margin:6px 0 7px;font-size:16px}.timeline-item p{white-space:pre-wrap}.next{margin-top:9px;background:#f4f6f8;border-radius:8px;padding:9px 11px;font-size:13px}.empty{padding:24px;color:#929aa4;text-align:center}.flash{padding:12px 14px;border-radius:9px;margin-bottom:15px;font-size:14px}.flash.success{background:#e9f8ef;color:#17643a}.flash.danger{background:#fff0f0;color:#a62929}.flash.warning{background:#fff7df;color:#815f10}.step-card{display:grid!important;grid-template-columns:54px 1fr!important;align-items:center;background:#f7f9fb;border:1px solid #e1e6eb;border-radius:12px;padding:16px}.step-no{font-size:23px;font-weight:800;color:#c1c7cf}.helper{font-size:12px;color:#8a929c;margin-top:6px}.project-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.project-summary>div{padding:16px}.project-summary b{font-size:15px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f1318}.login-card{width:390px;background:#fff;border-radius:14px;padding:34px}.login-title{font-size:28px;font-weight:750}.login-sub{color:#87909a;margin:6px 0 25px}.login-card form{display:flex;flex-direction:column;gap:9px}.login-card input{border:1px solid #d7dce2;border-radius:8px;padding:11px;font:inherit}.user-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #eef0f2;gap:15px}@media(max-width:900px){.sidebar{width:190px}.main{margin-left:190px;width:calc(100% - 190px);padding:22px}.metrics,.project-summary{grid-template-columns:repeat(2,1fr)}.grid-two,.grid-form{grid-template-columns:1fr}.span2{grid-column:auto}.filters{flex-direction:column}}
.product-section{border:1px solid #e2e6ea;border-radius:12px;padding:16px;background:#fafbfc}.product-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.product-table{overflow-x:auto}.product-row{display:grid;grid-template-columns:2fr 1.4fr .8fr .8fr 1.6fr auto;gap:8px;align-items:center;margin-bottom:8px}.product-labels{font-size:12px;color:#7c8590;margin-bottom:6px}.remove-product{border:0;background:none;color:#bd3a3a;padding:8px}.product-detail-list{display:flex;flex-direction:column;gap:7px}.product-detail-list span{color:#6e7781}@media(max-width:1000px){.product-row{grid-template-columns:1fr 1fr}.product-labels{display:none}.remove-product{justify-self:start}}

.product-actions{display:flex;gap:8px}.duplicate-result{margin-top:12px;padding:12px 14px;border-radius:9px;font-size:13px}.duplicate-result.no-duplicate{background:#eaf7ef;color:#175f39}.duplicate-result.has-duplicate{background:#fff0f0;color:#8d2a2a}.dup-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.dup-item{background:rgba(255,255,255,.65);border-radius:8px;padding:10px}.dup-item span{display:inline-block;margin-left:8px;font-size:11px;border:1px solid currentColor;border-radius:12px;padding:2px 6px}.dup-item div{margin-top:4px;color:#5f6670}

.lang-switch{margin-top:auto;padding-top:18px;border-top:1px solid #2a3139;display:flex;align-items:center;gap:8px;font-size:12px;color:#88929f}.lang-switch a{color:#aeb7c2;padding:4px 7px;border-radius:6px}.lang-switch a.active{background:#2a3139;color:#fff}.userbox{margin-top:14px!important}
