:root{--navy:#21314a;--navy-deep:#142236;--gold:#b38a45;--ink:#172a40;--muted:#738094;--line:#e3ded4;--paper:#f7f5f0;--green:#267c64;--red:#ac4545;--soft:#f0ece4;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:7px;padding:10px 15px;color:var(--ink);white-space:nowrap}button:hover{border-color:var(--gold);background:#fcfaf5}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--navy);border-color:var(--navy);color:white}.primary:hover{background:#304562}.quiet{border:none;background:transparent;padding:8px;color:var(--muted)}.text-button{padding:4px 6px;border:none;background:transparent;text-decoration:underline;text-underline-offset:3px;color:#99702e}.danger{color:var(--red)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d9d4cb;border-radius:7px;background:white;color:var(--ink);min-height:42px}input:focus,select:focus,textarea:focus{outline:2px solid #b38a4577;outline-offset:1px}textarea{min-height:85px;resize:vertical}label{display:grid;gap:8px;color:#5f646d}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Microsoft YaHei",serif;font-size:30px;margin-bottom:0}h2{font-size:20px}h3{font-size:16px}.eyebrow{font-family:Georgia,serif;font-size:10px;font-weight:bold;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:9px}.muted,.subtle{color:var(--muted);line-height:1.8}.error{color:var(--red);line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.notice{font-size:12px;line-height:1.8;color:#8d7041;background:#fbf5e9;border-radius:6px;padding:13px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:1040px;margin:auto;gap:90px;padding:50px}.login-intro h1{font-size:43px;line-height:1.5;margin:30px 0 20px}.login-intro small{line-height:1.9;color:var(--muted)}.login-line{height:1px;width:80px;background:var(--gold);margin:28px 0}.login-card{background:white;border:1px solid var(--line);border-radius:16px;padding:38px;box-shadow:0 20px 70px #14223609}.login-card h2{margin:20px 0 8px}.login-card label{margin-top:22px}.login-card .primary{width:100%;margin:10px 0 22px}.login-card .notice{margin-bottom:0}.layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.layout[hidden],section[hidden],[hidden]{display:none!important}aside{background:linear-gradient(160deg,var(--navy-deep),var(--navy));color:#d3dbe6;padding:26px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:10px;line-height:1.6;border-bottom:1px solid #ffffff20;padding-bottom:26px;font-weight:bold}.brand small{display:block;color:#a1b0c5;font-size:9px;letter-spacing:1.6px;margin-top:4px}.diamond{font-size:38px;color:#dcc298}nav{display:grid;gap:4px;margin-top:26px}nav button{border:0;background:none;color:#c0cbdb;text-align:left;padding:13px 12px;font-size:14px}nav button:hover{background:#ffffff09}nav button.active{color:#fff;background:#b38a4529;box-shadow:inset 3px 0 var(--gold)}nav button span{display:inline-block;color:#9c9689;font-size:10px;width:25px}.sidebar-note{margin-top:auto;padding:24px 8px 0;font-size:12px}.sidebar-note p{font-size:11px;color:#9dabc0;line-height:1.8;margin:12px 0}.sidebar-note strong{color:#d3bd91;font-size:10px;letter-spacing:1px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#64af92;margin-right:6px}.main{padding:30px 34px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.account{display:flex;align-items:center;gap:17px;text-align:right;font-size:13px}.account small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.stage-banner{border-left:3px solid var(--gold);background:#fffaf0;padding:13px 16px;margin-bottom:28px;font-size:12px;color:#917043;display:flex;flex-wrap:wrap;gap:8px 14px;line-height:1.8}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.toolbar h2{margin-bottom:5px}.toolbar .muted{font-size:12px;margin-bottom:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.search{display:flex;gap:8px;padding:18px;border-bottom:1px solid var(--line)}.search input{max-width:450px}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px #14223603;margin-bottom:24px}.panel-pad{padding:25px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{background:#f4f1eb;color:#617086;text-align:left;padding:13px 16px;font-size:11px;white-space:nowrap;font-weight:500}td{padding:17px 16px;border-bottom:1px solid #f0ede7;vertical-align:middle;line-height:1.7;max-width:360px;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}td .muted{font-size:11px}.empty{text-align:center;padding:64px 24px;color:var(--muted)}.badge{display:inline-block;font-size:11px;padding:3px 9px;border-radius:20px;background:#edf2f5;color:#637588;white-space:nowrap}.badge.good{background:#eaf5ef;color:#267c64}.badge.warn{background:#fff3db;color:#a57018}.badge.bad{background:#f9e9e9;color:#ac4545}.pagination{padding:13px 18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:23px}.card h3{font-size:12px;color:var(--muted);font-weight:400}.card strong{font-family:Georgia,"Microsoft YaHei",serif;font-size:24px;display:block}.card small{display:block;color:var(--muted);font-size:11px;margin-top:10px}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.step{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.step:last-child{border:0}.step .step-index{color:var(--gold);font-family:Georgia,serif;font-size:19px;width:23px}.step h3{margin-bottom:7px;font-size:14px}.step p{font-size:12px;color:var(--muted);line-height:1.8;margin:0}.check-list{line-height:2.2;color:#647186;font-size:13px;padding-left:20px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:18px 0}.detail-grid dt{font-size:11px;color:var(--muted);margin-bottom:6px}.detail-grid dd{margin:0;line-height:1.8;overflow-wrap:anywhere}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:min(720px,calc(100% - 32px));max-height:90vh;overflow:auto;box-shadow:0 20px 100px #14223635}dialog::backdrop{background:#14223680;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.modal-head h2{margin:0}.modal-head .quiet{font-size:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin:23px 0}.form-grid .wide{grid-column:1/-1}.lookup{margin-bottom:4px;font-size:12px;min-height:34px;padding:8px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px}.role-picks{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0}.role-picks label{display:flex;align-items:center;gap:6px}.role-picks input{width:16px;min-height:16px}.toast{position:fixed;right:25px;bottom:25px;background:var(--navy);color:white;padding:15px 22px;border-radius:10px;z-index:10;max-width:calc(100vw - 50px);box-shadow:0 5px 30px #0002;line-height:1.7}footer{font-size:11px;color:#8a94a2;padding:10px 0 20px;line-height:1.8}.loading{padding:40px;color:var(--muted)}code{font-size:11px;word-break:break-all}.mobile-note{display:none}
@media(min-width:1650px){.main{padding:35px 48px}.login-wrap{max-width:1100px}}@media(max-width:1050px){.layout{grid-template-columns:180px minmax(0,1fr)}.main{padding:24px 22px}aside{padding:24px 12px}.brand{font-size:12px}.diamond{font-size:25px}.two-col{grid-template-columns:1fr}.cards{gap:10px}.card{padding:18px}.login-wrap{gap:45px;padding:35px}.login-intro h1{font-size:34px}}
@media(max-width:720px){.login-wrap{display:block;padding:25px;max-width:500px}.login-intro h1{font-size:29px;margin:16px 0}.login-intro .subtle,.login-intro small,.login-line{display:none}.login-card{padding:26px;margin-top:25px}.layout{display:block}aside{height:auto;position:relative;padding:15px 16px}.brand{border:none;padding:0}.brand small{display:none}.brand .diamond{font-size:25px}nav{display:flex;overflow:auto;margin:12px 0 0;gap:7px}nav button{font-size:12px;padding:9px 11px}nav button span{display:none}.sidebar-note{display:none}.main{padding:20px 15px}h1{font-size:25px}.account{font-size:11px;gap:5px}.account small{max-width:120px}.eyebrow{font-size:8px}.stage-banner{font-size:11px;margin-bottom:20px;padding:10px 12px}.toolbar{align-items:flex-start;flex-direction:column;gap:14px}.toolbar h2{font-size:18px}.cards{grid-template-columns:1fr}.card{padding:18px}.card strong{font-size:21px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.detail-grid{grid-template-columns:1fr}.search{padding:13px;flex-wrap:wrap}.search input{max-width:none;flex:1;min-width:160px}.panel-pad{padding:20px}td,th{padding:12px}.actions button{font-size:12px}.desktop-write{display:none}.mobile-note{display:block;font-size:11px;color:var(--muted);line-height:1.8}dialog{padding:20px}.modal-actions{position:sticky;bottom:-20px;background:white;padding-bottom:12px}}
@media(max-width:720px){nav{scrollbar-width:none}nav::-webkit-scrollbar{display:none}.table-wrap{overflow:visible}table,tbody{display:block}thead{display:none}tbody tr{display:block;padding:12px 0;border-bottom:1px solid var(--line)}tbody tr:last-child{border-bottom:none}td{display:grid;grid-template-columns:90px minmax(0,1fr);max-width:none;border:0;padding:8px 15px;gap:12px}td::before{content:attr(data-label);color:var(--muted);font-size:11px;line-height:1.8}.cell-content{min-width:0;overflow-wrap:anywhere}.cell-content .badge{white-space:normal}.empty-row td{display:block;padding:32px 15px}.empty-row td::before{display:none}.pagination{gap:12px;flex-wrap:wrap}}
.cloud-images { width:min(850px,92vw); }
.cloud-image-list { display:flex; flex-wrap:wrap; gap:16px; margin:20px 0; }
.cloud-image-list article { width:160px; display:flex; flex-direction:column; gap:8px; overflow-wrap:anywhere; }
.cloud-image-list img { width:160px; height:120px; object-fit:contain; border:1px solid #ddd; }
