/* Shared form controls. Component styles own layout, not field/button appearance. */
.pm-form {
    --pm-field-bg: var(--pm-app-surface, #fff);
    --pm-field-border: var(--pm-app-border-strong, #cdd6db);
    --pm-field-text: var(--pm-app-text, #18212b);
    --pm-field-muted: var(--pm-app-text-muted, #66727f);
    --pm-field-focus: var(--pm-app-accent, #416baf);
    color: var(--pm-field-text);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.pm-form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]):not([type=hidden]) {
    box-sizing: border-box;
    width: 100%; min-width: 0; min-height: 44px;
    padding: 11px 13px;
    border: 1px solid var(--pm-field-border);
    border-radius: 12px;
    background-color: var(--pm-field-bg);
    color: var(--pm-field-text);
    font: inherit; font-size: 16px; font-weight: 500; line-height: 1.45;
    box-shadow: none; outline: none;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.pm-form select { padding-right: 36px !important; cursor: pointer; appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--pm-field-muted) 50%),linear-gradient(135deg,var(--pm-field-muted) 50%,transparent 50%); background-position: calc(100% - 20px) 50%,calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.pm-form textarea { min-height: 100px; resize: vertical; }
.pm-form :is(input,textarea)::placeholder { color: var(--pm-field-muted); opacity: .8; }
.pm-form :is(input,select,textarea):focus-visible {
    border-color: var(--pm-field-focus) !important;
    outline: 2px solid color-mix(in srgb, var(--pm-field-focus) 30%, transparent);
    outline-offset: 1px;
}
.pm-form :is(label,.input-label,.field-label,.form-label,.modern-label) {
    color: var(--pm-field-muted); font-family: inherit;
    font-size: 12px; font-weight: 600; line-height: 1.5;
}
.pm-form :is(.input-label,.field-label,.form-label,.modern-label) { letter-spacing: .04em; text-transform: uppercase; font-size: 11px; }
.pm-form input:is([type=checkbox],[type=radio]) { accent-color: var(--pm-field-focus); flex-shrink: 0; }
.pm-form button {
    box-sizing: border-box; min-height: 42px; max-width: 100%;
    padding: 10px 15px; border: 1px solid var(--pm-app-border, #e1e7ea);
    border-radius: 12px; background: var(--pm-app-surface, #fff);
    color: var(--pm-field-text); font: inherit; font-size: 13px; font-weight: 650;
    line-height: 1.35; letter-spacing: 0; text-transform: none;
    box-shadow: none; text-decoration: none; cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.pm-form :is(.primary,.btn-primary,.btn-save,.btn-save-primary,.btn-confirm,.btn-generate,.customer-save-button,.btn-create,button[type=submit]):not(.secondary):not(.btn-secondary) {
    background: var(--pm-app-primary, #1d2939); color: #fff;
    border-color: var(--pm-app-primary, #1d2939);
}
.pm-form :is(.danger,.btn-danger,.btn-delete,.btn-remove,.customer-icon-danger) {
    color: var(--pm-app-danger, #b42332); background: var(--pm-app-danger-soft, #fff1f2);
    border-color: color-mix(in srgb, var(--pm-app-danger, #b42332) 30%, transparent);
}
.pm-form :is(button,.action-btn):focus-visible { outline: 2px solid var(--pm-field-focus); outline-offset: 3px; }
.pm-form :is(button,input,select,textarea):disabled { cursor: not-allowed; opacity: .55; }
.pm-form :is(.active,.selected)[type=button],.pm-form button[aria-pressed=true],.pm-form button[aria-selected=true] {
    color: var(--pm-app-accent, #416baf); background: var(--pm-app-accent-soft, #edf3fc); border-color: var(--pm-app-accent, #416baf);
}
.pm-form :is(.sheet-footer,.sheet-actions,.actions-footer,.customer-sheet-actions,.mapper-sheet-footer,.delete-sheet-actions) {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
    gap: 10px; border-top: 1px solid var(--pm-app-border, #e1e7ea);
    background: transparent; padding: 20px 0 0;
}
.pm-form .date-input-wrapper { border: 1px solid var(--pm-field-border); background: var(--pm-field-bg); border-radius: 12px; padding: 7px 12px; }
.pm-form .date-input-wrapper input { border: 0 !important; background: transparent !important; padding: 3px 0 !important; min-height: 30px !important; border-radius: 0 !important; }
.pm-form .date-input-wrapper:focus-within { border-color: var(--pm-field-focus); outline: 2px solid color-mix(in srgb, var(--pm-field-focus) 30%, transparent); outline-offset: 1px; }
.pm-form .date-input-wrapper input:focus-visible { outline: 0; }
.pm-form .filter-scroll-area { padding: 0; }
.pm-form :is(.form-section,.customer-form-section,.field-section) { border-color: var(--pm-app-border,#e1e7ea); }
.sheet-panel .pm-form { background: transparent !important; }
.sheet-panel .sheet-content > .pm-form,.sheet-panel .sheet-content > form > .pm-form { padding: 0; max-width: 100%; border: 0; border-radius: 0; box-shadow: none; }
.pm-form .input-wrapper:has(>.input-icon) input { padding-left: 40px !important; }
.pm-form .input-wrapper.has-action input { padding-right: 48px !important; }
.pm-form .input-action-btn { padding: 0; width: 34px; min-height: 34px; }
@media(hover:hover) {
    .pm-form button:hover:not(:disabled) { background: var(--pm-app-surface-muted,#f1f5f9); border-color: var(--pm-app-border-strong,#cdd6db); color: var(--pm-field-text); }
    .pm-form :is(.primary,.btn-primary,.btn-save,.btn-save-primary,.btn-confirm,.btn-generate,.btn-create,.customer-save-button,button[type=submit]):hover:not(:disabled) { background: var(--pm-app-primary-hover,#101828); border-color: var(--pm-app-primary-hover,#101828); color: #fff; }
    .pm-form :is(.danger,.btn-danger,.btn-delete,.btn-remove):hover:not(:disabled) { color: var(--pm-app-danger,#b42332); background: color-mix(in srgb,var(--pm-app-danger,#b42332) 16%,var(--pm-app-surface,#fff)); }
}
@media(prefers-reduced-motion:reduce) { .pm-form :is(button,input,select,textarea) { transition: none; } }

.pm-form button.pm-icon-button { display:inline-grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:10px;font-size:22px;line-height:1; }
/* Schema-driven integration and shipping forms use the same field structure. */
.pm-form .pm-dynamic-field{display:flex;flex-direction:column;gap:9px;min-width:0;width:100%;background:transparent;border:0;box-shadow:none}
.pm-form .pm-dynamic-field.is-hidden{display:none}
.pm-form .pm-dynamic-field>.input-label,.pm-form .pm-dynamic-field .toggle-wrapper>.input-label{font-size:12px;font-weight:600;letter-spacing:normal;text-transform:none;line-height:1.5;color:var(--pm-app-text-muted,#718096);margin:0}
.pm-form .pm-dynamic-control>.pm-input{box-sizing:border-box;width:100%;min-height:46px;border:1px solid var(--pm-app-border,#e1e8f0);border-radius:13px;background:var(--pm-app-surface,#fff);padding:12px 14px;color:var(--pm-app-text,#334155);font:inherit;font-size:14px}
.pm-form .pm-dynamic-field .toggle-wrapper{box-sizing:border-box;min-height:46px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;border:1px solid var(--pm-app-border,#e2e8f0);border-radius:14px;padding:13px 15px;background:var(--pm-app-surface-muted,#f6f8fb);font:inherit;cursor:pointer;transition:background .18s,border-color .18s}
.pm-form .pm-dynamic-field .toggle-wrapper.checked{background:var(--pm-app-accent-soft,#edf3fa);border-color:var(--pm-app-accent,#7497c3)}
.pm-form .pm-dynamic-field .toggle-switch{position:relative;display:block;width:34px;height:20px;border-radius:12px;background:var(--pm-app-border-strong,#b7c3d1);flex:none;transition:background .18s}
.pm-form .pm-dynamic-field .toggle-switch:after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:translate .18s}
.pm-form .pm-dynamic-field .checked .toggle-switch{background:var(--pm-app-accent,#6188ba)}.pm-form .pm-dynamic-field .checked .toggle-switch:after{translate:14px 0}
.pm-form .pm-dynamic-field .toggle-wrapper:focus-visible{outline:2px solid var(--pm-app-accent,#668bb9);outline-offset:3px}
/* A field has one frame. Icon/search shells own it; layout groups do not. */
.pm-form :is(.search-box,.search-container,.search-wrapper,.pm-search-shell,.pm-search,.invoice-search,.customer-search,.picker-search,.input-with-icon,.input-wrapper,.currency-rate-input)>:is(input,textarea):not([type=checkbox]):not([type=radio]){border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}
.pm-form :is(.search-box,.search-container,.search-wrapper,.pm-search-shell,.pm-search,.invoice-search,.customer-search,.picker-search,.input-with-icon,.input-wrapper,.currency-rate-input):focus-within{border-color:var(--pm-field-focus);outline:2px solid color-mix(in srgb,var(--pm-field-focus) 24%,transparent);outline-offset:1px;box-shadow:none}
.pm-form :is(.form-group,.field-group,.field-block):has(>label):has(>:is(input,textarea,.pm-select-host,.input-wrapper,.input-with-icon)){display:flex;flex-direction:column;gap:9px;min-width:0}
.pm-form :is(.form-group,.field-group,.field-block)>label{margin-bottom:0;line-height:1.5}
.pm-form label:has(>:is(input:not([type=checkbox]):not([type=radio]),textarea,.pm-select-host)){display:grid;gap:9px;min-width:0}
.pm-form :is(.form-grid,.layout-two-columns,.custom-dimensions-grid){column-gap:20px;row-gap:20px}
.pm-form :is(.form-stack,.filter-scroll-area){display:flex;flex-direction:column;gap:20px}
html[data-pm-theme=dark] .pm-form :is(.search-box,.search-container,.search-wrapper,.pm-search-shell,.pm-search,.invoice-search,.customer-search,.picker-search,.input-with-icon,.input-wrapper,.currency-rate-input)>:is(input,textarea){background:transparent!important;border:0!important;box-shadow:none!important}
/* Schema cells align label, control and hint across each pair of columns. */
.pm-form .pm-dynamic-control{min-width:0;width:100%}.pm-form .pm-dynamic-control>.pm-input{height:46px;min-height:46px;padding:11px 13px;font-size:14px;line-height:1.5}.pm-form .pm-dynamic-control>.toggle-wrapper{height:46px;min-height:46px;padding:10px 15px}.pm-form .pm-dynamic-control .switch-state{font-size:13px;font-weight:600;line-height:1.5;color:var(--pm-app-text,#334155)}.pm-form .pm-dynamic-hint{min-height:0;font-size:11px;line-height:1.6;color:var(--pm-app-text-muted,#718096)}
@supports(grid-template-rows:subgrid){.pm-form .layout-two-columns>.pm-dynamic-field:not(.is-hidden){display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:8px;align-self:stretch}.pm-form .layout-two-columns>.pm-dynamic-field>label{align-self:end}.pm-form .layout-two-columns>.pm-dynamic-field>.pm-dynamic-control{align-self:start}.pm-form .layout-two-columns>.pm-dynamic-field>.pm-dynamic-hint{align-self:start}}
/* Readable section hierarchy shared by integration and shipping settings. */
.pm-form :is(.group-title,.section-title){font-size:16px;font-weight:650;line-height:1.45;letter-spacing:0;text-transform:none;color:var(--pm-app-text,#25354a);padding-left:0;margin-top:0;margin-bottom:16px}
.sheet-panel .sheet-content:has(>.sheet-wrapper>.parcel-form-view){padding:0!important}
.pm-form .form-group-section{display:flex;flex-direction:column;gap:16px}.pm-form .form-group-section>:is(.group-title,.section-title){margin-bottom:0}

.pm-form :is(.form-group,.form-field,.layout-two-columns,.form-group-section,.pm-dynamic-control){min-width:0;max-width:100%}.pm-form .layout-two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.pm-form .layout-two-columns{grid-template-columns:minmax(0,1fr)}}

/* One filter layout for lists and order search. */
.pm-filter-sheet{height:100%;min-height:0;background:transparent;color:var(--pm-app-text,#253246)}.pm-filter-body{display:flex;flex-direction:column;height:100%;min-height:0;margin:0}
.pm-filter-grid{flex:1;min-height:0;overflow:auto;padding:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;align-content:start;overscroll-behavior:contain}
.pm-filter-field{display:flex!important;flex-direction:column;gap:9px;min-width:0;margin:0!important}.pm-filter-field>span{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--pm-app-text-muted,#718096)}.pm-filter-field>span .pm-symbol{font-size:19px}.pm-filter-wide{grid-column:1/-1}
.pm-filter-sheet .pm-filter-field>input{width:100%;min-width:0;min-height:46px;box-sizing:border-box;padding:12px 14px;border-radius:14px;border:0;background:var(--pm-app-input-bg,#f1f3f6);color:inherit;font:inherit;font-size:14px;box-shadow:0 2px 8px #16283c0b}
.pm-filter-actions{display:flex;justify-content:flex-end;gap:12px;padding:18px 24px;flex:none;border-top:1px solid var(--pm-app-border,#e2e8f0)}.pm-filter-error{padding:0 24px;color:var(--pm-app-danger,#c34646)}
@media(max-width:600px){.pm-filter-grid{grid-template-columns:minmax(0,1fr);padding:20px 16px;gap:18px}.pm-filter-wide{grid-column:auto}.pm-filter-actions{padding:16px}.pm-filter-actions button{flex:1;justify-content:center}}

.sheet-panel .sheet-content:has(>.config-wrapper,>.pm-filter-sheet){padding:0!important}
