:root{font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;color:#172033;background:#f3f6fb;line-height:1.5}*{box-sizing:border-box}body{margin:0}.container{width:min(760px,100%);margin:auto;padding:28px 16px 38px}header{text-align:center;margin-bottom:22px}.badge{display:inline-block;padding:5px 12px;border-radius:99px;background:#eaf2ff;color:#1769e0;font-size:13px}h1{font-size:26px;margin:12px 0 8px}h2{font-size:20px;margin:0 0 12px}header p{color:#687386;margin:0}.card{background:#fff;border:1px solid #e4e9f1;border-radius:14px;padding:18px;margin-top:16px;box-shadow:0 8px 25px rgba(31,55,92,.06)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.section-title>div{display:flex;flex-direction:column}.section-title small{margin-top:3px}.section-title span,.section-title a,.section-title small,td small{font-size:13px;color:#64748b}.section-title a{color:#1769e0;text-decoration:none}.contract-card iframe{width:100%;height:520px;border:1px solid #e1e6ee;border-radius:8px;background:#f8fafc}label{display:block;font-weight:600;font-size:14px;margin:14px 0 8px}input,textarea{font:inherit}input[type=text],input[type=password],input:not([type]),textarea{width:100%;padding:12px;border:1px solid #cad3df;border-radius:8px;font-size:16px;background:#fff}input:focus,textarea:focus{outline:3px solid rgba(23,105,224,.15);border-color:#1769e0}.canvas-wrap{position:relative;height:210px;border:2px dashed #aab5c3;border-radius:10px;background:#fbfcfe;overflow:hidden}.canvas-wrap canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.canvas-wrap span{position:absolute;inset:0;display:grid;place-items:center;color:#a0a9b7;pointer-events:none}.text-button{border:0;background:none;color:#1769e0;padding:5px;cursor:pointer}.canvas-wrap+.text-button{display:block;margin:9px 0 0 auto}.agreement{display:flex;gap:9px;font-weight:400;line-height:1.5;align-items:flex-start}.agreement input{margin-top:4px}.submit,.secondary,.danger,.row-actions button,.filter{border:0;border-radius:9px;padding:12px 16px;font-size:15px;font-weight:700;cursor:pointer}.submit{width:100%;background:#1769e0;color:#fff}.submit:disabled,.secondary:disabled{opacity:.6;cursor:not-allowed}.secondary,.row-actions button,.filter{background:#edf3fb;color:#245b9e}.danger{background:#feeceb;color:#b72b25}.status{text-align:center;min-height:24px;margin:12px 0 0;color:#475569}.success{color:#16803c}.error{color:#c0362c}.result-card{text-align:center;padding:30px}.result-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:#fff3cd;color:#8a6500;font-size:30px;font-weight:800}.result-icon.approved{background:#def7e7;color:#16803c}.result-icon.rejected{background:#feeceb;color:#c0362c}.record-id{color:#64748b}.download-link{display:block;text-decoration:none;margin-top:12px}.result-card .secondary{margin-top:8px}footer{text-align:center;padding:22px 0 0}footer a{color:#738095;font-size:13px;text-decoration:none}
.admin-body{background:#eef3f9}.admin-container{width:min(1180px,100%);margin:auto;padding:28px 20px 50px}.admin-header{display:flex;justify-content:space-between;align-items:center;text-align:left}.admin-header h1{margin-top:9px}.link-button{text-decoration:none}.login-card{width:min(620px,100%);margin:60px auto}.inline-form{display:grid;grid-template-columns:1fr auto;gap:10px}.compact{width:auto;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.stat{background:#fff;border:1px solid #e4e9f1;border-radius:12px;padding:16px}.stat span{display:block;color:#64748b;font-size:13px}.stat strong{display:block;margin-top:8px;font-size:22px}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.upload-grid label{margin:0}.upload-grid input{margin-top:7px}.upload-grid .wide{grid-column:1/-1}.upload-button{width:auto;margin-top:16px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid #e8edf3;vertical-align:top}th{font-size:12px;color:#6b778c}td strong,td small{display:block}.share-url{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1769e0}.status-pill{display:inline-block;padding:4px 9px;border-radius:99px;background:#fff3cd;color:#8a6500;font-size:12px;font-weight:700}.status-pill.approved{background:#def7e7;color:#16803c}.status-pill.rejected{background:#feeceb;color:#c0362c}.row-actions{display:flex;gap:6px;white-space:nowrap}.row-actions button{padding:7px 10px;font-size:12px}.empty{text-align:center;color:#7d899b;padding:30px}.filter-row{display:flex;gap:8px;margin-bottom:12px}.filter{padding:7px 12px;font-size:13px}.filter.active{background:#1769e0;color:#fff}dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:15px;padding:0;box-shadow:0 25px 70px rgba(14,29,52,.28)}dialog::backdrop{background:rgba(12,24,40,.52)}dialog form{padding:24px;position:relative}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:28px;color:#718096;cursor:pointer}textarea{min-height:110px;resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media(max-width:760px){.container{padding:18px 12px 30px}h1{font-size:22px}.card{padding:14px}.contract-card iframe{height:440px}.canvas-wrap{height:190px}.admin-container{padding:18px 12px 35px}.admin-header{align-items:flex-start;gap:12px}.stats-grid{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:1fr}.upload-grid .wide{grid-column:auto}.inline-form{grid-template-columns:1fr}.compact{width:100%}th,td{min-width:120px}.row-actions{flex-direction:column}.filter-row{overflow:auto}.admin-header .link-button{display:none}}
