/* Shared form vocabulary. Native values remain available for validation and
   no-JavaScript fallback; only enhanced selects/dates get a custom trigger. */
.pp-native-field { position:absolute!important; width:1px!important; height:1px!important; opacity:0!important; overflow:hidden!important; pointer-events:none!important; padding:0!important; min-height:0!important; }
button.pp-control-trigger { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-height:46px; padding:11px 12px; background:var(--cream-white); color:var(--ink); border:1px solid var(--line-strong); border-radius:8px; font:inherit; text-align:left; cursor:pointer; box-shadow:none; }
button.pp-control-trigger:hover { background:var(--paper); border-color:var(--orange-ink); }
.pp-control-trigger span { overflow-wrap:anywhere; }
.pp-control-trigger svg { width:18px; height:18px; flex-shrink:0; }
.pp-control-trigger[aria-expanded=true] { border-color:var(--orange-ink); }
.pp-control-trigger:disabled { opacity:.55; cursor:not-allowed; }
.pp-control-panel { position:fixed; z-index:2000; padding:7px; overflow:auto; overscroll-behavior:contain; border:1px solid var(--line-strong); border-radius:12px; background:var(--cream-white); color:var(--ink); box-shadow:0 12px 30px #3f302826; font:400 15px/1.5 var(--sans); }
.pp-control-panel button { font:inherit; color:var(--ink); cursor:pointer; border:0; border-radius:7px; background:transparent; min-height:42px; }
.pp-option { display:block; width:100%; text-align:left; padding:9px 12px; }
.pp-option[aria-selected=true] { background:var(--mint-panel); font-weight:600; }
.pp-option:hover,.pp-option:focus-visible { background:var(--orange-soft); }
.pp-control-panel :focus-visible,.pp-control-trigger:focus-visible { outline:2px solid var(--orange-ink); outline-offset:2px; }
.pp-control-panel button:disabled { opacity:.4; cursor:not-allowed; }
.pp-calendar { padding:14px; }
.pp-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:600; }
.pp-calendar-head button { width:38px; font-size:25px; }
.pp-calendar-jump { display:flex; align-items:end; gap:12px; margin:8px 0 12px; }
.pp-calendar-jump label { flex:1; font-size:12px; }
.pp-calendar-jump input { width:100%; border:1px solid var(--line-strong); border-radius:6px; padding:6px 9px; background:var(--paper); color:var(--ink); font:inherit; }
.pp-calendar-jump button { padding:6px 12px; background:var(--mint-panel); }
.pp-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; text-align:center; }
.pp-days > span { font-size:12px; padding:5px 0; color:var(--ink-soft); }
.pp-days button { min-height:36px; padding:3px; }
.pp-days button:hover { background:var(--orange-soft); }
.pp-days button[aria-pressed=true] { background:var(--orange-ink); color:var(--cream-white); }
.pp-today { text-decoration:underline; text-underline-offset:4px; }
.pp-calendar-actions { display:flex; justify-content:space-between; border-top:1px solid var(--line); margin-top:12px; padding-top:7px; }
.pp-calendar-actions button { padding:6px 12px; }
input[type=number] { appearance:textfield; -moz-appearance:textfield; }
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
input[type=file]::file-selector-button { font:inherit; border:0; border-radius:6px; background:var(--mint-panel); color:var(--ink); padding:8px 12px; margin-right:12px; cursor:pointer; }
input[type=file]::file-selector-button:hover { background:var(--orange-soft); }
input[type=checkbox] { appearance:none; display:inline-grid; place-content:center; border:1px solid var(--ink-soft); border-radius:5px; background:var(--cream-white); cursor:pointer; }
input[type=checkbox]:checked { background:var(--orange-ink); border-color:var(--orange-ink); }
input[type=checkbox]:checked::after { content:''; width:10px; height:6px; border-left:2px solid white; border-bottom:2px solid white; transform:translateY(-1px) rotate(-45deg); }
input[type=checkbox]:disabled { opacity:.5; cursor:not-allowed; }
summary { list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::before { content:'›'; display:inline-block; margin-right:9px; font-weight:700; }
details[open]>summary::before { transform:rotate(90deg); }
@media(forced-colors:active){input[type=checkbox]:checked { appearance:auto; }.pp-control-panel { border:2px solid CanvasText; }}
