:root{font-family:system-ui,-apple-system,'Yu Gothic',Meiryo,sans-serif;color:#203047;background:#f3f7fb}*{box-sizing:border-box}body{margin:0}.wrap{max-width:1100px;margin:auto;padding:0 22px}.topbar{background:#1761a4;color:#fff}.topinner{display:flex;justify-content:space-between;align-items:center;min-height:66px;gap:20px}.brand{color:#fff;font-weight:750;font-size:21px;text-decoration:none}nav{display:flex;align-items:center;gap:18px}nav a,.navbutton{color:#fff;text-decoration:none;font:inherit;font-size:14px}.navbutton{border:0;background:transparent;cursor:pointer}nav form{margin:0}main{padding-top:31px!important;padding-bottom:40px!important}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.heading h1{font-size:28px;margin:4px 0}.eyebrow{margin:0;font-size:12px;letter-spacing:2px;font-weight:700;color:#4988b8}.panel{background:#fff;border:1px solid #dbe5ef;border-radius:10px;padding:24px;margin-bottom:20px;box-shadow:0 2px 9px #17385c08}.panel h2{font-size:18px;border-bottom:2px solid #e4f0fa;padding-bottom:12px;margin:0 0 20px}.panel h3{font-size:16px}label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}input,textarea,select{display:block;width:100%;font:inherit;padding:12px;border:1px solid #c9d6e3;border-radius:6px;margin-top:7px;background:#fff;color:#203047}input:focus,textarea:focus,select:focus{outline:2px solid #8ab9ea}.button{border:0;border-radius:6px;padding:11px 18px;display:inline-block;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.primary{background:#18815f;color:#fff}.secondary{background:#e5f1fb;color:#165b99}.button:disabled{background:#d7dfe6;color:#768391;cursor:not-allowed}.notice{background:#fff4dc;border:1px solid #eed295;color:#7b5511;border-radius:7px;padding:13px 17px;margin-bottom:20px}.badge{background:#e9f3ff;color:#205c93;border-radius:14px;padding:7px 12px;font-size:13px}.note{color:#667589;font-size:13px;line-height:1.8}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cardlabel{color:#607084}.big{font-size:36px;font-weight:700;margin:13px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.end{justify-content:flex-end}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dropzone{border:2px dashed #77a8d2;background:#f4faff;border-radius:10px;padding:31px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:13px;cursor:pointer}.dropzone.dragover{background:#d9efff;border-color:#175ca0}.dropicon{font-size:32px}.dropzone small{color:#64788b}.filetop{display:flex;justify-content:space-between;margin-top:22px;gap:10px}.filelist{padding:0;list-style:none}.filelist li{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #e3ebf2;min-width:0}.filename{flex:1;min-width:0;overflow-wrap:anywhere}.filesize{color:#607084;white-space:nowrap}.remove{color:#b13e3e;background:#fff0f0;border:0;border-radius:4px;padding:7px 10px;cursor:pointer}.empty{color:#6e7d8c}.error{color:#b53232;font-size:13px}.auth{max-width:480px;margin:35px auto}.samplefile{padding:12px;border-bottom:1px solid #e5eaf0;display:flex;align-items:center;justify-content:space-between;gap:8px}.foot{color:#718399;padding-bottom:25px;font-size:12px}@media(max-width:750px){.topinner{display:block;padding-top:15px;padding-bottom:15px}nav{margin-top:10px;flex-wrap:wrap;gap:12px}.cards,.two{grid-template-columns:1fr}.heading{align-items:flex-start;flex-direction:column}.panel{padding:18px}}

/* Stage 3: the styled button opens the real file input via JavaScript.
   Override the generic input display rule so the browser-native control is hidden. */
#fileInput[type="file"] { display: none !important; }

.panel table th,.panel table td{padding:11px;border-bottom:1px solid #d9e1ee;text-align:left}

/* Stage 6A: expiry choices */
.expiry-fieldset { border:1px solid #cbd5e1; border-radius:8px; padding:14px 18px; margin-top:15px; }
.expiry-fieldset legend { font-weight:700; padding:0 8px; }
.expiry-option { display:block; margin:10px 0; cursor:pointer; }
.expiry-option input[type="radio"] { width:auto; margin-right:7px; }
.expiry-calendar { display:block; margin-top:10px; max-width:320px; }
.expiry-calendar input[type="date"] { max-width:250px; }
