.df-dev-notice{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);background:#b4781e12;border:1px solid rgba(180,120,30,.22);border-radius:6px}.df-dev-notice-label{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:#92400e;letter-spacing:.02em;white-space:nowrap}.df-dev-notice-body{margin:0;font-size:var(--fs-small);color:#78350f;line-height:1.55}.df-page{display:flex;flex-direction:column;gap:var(--sp-10)}.df-section{display:flex;flex-direction:column;gap:var(--sp-4)}.df-header{display:flex;flex-direction:column;gap:var(--sp-2)}.df-header-name{font-family:Inter,sans-serif;font-weight:var(--fw-bold);font-size:var(--fs-h1);color:var(--ink-deep);letter-spacing:-.01em}.df-header-desc{font-size:var(--fs-body);color:var(--ink-soft);max-width:60ch;margin:0}.df-privacy-badge{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--ink-faint);background:#8d9bb01a;border:1px solid var(--border-subtle);border-radius:4px;padding:3px var(--sp-2);width:fit-content;cursor:default}.df-privacy-badge:before{content:"✓";color:#16a34a;font-size:11px}.df-step-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin:0}.df-step-label>span{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--border-medium);font-size:11px;font-weight:var(--fw-bold);color:var(--ink-faint);flex-shrink:0}.df-step-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.df-usecase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3)}.df-usecase-card{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4) var(--sp-5);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.df-usecase-card:hover{border-color:var(--border-medium);box-shadow:0 2px 8px #0000000f}.df-usecase-card--selected{border-color:var(--ink-soft);box-shadow:0 0 0 2px #3341551f}.df-usecase-label{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--ink-deep)}.df-usecase-tagline{font-size:var(--fs-small);color:var(--ink-soft);font-style:italic}.df-usecase-output{font-size:11px;color:var(--ink-faint);margin-top:var(--sp-1)}.df-usecase-desc{font-size:var(--fs-body);color:var(--ink-soft);max-width:64ch;margin:0}.df-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-10) var(--sp-6);border:1.5px dashed var(--border-medium);border-radius:8px;background:var(--surface-1);cursor:pointer;transition:border-color .15s,background .15s;text-align:center}.df-upload:hover,.df-upload:focus{border-color:var(--ink-faint);background:var(--surface-2);outline:none}.df-upload--drag{border-color:var(--ink-soft);background:#8d9bb00f}.df-upload--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.df-upload-icon{font-size:28px;color:var(--ink-faint)}.df-upload-text{font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--ink-soft)}.df-upload-hint{font-size:var(--fs-small);color:var(--ink-faint)}.df-sample-link{background:none;border:none;padding:0;font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--ink-faint);cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.df-sample-link:hover{color:var(--ink-soft)}.df-filename{font-size:var(--fs-small);color:var(--ink-faint);margin:0}.df-progress{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink-faint);margin:0}.df-spinner{display:inline-block;width:12px;height:12px;border:1.5px solid var(--border-medium);border-top-color:var(--ink-faint);border-radius:50%;animation:df-spin .7s linear infinite;flex-shrink:0}@keyframes df-spin{to{transform:rotate(360deg)}}.df-error{font-size:var(--fs-small);color:#dc2626;margin:0}.df-warn{font-size:var(--fs-small);color:#92400e;margin:0}.df-results{gap:var(--sp-3)}.df-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-subtle)}.df-tab{background:none;border:none;border-bottom:2px solid transparent;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--ink-faint);cursor:pointer;margin-bottom:-1px;transition:color .12s,border-color .12s}.df-tab:hover{color:var(--ink-soft)}.df-tab--active{color:var(--ink-deep);border-bottom-color:var(--ink-deep)}.df-tab-panel{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-2)}.df-table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:6px}.df-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);font-variant-numeric:tabular-nums}.df-table th{padding:var(--sp-2) var(--sp-3);background:#8d9bb014;color:var(--ink-faint);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;font-size:11px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border-subtle)}.df-table td{padding:var(--sp-2) var(--sp-3);color:var(--ink);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.df-table tbody tr:last-child td{border-bottom:none}.df-table tbody tr:hover td{background:#8d9bb00a}.df-summary{display:flex;flex-direction:column;gap:var(--sp-4)}.df-summary-block{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:6px;padding:var(--sp-4) var(--sp-5)}.df-summary-title{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--sp-3)}.df-summary-dl{display:flex;flex-direction:column;gap:var(--sp-2);margin:0}.df-summary-row{display:flex;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-small)}.df-summary-row dt{color:var(--ink-faint);min-width:160px;flex-shrink:0;text-transform:capitalize}.df-summary-row dd{color:var(--ink);margin:0;font-variant-numeric:tabular-nums}.df-alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.df-alert-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:4px;font-size:var(--fs-small);flex-wrap:wrap}.df-alert-id{color:var(--ink-deep);font-weight:var(--fw-medium)}.df-alert-signal{color:var(--ink-soft);text-transform:capitalize}.df-alert-name{color:var(--ink-faint);margin-left:auto}.df-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.df-badge--critical{background:#fee2e2;color:#991b1b}.df-badge--high{background:#ffedd5;color:#9a3412}.df-badge--medium{background:#fef9c3;color:#854d0e}.df-badge--low{background:#8d9bb01f;color:var(--ink-faint)}.df-download-btn{align-self:flex-start;padding:var(--sp-2) var(--sp-4);background:var(--surface-1);border:1px solid var(--border-medium);border-radius:5px;font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--ink-soft);cursor:pointer;transition:background .12s,border-color .12s}.df-download-btn:hover{background:var(--surface-2);border-color:var(--ink-faint);color:var(--ink-deep)}.df-failure{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.df-failure-title{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:#dc2626}.df-try-again{background:none;border:1px solid var(--border-medium);border-radius:4px;padding:3px var(--sp-3);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--ink-soft);cursor:pointer;transition:border-color .12s,color .12s}.df-try-again:hover{border-color:var(--ink-faint);color:var(--ink-deep)}.df-empty{font-size:var(--fs-small);color:var(--ink-faint);margin:0;padding:var(--sp-4) 0}@media (max-width: 600px){.df-usecase-grid{grid-template-columns:1fr}.df-upload{padding:var(--sp-6) var(--sp-4)}.df-tab{padding:var(--sp-2) var(--sp-3)}.df-summary-row{flex-wrap:wrap;gap:var(--sp-1)}.df-summary-row dt{min-width:100%}.df-alert-name{margin-left:0}}
