@keyframes dk-row-in{0%,10%{opacity:0;transform:translateY(8px)}18%,82%{opacity:1;transform:none}92%,to{opacity:0;transform:translateY(-4px)}}@keyframes dk-cycle{0%,22%{opacity:1;transform:none}25%,97%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes dk-bar-fill{0%,8%{transform:scaleX(0)}22%,78%{transform:scaleX(var(--dk-fill,1))}92%,to{transform:scaleX(0)}}@keyframes dk-chip-tap{0%,96%,to{box-shadow:none;transform:none}98%{box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 50%, transparent);transform:scale(1.04)}}@keyframes dk-draw{to{stroke-dashoffset:0}}@keyframes dk-shimmer{to{background-position:-200% 0}}@keyframes dk-march{to{stroke-dashoffset:-24px}}@keyframes dk-stage{0%,2%{box-shadow:0 0 0 2px var(--brand), 0 12px 30px -10px color-mix(in srgb, var(--brand) 50%, transparent)}28%,to{box-shadow:0 0 0 1px var(--line-base,var(--line))}}@keyframes dk-ring-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--brand) 45%, transparent)}70%,to{box-shadow:0 0 0 10px #0000}}@keyframes dk-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@keyframes dk-typing{0%,60%,to{transform:none}30%{transform:translateY(-3px)}}@keyframes dk-float{0%,to{transform:translateY(-8px)}50%{transform:translateY(8px)}}.dk-rows{gap:8px;display:grid}.dk-row{animation:6.5s cubic-bezier(.16,1,.3,1) infinite both dk-row-in}.dk-cycle{display:grid;position:relative}.dk-cycle-item{animation:dk-cycle var(--dk-period,12s) linear infinite both;grid-area:1/1}.dk-label{background:color-mix(in srgb, var(--ink-base) 9%, transparent);border:1px solid color-mix(in srgb, var(--ink-base) 16%, transparent);color:var(--ink-base);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-block}.dk-sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.dk-row,.dk-cycle-item{opacity:1;animation:none;transform:none}.dk-cycle-item:not(:first-child){display:none}}
.ph-frame{--ph-bezel:#232323;width:min(var(--ph-w,280px), 100%);border:1px solid color-mix(in srgb, var(--line-base) 70%, transparent);background:var(--ph-bezel);border-radius:40px;margin-inline:auto;padding:8px;position:relative;box-shadow:0 25px 50px -12px #00000040}.ph-frame--brand{--ph-bezel:var(--dark,#232323);box-shadow:0 25px 50px -12px #00000040, 0 40px 90px -30px color-mix(in srgb, var(--brand) 40%, transparent)}.ph-screen{aspect-ratio:9/19;background:var(--surface);color:var(--ink-base);text-align:start;border-radius:28px;flex-direction:column;display:flex;position:relative;overflow:hidden}.ph-frame--brand .ph-screen{background:linear-gradient(180deg, var(--tint), var(--surface) 46%)}.ph-speaker{top:14px;z-index:3;background:color-mix(in srgb, currentColor 26%, transparent);border-radius:999px;width:64px;height:6px;margin-inline-start:-32px;position:absolute;inset-inline-start:50%}.ph-frame-label{inset-inline:0;width:fit-content;margin-inline:auto;position:absolute;bottom:-8px;transform:translateY(100%)}.ph-app-wrap{position:relative}.ph-toast{--ph-tone:var(--ok);inset-inline:12px;z-index:4;border:1px solid color-mix(in srgb, var(--ph-tone) 34%, transparent);background:color-mix(in srgb, var(--ph-tone) 12%, var(--surface));color:color-mix(in srgb, var(--ph-tone) 70%, var(--ink-base));opacity:0;pointer-events:none;border-radius:22.4px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:600;line-height:1.3;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:12px;transform:translateY(8px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.ph-toast svg{flex:none}.ph-toast--info{--ph-tone:var(--brand)}.ph-toast--error{--ph-tone:var(--bad)}.ph-toast.is-on{opacity:1;transform:none}.ph-app{flex-direction:column;flex:1;min-height:0;padding:34px 12px 12px;display:flex}.ph-app-head{border-bottom:1px solid var(--line-base);justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:10px;display:flex}.ph-app-head b{font-size:13px;font-weight:700;line-height:1.25;display:block}.ph-app-head small{color:var(--muted-base);font-size:10px;display:block}.ph-app-body{flex-direction:column;flex:1;min-height:0;padding-top:10px;display:flex;position:relative}.ph-check{flex:1;align-content:start;gap:4px;display:grid}.ph-check-row{--ph-c:var(--line-base);background:color-mix(in srgb, var(--ph-c) 16%, var(--surface));height:41px;transition:background .25s var(--ease);border-radius:10px;align-items:center;gap:8px;padding-inline:8px;display:flex}.ph-check-row[data-status=ok]{--ph-c:var(--ok)}.ph-check-row[data-status=bad]{--ph-c:var(--bad)}.ph-check-ic{background:color-mix(in srgb, var(--ph-c) 22%, var(--surface));width:24px;height:24px;color:var(--ph-c);transition:background .25s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.ph-check-row[data-status=wait] .ph-check-ic{box-shadow:inset 0 0 0 1.5px var(--line-base);background:0 0}.ph-check-txt{flex:1;min-width:0;line-height:1.25;display:grid}.ph-check-txt b{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.ph-check-txt small{color:var(--muted-base);font-size:9.5px}.ph-attach{background:color-mix(in srgb, var(--brand) 12%, var(--surface));color:var(--brand-2);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:2px;padding:2px 6px;font-size:9px;font-weight:700;display:inline-flex}.ph-progress{color:var(--muted-base);align-items:center;gap:8px;margin-top:auto;padding-top:12px;font-size:10px;font-weight:700;display:flex}.ph-progress i{background:var(--line-base);border-radius:999px;flex:1;height:4px;overflow:hidden}.ph-progress i:after{content:"";width:var(--ph-p,0%);border-radius:inherit;background:var(--brand);height:100%;transition:width .35s var(--ease);display:block}.ph-sheet-wrap{position:absolute;inset:10px -12px -12px;overflow:hidden}.ph-scrim{opacity:0;transition:opacity .3s var(--ease);background:#00000047;position:absolute;inset:0}.ph-scrim[data-open]{opacity:1}.ph-sheet{inset-inline:0;background:var(--surface);transition:transform .3s var(--ease);border-radius:28.8px 28.8px 0 0;gap:8px;padding:8px 12px 16px;display:grid;position:absolute;bottom:0;transform:translateY(100%);box-shadow:0 -8px 30px #0000001f}.ph-sheet[data-open]{transform:none}.ph-grab{margin-inline:auto;background:var(--line-base);border-radius:999px;width:40px;height:4px;margin-bottom:2px}.ph-sheet>b{font-size:12px;font-weight:700}.ph-opts{gap:4px;display:grid}.ph-opt{border:1px solid var(--line-base);border-radius:10px;align-items:center;gap:7px;height:34px;padding-inline:8px;transition:border-color .2s,background .2s;display:flex}.ph-opt i{border:1.5px solid var(--line-base);border-radius:50%;flex:none;width:13px;height:13px;transition:border-color .2s,box-shadow .2s}.ph-opt em{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;font-style:normal;font-weight:600;overflow:hidden}.ph-opt small{color:var(--muted-base);flex:none;font-size:9.5px}.ph-opt[data-on]{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 8%, var(--surface))}.ph-opt[data-on] i{border-color:var(--brand);box-shadow:inset 0 0 0 3px var(--brand), inset 0 0 0 4.5px var(--surface)}.ph-dates{gap:6px;display:flex}.ph-date{border:1px solid var(--line-base);border-radius:10px;place-content:center;justify-items:center;gap:1px;width:74px;height:36px;transition:border-color .2s,background .2s,color .2s;display:grid}.ph-date b{font-size:10px;font-weight:700}.ph-date small{color:var(--muted-base);font-size:9px;transition:color .2s}.ph-date[data-on]{background:var(--brand);color:var(--btn-ink,#fff);border-color:#0000}.ph-date[data-on] small{color:inherit;opacity:.85}.ph-sheet-cta{background:var(--btn-bg,var(--brand));color:var(--btn-ink,#fff);text-align:center;border-radius:12px;margin-top:2px;padding:9px;font-size:11px;font-weight:700}.ph-sign{flex:1;align-content:start;gap:8px;display:grid}.ph-sign>b{font-size:11.5px;font-weight:700}.ph-sign>small{color:var(--muted-base);font-size:10px}.ph-sign-pad{border:1.5px dashed color-mix(in srgb, var(--brand) 40%, transparent);background:color-mix(in srgb, var(--brand) 5%, var(--surface));border-radius:14px;padding:6px;position:relative}.ph-sign-pad svg{aspect-ratio:240/100;width:100%;height:auto}.ph-sign-line{fill:none;stroke:var(--ink-base);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--ph-sign,0));transition:stroke-dashoffset .22s linear}.ph-stamp{inset-inline-end:10px;border:1.5px solid var(--ok);width:44px;height:44px;color:var(--ok);text-align:center;opacity:0;transition:opacity .3s var(--ease), transform .3s var(--ease);border-radius:50%;place-items:center;font-size:9px;font-weight:800;display:grid;position:absolute;bottom:8px;transform:rotate(-12deg)scale(.82)}.ph-stamp[data-on]{opacity:1;transform:rotate(-12deg)scale(1)}.ph-wa{--wa-bar:#f0f2f5;--wa-bg:#efeae2;--wa-in:#fff;--wa-out:#d9fdd3;--wa-meta:#667781;--wa-tick:#53bdeb;--wa-green:#00a884;--wa-divider:#e9edef}.ph-wa .wa-btns{background:var(--wa-in);border-radius:9px;gap:0;overflow:hidden;box-shadow:0 1px .5px #0b141a21}.ph-wa .wa-btns span{border-block-start:1px solid var(--wa-divider);color:var(--wa-green);box-shadow:none;border-radius:0;font-size:11px;transition:transform .18s,box-shadow .18s,opacity .18s}.ph-wa .wa-btns span:first-child{border-block-start:0}.ph-wa .wa-btns[data-tap] span:not(.is-tap){opacity:.5}.ph-wa .wa-msg--user .wa-time svg{color:var(--wa-tick)}.ph-wa .wa-msg{animation:.25s cubic-bezier(.16,1,.3,1) both ph-msg-in}.ph-wa .wa-body{transition:opacity var(--ph-fade,.3s) linear}.ph-wa .wa-body[data-fade]{opacity:0}@keyframes ph-msg-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}@media (max-width:600px){.ph-frame{width:min(var(--ph-w-m,260px), 100%)}.ph-app{padding:30px 10px 10px}.ph-check-row{height:38px}.ph-date{width:68px}}@media (prefers-reduced-motion:reduce){.ph-toast,.ph-scrim,.ph-sheet,.ph-stamp,.ph-sign-line,.ph-check-row,.ph-check-ic,.ph-opt,.ph-opt i,.ph-date,.ph-date small,.ph-progress i:after{transition:none}.ph-wa .wa-msg{animation:none}.ph-wa .wa-body{transition:none}}
