.kal-submission-form {
max-width      : 760px;
font-size      : 14px;
--kal-border   : rgba(0,0,0,.18);
--kal-border-in: rgba(0,0,0,.38);
--kal-bg-input : rgba(0,0,0,.04);
--kal-radius   : 8px;
--kal-shadow   : 0 2px 8px rgba(0,0,0,.08);
--kal-muted    : rgba(0,0,0,.5);
}
@media (prefers-color-scheme: dark) {
.kal-submission-form {
--kal-border   : rgba(255,255,255,.18);
--kal-border-in: rgba(255,255,255,.26);
--kal-bg-input : rgba(255,255,255,.05);
--kal-shadow   : 0 2px 8px rgba(0,0,0,.35);
--kal-muted    : rgba(255,255,255,.5);
}
}
body.dark-bg .kal-submission-form {
--kal-border   : rgba(255,255,255,.18);
--kal-border-in: rgba(255,255,255,.26);
--kal-bg-input : rgba(255,255,255,.05);
--kal-shadow   : 0 2px 8px rgba(0,0,0,.35);
--kal-muted    : rgba(255,255,255,.5);
} .kal-sf-fieldset {
border       : 1px solid var(--kal-border);
border-radius: var(--kal-radius);
padding      : 20px 24px;
margin-bottom: 16px;
box-shadow   : var(--kal-shadow);
background   : inherit;
}
.kal-sf-fieldset legend {
font-weight: 600;
padding    : 0 8px;
font-size  : .95em;
color      : var(--kal-accent, #88C214);
} .kal-sf-field { margin-bottom: 16px; }
.kal-sf-field:last-child { margin-bottom: 0; }
.kal-sf-field label { display: block; font-weight: 600; margin-bottom: 5px; font-size: 13px; }
.kal-sf-field input[type="text"],
.kal-sf-field input[type="number"],
.kal-sf-field input[type="date"],
.kal-sf-field input[type="time"],
.kal-sf-field input[type="url"],
.kal-sf-field input[type="email"],
.kal-sf-field select,
.kal-sf-field textarea {
width        : 100%;
padding      : 9px 12px;
border       : 1px solid var(--kal-border-in);
border-radius: 5px;
box-sizing   : border-box;
background   : var(--kal-bg-input);
color        : inherit;
font-size    : 14px;
transition   : border-color .15s, box-shadow .15s;
outline      : none;
font-family  : inherit;
}
.kal-sf-field input:focus,
.kal-sf-field select:focus,
.kal-sf-field textarea:focus {
border-color: var(--kal-accent, #88C214);
box-shadow  : 0 0 0 3px rgba(136,194,20,.18);
}
.kal-sf-field textarea { min-height: 100px; resize: vertical; }
.kal-sf-field input::placeholder,
.kal-sf-field textarea::placeholder { color: inherit; opacity: .4; }
.kal-sf-desc    { display: block; color: var(--kal-muted); font-size: .85em; margin-bottom: 5px; }
.kal-char-count { display: block; text-align: right; font-size: .78em; color: var(--kal-muted); margin-top: 3px; transition: color .2s; }
.kal-char-count.kal-char-near  { color: #e07000; }
.kal-char-count.kal-char-limit { color: #c00; font-weight: 600; } .kal-sf-group-select { margin-bottom: 20px; }
.kal-sf-group-select h3 { margin: 0 0 12px; font-size: 1.1em; }
.kal-sf-group-buttons { display: flex; gap: 14px; }
.kal-sf-group-btn {
flex          : 1;
padding       : 20px 16px;
cursor        : pointer;
border        : 2px solid var(--kal-border);
background    : var(--kal-bg-input);
color         : inherit;
border-radius : var(--kal-radius);
font-size     : 1em;
font-family   : inherit;
transition    : border-color .18s, background .18s, box-shadow .18s;
display       : flex;
flex-direction: column;
align-items   : center;
justify-content: center;
gap           : 8px;
box-shadow    : var(--kal-shadow);
}
.kal-sf-group-btn:hover,
.kal-sf-group-btn.active {
border-color: var(--kal-accent, #88C214);
background  : rgba(136,194,20,.07);
box-shadow  : 0 2px 12px rgba(136,194,20,.18);
}
.kal-sf-group-btn .dashicons { font-size: 2em; width: auto; height: auto; color: var(--kal-accent, #88C214); } .kal-sf-multiselect { display: flex; flex-wrap: wrap; gap: 8px; }
.kal-sf-multiselect label {
display     : inline-flex;
align-items : center;
gap         : 6px;
background  : var(--kal-bg-input);
border      : 1px solid var(--kal-border);
padding     : 5px 12px;
border-radius: 20px;
cursor      : pointer;
font-weight : normal !important;
font-size   : 13px;
transition  : border-color .15s, background .15s;
line-height : 1.4;
}
.kal-sf-multiselect label:hover {
border-color: var(--kal-accent, #88C214);
background  : rgba(136,194,20,.07);
} .kal-sf-multiselect input[type="checkbox"] {
position  : static !important;
float     : none  !important;
margin    : 0     !important;
flex-shrink: 0;
cursor    : pointer;
} .kal-oh-table { border-collapse: collapse; width: 100%; font-size: 13px; }
.kal-oh-table th,
.kal-oh-table td { padding: 7px 10px; border: 1px solid var(--kal-border); }
.kal-oh-table th  { background: var(--kal-bg-input); font-weight: 600; } .kal-geocode-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.kal-sf-geocode-status { font-size: 13px; color: var(--kal-muted); } #kal-map-preview {
border       : 1px solid var(--kal-border-in);
border-radius: 5px;
margin-top   : 8px;
}
.kal-coords-row { margin-top: 6px; }
.kal-coords-hint { font-size: 12px; color: var(--kal-muted); } .kal-sf-consent {
margin       : 16px 0;
padding      : 12px 16px;
background   : rgba(255,193,7,.07);
border       : 1px solid rgba(255,193,7,.35);
border-radius: 5px;
font-size    : 13px;
}
.kal-sf-consent label { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-weight: normal; }
.kal-sf-consent input[type="checkbox"] { margin-top: 2px; flex-shrink: 0; } .kal-sf-actions { display: flex; gap: 10px; align-items: center; margin-top: 20px; flex-wrap: wrap; }
.kal-sf-submit-btn {
background   : var(--kal-accent, #88C214);
color        : #fff;
border       : none;
padding      : 11px 28px;
border-radius: 5px;
cursor       : pointer;
font-size    : 1em;
font-family  : inherit;
font-weight  : 600;
transition   : filter .15s;
display      : flex;
align-items  : center;
gap          : 8px;
}
.kal-sf-submit-btn:hover:not(:disabled) { filter: brightness(1.1); }
.kal-sf-submit-btn:disabled { opacity: .6; cursor: default; } .kal-btn-primary {
background: var(--kal-accent, #88C214); color: #fff;
border: none; padding: 11px 28px; border-radius: 5px;
cursor: pointer; font-size: 1em; font-family: inherit;
}
.kal-btn-primary:hover { filter: brightness(1.1); }
#kal-sf-cancel {
background   : none;
border       : 1px solid var(--kal-border-in);
color        : inherit;
padding      : 10px 18px;
border-radius: 5px;
cursor       : pointer;
font-size    : .9em;
font-family  : inherit;
transition   : border-color .15s;
}
#kal-sf-cancel:hover { border-color: var(--kal-accent, #88C214); } .kal-sf-notice { padding: 12px 16px; border-radius: 5px; margin-bottom: 12px; font-size: 14px; }
.kal-sf-notice-success { background: rgba(40,167,69,.1);  border: 1px solid rgba(40,167,69,.35); }
.kal-sf-notice-error   { background: rgba(220,53,69,.1);  border: 1px solid rgba(220,53,69,.35); }
.required { color: #d63638; } .kal-tax-dropdown { position: relative; }
.kal-tax-toggle {
display        : flex;
align-items    : center;
justify-content: space-between;
width          : 100%;
padding        : 9px 12px;
border         : 1px solid var(--kal-border-in);
border-radius  : 5px;
background     : var(--kal-bg-input);
color          : inherit;
cursor         : pointer;
font-size      : 14px;
font-family    : inherit;
text-align     : left;
transition     : border-color .15s;
}
.kal-tax-toggle:hover,
.kal-tax-toggle[aria-expanded="true"] { border-color: var(--kal-accent, #88C214); }
.kal-tax-toggle-text   { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kal-tax-toggle-arrow  {
margin-left : 8px; flex-shrink: 0;
font-size   : 10px; line-height: 1; opacity: .55;
display     : inline-block; transition: transform .2s;
}
.kal-tax-toggle-arrow::after { content: '▼'; }
.kal-tax-toggle[aria-expanded="true"] .kal-tax-toggle-arrow { transform: rotate(180deg); }
.kal-tax-list {
position     : absolute;
z-index      : 100;
top          : 100%;
left         : 0;
right        : 0;
background   : Canvas;
color        : CanvasText;
border       : 1px solid var(--kal-accent, #88C214);
border-top   : none;
border-radius: 0 0 5px 5px;
max-height   : 280px;
overflow-y   : auto;
box-shadow   : 0 4px 12px rgba(0,0,0,.12);
}
.kal-tax-item { border-bottom: 1px solid var(--kal-border); }
.kal-tax-item:last-child { border-bottom: none; }
.kal-tax-label {
display    : flex;
align-items: center;
gap        : 8px;
padding    : 8px 12px;
cursor     : pointer;
font-weight: normal !important;
margin     : 0 !important;
font-size  : 13px;
}
.kal-tax-label:hover       { background: rgba(136,194,20,.08); }
.kal-tax-label-parent      { font-weight: 600 !important; }
.kal-tax-label-child       { padding-left: 28px; font-size: 12px; }
.kal-tax-cb      { flex-shrink: 0; cursor: pointer; margin: 0; }
.kal-tax-name    { flex: 1; line-height: 1.3; }
.kal-tax-children { background: var(--kal-bg-input); }
.kal-tax-expand {
background : none; border: none; cursor: pointer;
padding    : 2px 6px; flex-shrink: 0;
opacity    : .5; font-size: 10px; line-height: 1;
transition : transform .2s, opacity .15s;
}
.kal-tax-expand::after { content: '▶'; }
.kal-tax-expand[aria-expanded="true"] { transform: rotate(90deg); opacity: .8; }
.kal-tax-expand:hover { opacity: 1; } @media (max-width: 600px) {
.kal-sf-fieldset    { padding: 16px; }
.kal-sf-group-buttons { flex-direction: column; }
}