:root{--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--ease:cubic-bezier(.2,.7,.2,1);--t-fast:.15s;--t-med:.22s;--ring:0 0 0 3px rgba(47,93,80,.24)}@media (prefers-color-scheme: dark){:root{--ring:0 0 0 3px rgba(134,179,163,.38)}}b,strong,h1,h2,h3,th{font-weight:600}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,.btn,.chip,.cattab,.iconbtn,.tess-btn,.tabs button,.stepper button{transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease),filter var(--t-fast) var(--ease);-webkit-tap-highlight-color:transparent}@media (hover:hover){.btn:not(:disabled):not(.sec):not(.ghost):not(.link):not(.danger):hover{filter:brightness(.93);box-shadow:0 4px 14px #2f5d5040}.btn.sec:not(:disabled):hover,.btn.ghost:not(:disabled):hover,.tess-btn:hover,.chip:not(.on):hover,.cattab:not(.on):hover,.tabs button:not(.on):hover,.iconbtn:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card, #fff))}.btn.danger:not(:disabled):hover{background:color-mix(in srgb,var(--danger, #c0392b) 8%,transparent)}.pcard:hover,.mrow:hover{transition:box-shadow var(--t-med) var(--ease),transform var(--t-med) var(--ease)}}button:not(:disabled):active,.btn:not(:disabled):active,.chip:active,.cattab:active,.iconbtn:active,.stepper button:active{transform:scale(.97)}button:disabled,.btn:disabled{opacity:.45!important;cursor:not-allowed!important;box-shadow:none!important;filter:none!important;transform:none!important}button:focus-visible,.btn:focus-visible,a:focus-visible,.chip:focus-visible,.cattab:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring)}.chip,.cattab,.iconbtn,.tess-btn{min-height:44px}.btn.link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.stepper button{min-width:44px;min-height:44px}input,select,textarea{transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}@media (hover:hover){input:hover:not(:focus):not(:disabled),select:hover:not(:focus):not(:disabled),textarea:hover:not(:focus):not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:20px;height:20px;min-height:0;cursor:pointer}::placeholder{color:var(--muted);opacity:.8}.wrap>.card,.wrap>.ord,.msg,.big{animation:pp-in var(--t-med) var(--ease) both}.sheet-bg,.qr-ov,.qrov{animation:pp-fade var(--t-med) var(--ease)}.sheet{animation:pp-up var(--t-med) var(--ease)}.qr-box,.qrbox{animation:pp-pop var(--t-med) var(--ease)}@keyframes pp-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pp-fade{0%{opacity:0}to{opacity:1}}@keyframes pp-up{0%{transform:translateY(32px);opacity:.5}to{transform:none;opacity:1}}@keyframes pp-pop{0%{transform:scale(.97);opacity:0}to{transform:none;opacity:1}}.is-busy{position:relative;color:transparent!important;pointer-events:none}.is-busy:after{content:"";position:absolute;inset:0;margin:auto;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:pp-spin .7s linear infinite}.btn.sec.is-busy:after,.btn.ghost.is-busy:after{border-color:#7f7f7f59;border-top-color:var(--accent)}@keyframes pp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}input[type=file]::file-selector-button{min-height:36px;margin-right:var(--s-3);padding:0 var(--s-4);border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent-ink, var(--accent));font:inherit;font-weight:600;cursor:pointer;transition:background-color var(--t-fast) var(--ease)}input[type=file]::file-selector-button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
