/* Shared progressive enhancement: original named controls still own values and validation. */
.bf-time-heading{display:block;font-size:15px}.bf-time-hint{display:block;color:#748673;font-size:11px;margin-block:5px 18px}.bf-time-columns{display:flex;gap:12px}.bf-time-column{flex:1;min-width:0;color:#748673;font-size:12px}.bf-time-column>select{display:block;width:100%!important;height:54px!important;border:1px solid #dce2d6!important;border-radius:9px;background:#f5f8f1!important;color:#203b35;font:inherit;font-size:22px;padding:8px!important;margin-block:8px 0!important}.bf-time-readout{display:block;text-align:center;font-size:32px;color:#2c645b;letter-spacing:3px;padding:18px 0}.bf-time-symbol{font-size:24px;line-height:1}.bf-time-control .bf-control-error{letter-spacing:normal}
.bf-native-source{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}
.bf-date-control,.bf-upload-control{--bf-green:var(--green,#2c645b);--bf-ink:var(--ink,#203b35);--bf-line:#dce2d6;--bf-paper:var(--paper,#f8f4ed);position:relative;min-width:0;width:100%;font:inherit;box-sizing:border-box}
.bf-upload-control{container:bf-upload / inline-size}
.bf-date-control{display:flex;flex-wrap:wrap;align-items:center;border:1px solid var(--bf-line);background:#fff;border-radius:9px;min-height:46px;transition:border-color .15s,box-shadow .15s}
.bf-date-control:focus-within{border-color:var(--bf-green);box-shadow:0 0 0 3px #2c645b13}
.bf-date-control>input.bf-date-text{width:calc(100% - 44px)!important;min-width:0;flex:1;height:44px;border:0!important;background:transparent!important;border-radius:9px;box-shadow:none!important;outline:0!important;padding:10px 14px!important;color:var(--bf-ink);font:inherit;font-size:14px;letter-spacing:.35px;box-sizing:border-box}
.bf-date-control>input.bf-date-text::placeholder{font:inherit;font-size:12px;letter-spacing:0;color:#91a092}
.bf-control-icon{display:block;width:21px;height:21px;flex-shrink:0}
.bf-date-trigger,.bf-control-button{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:0!important;background:#eef3ee!important;color:#2c645b!important;border-radius:7px;padding:0!important;margin:4px!important;cursor:pointer;font:inherit}
.bf-date-trigger:focus-visible,.bf-control-button:focus-visible,.bf-calendar button:focus-visible,.bf-upload-choose:focus-visible{outline:2px solid #2c645b!important;outline-offset:3px}
.bf-date-trigger:disabled,.bf-upload-choose:disabled{opacity:.5;cursor:not-allowed}
.bf-control-error{display:block;flex-basis:100%;width:100%;font-size:12px;color:#b33730;line-height:1.7;margin:5px 0 0;padding-inline:8px}.bf-control-error[hidden]{display:none!important}
.bf-upload-choose{position:relative;isolation:isolate;display:flex!important;align-items:center;justify-content:flex-start!important;gap:18px;width:100%;min-height:144px;padding:24px!important;margin:0!important;border:1px dashed #bbcbbf!important;border-radius:16px;background:linear-gradient(120deg,#fffefb,#f1f6f0)!important;color:#203b35!important;text-align:start;font:inherit;cursor:pointer;box-sizing:border-box;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.bf-upload-choose:not(:disabled):hover{border-color:#66978b!important;box-shadow:0 6px 20px #214e460b;transform:translateY(-2px)}.bf-upload-choose:not(:disabled):active{transform:translateY(0)}
.bf-upload-art{position:relative;display:grid;place-items:center;width:64px;height:64px;background:#e5eee6;border:1px solid #d6e4d8;border-radius:18px;color:#2c645b;flex-shrink:0;overflow:hidden;transition:transform .2s,box-shadow .2s,background .2s}.bf-upload-art>.bf-control-icon{width:28px;height:28px;transition:transform .2s}
.bf-upload-copy{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.bf-upload-copy>span{max-width:100%}.bf-upload-title{font-size:14px;font-weight:600;line-height:1.8;overflow-wrap:anywhere}.bf-upload-detail{font-size:11px;line-height:1.7;color:#6d7973;text-align:start;overflow-wrap:anywhere}.bf-upload-hint{font-size:11px;line-height:1.7;color:#839181;overflow-wrap:anywhere}
.bf-upload-action{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:38px;padding:8px 14px;background:#fffefb;border:1px solid #cfdbd0;border-radius:9px;color:#2c645b;font-size:12px;font-weight:600;line-height:1.6;transition:background .2s,color .2s,border-color .2s}
.bf-upload-preview{width:64px!important;height:64px!important;object-fit:cover!important;margin:0!important;border:0!important;border-radius:0!important;animation:bf-upload-reveal .25s ease-out}
.bf-upload-status{display:flex;align-items:center;gap:6px;margin-block-start:9px;padding-inline:4px;color:#2c645b;font-size:11px;line-height:1.8;animation:bf-upload-reveal .2s ease-out}.bf-upload-status>.bf-control-icon{width:15px;height:15px}.bf-upload-status[hidden]{display:none!important}
.bf-upload-control.has-file .bf-upload-choose{border-style:solid!important;border-color:#b9cdbd!important;background:linear-gradient(120deg,#fffefb,#edf4ec)!important}.bf-upload-control.has-file .bf-upload-art{border-color:#b9cdbd}
.bf-upload-control.is-dragging .bf-upload-choose{border-style:solid!important;border-color:#2c645b!important;background:#eaf2eb!important;box-shadow:0 0 0 4px #2c645b12;transform:translateY(-2px)}.bf-upload-control.is-dragging .bf-upload-art{box-shadow:0 0 0 7px #2c645b09}.bf-upload-control.is-dragging .bf-upload-art>.bf-control-icon{animation:bf-upload-float .9s ease-in-out infinite}.bf-upload-control.is-dragging .bf-upload-action{background:#2c645b;border-color:#2c645b;color:#fffefb}
.bf-upload-control.has-error .bf-upload-choose{border-color:#cf8e83!important;background:#fff8f5!important;animation:bf-upload-nudge .22s ease-out}.bf-upload-control.has-error .bf-upload-art{background:#f9ece6;border-color:#edcfc5;color:#a84636}.bf-upload-control .bf-control-error{padding-inline:4px;margin-block-start:8px}
.bf-upload-control.is-disabled{opacity:.6}.bf-upload-choose:disabled{cursor:not-allowed;transform:none;box-shadow:none}
@keyframes bf-upload-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes bf-upload-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes bf-upload-nudge{0%,100%{transform:translateX(0)}30%{transform:translateX(3px)}70%{transform:translateX(-3px)}}
.bf-calendar{--bf-green:#2c645b;position:fixed;z-index:10050;background:#fff;border:1px solid #dde4d6;border-radius:14px;box-shadow:0 18px 50px #193a3526;padding:14px;color:#203b35;font-family:inherit;font-size:13px;box-sizing:border-box;max-height:calc(100dvh - 24px);overflow:auto}
.bf-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:15px}.bf-calendar-header>select.bf-calendar-month,.bf-calendar-header>input.bf-calendar-year{padding:7px!important;margin:0!important;min-width:0;width:auto!important;max-width:120px;border:1px solid #e1e6da!important;border-radius:7px;background:#f8faf5!important;color:#203b35;font:inherit;height:35px;box-sizing:border-box}
.bf-calendar-header>input.bf-calendar-year{width:76px!important}.bf-calendar-month{flex:1}
.bf-calendar-week,.bf-calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.bf-calendar-week{font-size:10px;color:#7c8b79;margin-bottom:6px;line-height:2}.bf-calendar-cell{min-height:36px;display:grid;place-items:center}
.bf-calendar button.bf-calendar-day{display:grid;place-items:center;width:34px;height:34px;min-width:0;margin:0!important;padding:0!important;border:0;border-radius:8px;background:none;color:#203b35;font:inherit;font-size:12px;cursor:pointer}
.bf-calendar button.bf-calendar-day:hover:not(:disabled){background:#edf4ea}.bf-calendar button.bf-calendar-day.is-today{box-shadow:inset 0 0 0 1px #acbca4}.bf-calendar button.bf-calendar-day.is-selected{background:#2c645b;color:#fff;box-shadow:none}.bf-calendar button.bf-calendar-day:disabled{opacity:.25;cursor:not-allowed}
.bf-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #edf0e8;margin-top:9px;padding-top:12px}.bf-calendar-footer>button{font:inherit;font-size:12px;padding:6px 10px;margin:0;border:0;border-radius:6px;cursor:pointer}.bf-calendar-today{color:#2c645b;background:#edf3e9}.bf-calendar-clear{color:#748673;background:none}.bf-calendar-today:disabled{opacity:.35}
@media(prefers-reduced-motion:reduce){.bf-date-control,.bf-upload-choose,.bf-upload-art,.bf-upload-action,.bf-upload-art>.bf-control-icon{transition:none!important}.bf-upload-control *{animation:none!important;transform:none!important}}
@media(max-width:600px){.bf-upload-choose{flex-wrap:wrap;min-height:144px;padding:18px!important;gap:12px}.bf-upload-copy{flex-basis:calc(100% - 76px)}.bf-upload-action{margin-inline-start:76px}.bf-upload-title{font-size:13px}.bf-calendar{padding:12px}.bf-calendar button.bf-calendar-day{width:32px;height:32px}}
@container bf-upload (max-width:520px){.bf-upload-choose{flex-wrap:wrap;min-height:144px;padding:18px!important;gap:12px}.bf-upload-copy{flex-basis:calc(100% - 76px)}.bf-upload-action{margin-inline-start:76px}.bf-upload-title{font-size:13px}}
@container bf-upload (max-width:280px){.bf-upload-choose{justify-content:center!important}.bf-upload-copy{flex-basis:100%;align-items:center;text-align:center}.bf-upload-action{margin-inline-start:0}}
