@font-face{font-family:Outfit;src:url('fonts/outfit-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Outfit;src:url('fonts/outfit-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Outfit;src:url('fonts/outfit-800.ttf') format('truetype');font-style:normal;font-weight:800;font-display:swap}
:root{--blue:#3b82f6;--ink:#111827;--muted:#6b7280;--pale:#f3f4f6;--border:#e5e7eb;--green:#10b981;--radius:8px}
*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--pale);color:var(--ink);font-family:Outfit,system-ui,sans-serif;font-size:16px;line-height:1.6}a{color:#2563eb;text-underline-offset:4px}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.table-scroll:focus-visible{outline:3px solid #2563eb;outline-offset:4px}
.site-header{min-height:78px;background:#fff;border-bottom:4px solid var(--blue);padding:16px clamp(20px,6vw,96px);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:21px;font-weight:800;letter-spacing:-.04em;text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;background:var(--blue);color:white;font-size:23px;line-height:1}.language-selector select{max-width:150px;border:1px solid var(--border);border-radius:6px;background:var(--pale);color:var(--ink);padding:8px 30px 8px 12px;cursor:pointer}
.container{width:min(960px,calc(100% - 48px));margin:56px auto 72px;flex:1;min-width:0}h1{font-size:clamp(36px,5vw,62px);font-weight:800;line-height:1.04;letter-spacing:-.055em;margin:0 0 32px;overflow-wrap:anywhere}h2{font-size:25px;line-height:1.2;letter-spacing:-.035em;margin:32px 0 16px}p{margin:0 0 16px}ul,ol{padding-left:24px}li{margin:8px 0}strong{font-weight:700}
button,input[type=submit],.download-btn,.upload-btn,.back-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid transparent;border-radius:6px;background:var(--ink);color:#fff;font-weight:700;line-height:1.4;text-decoration:none;cursor:pointer;transition:background .16s}button:hover,input[type=submit]:hover,.download-btn:hover,.back-link:hover{background:#374151;text-decoration:none}button:disabled{background:#e5e7eb;color:#6b7280;cursor:not-allowed}.upload-btn,.home-btn{background:#fff;color:var(--ink);border-color:var(--border)}.upload-btn:hover,.home-btn:hover{background:#e5e7eb}.delete-btn,input[name=delete],.logout-btn{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.delete-btn:hover,input[name=delete]:hover,.logout-btn:hover{background:#fee2e2}.toggle-btn{background:#eff6ff;color:#1d4ed8}.toggle-btn:hover{background:#dbeafe}
input[type=text],input[type=password],textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:6px;background:var(--pale);padding:14px;color:var(--ink)}textarea{min-height:140px;resize:vertical;margin-bottom:16px}.button-container{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.link-container{display:flex;gap:12px;margin-top:22px}.link-container button{flex:none}.file-section,.file-info,.info,.stats{padding:28px;border-radius:var(--radius);background:#fff}.file-section{margin:24px 0;border:1px solid var(--border)}.file-section .file-info{padding:0}.file-info{overflow-wrap:anywhere}.file-info p:last-child{margin-bottom:0}.file-info span{font-weight:700}.success,.safe,.success-message,.warning,.error-message{padding:18px 22px;margin:0 0 24px;border-radius:var(--radius);border-left:4px solid var(--green);background:#ecfdf5;color:#065f46}.warning{background:#fffbeb;border-color:#f59e0b;color:#92400e}.error-message,.message-container .error{background:#fef2f2;color:#991b1b;border-color:#dc2626}
.site-footer{background:var(--ink);padding:30px clamp(24px,6vw,96px);display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:auto}.site-footer .brand{color:white;font-size:18px}.footer-links{display:flex;flex-wrap:wrap;gap:12px 28px}.footer-links a{color:#d1d5db;font-size:14px;text-decoration:none}.footer-links a:hover{color:white;text-decoration:underline}
/* Upload: the blue hero and flat white panel follow the reference page. */
.page-index .container{width:100%;margin:0;max-width:none}.upload-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,5vw,80px);position:relative;isolation:isolate;overflow:hidden;background:var(--blue);padding:80px clamp(24px,9vw,144px);min-height:600px}.upload-hero:before{content:"";position:absolute;z-index:-1;width:440px;height:440px;border-radius:50%;background:#ffffff16;right:-110px;top:-150px}.upload-hero:after{content:"";position:absolute;z-index:-1;width:220px;height:220px;background:#ffffff16;left:43%;bottom:-170px;transform:rotate(20deg)}.hero-copy{min-width:0;color:white}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;margin:0 0 22px}.hero-copy h1{font-size:clamp(46px,5.5vw,80px);line-height:.97;letter-spacing:-.06em;margin:0 0 28px;overflow-wrap:normal}.hero-copy h1 span{color:#dbeafe}.hero-lead{font-size:20px;line-height:1.5;color:#eff6ff;max-width:460px}.hero-steps{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:32px;font-size:13px;color:white}.form-group{background:#fff;border-radius:var(--radius);padding:30px;min-width:0}.upload-card-title{display:flex;align-items:center;gap:14px;margin-bottom:24px}.upload-card-title h2{margin:0;font-size:24px}.upload-icon{display:grid;place-items:center;width:44px;height:44px;background:#eff6ff;color:#2563eb;border-radius:8px;font-size:28px}.file-upload-wrapper{display:flex;flex-direction:column;gap:20px}.file-upload-wrapper>*{width:100%}input[type=file]{max-width:100%;border:2px dashed #93c5fd;border-radius:8px;background:#eff6ff;padding:30px 16px;color:#4b5563;font-size:14px;cursor:pointer}input[type=file]::file-selector-button{display:block;margin:0 0 12px;border:0;border-radius:5px;padding:10px 16px;background:#dbeafe;color:#1e40af;font:inherit;font-weight:700;cursor:pointer}.terms{font-size:14px;color:#4b5563}.terms label{display:flex;gap:10px;align-items:flex-start}.terms input{width:18px;height:18px;flex:none;accent-color:var(--blue);margin:3px 0 0}.progress-container,.message-container{display:none}.progress-background{background:var(--pale);border-radius:6px;overflow:hidden}.progress-bar{width:0%;min-height:20px;background:var(--blue);color:white;text-align:center;font-size:12px;transition:width .2s}.message-container p{padding:12px;border-radius:6px;margin-bottom:8px}.details-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;max-width:1300px;padding:36px clamp(24px,6vw,80px) 48px;margin:auto}.info{color:#4b5563;font-size:14px;line-height:1.9}.info strong{color:var(--ink)}.stats{display:flex;flex-direction:column;justify-content:center;background:var(--ink);color:#93c5fd;font-size:26px;font-weight:800}.stats p{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:8px 0}.stats span{color:#d1d5db;font-size:14px;font-weight:400}
.legal-page.container{max-width:850px;background:white;padding:40px;border-radius:8px}.legal-page h1{font-size:clamp(32px,4vw,48px)}.legal-page h2{margin-top:36px}.back-link{margin-top:24px}.page-admin .container{width:min(1250px,calc(100% - 48px))}.page-admin .container:has(input[type=password]){max-width:480px;flex:0;margin:80px auto;background:#fff;padding:32px;border-radius:8px}.page-admin .container:has(input[type=password]) h1{font-size:42px}.page-admin input[type=password]{margin-bottom:20px}.page-admin .container:has(input[type=password]) button{width:100%}.table-scroll{width:100%;overflow-x:auto;background:white;border-radius:8px;margin-bottom:36px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--border);vertical-align:top}th{background:#e5e7eb;color:#4b5563;font-size:11px;letter-spacing:.08em;text-transform:uppercase}td:first-child{min-width:180px;overflow-wrap:anywhere;max-width:280px}td button{font-size:12px;padding:8px 12px;min-height:40px;margin-bottom:6px}tr:last-child td{border-bottom:0}.page-admin .container>form{background:white;padding:24px;border-radius:8px}
@media(min-width:1600px){.upload-hero{padding-left:max(9vw,calc((100vw - 1320px)/2));padding-right:max(9vw,calc((100vw - 1320px)/2))}}
@media(max-width:900px){.upload-hero{grid-template-columns:1fr;padding:48px 24px;gap:32px}.hero-copy{max-width:650px}.hero-copy h1{font-size:60px}.form-group{max-width:650px;width:100%}.details-grid{padding:24px;grid-template-columns:1fr 1fr}.hero-steps{margin-top:24px}}
@media(max-width:600px){.site-header{padding:14px 18px;gap:12px}.brand{font-size:19px}.language-selector select{max-width:120px;padding-left:8px}.container{width:calc(100% - 32px);margin:32px auto 40px}.hero-copy h1{font-size:clamp(42px,11vw,60px)}.hero-lead{font-size:18px}.upload-hero{padding:38px 20px}.form-group{padding:22px}.details-grid{grid-template-columns:1fr;padding:20px}.info,.stats,.file-info,.file-section{padding:22px}.site-footer{align-items:flex-start;flex-direction:column;padding:28px 20px}.link-container{flex-direction:column}.button-container>*{width:100%}.legal-page.container{padding:24px}.page-admin .container{width:calc(100% - 32px)}.page-admin .container:has(input[type=password]){padding:24px;margin:40px auto}.stats p{gap:12px}.hero-steps{font-size:12px;gap:8px 16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.legal-page.container{overflow-wrap:anywhere}

/* Shared project footer, matching the PortCheck content structure. */
.site-footer{gap:18px;color:#9ca3af;font-size:14px;padding:28px clamp(24px,6vw,96px)}
.site-footer .brand{font-size:16px;flex-shrink:0}.site-footer .brand-mark{width:28px;height:28px;font-size:19px}
.footer-description{max-width:240px}.footer-service{color:#d1d5db;max-width:260px}.footer-service a,.footer-links a{color:#fff;font-weight:700;text-decoration:none}.footer-service a:hover{text-decoration:underline}.footer-links{gap:12px 18px}
.legal-page .back-link{margin:0 0 28px}.legal-page .eyebrow{color:var(--muted)}.legal-lead{color:var(--muted);font-size:20px}.legal-service-note{margin-bottom:28px}.legal-card{background:var(--pale);padding:28px;border-radius:8px}.legal-card h2:first-child{margin-top:0}
@media(max-width:1000px){.site-footer{flex-direction:column;align-items:flex-start}.footer-description,.footer-service{max-width:none}}
@media(max-width:600px){.legal-card{padding:20px}}

.legal-page .eyebrow{text-transform:uppercase}.legal-card>:last-child{margin-bottom:0}
