:root{--bg:#fbf6ec;--paper:#fffaf0;--line:#e7d9b8;--gold:#b88a2c;--gold-deep:#8a6618;--ink:#3d2f15;--muted:#8a7a52;--warn:#c0392b;--ok:#2f7a3a}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6}a{color:var(--gold-deep);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--paper);border-bottom:2px solid var(--gold);padding:12px 24px;display:flex;align-items:center;justify-content:space-between}.topbar .brand{font-size:18px;font-weight:600;color:var(--gold-deep)}.topbar nav a{margin-left:16px}main{max-width:1100px;margin:24px auto;padding:0 20px}.card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:18px 22px;margin-bottom:18px;box-shadow:0 1px 0 rgba(184,138,44,.05)}.card h2{margin:0 0 12px;font-size:16px;border-left:3px solid var(--gold);padding-left:8px}.card h2,.card h3{color:var(--gold-deep)}.card h3{margin:14px 0 8px;font-size:14px}.btn,button{background:var(--gold);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-size:14px}.btn:hover,button:hover{background:var(--gold-deep)}button:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--gold-deep);border:1px solid var(--gold)}.btn-secondary:hover{background:var(--bg);color:var(--gold-deep)}.btn-danger{background:var(--warn)}.btn-danger:hover{background:#8b1e0f}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:4px;padding:6px 10px;font-size:14px;font-family:inherit}input:focus,select:focus{outline:2px solid var(--gold)}label{display:inline-block;margin-right:8px;color:var(--muted)}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.row>*{margin-right:0}.field{display:flex;flex-direction:column;gap:4px;min-width:140px}.field label{font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse}td,th{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}th{font-weight:600}.badge,th{background:var(--bg);color:var(--gold-deep)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;border:1px solid var(--line);margin-right:4px}.badge.required{background:#fff4dc;border-color:var(--gold)}.badge.optional{background:#f3f0e6}.tag-ok{color:var(--ok)}.tag-warn{color:var(--warn)}.muted{color:var(--muted);font-size:12px}.template-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.template-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:12px 14px;cursor:pointer;transition:all .15s}.template-card:hover{border-color:var(--gold);box-shadow:0 2px 8px rgba(184,138,44,.1)}.template-card.selected{border-color:var(--gold);background:#fff7e3}.upload-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px dashed var(--line);border-radius:6px;margin-bottom:8px}.upload-row .file-name{color:var(--muted);font-size:13px}.precheck-result{padding:12px;border-radius:6px;margin:8px 0}.precheck-result.ok{background:#ecf7e8;color:var(--ok);border-left:3px solid var(--ok)}.precheck-result.warn{background:#fdecea;color:var(--warn);border-left:3px solid var(--warn)}.precheck-result.info{background:#fff7e3;color:#8a6618;border-left:3px solid var(--gold)}.report-frame{width:100%;min-height:700px;border:1px solid var(--line);border-radius:6px;background:#fff}.steps{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.step{padding:4px 12px;background:#fff;border:1px solid var(--line);border-radius:14px;font-size:12px;color:var(--muted)}.step.active{background:var(--gold);color:#fff}.step.active,.step.done{border-color:var(--gold)}.step.done{background:var(--bg);color:var(--gold-deep)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.hero{background:linear-gradient(135deg,#fffaf0,#fdf3dd);border:1px solid var(--line);border-radius:12px;padding:36px 32px;margin-bottom:18px;text-align:center;box-shadow:0 2px 12px rgba(184,138,44,.08)}.hero h1{font-size:26px;color:var(--gold-deep);margin:0 0 12px;font-weight:600;letter-spacing:1.2px}.hero-sub{font-size:15px;color:var(--ink);margin:0;line-height:1.9}.hero-sub strong{color:var(--gold-deep);font-weight:600}.intro-images{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.intro-img{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--line);box-shadow:0 2px 12px rgba(184,138,44,.08)}.value-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin-top:22px;text-align:left}.vp-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px;transition:transform .15s,box-shadow .15s}.vp-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(184,138,44,.12)}.vp-num{font-size:22px;color:var(--gold);font-weight:600;font-family:Georgia,PingFang SC,serif;letter-spacing:1px}.vp-title{font-size:14px;color:var(--gold-deep);font-weight:600;margin:6px 0 4px}.vp-desc{font-size:12.5px;color:var(--muted);line-height:1.7}.warm-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 26px;margin-bottom:16px}.warm-card h2{margin:0 0 6px;color:var(--gold-deep);font-size:17px;font-weight:600}.warm-card .lead{color:var(--muted);font-size:13px;margin:0 0 14px}.upload-slot{background:#fff;border:1px dashed var(--line);border-radius:8px;padding:14px 18px;margin-bottom:10px}.upload-slot.primary{border:2px solid var(--gold);background:#fff7e3}.slot-title{font-size:14px;font-weight:600;color:var(--ink)}.upload-slot.primary .slot-title{color:var(--gold-deep)}.slot-required{color:var(--warn);margin-left:4px}.slot-hint{font-size:12.5px;color:var(--muted);margin:4px 0 10px;line-height:1.7}.file-list{margin:0;padding:0;list-style:none;font-size:13px}.file-list li{display:flex;justify-content:space-between;padding:3px 0;color:var(--ink)}.file-confirmed{margin-top:12px;padding:12px 14px;background:#ecf7e8;border:1px solid #b8d8a9;border-left:4px solid var(--ok);border-radius:8px;animation:fadeInUp .3s ease-out}.file-confirmed-header{font-size:13.5px;font-weight:600;color:var(--ok);margin-bottom:8px;letter-spacing:.3px}.file-item-confirmed{display:flex!important;align-items:center;gap:10px;padding:6px 0!important;border-top:1px dashed #c7e0b6}.file-item-confirmed:first-child{border-top:none;padding-top:2px!important}.file-check{color:var(--ok);font-weight:700;flex-shrink:0}.file-name-text{flex:1 1;color:var(--ink);word-break:break-all;font-weight:500}.file-list .size{color:var(--muted);font-size:12px;flex-shrink:0}.file-remove-btn{background:transparent;color:var(--warn);border:1px solid #e7d9b8;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:12px;flex-shrink:0}.file-remove-btn:hover{background:#fdecea;border-color:var(--warn)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.exam-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;cursor:pointer;transition:all .15s}.exam-card:hover{border-color:var(--gold);box-shadow:0 2px 8px rgba(184,138,44,.1)}.exam-card.selected{border:2px solid var(--gold);background:#fff7e3}.exam-name{font-size:15px;font-weight:600;color:var(--gold-deep)}.exam-meta{font-size:12px;color:var(--muted);margin-top:4px}.exam-columns{display:grid;grid-gap:16px;gap:16px}.exam-columns.one{grid-template-columns:1fr}.exam-columns.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.exam-column{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.exam-column-header{font-size:15px;font-weight:600;color:var(--gold-deep);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.exam-role-tag{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12px;margin-right:8px}.cta,.exam-role-tag{background:var(--gold);color:#fff;letter-spacing:.5px}.cta{border:none;border-radius:6px;padding:10px 22px;font-size:15px;font-weight:500;cursor:pointer}.cta:hover{background:var(--gold-deep)}.cta:disabled{background:#ccc;cursor:not-allowed}