:root { --text: #1f2937; --muted: #667085; --line: #d9e0ea; --panel: #ffffff; --blue: #b9dbff; --blue-strong: #386ccf; --danger: #b42318; --warning: #b54708; --success: #067647; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; font-family: Arial, Helvetica, sans-serif; color: var(--text); background: linear-gradient(90deg, #f7fbff 0%, #eef5ff 34%, #ffffff 34%); } .app-shell { width: min(1160px, calc(100vw - 32px)); margin: 70px auto 36px; display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 28px; } .intro-pane { min-height: 560px; display: flex; justify-content: center; } .intro-content { width: 260px; } h1 { margin: 0; font-size: 24px; line-height: 1.2; } .intro-content p { margin: 8px 0 36px; color: var(--muted); font-size: 13px; } .shield-art { position: relative; width: 220px; height: 220px; margin: 0 auto; } .shield { position: absolute; inset: 34px 44px 22px 18px; background: linear-gradient(135deg, #dce8ff, #f9fbff); border: 12px solid #567bd7; border-right-color: #e9f0ff; border-radius: 34px 34px 68px 68px; transform: rotate(-24deg); box-shadow: 0 20px 40px rgba(56, 108, 207, 0.18); } .key-ring { position: absolute; width: 50px; height: 50px; border: 14px solid #6a82df; border-radius: 50%; top: 60px; left: 52px; } .key-stem { position: absolute; width: 78px; height: 12px; background: #6a82df; top: 82px; left: 96px; } .key-bit { position: absolute; width: 30px; height: 34px; border: 10px solid #6a82df; border-left: 0; top: 71px; left: 158px; border-radius: 0 18px 18px 0; } .check-bubble { position: absolute; right: 28px; top: 0; width: 68px; height: 54px; border-radius: 50%; background: #dfe8ff; color: #4876d8; font-size: 42px; font-weight: 700; text-align: center; line-height: 54px; box-shadow: 0 10px 28px rgba(70, 118, 216, 0.2); } .claim-pane { background: var(--panel); border: 1px solid #e5e9f0; padding: 34px 34px 42px; } .claim-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; } label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; } .full { grid-column: 1 / -1; } input, select { width: 100%; height: 34px; border: 1px solid #cfd7e3; border-radius: 4px; padding: 7px 9px; font: inherit; font-weight: 400; color: var(--text); background: #fff; } input:focus, select:focus { outline: 2px solid rgba(56, 108, 207, 0.25); border-color: #587fd7; } .upload-box { background: var(--blue); border-radius: 8px; padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 16px; align-items: center; font-size: 13px; } .upload-box ul { margin: 8px 0 0; padding-left: 20px; } .file-control input { display: none; } .file-control span, .submit-btn { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 4px; background: var(--blue-strong); color: #fff; font-weight: 700; cursor: pointer; } .upload-status { grid-column: 1 / -1; min-height: 18px; margin: 0; color: #31527f; } .submit-btn { width: 180px; padding: 0 18px; font-size: 14px; } .result-panel { margin: 34px auto 0; border: 1px solid #cfd7e3; padding: 20px 34px 30px; } .report { max-width: 560px; margin: 0 auto; text-align: center; color: #555f6d; line-height: 1.45; } .report p { margin: 4px 0; } .report h2 { margin: 28px 0 8px; color: #667085; font-size: 16px; font-weight: 500; } .policy-evidence { margin-top: 26px; text-align: left; font-size: 12px; } .policy-evidence summary { width: max-content; margin: 0 auto 10px; color: #667085; cursor: pointer; } .citations { display: grid; gap: 8px; text-align: left; } .citation { border: 1px solid #e1e6ee; border-radius: 6px; padding: 10px; background: #fbfcff; font-size: 12px; } .citation strong { display: block; color: #364152; margin-bottom: 4px; } .back-btn { display: flex; align-items: center; justify-content: center; min-width: 54px; height: 34px; margin: 38px auto 0; padding: 0 16px; border: 0; border-radius: 4px; background: var(--blue-strong); color: #fff; font-weight: 700; cursor: pointer; } @media (max-width: 860px) { body { background: #fff; } .app-shell { grid-template-columns: 1fr; margin-top: 28px; } .intro-pane { min-height: auto; } .claim-form, .upload-box { grid-template-columns: 1fr; } }