:root{--praia-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--praia-bg:#fffaf0;--praia-surface:#fff;--praia-surface-2:#f3f4f6;--praia-border:#e5e7eb;--praia-text:#1f2937;--praia-text-muted:#4b5563;--praia-primary:#0e7490;--praia-primary-strong:#155e75;--praia-primary-bg:#cffafe;--praia-on-primary:#fff;--praia-success:#15803d;--praia-success-bg:#dcfce7;--praia-warning:#b45309;--praia-warning-bg:#fef3c7;--praia-danger:#b91c1c;--praia-danger-bg:#fee2e2;--praia-info:#1d4ed8;--praia-info-bg:#dbeafe;--praia-neutral:#374151;--praia-neutral-bg:#e5e7eb;--praia-radius-sm:8px;--praia-radius:14px;--praia-radius-lg:20px;--praia-shadow:0 1px 2px #0000000f, 0 4px 12px #0000000f;--praia-focus-ring:0 0 0 3px #f59e0b;--praia-touch:48px;--praia-touch-lg:56px;--praia-touch-xl:72px;--praia-topbar-height:56px;--praia-nav-height:68px;--praia-safe-top:env(safe-area-inset-top,0px);--praia-safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--praia-font);color:var(--praia-text);background:var(--praia-bg);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}img{max-width:100%;display:block}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}.praia-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.praia-skip-link{z-index:100;border-radius:var(--praia-radius-sm);background:var(--praia-surface);color:var(--praia-primary-strong);padding:12px 16px;font-weight:700;position:absolute;top:-80px;left:8px}.praia-skip-link:focus{top:8px}.praia-btn{min-height:var(--praia-touch-lg);border-radius:var(--praia-radius);text-align:center;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:2px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:1.0625rem;font-weight:700;line-height:1.2;text-decoration:none;transition:transform 80ms,background-color .15s;display:inline-flex}.praia-btn:focus-visible{box-shadow:var(--praia-focus-ring);outline:none}.praia-btn:active:not(:disabled){transform:scale(.98)}.praia-btn:disabled{cursor:not-allowed;opacity:.55}.praia-btn--xl{min-height:var(--praia-touch-xl);padding:0 24px;font-size:1.25rem}.praia-btn--block{width:100%}.praia-btn--primary{background:var(--praia-primary);color:var(--praia-on-primary)}.praia-btn--primary:hover:not(:disabled){background:var(--praia-primary-strong)}.praia-btn--secondary{border-color:var(--praia-primary);background:var(--praia-surface);color:var(--praia-primary-strong)}.praia-btn--success{background:var(--praia-success);color:#fff}.praia-btn--danger{background:var(--praia-danger);color:#fff}.praia-btn--ghost{color:var(--praia-text);background:0 0}.praia-btn__icon{display:inline-flex}.praia-btn__icon svg{width:24px;height:24px}.praia-icon-btn{width:var(--praia-touch);height:var(--praia-touch);color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;display:inline-grid}.praia-icon-btn:hover{background:#00000014}.praia-icon-btn:focus-visible{box-shadow:var(--praia-focus-ring);outline:none}.praia-icon-btn svg{width:24px;height:24px}.praia-spinner{border:3px solid;border-right-color:#0000;border-radius:50%;flex:none;width:20px;height:20px;animation:.8s linear infinite praia-spin;display:inline-block}.praia-card{border:1px solid var(--praia-border);border-radius:var(--praia-radius-lg);background:var(--praia-surface);box-shadow:var(--praia-shadow)}.praia-card--padded{padding:16px}.praia-photo-card{width:100%;color:inherit;text-align:left;flex-direction:column;padding:0;display:flex;overflow:hidden}button.praia-photo-card{cursor:pointer;touch-action:manipulation}button.praia-photo-card:focus-visible{box-shadow:var(--praia-focus-ring);outline:none}button.praia-photo-card:active{transform:scale(.99)}.praia-photo-card--selected{border-color:var(--praia-primary);box-shadow:0 0 0 3px var(--praia-primary)}.praia-photo-card__media{aspect-ratio:4/3;background:var(--praia-surface-2);display:block;position:relative}.praia-photo-card__media img{object-fit:cover;width:100%;height:100%}.praia-photo-card__placeholder{color:var(--praia-text-muted);place-items:center;font-size:2rem;font-weight:800;display:grid;position:absolute;inset:0}.praia-photo-card__placeholder svg{width:40px;height:40px}.praia-photo-card__badge{position:absolute;top:8px;left:8px}.praia-photo-card__body{gap:2px;padding:10px 12px 12px;display:grid}.praia-photo-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.0625rem;font-weight:700;display:-webkit-box;overflow:hidden}.praia-photo-card__subtitle{color:var(--praia-text-muted);font-weight:600}.praia-badge{white-space:nowrap;border:1.5px solid;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:4px 12px 4px 8px;font-size:.9375rem;font-weight:700;display:inline-flex}.praia-badge svg{flex:none;width:18px;height:18px}.praia-badge--lg{min-height:40px;padding:6px 14px 6px 10px;font-size:1.0625rem}.praia-badge--lg svg{width:22px;height:22px}.praia-badge--neutral{background:var(--praia-neutral-bg);color:var(--praia-neutral)}.praia-badge--warning{background:var(--praia-warning-bg);color:var(--praia-warning)}.praia-badge--success{background:var(--praia-success-bg);color:var(--praia-success)}.praia-badge--info{background:var(--praia-info-bg);color:var(--praia-info)}.praia-badge--danger{background:var(--praia-danger-bg);color:var(--praia-danger)}.praia-badge--primary{background:var(--praia-primary-bg);color:var(--praia-primary-strong)}.praia-connectivity{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:4px 12px;font-size:.875rem;font-weight:700;display:inline-flex}.praia-connectivity svg{width:18px;height:18px}.praia-connectivity--online{background:var(--praia-success-bg);color:var(--praia-success)}.praia-connectivity--offline{background:var(--praia-danger);color:#fff}.praia-connectivity--checking,.praia-connectivity--syncing{background:var(--praia-info-bg);color:var(--praia-info)}.praia-connectivity--checking svg,.praia-connectivity--syncing svg{animation:1.2s linear infinite praia-spin}.praia-offline-banner{background:var(--praia-danger);color:#fff;align-items:center;gap:10px;padding:10px 16px;font-weight:600;display:flex}.praia-offline-banner svg{flex:none;width:22px;height:22px}.praia-shell{min-height:100dvh}.praia-topbar{z-index:20;min-height:calc(var(--praia-topbar-height) + var(--praia-safe-top));padding:calc(8px + var(--praia-safe-top)) 16px 8px;background:var(--praia-primary);color:var(--praia-on-primary);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.praia-topbar__title{text-overflow:ellipsis;white-space:nowrap;font-size:1.125rem;font-weight:800;overflow:hidden}.praia-topbar__status{flex:none}.praia-shell__main{width:100%;max-width:1100px;padding:16px 16px calc(var(--praia-nav-height) + 24px + var(--praia-safe-bottom));margin:0 auto}.praia-shell__main:focus{outline:none}.praia-nav{z-index:20;padding-bottom:var(--praia-safe-bottom);border-top:1px solid var(--praia-border);background:var(--praia-surface);display:flex;position:fixed;bottom:0;left:0;right:0}.praia-nav__item{min-width:0;min-height:var(--praia-nav-height);color:var(--praia-text-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.8125rem;font-weight:700;display:flex;position:relative}.praia-nav__icon{display:inline-flex}.praia-nav__icon svg{width:26px;height:26px}.praia-nav__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.praia-nav__item[aria-current=page]{color:var(--praia-primary-strong)}.praia-nav__item[aria-current=page]:before{background:var(--praia-primary);content:"";border-radius:0 0 4px 4px;height:4px;position:absolute;top:0;left:25%;right:25%}.praia-nav__item:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #f59e0b}.praia-nav__badge{background:var(--praia-danger);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;padding:0 5px;font-size:.75rem;line-height:20px;position:absolute;top:6px;left:calc(50% + 6px)}@media (width>=768px){.praia-shell{grid-template-rows:auto auto 1fr;grid-template-columns:96px minmax(0,1fr);display:grid}.praia-topbar,.praia-shell__banner{grid-column:1/-1}.praia-nav{top:var(--praia-topbar-height);height:calc(100dvh - var(--praia-topbar-height));border-top:0;border-right:1px solid var(--praia-border);flex-direction:column;grid-area:3/1;justify-content:flex-start;padding:8px 0;position:sticky}.praia-nav__item{flex:none;min-height:80px}.praia-nav__item[aria-current=page]:before{border-radius:0 4px 4px 0;width:4px;height:auto;inset:20% auto 20% 0}.praia-shell__main{grid-area:3/2;padding:24px}}@media (width>=768px) and (width<=1023.98px){.praia-nav__label{text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:.75rem;line-height:1.15}}@media (width>=1024px){.praia-shell{grid-template-columns:220px minmax(0,1fr)}.praia-nav{gap:4px;padding:12px}.praia-nav__item{border-radius:var(--praia-radius);flex-direction:row;justify-content:flex-start;gap:12px;min-height:56px;padding:0 16px;font-size:1rem}.praia-nav__item[aria-current=page]{background:var(--praia-primary-bg)}.praia-nav__item[aria-current=page]:before{display:none}.praia-nav__badge{margin-left:auto;position:static}}.praia-modal{z-index:50;background:#0f172a8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.praia-modal__panel{width:100%;max-height:90dvh;padding-bottom:var(--praia-safe-bottom);border-radius:var(--praia-radius-lg) var(--praia-radius-lg) 0 0;background:var(--praia-surface);outline:none;overflow:auto}.praia-modal__header{justify-content:space-between;align-items:center;gap:8px;padding:12px 8px 4px 16px;display:flex}.praia-modal__header h2{font-size:1.25rem}.praia-modal__body{padding:8px 16px 16px}.praia-modal__footer{border-top:1px solid var(--praia-border);flex-wrap:wrap;gap:12px;padding:12px 16px 16px;display:flex}.praia-modal__footer>*{flex:140px}@media (width>=768px){.praia-modal{align-items:center;padding:24px}.praia-modal__panel{border-radius:var(--praia-radius-lg);max-width:520px}}.praia-toasts{right:12px;bottom:calc(var(--praia-nav-height) + 12px + var(--praia-safe-bottom));z-index:60;pointer-events:none;gap:8px;display:grid;position:fixed;left:12px}.praia-toast{border-radius:var(--praia-radius);color:#fff;pointer-events:auto;background:#111827;border-left:6px solid #60a5fa;align-items:center;gap:10px;padding:8px 4px 8px 14px;font-weight:600;display:flex;box-shadow:0 8px 24px #00000040}.praia-toast svg{flex:none;width:22px;height:22px}.praia-toast--success{border-left-color:#22c55e}.praia-toast--warning{border-left-color:#f59e0b}.praia-toast--error{border-left-color:#ef4444}.praia-toast__message{flex:1}.praia-toast__action{border-radius:var(--praia-radius-sm);color:#fff;cursor:pointer;background:0 0;border:2px solid #fff;min-height:40px;padding:0 12px;font-weight:700}@media (width>=768px){.praia-toasts{width:380px;bottom:24px;left:auto;right:24px}}.praia-alert{border-radius:var(--praia-radius);border:1.5px solid;align-items:flex-start;gap:10px;padding:12px 14px;font-weight:600;display:flex}.praia-alert svg{flex:none;width:22px;height:22px;margin-top:1px}.praia-alert--info{background:var(--praia-info-bg);color:var(--praia-info)}.praia-alert--success{background:var(--praia-success-bg);color:var(--praia-success)}.praia-alert--warning{background:var(--praia-warning-bg);color:var(--praia-warning)}.praia-alert--error{background:var(--praia-danger-bg);color:var(--praia-danger)}.praia-alert__title{font-weight:800;display:block}.praia-alert__text{color:var(--praia-text);font-weight:500}.praia-empty{color:var(--praia-text-muted);text-align:center;justify-items:center;gap:8px;padding:32px 16px;display:grid}.praia-empty svg{width:48px;height:48px}.praia-empty__title{color:var(--praia-text);font-size:1.125rem;font-weight:800}.praia-loading{color:var(--praia-text-muted);justify-content:center;align-items:center;gap:10px;padding:24px;font-weight:600;display:flex}.praia-field{gap:6px;display:grid}.praia-field__label{font-weight:700}.praia-field__input{width:100%;min-height:var(--praia-touch-lg);border:2px solid var(--praia-border);border-radius:var(--praia-radius);background:var(--praia-surface);color:var(--praia-text);font:inherit;padding:0 14px;font-size:1.0625rem}.praia-field__input:focus{border-color:var(--praia-primary);box-shadow:var(--praia-focus-ring);outline:none}.praia-field--invalid .praia-field__input{border-color:var(--praia-danger)}.praia-field__hint{color:var(--praia-text-muted);font-size:.9375rem}.praia-field__error{color:var(--praia-danger);font-weight:700}.praia-avatar{background:var(--praia-primary-bg);width:56px;height:56px;color:var(--praia-primary-strong);border-radius:50%;flex:none;place-items:center;font-size:1.25rem;font-weight:800;display:inline-grid;overflow:hidden}.praia-avatar img{object-fit:cover;width:100%;height:100%}.praia-avatar--lg{width:112px;height:112px;font-size:2.5rem}.praia-pinpad{justify-items:center;gap:24px;width:100%;display:grid}.praia-pinpad__dots{gap:18px;display:flex}.praia-pinpad__dot{border:2px solid var(--praia-primary);border-radius:50%;width:20px;height:20px}.praia-pinpad__dot--filled{background:var(--praia-primary)}.praia-pinpad--invalid .praia-pinpad__dot{border-color:var(--praia-danger)}.praia-pinpad--invalid .praia-pinpad__dots{animation:.3s ease-in-out praia-shake}.praia-pinpad__keys{grid-template-columns:repeat(3,minmax(64px,84px));gap:14px;display:grid}.praia-pinpad__key{aspect-ratio:1;border:1px solid var(--praia-border);background:var(--praia-surface);min-height:64px;box-shadow:var(--praia-shadow);color:var(--praia-text);cursor:pointer;touch-action:manipulation;border-radius:50%;place-items:center;font-size:1.75rem;font-weight:700;display:grid}.praia-pinpad__key:active:not(:disabled){background:var(--praia-primary-bg)}.praia-pinpad__key:focus-visible{box-shadow:var(--praia-focus-ring);outline:none}.praia-pinpad__key:disabled{opacity:.5;cursor:not-allowed}.praia-pinpad__key--aux{box-shadow:none;background:0 0;border-color:#0000}.praia-pinpad__key svg{width:28px;height:28px}@keyframes praia-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes praia-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page{gap:16px;display:grid}.page__title{font-size:1.625rem;font-weight:800}.page__lead{color:var(--praia-text-muted);margin-top:-8px}.page__grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=768px){.page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.section-title{margin-bottom:12px;font-size:1.125rem;font-weight:800}.stack{gap:12px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=600px){.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.muted{color:var(--praia-text-muted)}.facts{grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;display:grid}.facts dt{font-weight:700}.facts dd{overflow-wrap:anywhere;margin:0}.install-steps{gap:8px;margin:0 0 12px;padding-left:20px;display:grid}.access{flex-direction:column;min-height:100dvh;display:flex}.access__top{min-height:calc(var(--praia-topbar-height) + var(--praia-safe-top));padding:calc(8px + var(--praia-safe-top)) 16px 8px;justify-content:space-between;align-items:center;gap:12px;display:flex}.access__brand{color:var(--praia-primary-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.access__main{width:100%;max-width:560px;padding:8px 16px calc(24px + var(--praia-safe-bottom));align-content:start;gap:16px;margin:0 auto;display:grid}.access__hero{text-align:center;justify-items:center;gap:8px;padding:8px 0;display:grid}.access__logo{width:96px;height:96px}.access__title{text-align:center;font-size:1.625rem;font-weight:800}.access__subtitle{color:var(--praia-text-muted);text-align:center;margin-top:-8px}.access__hero .access__subtitle{margin-top:0}.topbar-actions{align-items:center;gap:4px;display:flex}.topbar-actions .praia-icon-btn{color:var(--praia-on-primary)}.topbar-actions .praia-icon-btn:hover{background:#ffffff26}.session-card{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px 16px;display:grid}.session-card__name{overflow-wrap:anywhere;font-size:1.25rem;font-weight:800}.session-card__actions{grid-column:1/-1;gap:8px;display:grid}@media (width>=768px){.session-card{grid-template-columns:auto minmax(0,1fr) minmax(220px,auto)}.session-card__actions{grid-column:auto}}.device-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.device-list__item{border:1px solid var(--praia-border);border-radius:var(--praia-radius);gap:8px;padding:12px;display:grid}.device-list__item .praia-badge{justify-self:start}.device-list__info{overflow-wrap:anywhere;gap:2px;display:grid}@media (width>=768px){.device-list__item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}}
