:root{font-family:system-ui,-apple-system,sans-serif;color:#172d40;background:#f3f6f9;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid #dfe7ee;padding:20px max(5vw,20px);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.brand{font-size:1.4rem;font-weight:800;color:#183d53;text-decoration:none}nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}main{max-width:1100px;margin:48px auto;padding:0 24px;min-height:70vh}h1{font-size:2.4rem;line-height:1.2;margin:12px 0}h2{font-size:1.2rem;margin-top:0}.eyebrow{color:#397567;letter-spacing:.14em;font-size:.75rem;font-weight:800}.card{background:white;border:1px solid #dfe7ee;border-radius:14px;padding:28px;margin:24px 0;box-shadow:0 4px 18px #19334b06}.login{max-width:480px;margin:64px auto}.muted,small{color:#607386}.login label{display:block;font-weight:600}.login input{width:100%}input{padding:12px;border:1px solid #aab8c5;border-radius:6px;font:inherit;max-width:100%}button{background:#236754;color:white;border:0;border-radius:6px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer}button:hover{filter:brightness(.92)}button.secondary{background:#eef3f6;color:#294757}.danger{background:#fff0ef;color:#a3352e;padding:7px 12px}.upload{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.upload label{width:100%}a{color:#206d59}a:focus,button:focus,input:focus{outline:3px solid #6ecab5;outline-offset:3px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:.8rem;color:#607386}td,th{padding:16px 12px;border-bottom:1px solid #edf1f4}td:first-child{overflow-wrap:anywhere;min-width:180px}.actions{display:flex;align-items:center;gap:16px}.badge{background:#e9f2ef;border-radius:20px;padding:2px 10px;font-size:.8rem}.notice{padding:16px;background:#e2f4ec;border-radius:8px}.errorlist{color:#a3352e}footer{text-align:center;color:#607386;font-size:.85rem;padding:28px}@media(max-width:600px){main{margin:28px auto;padding:0 14px}.card{padding:18px}h1{font-size:1.9rem}nav{gap:12px}.upload input,.upload button{width:100%}.actions{flex-direction:column;align-items:flex-start}}

.status-file-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
