/* ADMINYX · Портал сотрудника (/console/portal) */
.pt{position:relative;height:100%;display:flex;flex-direction:column;background:var(--bg-0);color:var(--tx-1);font-family:var(--font-b,Inter),system-ui;overflow:hidden;--ok:var(--st-free);--er:var(--st-call);--wa:var(--st-break)}
.pt .num,.pt .tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.pt .mono{font-family:var(--font-m)}
.pt .eyeb{font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx-2)}
.pt .mut{color:var(--tx-2)}.pt .dim{color:var(--tx-3)}
.pt a{color:var(--tx-1)}.pt a:hover{color:var(--ac)}
.pt :focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.pt-head{flex:none;display:flex;align-items:center;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--ln);background:var(--bg-1)}
.pt.framed .pt-head{padding-top:56px}
.pt-ava{width:44px;height:44px;flex:none;border-radius:2px;background:var(--ac);color:#000;display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:900;font-size:21px}
.pt-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.pt-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border-radius:2px;font-size:11.5px;font-weight:600;background:var(--bg-2);border:1px solid var(--ln);color:var(--tx-2);white-space:nowrap}
.pt-chip .d{width:6px;height:6px;border-radius:50%;background:currentColor}
.pt-chip.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 35%,transparent)}
.pt-chip.off{color:var(--tx-2)}
.pt-body{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 24px;display:flex;flex-direction:column;gap:14px;scrollbar-width:none}
.pt-body::-webkit-scrollbar{display:none}
.pt-tabs{flex:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ln);background:var(--bg-1);padding:4px 4px 6px}
.pt.framed .pt-tabs{padding-bottom:26px}
.pt-tabs button{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:48px;justify-content:center;font-size:11px;font-weight:700;color:var(--tx-3);position:relative}
.pt-tabs button.on{color:var(--tx-1)}
.pt-tabs button.on::before{content:"";position:absolute;top:-5px;left:28%;right:28%;height:2px;background:var(--ac)}
.pt-tabs .tic{position:relative;display:flex}
.pt-badge{position:absolute;top:-6px;left:13px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--er);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--font-m);box-sizing:border-box}
.pt-h1{font-family:var(--font-d);font-weight:900;font-size:24px;letter-spacing:-.01em;line-height:1.1}
.pt-card{background:var(--bg-1);border:1px solid var(--ln);border-radius:var(--r-md);padding:14px}
.pt-sec{display:flex;flex-direction:column;gap:10px}
.pt-lab{font-size:13px;font-weight:600;color:var(--tx-2);display:flex;justify-content:space-between;gap:8px}
.pt-lab .req{color:var(--tx-3);font-weight:500}
.pt-in{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 12px;background:var(--bg-2);border:1px solid var(--ln-2);border-radius:2px;box-sizing:border-box}
.pt-in:focus-within{border-color:var(--ac)}
.pt-in input,.pt-in select,.pt-in textarea{all:unset;flex:1;min-width:0;font-size:16px;color:var(--tx-1);font-family:inherit}
.pt-in textarea{padding:12px 0;min-height:64px;white-space:pre-wrap;line-height:1.4}
.pt-in select{cursor:pointer}.pt-in select option{background:var(--bg-2);color:var(--tx-1)}
.pt-in .u{font-size:14px;color:var(--tx-3);flex:none}
.pt-in.ro{background:transparent;border-style:dashed;color:var(--tx-2)}
.pt-in.ro .v{flex:1;font-size:16px;font-weight:600;color:var(--tx-1)}
.pt-lock{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-m);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-3);flex:none}
.pt-hint{font-size:13px;color:var(--tx-2);line-height:1.45;text-wrap:pretty}
.pt-err{font-size:13px;color:var(--er)}
.pt-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:2px;font-size:14.5px;font-weight:700;border:1px solid var(--ln-2);color:var(--tx-1);background:transparent;text-align:center;transition:background .14s,border-color .14s,color .14s}
.pt-btn:hover{border-color:var(--ac);color:var(--ac)}
.pt-btn.pri{background:var(--ac);border-color:var(--ac);color:#000}
.pt-btn.pri:hover{filter:brightness(1.07);color:#000}
.pt-btn.sm{min-height:40px;padding:0 12px;font-size:13px}
.pt-btn.wide{width:100%}
.pt-btn[disabled],.pt-btn.dis{opacity:.38;pointer-events:none}
.pt-ibtn{all:unset;box-sizing:border-box;cursor:pointer;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ln);border-radius:2px;color:var(--tx-2);background:var(--bg-2);flex:none}
.pt-ibtn:hover{color:var(--tx-1);border-color:var(--ln-2)}
.pt-ibtn[disabled]{opacity:.3;pointer-events:none}
/* photos */
.pt-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;max-width:420px}
.pt-ph{position:relative;aspect-ratio:1;border-radius:2px;overflow:hidden;background:var(--bg-2);border:1px solid var(--ln)}
.pt-ph img{width:100%;height:100%;object-fit:cover;display:block}
.pt-ph .rm{all:unset;cursor:pointer;position:absolute;top:2px;right:2px;width:22px;height:22px;background:rgba(0,0,0,.7);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:2px}
.pt-ph.add{all:unset;box-sizing:border-box;cursor:pointer;aspect-ratio:1;border:1px dashed var(--ln-2);border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--tx-2);font-size:11px;font-weight:600}
.pt-ph.add:hover{border-color:var(--ac);color:var(--ac)}
.pt-ph.fake{background:repeating-linear-gradient(135deg,var(--bg-2) 0 6px,var(--bg-3) 6px 12px);display:flex;align-items:flex-end;padding:4px;font-family:var(--font-m);font-size:9px;color:var(--tx-3)}
/* stepper */
.pt-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.pt-steps .s{all:unset;display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:var(--tx-3);line-height:1.2;min-width:0}.pt-steps .s span{overflow:hidden;text-overflow:ellipsis}.pt-steps .s.done{cursor:pointer}
.pt-steps .s i{height:3px;background:var(--bg-3);display:block}
.pt-steps .s.done i,.pt-steps .s.on i{background:var(--ac)}
.pt-steps .s.on{color:var(--tx-1)}.pt-steps .s.done{color:var(--tx-2)}
.pt-kv{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;padding:7px 0;border-bottom:1px solid var(--ln)}
.pt-kv:last-child{border-bottom:0}
.pt-kv>span:first-child{color:var(--tx-2)}
.pt-kv>span:last-child{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.pt-kv.tot>span{color:var(--tx-1);font-weight:800}
.pt-big{font-family:var(--font-d);font-weight:900;font-size:40px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pos{color:var(--ok)}.neg{color:var(--er)}
/* calendar */
.pt-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.pt-cal .wd{font-family:var(--font-m);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-3);text-align:center;padding:2px 0 4px}
.pt-day{all:unset;box-sizing:border-box;cursor:pointer;min-height:56px;padding:5px 4px;border-radius:2px;background:var(--bg-1);border:1px solid var(--ln);display:flex;flex-direction:column;gap:2px;position:relative}
.pt-day .n{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.pt-day .t{font-size:9.5px;font-weight:700;letter-spacing:.02em}
.pt-day .p{font-size:9px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-day.day{background:color-mix(in oklab,oklch(0.78 0.11 250) 14%,var(--bg-1))}.pt-day.day .t{color:oklch(0.82 0.1 250)}
.pt-day.night{background:color-mix(in oklab,oklch(0.55 0.12 280) 22%,var(--bg-1))}.pt-day.night .t{color:oklch(0.78 0.1 280)}
.pt-day.off .t{color:var(--tx-3)}
.pt-day.empty{background:transparent;border-style:dashed}
.pt-day.today{box-shadow:0 0 0 2px var(--ac)}
.pt-day.sel{border-color:var(--tx-1)}
.pt-day .dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--er)}
.pt-day .dot.seen{background:var(--tx-3)}
.pt-pad{min-height:56px}
.pt-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.pt-stat{padding:10px;border:1px solid var(--ln);border-radius:var(--r-md);background:var(--bg-1);display:flex;flex-direction:column;gap:2px}
.pt-stat b{font-family:var(--font-d);font-weight:900;font-size:22px;font-variant-numeric:tabular-nums}
.pt-stat span{font-size:11.5px;color:var(--tx-2)}
/* sheet */
.pt-sheet-wrap{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}
.pt-sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.62)}
@keyframes ptSheet{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.pt-sheet{position:relative;max-height:88%;display:flex;flex-direction:column;background:var(--bg-1);border-top:1px solid var(--ln-2);border-radius:8px 8px 0 0;animation:ptSheet .2s var(--ease) both}
.pt-sheet .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 10px}
.pt-sheet .bd{flex:1;min-height:0;overflow-y:auto;padding:0 16px 12px;display:flex;flex-direction:column;gap:14px;scrollbar-width:none}
.pt-sheet .ft{display:flex;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--ln)}
.pt.framed .pt-sheet .ft{padding-bottom:30px}
/* lists */
.pt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--ln)}
.pt-row:last-child{border-bottom:0}
.pt-st{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:2px;font-size:11px;font-weight:700;white-space:nowrap}
.pt-st.pend{background:var(--st-break-dim);color:var(--wa)}
.pt-st.ok{background:var(--st-free-dim);color:var(--ok)}
.pt-st.no{background:var(--st-call-dim);color:var(--er)}
.pt-check{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:600;min-height:44px}
.pt-check .bx{width:22px;height:22px;border:1.5px solid var(--ln-strong,var(--ln-2));border-radius:2px;display:flex;align-items:center;justify-content:center;flex:none}
.pt-check.on .bx{background:var(--ac);border-color:var(--ac);color:#000}
.pt-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px 12px}
.pt-empty .ico{width:52px;height:52px;border-radius:50%;background:var(--bg-2);display:flex;align-items:center;justify-content:center;color:var(--tx-2)}
.pt-pick{all:unset;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;min-height:46px;border:1px solid var(--ln);border-radius:2px;background:var(--bg-2);font-size:14px;font-weight:600}
.pt-pick:hover{border-color:var(--ln-2)}
.pt-pick.on{border-color:var(--ac);background:var(--ac-dim)}
@keyframes ptFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.pt-anim{animation:ptFade .2s var(--ease) both}
.pt-banner{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--ac-dim);color:var(--ac-bright,var(--ac));font-size:12px;font-weight:600;border-bottom:1px solid var(--ac-line)}
.pt.framed .pt-banner{margin-top:0}
/* desktop wrapper */
.ptw{flex:1;min-height:0;overflow:auto;background:var(--bg-0)}
.ptw-center{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px 20px}
.ptw-full{height:100%;display:flex;flex-direction:column}
.ptw-cap{font-size:12px;color:var(--tx-3);text-align:center;max-width:392px;line-height:1.5}
.ptw-mode{display:flex;gap:4px}
.ptw-prev{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:28px;padding:24px;min-height:100%;box-sizing:border-box}
.ptw-list{display:flex;flex-direction:column;gap:6px}
.ptw-emp{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--ln);border-radius:var(--r-md);background:var(--bg-1)}
.ptw-emp:hover{border-color:var(--ln-2)}
.ptw-emp.on{border-color:var(--ac-line);background:var(--ac-dim)}
.ptw-emp .a{width:34px;height:34px;flex:none;border-radius:2px;background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:900;font-size:16px}
.ptw-emp.on .a{background:var(--ac);color:#000}
@media (max-width:860px){.ptw-prev{grid-template-columns:1fr}}

/* v2 — дружелюбность */
.pt-help-btn{font-family:var(--font-m);font-weight:700;font-size:17px;width:40px;height:40px;border-radius:50%}
.pt-stephead{display:flex;flex-direction:column;gap:4px}
.pt-stephead .k{font-family:var(--font-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ac)}
.pt-stephead .t{font-family:var(--font-d);font-weight:900;font-size:20px;line-height:1.15}
.pt-stephead .s{font-size:14px;color:var(--tx-2);line-height:1.45;text-wrap:pretty}
.pt-note{display:flex;gap:10px;align-items:flex-start;padding:12px 13px;background:var(--bg-2);border:1px solid var(--ln);border-radius:var(--r-md);font-size:13.5px;line-height:1.5;color:var(--tx-2)}
.pt-note>svg{flex:none;margin-top:2px;color:var(--ac)}
.pt-note b{color:var(--tx-1)}
.pt-reqs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pt-reqs li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--tx-1)}
.pt-reqs li .b{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--ln-2);display:flex;align-items:center;justify-content:center}
.pt-reqs li.ok{color:var(--tx-3);text-decoration:line-through}
.pt-reqs li.ok .b{background:var(--ok);border-color:var(--ok);color:#000}
.pt-group{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px dashed var(--ln-2);border-radius:var(--r-md)}
.pt-group-t{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--tx-2)}
.pt-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pt-verdict{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--r-md);border:1px solid var(--ln);background:var(--bg-1)}
.pt-verdict .v{font-family:var(--font-d);font-weight:900;font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.pt-verdict .s{font-size:13.5px;color:var(--tx-2);line-height:1.45}
.pt-verdict.pos{border-color:color-mix(in oklab,var(--ok) 45%,transparent)}.pt-verdict.pos .v{color:var(--ok)}
.pt-verdict.neg{border-color:color-mix(in oklab,var(--er) 45%,transparent)}.pt-verdict.neg .v{color:var(--er)}
.pt-eq{display:flex;align-items:center;gap:10px;margin-top:6px;padding-top:10px;border-top:1px solid var(--ln)}
.pt-eq>span{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--tx-3)}
.pt-eq b{font-size:15px;color:var(--tx-1)}
.pt-eq .op{font-size:18px;color:var(--tx-3)}
.pt-steps-list{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.45;color:var(--tx-2)}
.pt-steps-list b{color:var(--tx-1)}
.pt-ladder{display:flex;flex-direction:column;border-top:1px solid var(--ln);padding-top:6px}
.pt-ladder>div{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:5px 0;color:var(--tx-2)}
.pt-ladder>div b{font-weight:600;color:var(--tx-1)}
.pt-ladder>div.t{border-top:1px solid var(--ln);color:var(--tx-1);font-weight:700}
.pt-ladder>div.t b{font-weight:800}
.pt-ladder>div.ac b{color:var(--ac)}
.pt-ladder b.neg{color:var(--er)}
.pt-adv{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;min-height:60px;border:1px solid var(--ln-2);border-radius:var(--r-md);background:var(--bg-1)}
.pt-adv:hover{border-color:var(--ac)}
.pt-adv .pt-adv-ic{width:40px;height:40px;flex:none;border-radius:2px;background:var(--ac-dim);color:var(--ac);display:flex;align-items:center;justify-content:center}
.pt-adv .pt-adv-ic.warn{background:var(--st-break-dim);color:var(--wa)}
.pt-adv.dis{opacity:.5;pointer-events:none}
.pt-num{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800;margin-top:6px}
.pt-num .n{width:26px;height:26px;flex:none;border-radius:50%;background:var(--ac);color:#000;display:flex;align-items:center;justify-content:center;font-family:var(--font-m);font-size:13px}
.pt-today{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--ln-2);border-radius:var(--r-md);background:var(--bg-1);box-shadow:inset 3px 0 0 var(--ac)}
.pt-success{display:flex;gap:12px;align-items:flex-start;padding:13px 12px 13px 14px;border-radius:var(--r-md);border:1px solid color-mix(in oklab,var(--ok) 45%,transparent);background:var(--st-free-dim)}
.pt-success .pt-success-ic{width:36px;height:36px;flex:none;border-radius:50%;background:var(--ok);color:#000;display:flex;align-items:center;justify-content:center}
.pt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--tx-2)}
.pt-legend span{display:flex;align-items:center;gap:6px}
.pt-legend i{width:12px;height:12px;border-radius:2px;border:1px solid var(--ln);display:block}
.pt-legend i.day{background:color-mix(in oklab,oklch(0.78 0.11 250) 30%,var(--bg-1))}
.pt-legend i.night{background:color-mix(in oklab,oklch(0.55 0.12 280) 40%,var(--bg-1))}
.pt-legend i.off{background:var(--bg-1)}
.pt-legend i.dot{width:7px;height:7px;border-radius:50%;background:var(--er);border:0}
.pt-legend i.today{box-shadow:0 0 0 2px var(--ac);border:0;background:transparent}
.pt-help{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--ln);border-radius:var(--r-md)}
.pt-help.cur{border-color:var(--ac-line);background:var(--ac-dim)}
.pt-help .pt-help-ic{width:36px;height:36px;flex:none;border-radius:2px;background:var(--bg-2);color:var(--tx-1);display:flex;align-items:center;justify-content:center}
.pt-help.cur .pt-help-ic{background:var(--ac);color:#000}
.pt-day{min-height:58px}
.pt-day .t{font-size:10px}

/* v3 — полировка: кнопки, состояния, движение */
.pt{--spring:cubic-bezier(.34,1.4,.5,1);--out:cubic-bezier(.2,.8,.2,1)}
.pt-btn,.pt-ibtn,.pt-pick,.pt-adv,.pt-day,.pt-ph.add,.pt-help,.ptw-emp,.pt-tabs button{-webkit-tap-highlight-color:transparent;transition:transform .16s var(--out),background .18s,border-color .18s,color .18s,box-shadow .2s,opacity .2s}
.pt-btn:active,.pt-ibtn:active,.pt-adv:active,.pt-pick:active,.pt-help:active,.pt-ph.add:active{transform:scale(.97)}
.pt-day:active{transform:scale(.93)}
.pt-btn.pri{box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 18px -8px var(--ac)}
.pt-btn.pri:hover{filter:none;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 10px 24px -8px var(--ac);transform:translateY(-1px)}
.pt-btn.pri:active{transform:scale(.97);box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 2px 8px -4px var(--ac)}
.pt-btn.pri svg{transition:transform .2s var(--out)}
.pt-btn.pri:hover svg:last-child{transform:translateX(2px)}
.pt-btn:not(.pri){background:var(--bg-2)}
.pt-btn:not(.pri):hover{background:var(--bg-3);color:var(--tx-1);border-color:var(--ln-2)}
.pt-btn.dis{opacity:.42;filter:saturate(.3);box-shadow:none}
.pt-ibtn:hover{background:var(--bg-3)}
.pt-in{transition:border-color .18s,box-shadow .2s,background .18s}
.pt-in:focus-within{box-shadow:0 0 0 3px var(--ac-dim);background:var(--bg-1)}
.pt-in input::placeholder,.pt-in textarea::placeholder{color:var(--tx-3)}
/* шапка */
.pt-head{background:linear-gradient(180deg,var(--bg-1),color-mix(in oklab,var(--bg-1) 70%,var(--bg-0)))}
.pt-ava{border-radius:50%;box-shadow:0 0 0 2px var(--bg-1),0 0 0 3.5px var(--ac-line)}

@keyframes ptPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in oklab,var(--ok) 60%,transparent)}50%{box-shadow:0 0 0 4px transparent}}
.pt-help-btn{border-radius:50%}
/* вкладки */
.pt-tabs{background:color-mix(in oklab,var(--bg-1) 92%,transparent);backdrop-filter:blur(12px)}
.pt-tabs button::before{content:"";position:absolute;top:-5px;left:30%;right:30%;height:2px;background:var(--ac);border-radius:2px;transform:scaleX(0);transition:transform .28s var(--spring)}
.pt-tabs button.on::before{transform:scaleX(1);left:30%;right:30%}
.pt-tabs button .tic{transition:transform .28s var(--spring)}
.pt-tabs button.on .tic{transform:translateY(-1px) scale(1.08);color:var(--ac)}
.pt-tabs button:active .tic{transform:scale(.88)}
.pt-badge{animation:ptPop .35s var(--spring) both;box-shadow:0 0 0 2px var(--bg-1)}
@keyframes ptPop{from{transform:scale(0)}to{transform:scale(1)}}
/* появление контента: лёгкий каскад */
@keyframes ptRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pt-anim>*,.pt-anim>.col>*{animation:ptRise .34s var(--out) backwards}
.pt-anim{animation-fill-mode:backwards!important}
.pt-anim>*:nth-child(2){animation-delay:.03s}.pt-anim>*:nth-child(3){animation-delay:.06s}.pt-anim>*:nth-child(4){animation-delay:.09s}.pt-anim>*:nth-child(5){animation-delay:.12s}.pt-anim>*:nth-child(6){animation-delay:.15s}.pt-anim>*:nth-child(n+7){animation-delay:.18s}
/* шаги */
.pt-steps .s i{border-radius:2px;position:relative;overflow:hidden;background:var(--bg-3)}
.pt-steps .s i::after{content:"";position:absolute;inset:0;background:var(--ac);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--out)}
.pt-steps .s.done i::after,.pt-steps .s.on i::after{transform:scaleX(1)}
.pt-steps .s.done i,.pt-steps .s.on i{background:var(--bg-3)}
.pt-steps .s.done:hover{color:var(--tx-1)}
.pt-stephead .k{display:inline-flex;align-items:center;gap:6px}
.pt-stephead .k::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ac)}
/* карточки */
.pt-card,.pt-verdict,.pt-today,.pt-adv,.pt-note,.pt-group{border-radius:10px}
.pt-card{background:linear-gradient(180deg,var(--bg-1),color-mix(in oklab,var(--bg-1) 85%,var(--bg-0)))}
.pt-adv{background:var(--bg-1)}
.pt-adv:hover{background:color-mix(in oklab,var(--ac) 5%,var(--bg-1));transform:translateY(-1px)}
.pt-adv .pt-adv-ic,.pt-help .pt-help-ic{border-radius:10px;transition:transform .25s var(--spring)}
.pt-adv:hover .pt-adv-ic{transform:scale(1.06) rotate(-4deg)}
.pt-adv>.ic:last-child{transition:transform .2s var(--out)}
.pt-adv:hover>.ic:last-child{transform:translateX(3px);color:var(--ac)}
.pt-today{box-shadow:none;border-left:3px solid var(--ac);border-radius:4px 10px 10px 4px}
.pt-num .n{box-shadow:0 0 0 4px var(--ac-dim)}
.pt-in,.pt-pick,.pt-ph,.pt-ph.add,.pt-btn,.pt-ibtn,.pt-st,.pt-chip{border-radius:8px}
.pt-chip,.pt-st{border-radius:999px}
.pt-day{border-radius:8px}
/* фото */
.pt-ph{animation:ptPop .3s var(--spring) both}
.pt-ph .rm{border-radius:50%;opacity:.9;transition:transform .15s,background .15s}
.pt-ph .rm:hover{background:var(--er);transform:scale(1.1)}
.pt-ph.add{background:color-mix(in oklab,var(--bg-2) 50%,transparent)}
.pt-ph.add:hover{background:var(--ac-dim)}
.pt-ph.add svg{transition:transform .25s var(--spring)}
.pt-ph.add:hover svg{transform:rotate(90deg) scale(1.1)}
/* чек-лист требований */
.pt-reqs li{transition:color .2s}
.pt-reqs li .b{transition:background .2s,border-color .2s,transform .3s var(--spring)}
.pt-reqs li.ok .b{transform:scale(1.08)}
.pt-reqs li.ok .b svg{animation:ptPop .3s var(--spring) both}
/* чекбокс */
.pt-check .bx{border-radius:6px;transition:background .18s,border-color .18s,transform .25s var(--spring)}
.pt-check.on .bx{transform:scale(1.05)}
.pt-check .bx svg{animation:ptPop .25s var(--spring) both}
/* итог / успех */
.pt-verdict{position:relative;overflow:hidden}
.pt-verdict::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 0% 0%,var(--vg,transparent),transparent 60%)}
.pt-verdict.pos{--vg:color-mix(in oklab,var(--ok) 14%,transparent)}
.pt-verdict.neg{--vg:color-mix(in oklab,var(--er) 14%,transparent)}
.pt-verdict.zero{--vg:color-mix(in oklab,var(--ac) 12%,transparent)}
.pt-verdict>*{position:relative}
.pt-success{animation:ptRise .4s var(--out) both}
.pt-success .pt-success-ic{animation:ptCheck .55s var(--spring) .1s both}
@keyframes ptCheck{0%{transform:scale(0) rotate(-30deg)}100%{transform:none}}
.pt-success .pt-success-ic::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--ok);animation:ptRing .9s var(--out) .2s both}
.pt-success .pt-success-ic{position:relative}
@keyframes ptRing{from{transform:scale(.6);opacity:1}to{transform:scale(1.6);opacity:0}}
/* календарь */
.pt-day:hover{border-color:var(--ln-2)}
.pt-day.sel{border-color:var(--tx-1);transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(0,0,0,.8)}
.pt-day.today{box-shadow:0 0 0 2px var(--ac),0 0 14px -2px var(--ac-dim)}
.pt-day .dot{animation:ptPop .3s var(--spring) both}
.pt-day .dot:not(.seen){box-shadow:0 0 0 2px var(--bg-1)}
.pt-cal>*{animation:ptRise .3s var(--out) both}
/* шторка */
.pt-sheet-bg{background:rgba(0,0,0,.55);backdrop-filter:blur(2px);animation:ptFadeBg .22s ease both}
@keyframes ptFadeBg{from{opacity:0}to{opacity:1}}
.pt-sheet{border-radius:18px 18px 0 0;animation:ptSheetUp .34s var(--out) both;box-shadow:0 -20px 40px -20px rgba(0,0,0,.7)}
.pt-sheet::before{content:"";position:absolute;top:7px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:var(--ln-2)}
.pt-sheet .hd{padding-top:20px}
@keyframes ptSheetUp{from{transform:translateY(100%)}to{transform:none}}
.pt-sheet-wrap.out .pt-sheet{animation:ptSheetDown .22s ease-in both}
.pt-sheet-wrap.out .pt-sheet-bg{animation:ptFadeOut .22s ease-in both}
@keyframes ptSheetDown{to{transform:translateY(100%)}}
@keyframes ptFadeOut{to{opacity:0}}
.pt-sheet .bd>*{animation:ptRise .3s var(--out) both}
.pt-sheet .bd>*:nth-child(2){animation-delay:.05s}.pt-sheet .bd>*:nth-child(3){animation-delay:.08s}.pt-sheet .bd>*:nth-child(n+4){animation-delay:.11s}
/* загрузка */
.pt-spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ptSpin .7s linear infinite;flex:none}
@keyframes ptSpin{to{transform:rotate(360deg)}}
.pt-empty .ico{animation:ptFloat 3.2s ease-in-out infinite}
@keyframes ptFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.pt-empty .ico{width:60px;height:60px;background:radial-gradient(circle at 30% 30%,var(--bg-3),var(--bg-2));box-shadow:0 0 0 6px color-mix(in oklab,var(--bg-2) 50%,transparent)}
@media (prefers-reduced-motion:reduce){.pt *,.pt *::before,.pt *::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important}}

/* v4 — уведомления */
.pt-bell{position:relative;border-radius:50%;width:40px;height:40px}
.pt-bell .pt-badge{top:-3px;left:auto;right:-4px}
.pt-bell .ring{animation:ptRing2 .9s var(--out) both;transform-origin:50% 8%}
@keyframes ptRing2{0%{transform:rotate(0)}15%{transform:rotate(16deg)}30%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}100%{transform:rotate(0)}}
.pt-nic{width:36px;height:36px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);color:var(--tx-1)}
.pt-nic.ac{background:var(--ac-dim);color:var(--ac)}
.pt-nic.ok{background:var(--st-free-dim);color:var(--ok)}
.pt-nic.er{background:var(--st-call-dim);color:var(--er)}
.pt-nic.wa{background:var(--st-break-dim);color:var(--wa)}
.pt-nic.mut{background:var(--bg-2);color:var(--tx-2)}
/* баннер сверху */
.pt-nbanner{position:absolute;left:8px;right:8px;top:8px;z-index:70;border-radius:16px;overflow:hidden;background:color-mix(in oklab,var(--bg-2) 88%,transparent);backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--ln-2);box-shadow:0 18px 40px -14px rgba(0,0,0,.85);animation:ptDrop .45s var(--spring) both;touch-action:none;transition:transform .2s,opacity .2s}
.pt.framed .pt-nbanner{top:52px}
@keyframes ptDrop{from{transform:translateY(-130%);opacity:0}to{transform:none;opacity:1}}
.pt-nbanner-in{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:11px;align-items:flex-start;width:100%;padding:12px 13px}
.pt-nbanner .tt{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-nbanner .tm{font-size:11px;color:var(--tx-3);flex:none}
.pt-nbanner .nb{font-size:13px;color:var(--tx-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pt-nbanner-bar{display:block;height:2px;background:var(--ac);transform-origin:left;animation:ptBar 5.2s linear both;opacity:.7}
@keyframes ptBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
/* список */
.pt-nlist{display:flex;flex-direction:column;border:1px solid var(--ln);border-radius:12px;overflow:hidden;background:var(--bg-1)}
.pt-nitem{position:relative;display:flex;border-bottom:1px solid var(--ln);transition:background .18s}
.pt-nitem:last-child{border-bottom:0}
.pt-nitem.unread{background:color-mix(in oklab,var(--ac) 5%,var(--bg-1))}
.pt-nitem:hover{background:var(--bg-2)}
.pt-nitem-in{all:unset;box-sizing:border-box;cursor:pointer;flex:1;min-width:0;display:flex;gap:11px;align-items:flex-start;padding:12px 40px 12px 12px}
.pt-nitem .tt{font-size:14px;font-weight:700;line-height:1.3}
.pt-nitem.unread .tt{font-weight:800}
.pt-nitem .nb{font-size:13px;color:var(--tx-2);line-height:1.4}
.pt-nitem .tm{font-size:11.5px;color:var(--tx-3)}
.pt-ndot{position:absolute;right:14px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 3px var(--ac-dim)}
.pt-nx{all:unset;cursor:pointer;position:absolute;right:6px;bottom:8px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--tx-3);opacity:0;transition:opacity .15s,background .15s}
.pt-nitem:hover .pt-nx,.pt-nx:focus-visible{opacity:1}
.pt-nx:hover{background:var(--bg-3);color:var(--tx-1)}
@media (hover:none){.pt-nx{opacity:.6}}
/* сегменты */
.pt-seg{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:var(--bg-2);border-radius:10px;border:1px solid var(--ln)}
.pt-seg button{all:unset;cursor:pointer;text-align:center;padding:8px 6px;border-radius:7px;font-size:13px;font-weight:700;color:var(--tx-2);transition:background .2s,color .2s}
.pt-seg button.on{background:var(--bg-0);color:var(--tx-1);box-shadow:0 1px 0 var(--ln-2)}
/* push-карточка */
.pt-pushcard{display:flex;gap:12px;align-items:flex-start;padding:13px;border-radius:12px;border:1px solid var(--ac-line);background:linear-gradient(135deg,var(--ac-dim),transparent 70%)}
.pt-pushcard b{font-size:14.5px;font-weight:800}
.pt-pushcard .col>span{font-size:13px;color:var(--tx-2);line-height:1.45}
.pt-pushcard.ok{border-color:color-mix(in oklab,var(--ok) 40%,transparent);background:var(--st-free-dim)}
.pt-pushcard.er{border-color:color-mix(in oklab,var(--er) 40%,transparent);background:var(--st-call-dim)}
/* переключатели */
.pt-tgl-row{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:11px;width:100%;padding:9px 2px;min-height:52px;border-bottom:1px solid var(--ln)}
.pt-tgl-row:last-child{border-bottom:0}
.pt-tgl{width:44px;height:26px;flex:none;border-radius:13px;background:var(--bg-3);border:1px solid var(--ln-2);position:relative;transition:background .22s,border-color .22s}
.pt-tgl i{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--tx-2);transition:transform .28s var(--spring),background .2s}
.pt-tgl.on{background:var(--ac);border-color:var(--ac)}
.pt-tgl.on i{transform:translateX(18px);background:#000}

/* v5 — пересменка */
.pt-ho{display:flex;flex-direction:column;border:1px solid var(--ln);border-radius:12px;background:var(--bg-1);position:relative;overflow:hidden}
.pt-ho>*{position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px}
.pt-ho>*+*{border-top:1px solid var(--ln)}
.pt-ho::before{content:"";position:absolute;left:29px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--ln-2),var(--ac) 50%,var(--ln-2));opacity:.6}
.pt-ho-ava{width:36px;height:36px;flex:none;border-radius:50%;background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:900;font-size:15px;position:relative;z-index:1;box-shadow:0 0 0 3px var(--bg-1)}
.pt-ho-ava.me{background:var(--ac);color:#000;font-family:var(--font-b,Inter);font-size:11.5px;font-weight:800}
.pt-ho .lb{font-family:var(--font-m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3)}
.pt-ho .nm{font-size:15px;font-weight:800;line-height:1.25}
.pt-ho .sb{font-size:12.5px;color:var(--tx-2);line-height:1.35}
.pt-ho-me{background:var(--ac-dim)}
.pt-ho-me .lb{color:var(--ac)}
.pt-ho-p.to .pt-ho-ava{background:color-mix(in oklab,var(--ac) 22%,var(--bg-3))}
.pt-ho-p.none .pt-ho-ava{background:var(--st-break-dim);color:var(--wa)}
.pt-ho-p.none .nm{color:var(--wa)}
.pt-ho-call{width:40px;height:40px;border-radius:50%;text-decoration:none;color:var(--tx-1)}
.pt-ho-call:hover{border-color:var(--ac);color:var(--ac)}

/* аудит */
.pt-steps .s{padding:8px 0 6px;margin:-8px 0 -6px}
.pt-ho .lb{color:var(--tx-2)}
.pt-adv-ic{width:40px;height:40px;flex:none;border-radius:10px;background:var(--ac-dim);color:var(--ac);display:flex;align-items:center;justify-content:center}
.pt-adv-ic.warn{background:var(--st-break-dim);color:var(--wa)}
.pt-help-ic{width:36px;height:36px;flex:none;border-radius:10px;background:var(--bg-2);color:var(--tx-1);display:flex;align-items:center;justify-content:center}
.pt-success-ic{width:36px;height:36px;flex:none;border-radius:50%;background:var(--ok);color:#000;display:flex;align-items:center;justify-content:center}
.pt-nbanner .tt{min-width:0}
.pt-flash .pt-card{animation:ptFlash 1.4s var(--out) .35s both}
@keyframes ptFlash{0%{box-shadow:0 0 0 0 var(--ac-line);border-color:var(--ac)}60%{box-shadow:0 0 0 6px transparent;border-color:var(--ac)}100%{box-shadow:0 0 0 0 transparent}}

/* v6 — доставка с распознаванием */
.pt-scan{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 12px;border:1px solid var(--ac-line);border-radius:12px;background:linear-gradient(180deg,var(--ac-dim),transparent)}
.pt-scan-doc{position:relative;width:86px;height:108px;border-radius:6px;background:var(--bg-2);border:1px solid var(--ln-2);padding:14px 12px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.pt-scan-doc i{display:block;height:4px;border-radius:2px;background:var(--bg-3)}
.pt-scan-doc i:nth-child(2){width:70%}.pt-scan-doc i:nth-child(4){width:55%}.pt-scan-doc i:nth-child(5){width:40%;margin-left:auto;background:var(--tx-3)}
.pt-scan-doc .beam{position:absolute;left:0;right:0;height:22px;top:-22px;background:linear-gradient(180deg,transparent,color-mix(in oklab,var(--ac) 45%,transparent),transparent);border-bottom:2px solid var(--ac);animation:ptBeam 1.6s ease-in-out infinite}
@keyframes ptBeam{0%{top:-22px}100%{top:108px}}
.pt-ai-badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:5px 10px;border-radius:999px;background:var(--ac-dim);color:var(--ac);font-size:12px;font-weight:700;border:1px solid var(--ac-line)}
.pt-ln{border:1px solid var(--ln);border-radius:12px;background:var(--bg-1);overflow:hidden;transition:border-color .2s}
.pt-ln.need{border-color:color-mix(in oklab,var(--wa) 50%,transparent)}
.pt-ln.open{border-color:var(--ac-line)}
.pt-ln-head{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;align-items:flex-start;width:100%;padding:12px 12px 6px}
.pt-ln .nm{font-size:14.5px;font-weight:700;line-height:1.3}
.pt-ln .rw{font-size:12px;color:var(--tx-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-ln-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 12px 10px}
.pt-ln-foot .why{font-size:12.5px;color:var(--tx-2);line-height:1.35;flex:1;min-width:140px}
.pt-ln-tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;flex:none}
.pt-ln-tag.ok{background:var(--st-free-dim);color:var(--ok)}
.pt-ln-tag.wa{background:var(--st-break-dim);color:var(--wa)}
.pt-ln-tag.new{background:color-mix(in oklab,oklch(0.78 0.11 250) 18%,transparent);color:oklch(0.82 0.1 250)}
.pt-ln-edit{display:flex;flex-direction:column;gap:12px;padding:12px;border-top:1px solid var(--ln);background:var(--bg-0);animation:ptRise .25s var(--out) both}
.pt-sumcheck{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;font-size:13px;color:var(--tx-2)}
.pt-sumcheck b{color:var(--tx-1)}
.pt-sumcheck>span:last-child{display:flex;align-items:center;gap:5px;font-weight:700}
.pt-sumcheck.ok{background:var(--st-free-dim)}.pt-sumcheck.ok>span:last-child{color:var(--ok)}
.pt-sumcheck.wa{background:var(--st-break-dim)}.pt-sumcheck.wa>span:last-child{color:var(--wa)}
.pt-chipbtn{all:unset;box-sizing:border-box;cursor:pointer;min-height:40px;padding:0 14px;display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--ln-2);background:var(--bg-2);font-size:13.5px;font-weight:600;transition:background .18s,border-color .18s,transform .15s}
.pt-chipbtn:hover{border-color:var(--tx-3)}
.pt-chipbtn:active{transform:scale(.96)}
.pt-chipbtn.on{background:var(--ac);border-color:var(--ac);color:#000}
.pt-link{all:unset;cursor:pointer;color:var(--ac);font-weight:700;text-decoration:underline;text-underline-offset:2px}

/* v7 — сроки годности */
.pt-exp-list{display:flex;flex-direction:column;gap:6px}
.pt-exp{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:12px;border:1px solid var(--ln);background:var(--bg-2);transition:border-color .18s,background .18s,transform .15s}
.pt-exp:hover{border-color:var(--ln-2)}
.pt-exp:active{transform:scale(.98)}
.pt-exp.on{border-color:var(--ac);background:var(--ac-dim)}
.pt-exp-d{width:42px;height:42px;flex:none;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.pt-exp-d b{font-size:16px;font-weight:900;font-family:var(--font-d)}
.pt-exp-d span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.pt-exp-d.er{background:var(--st-call-dim);color:var(--er)}
.pt-exp-d.wa{background:var(--st-break-dim);color:var(--wa)}
.pt-exp-t{font-size:12.5px;font-weight:600}
.pt-exp-t.er{color:var(--er)}.pt-exp-t.wa{color:var(--wa)}
.pt-exp-go{flex:none;font-size:12.5px;font-weight:700;color:var(--tx-2);padding:0 4px;display:flex}
.pt-exp.on .pt-exp-go{color:var(--ac)}
.pt-exp-count{min-width:22px;height:22px;padding:0 6px;border-radius:11px;font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box}
.pt-exp-count.er{background:var(--er);color:#fff}
.pt-exp-count.wa{background:var(--wa);color:#000}

/* v8 — зарплата */
.pt-hero{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;border:1px solid var(--ac-line);background:radial-gradient(120% 90% at 0% 0%,var(--ac-dim),transparent 65%),var(--bg-1)}
.pt-fc{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pt-fc-bar{position:relative;height:10px;border-radius:5px;background:repeating-linear-gradient(135deg,var(--bg-3) 0 6px,var(--bg-2) 6px 12px);overflow:visible}
.pt-fc-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--ac);transition:width .8s var(--out);animation:ptGrow .9s var(--out) both}
.pt-fc-bar em{position:absolute;top:-3px;width:3px;height:16px;margin-left:-1.5px;border-radius:2px;background:var(--tx-1);transition:left .8s var(--out)}
@keyframes ptGrow{from{width:0!important}}
.pt-fc-note{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:var(--tx-2);padding-top:4px}
.pt-fc-note>.ic{color:var(--ac);flex:none;margin-top:1px}
.pt-fc-note b{color:var(--tx-1)}
.pt-goal{display:flex;flex-direction:column;gap:9px;padding:14px;border-radius:14px;border:1px solid var(--ln-2);background:var(--bg-1)}
.pt-goal.done{border-color:color-mix(in oklab,var(--ok) 45%,transparent);background:linear-gradient(135deg,var(--st-free-dim),var(--bg-1) 70%)}
.pt-goal-pct{font-family:var(--font-d);font-weight:900;font-size:22px;color:var(--ac);flex:none}
.pt-goal.done .pt-goal-pct{color:var(--ok)}
.pt-goal-bar{height:8px;border-radius:4px;background:var(--bg-3);overflow:hidden}
.pt-goal-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ac),color-mix(in oklab,var(--ac) 70%,#fff));animation:ptGrow 1s var(--out) both}
.pt-goal.done .pt-goal-bar i{background:var(--ok)}
.pt-goal b{color:var(--tx-1)}
.pt-tip{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--tx-2);line-height:1.4;padding-top:8px;border-top:1px solid var(--ln)}
.pt-tip .ic{flex:none;margin-top:1px;color:var(--tx-3)}
.pt-pay{display:flex;align-items:center;gap:11px;font-size:14px}
.pt-pay-d{width:42px;height:42px;flex:none;border-radius:10px;background:var(--bg-2);border:1px solid var(--ln);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.pt-pay-d b{font-family:var(--font-d);font-weight:900;font-size:16px}
.pt-pay-d span{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--tx-2);margin-top:2px}
.pt-pay-d.ac{background:var(--ac-dim);border-color:var(--ac-line);color:var(--ac)}
.pt-pay-d.ac span{color:var(--ac)}
.pt-pay-d.past{opacity:.5}
.pt-shlist{display:flex;flex-direction:column;border:1px solid var(--ln);border-radius:12px;overflow:hidden;background:var(--bg-1)}
.pt-sh,.pt-ded{border-bottom:1px solid var(--ln)}
.pt-sh:last-child,.pt-ded:last-child{border-bottom:0}
.pt-sh-head,.pt-ded-head{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;min-height:56px;transition:background .15s}
.pt-sh-head:hover,.pt-ded-head:hover{background:var(--bg-2)}
.pt-sh.open,.pt-ded.open{background:var(--bg-2)}
.pt-sh-d{width:38px;height:38px;flex:none;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.pt-sh-d b{font-size:15px;font-weight:800}
.pt-sh-d span{font-size:9.5px;font-weight:700;text-transform:uppercase;margin-top:2px;opacity:.85}
.pt-sh-d.day{background:color-mix(in oklab,oklch(0.78 0.11 250) 20%,var(--bg-1));color:oklch(0.85 0.09 250)}
.pt-sh-d.night{background:color-mix(in oklab,oklch(0.55 0.12 280) 30%,var(--bg-1));color:oklch(0.82 0.09 280)}
.pt-sh.plan .pt-sh-d{background:transparent;border:1px dashed var(--ln-2);color:var(--tx-2)}
.pt-sh-body,.pt-ded-body{padding:2px 14px 12px 60px;display:flex;flex-direction:column;gap:8px;animation:ptRise .22s var(--out) both}
.pt-sh-body{gap:0}
.pt-sh-body .pt-kv{font-size:13px;padding:5px 0}
.pt-plan-btn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px dashed var(--ln-2);border-radius:12px;font-size:13.5px;font-weight:700;color:var(--tx-2)}
.pt-plan-btn:hover{border-color:var(--ac);color:var(--tx-1)}
.pt-plan-btn .num{display:flex;align-items:center;color:var(--tx-1)}
.pt-ded-ic{width:34px;height:34px;flex:none;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);color:var(--tx-2)}
.pt-ded-ic.shortage,.pt-ded-ic.penalty{background:var(--st-call-dim);color:var(--er)}
.pt-ded-ic.under{background:var(--st-break-dim);color:var(--wa)}
.pt-ded-ic.advance{background:var(--ac-dim);color:var(--ac)}
.pt-ded-body{padding-left:56px}
.pt-ded-q{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:var(--bg-1);border:1px solid var(--ln);font-size:13.5px;line-height:1.45}
.pt-ded-body .pt-btn{align-self:flex-start}
.pt-rule{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--tx-2)}
.pt-rule b{color:var(--tx-1)}
.pt-rule .n{width:26px;height:26px;flex:none;border-radius:50%;background:var(--ac-dim);color:var(--ac);display:flex;align-items:center;justify-content:center;font-family:var(--font-m);font-weight:800;font-size:13px;margin-top:-1px}

/* ===== Отдельное приложение (PWA): safe-area вместо рамки iPhone ===== */
.pt.pwa .pt-head{padding-top:calc(14px + env(safe-area-inset-top))}
.pt.pwa .pt-tabs{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
.pt.pwa .pt-sheet .ft{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.pt.pwa .pt-nbanner{top:calc(8px + env(safe-area-inset-top))}
.pt-ava{all:unset;box-sizing:border-box;cursor:pointer}
.pt-head .pt-ava{width:44px;height:44px;flex:none;border-radius:50%;background:var(--ac);color:#000;display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:900;font-size:21px;box-shadow:0 0 0 2px var(--bg-1),0 0 0 3.5px var(--ac-line)}

/* аудит v2 */
.pt-btn.acc{background:var(--ac-dim);border-color:var(--ac-line);color:var(--ac)}
.pt-btn.acc:hover{background:color-mix(in oklab,var(--ac) 22%,transparent);color:var(--ac)}
.pt-tabs button::before,.pt-tabs button.on::before{left:34%;right:34%}
.pt-tabs .pt-badge{z-index:2}
