/* "Молба за постъпване" ([mch_application]) in any design: a plain, readable form. Design 1 dresses it up in
   its own scene (themes/montessori-classic/assets/css/application.css). */
.app { display: grid; gap: 30px; }
.app [hidden] { display: none !important; }
/* a design's own form rules (design 1: every label floats above its line, every field is a big dotted line) stay out */
.app label, .app legend { position: static; top: auto; left: auto; height: auto; padding: 0; background: none; transform: none !important; transition: none; font-size: inherit; line-height: 1.4; font-family: inherit; }
.app input[type=text], .app input[type=email], .app input[type=tel], .app input[type=date], .app textarea { height: auto; min-height: 0; margin: 0; font-size: 16px; line-height: 1.4; font-family: inherit; background-image: none; }
.app-trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.app-part { display: grid; gap: 14px; min-width: 0; }
.app-title { margin: 0; }
.app-note { margin: 0; opacity: .75; }
.app-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 16px; }
.app-field { display: grid; align-content: start; gap: 6px; min-width: 0; }
.app-label { font-weight: 700; font-size: .92em; }
.app-field input, .app-field textarea { box-sizing: border-box; width: 100%; padding: 10px 12px; border: 1px solid #cfc6b8; border-radius: 10px; background: #fff; font: inherit; color: inherit; }
.app-field textarea { resize: vertical; }
.app-field.is-invalid input, .app-field.is-invalid textarea { border-color: #e0452b; box-shadow: 0 0 0 3px rgba(224, 69, 43, .15); }
.app-choice { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-width: 0; margin: 0; padding: 0; border: 0; }
.app-choice legend { float: left; width: 100%; margin-bottom: 4px; padding: 0; }
.app-radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.app-box { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 14px 16px 16px; border: 1px solid #e6dfd3; border-radius: 14px; }
.app-subtitle { padding: 0 6px; font-weight: 800; }
.app-add { justify-self: start; padding: 0; border: 0; background: none; color: #2e8fd6; font: inherit; font-weight: 700; cursor: pointer; }
/* the signatures: a pad to sign on (no scrolling of the page while the finger is on it), the name under it */
.app-sign { display: grid; gap: 8px; min-width: 0; }
.app-sign__pad { position: relative; height: 150px; border: 1px solid #cfc6b8; border-radius: 12px; background: #fff; overflow: hidden; }
.app-sign__pad canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; -webkit-user-select: none; user-select: none; }
.app-sign__pad::after { content: ''; position: absolute; left: 18px; right: 18px; bottom: 34px; border-bottom: 1.5px dashed #c9bfae; pointer-events: none; }
.app-sign__hint { position: absolute; left: 20px; bottom: 40px; color: #b3a995; font-size: 14px; pointer-events: none; transition: opacity .2s; }
.app-sign.is-signed .app-sign__hint { opacity: 0; }
.app-sign__clear { position: absolute; right: 8px; top: 8px; padding: 4px 10px; border: 1px solid #e0d7c8; border-radius: 999px; background: #fff; color: #7c857f; font: inherit; font-size: 13px; cursor: pointer; }
.app-sign.is-invalid .app-sign__pad { border-color: #e0452b; box-shadow: 0 0 0 3px rgba(224, 69, 43, .15); }
.app-consent { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.app-consent input { margin-top: 4px; }
.app-consent.is-invalid { color: #e0452b; }
.app-error { margin: 0; color: #e0452b; font-weight: 700; }
.app-send { justify-self: start; }
.app.is-sent .app-part { display: none; }
