:root{--navy:#163b63;--blue:#24649a;--pale:#edf3f8;--line:#dce3ea;--ink:#233342;--muted:#71808d;--red:#b33c36;--green:#267450;--gold:#9a6a16;--paper:#fff;--bg:#f3f5f7;--shadow:0 8px 28px #102c4814;font-family:"Microsoft YaHei", "PingFang SC", Arial, sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a{cursor:pointer}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline;color:#0c467a}button{color:inherit}.boot{padding:3rem;text-align:center;color:var(--navy);font-size:1.4rem}.boot span{display:block;color:var(--muted);font-size:.9rem}.topline{background:#102f50;color:#dce9f4;padding:6px max(20px,calc((100% - 1200px)/2));font-size:12px;display:flex;justify-content:space-between;gap:12px}.topline strong{color:white}.top-actions{display:flex;gap:14px;align-items:center}.top-actions button,.text-button{border:0;background:none;color:inherit;padding:0}.brandbar{background:var(--navy);color:#fff;padding:21px max(20px,calc((100% - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:48px;height:48px;border:1px solid #a6c0d8;border-radius:50%;display:grid;place-items:center;color:#e7f2fb;font-size:23px}.brand h1{font-size:22px;letter-spacing:1px;margin:0}.brand small{display:block;color:#cadbea;font-size:12px}.search{display:flex;max-width:340px;width:42%}.search input{min-width:0;flex:1;border:0;padding:10px 12px;border-radius:3px 0 0 3px}.search button{border:0;background:#2d79ad;color:white;padding:0 17px;border-radius:0 3px 3px 0}.portal-nav{background:#fff;border-bottom:1px solid var(--line);padding:0 max(20px,calc((100% - 1200px)/2));display:flex;gap:0;overflow:auto}.portal-nav a{color:#31475b;white-space:nowrap;padding:13px 18px;border-bottom:3px solid transparent}.portal-nav a.active,.portal-nav a:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}.wrap{max-width:1200px;margin:22px auto;padding:0 18px}.notice-strip{background:#fff7f4;border:1px solid #f0ded8;border-left:4px solid var(--red);padding:12px 16px;display:flex;gap:10px;align-items:center}.notice-strip b{color:var(--red);white-space:nowrap}.portal-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;margin-top:18px}.panel,.card,.content{background:var(--paper);border:1px solid var(--line);border-radius:4px}.panel{padding:18px}.panel-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.panel-head h2,.section-head h2{font-size:17px;margin:0;color:#263f56}.panel-head h2:before,.section-head h2:before{content:"";display:inline-block;width:4px;height:17px;background:var(--blue);vertical-align:-3px;margin-right:9px}.hero{min-height:236px;background:linear-gradient(105deg,#163b63ed,#245e86d9),linear-gradient(35deg,#91adbd,#dae4e9);color:white;padding:25px 29px;display:flex;flex-direction:column;justify-content:space-between}.hero-kicker{font-size:12px;letter-spacing:2px;color:#c6dced}.hero h2{font-size:27px;font-weight:500;margin:8px 0}.hero p{max-width:560px;color:#e1edf6;margin:0}.hero-foot{display:flex;gap:10px;margin-top:20px}.btn{background:var(--blue);border:1px solid var(--blue);color:white;border-radius:3px;padding:8px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}.btn:hover{background:#164b77;color:#fff;text-decoration:none}.btn.secondary{background:white;color:var(--blue)}.btn.ghost{background:transparent;color:var(--blue)}.btn.danger{background:var(--red);border-color:var(--red)}.btn.small{font-size:12px;padding:5px 9px}.btn:disabled{opacity:.48;cursor:not-allowed}.link-list,.rows{list-style:none;margin:0;padding:0}.link-list li,.rows li{padding:9px 0;border-bottom:1px solid #edf0f2;display:flex;align-items:flex-start;gap:12px}.link-list li:last-child,.rows li:last-child{border-bottom:0}.link-list .date,.date{color:var(--muted);font-size:12px;white-space:nowrap}.link-list a{color:#31475b;flex:1}.tags{display:flex;gap:7px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background:#eef2f5;color:#5b6874;font-size:12px;white-space:nowrap}.tag.blue{background:#e8f1f8;color:#23608f}.tag.green{background:#e9f4ee;color:var(--green)}.tag.red{background:#fbefed;color:var(--red)}.tag.gold{background:#fbf4e7;color:var(--gold)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick{background:#fff;border:1px solid var(--line);padding:16px;text-align:center;color:var(--ink);border-radius:4px}.quick span{display:block;color:var(--blue);font-size:21px;margin-bottom:4px}.quick:hover{border-color:#81a8c7;text-decoration:none;box-shadow:var(--shadow)}.section-gap{margin-top:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.page-title{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.page-title h2{font-size:18px;margin:0;color:#263f56}.page-body{padding:20px}.app-shell{min-height:100vh}.app-head{height:60px;background:#153858;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}.app-head .brand{gap:10px}.app-head .brand-mark{width:35px;height:35px;font-size:17px}.app-head .brand h1{font-size:16px}.shell-main{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:calc(100vh - 60px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:16px 10px}.side-label{text-transform:uppercase;color:#92a0ab;font-size:11px;letter-spacing:1px;padding:10px 12px}.side-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:3px;color:#4b5c6b;margin:2px 0}.side-link.active{color:#175a8a;background:#eaf2f8;font-weight:600}.side-link:hover{text-decoration:none;background:#f0f4f7}.side-icon{width:19px;text-align:center;color:#7390a8}.work{min-width:0;padding:22px}.crumb{font-size:12px;color:var(--muted);margin-bottom:12px}.content{box-shadow:0 1px 2px #102c4808}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line);padding:15px 16px;border-radius:4px}.metric label{display:block;color:var(--muted);font-size:12px}.metric strong{font-size:25px;font-weight:600;color:#224d70}.metric small{color:var(--muted);margin-left:5px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar input,.toolbar select,.field input,.field select,.field textarea,.searchbox{border:1px solid #cbd5de;border-radius:3px;background:white;padding:8px 10px;color:var(--ink)}.toolbar input{min-width:185px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:3px}table{width:100%;border-collapse:collapse;min-width:680px;background:#fff}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #e9edf0;vertical-align:middle}th{background:#f5f7f9;color:#526474;font-size:12px;font-weight:600;white-space:nowrap}td{font-size:13px}tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:9px;white-space:nowrap}.row-actions button,.inline-link{color:var(--blue);border:0;background:none;padding:0}.muted{color:var(--muted)}.small-note{font-size:12px;color:var(--muted)}.callout{background:#f1f6fa;border-left:3px solid #5d8eb4;padding:10px 13px;color:#496176;margin-bottom:15px}.callout.warning{background:#fff8ec;border-color:#d6a047;color:#76571c}.callout.error{background:#fff2f0;border-color:var(--red);color:#843d38}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#526474}.field input,.field select,.field textarea{width:100%}.field textarea{min-height:75px;resize:vertical}.required{color:var(--red)}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:17px}.steps{display:flex;gap:0;margin:0 0 20px;padding:0;list-style:none}.steps li{flex:1;padding:9px 7px;text-align:center;background:#f0f3f6;color:#71808d;border-right:2px solid white}.steps li.current{background:#e6f0f7;color:#175782;font-weight:600}.steps li.done{background:#e8f4ed;color:#267450}.timeline{border-left:2px solid #dce6ee;margin:10px 0 10px 8px;padding-left:18px}.event{position:relative;padding:0 0 17px}.event:before{content:"";position:absolute;left:-24px;top:6px;width:9px;height:9px;background:#4d84ad;border-radius:50%;border:2px solid white}.event time{font-size:12px;color:var(--muted);display:block}.event strong{font-weight:600}.empty{padding:32px;text-align:center;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;color:var(--muted);font-size:12px}.modal-backdrop{position:fixed;inset:0;background:#132b4090;z-index:20;display:grid;place-items:center;padding:20px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:5px;box-shadow:0 20px 80px #06152255}.modal-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:17px}.modal-close{border:0;background:none;font-size:22px;color:#788793}.modal-body{padding:18px}.modal-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;right:22px;bottom:22px;background:#1b3d5c;color:white;padding:11px 16px;border-radius:4px;box-shadow:var(--shadow);z-index:30;animation:rise .2s ease}.footer{background:#e9eef2;color:#71808d;padding:22px;text-align:center;font-size:12px;margin-top:24px}.article{max-width:850px;margin:auto}.article h1{font-size:25px;text-align:center;color:#263f56}.article-meta{text-align:center;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:14px}.article p{line-height:2;text-indent:2em}.certificate{border:8px double #a98c5f;padding:30px;text-align:center;position:relative;background:#fffdf7;min-height:320px}.watermark{position:absolute;inset:35% 0 auto;color:#bd777744;font-size:39px;font-weight:700;transform:rotate(-13deg);pointer-events:none}.certificate h2{color:#73562c;letter-spacing:5px}.certificate .cert-name{font-size:23px;margin:20px}.print-only{display:none}.mobile-toggle{display:none}.route-error{text-align:center;padding:70px 20px}.route-error strong{font-size:24px;display:block;margin-bottom:8px}@keyframes rise{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:900px){.shell-main{grid-template-columns:190px minmax(0,1fr)}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.portal-grid{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:repeat(2,1fr)}.work{padding:16px}.brandbar{padding-top:16px;padding-bottom:16px}}@media(max-width:680px){.topline{padding:6px 12px}.topline .top-extra{display:none}.brandbar{padding:14px 14px;align-items:flex-start;flex-direction:column}.brand h1{font-size:18px}.search{width:100%;max-width:none}.portal-nav{padding:0 8px}.portal-nav a{padding:10px 13px}.wrap{padding:0 12px;margin:14px auto}.portal-grid,.two-col{grid-template-columns:1fr}.hero{min-height:220px;padding:19px}.hero h2{font-size:23px}.quick-grid{grid-template-columns:repeat(2,1fr)}.app-head{padding:0 12px}.app-head .top-actions{gap:8px}.mobile-toggle{display:inline-flex;border:1px solid #7892a8;color:white;background:transparent;padding:5px 8px}.shell-main{display:block}.sidebar{display:none;position:fixed;z-index:10;inset:60px auto 0 0;width:260px;overflow:auto;box-shadow:var(--shadow)}.sidebar.open{display:block}.work{padding:13px}.dashboard-grid{gap:8px}.metric{padding:11px}.metric strong{font-size:21px}.page-body{padding:14px}.page-title{padding:13px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.steps{font-size:11px}.steps li{padding:8px 3px}.top-actions .role-select{max-width:116px}.article h1{font-size:20px}.table-scroll{margin-right:-4px}.modal-backdrop{padding:10px}.modal{max-height:94vh}}@media print{body{background:white}.no-print,.topline,.app-head,.sidebar,.crumb,.footer,.modal-backdrop{display:none!important}.shell-main{display:block}.work{padding:0}.content,.panel{border:0;box-shadow:none}.print-only{display:block}.certificate{min-height:92vh;margin:3vh;padding:55px}.wrap{max-width:none}}
