:root{font-family:Microsoft YaHei,Segoe UI,system-ui,sans-serif;color:#263345;background:#f4f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.shell{display:flex;min-height:100vh}.side{width:270px;flex-shrink:0;background:#152337;color:#d2dceb;padding:24px 16px;display:flex;flex-direction:column;gap:6px}.brand{font-size:21px;font-weight:750;color:#fff;margin:3px 10px}.sub{font-size:12px;color:#9aaec6;margin:0 10px 22px}.nav{padding:13px 14px;border:0;background:transparent;text-align:left;color:#c4d1e3;border-radius:10px;font-size:14px;cursor:pointer}.nav:hover,.nav.active{background:#29425f;color:#fff}.low{margin-top:auto;font-size:12px;color:#9fb1c8;padding:14px;line-height:1.9}.main{flex:1;padding:36px 44px;max-width:1350px;min-width:0}.top,.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:12px;color:#7e8ca0;letter-spacing:.04em}h1{font-size:27px;margin:20px 0 8px}h2{font-size:17px;margin:2px 0 12px}h3{font-size:14px;margin:16px 0 12px}p{color:#647388;line-height:1.7}.status{border:1px solid #b4dec1;background:#ecf8ef;color:#247346;padding:7px 10px;border-radius:99px;font-size:12px}.card{background:#fff;border:1px solid #e0e6ef;border-radius:14px;padding:22px;margin-top:22px;box-shadow:0 4px 18px #162c4a07}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}button,.upload{font-size:13px;border:1px solid #cbd5e3;color:#22364c;background:#fff;padding:10px 14px;border-radius:9px;cursor:pointer}button:hover,.upload:hover{border-color:#436fa6}.primary{background:#294d76;color:#fff;border-color:#294d76}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #477cc1;outline-offset:2px}.panel{padding:17px;background:#f7f9fc;border:1px solid #e2e9f0;border-radius:10px;margin:12px 0}.card label:not(.inline):not(.upload),.panel label{display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:7px;margin:10px 0;flex:1}input:not([type=checkbox]):not([type=file]),select{padding:10px 11px;border-radius:8px;border:1px solid #cbd5e3;background:#fff;width:100%;min-width:160px}input[type=checkbox]{accent-color:#294d76}.formline{display:flex;align-items:center;gap:12px}.projectlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.project{display:flex;flex-direction:column;text-align:left;gap:7px}.project.selected,.stages .picked{border-color:#315b87;background:#eef4fb}.project small,.module-row small{display:block;color:#74849b;font-size:12px}.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.stages button{text-align:left}.module-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #e5eaf1;gap:12px}.module-row span,.muted{color:#8291a3;font-size:12px}.notice{margin-top:16px;padding:12px 15px;border:1px solid #d3e5f9;background:#edf6ff;border-radius:10px;display:flex;justify-content:space-between;align-items:center}.notice button{padding:0 6px;border:none;background:transparent}.upload input{display:none}footer{padding:34px 0;color:#91a0b2;font-size:12px}@media(max-width:790px){.shell{display:block}.side{width:100%;padding:15px}.nav{display:inline-block}.low{margin-top:12px}.main{padding:22px}.formline{display:block}}.phase-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px 14px;margin:14px 0 18px}.phase-choice{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:10px!important;margin:0!important;padding:11px 13px;border:1px solid #dbe3ed;border-radius:9px;background:#fff;line-height:1.45;font-weight:500!important;cursor:pointer}.phase-choice:has(input:checked){background:#eef4fb;border-color:#829dbe}.phase-choice input[type=checkbox]{flex:none;min-width:17px;min-height:17px;margin:0}.phase-choice span{display:block;flex:1;white-space:normal}.confirmation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.confirmation-mapping{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr);gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #e5eaf1}.confirmation-mapping label{margin:0!important}.info-note{padding:12px;border-radius:9px;background:#fff8e8;border:1px solid #efd7a1;color:#77551c;font-size:13px;line-height:1.6;margin:12px 0}@media(max-width:650px){.phase-options,.confirmation-mapping{grid-template-columns:1fr}}
