.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:10000;display:none;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex}
.modal-box{background:#fff;max-width:780px;width:100%;padding:clamp(24px,3vw,40px);position:relative;max-height:90vh;overflow-y:auto}
.modal-close{position:absolute;top:16px;right:20px;font-family:var(--display);font-size:28px;cursor:pointer;color:var(--gr3);transition:color .3s;background:none;border:none}
.modal-close:hover{color:var(--bk)}
.modal-box h3{font-family:var(--display);font-size:clamp(24px,3vw,32px);letter-spacing:2px;margin-bottom:8px}
.modal-box h3 span{color:var(--y3)}
.modal-box p{color:var(--gr4);margin-bottom:20px;font-size:14px;line-height:1.6}
.modal-box label{font-family:var(--display);font-size:12px;letter-spacing:3px;color:var(--gr4);display:block;margin-bottom:4px;margin-top:12px}
.modal-box input,.modal-box textarea{width:100%;padding:12px 16px;border:1.5px solid var(--gr1);font-family:var(--body);font-size:15px;transition:border-color .3s;background:var(--off);box-sizing:border-box}
.modal-box input:focus,.modal-box textarea:focus{outline:none;border-color:var(--y)}
.modal-box textarea{resize:vertical;min-height:100px}
.modal-box .btn{margin-top:20px;width:100%;text-align:center}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.req{color:var(--y3)}
.chip-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;margin-bottom:8px}
.chip{cursor:pointer}.chip input{display:none}
.chip span{display:inline-block;padding:10px 20px;border:1.5px solid var(--gr1);font-family:var(--display);font-size:12px;letter-spacing:2px;color:var(--gr4);transition:all .3s;user-select:none}
.chip input:checked+span{border-color:var(--y);background:var(--y-bg);color:var(--bk)}
.chip span:hover{border-color:var(--y)}
.upload-area{border:2px dashed var(--y);padding:18px;text-align:center;cursor:pointer;margin-top:4px;transition:background .3s}
.upload-area:hover{background:var(--y-bg)}
.upload-icon{font-size:24px;margin-bottom:8px}
.upload-text{font-size:14px;color:var(--gr4)}
.upload-hint{font-size:12px;color:var(--gr3);margin-top:8px}
.form-consent{font-size:12px;color:var(--gr3);margin-top:12px;text-align:center}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}

/* ═══ Upload drag-over state ═══ */
.upload-area.drag-over {
    background: var(--y-bg);
    border-color: var(--y);
}
.upload-area.drag-over .upload-text {
    color: var(--bk);
}
