/* PMF CARE — design system v3 */
:root{
  --ink:#0c2a2e;--ink2:#3d5c61;--muted:#7b9398;--line:#e3ebed;--bg:#f2f6f7;--card:#fff;
  --brand:#0e8f74;--brand2:#0a6b5c;--deep:#0a2f33;--mint:#e7f6f0;--amber:#e9a23b;--red:#e2604c;--blue:#4c7bd0;
  --r:20px;--r-sm:14px;
  --sh1:0 1px 2px #0a2f330a,0 6px 20px #0a2f330d;--sh2:0 2px 4px #0a2f330d,0 18px 44px #0a2f331f;
  --ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.56,.64,1);
  --notch:var(--bg);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 'IBM Plex Sans Arabic','Cairo',Tahoma,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}button,a{touch-action:manipulation}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4,p{margin:0}
p{color:var(--muted);font-size:13px;line-height:1.9}
svg{flex-shrink:0}
.locked>aside,.locked>.shell,.locked>#mobileNav{display:none!important}
::selection{background:#bfe9da}

/* icons */
nav svg,.icon svg,.btn svg,.link svg,.meta-line svg,.row-ic svg,.tile-ic svg,.quick svg,.strip-ic svg,.taskicon svg,.iconbutton svg,.panelhead h3 svg,.section-head svg,.fold h3 svg,.wmeta svg,.loc-banner svg,.drop-ic svg,.pdf-ic svg,.scan-art>svg,.tick svg,.wcheck svg,.more-button svg{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ---------- sidebar ---------- */
aside{position:fixed;inset:0 0 0 auto;width:264px;z-index:20;display:flex;flex-direction:column;padding:26px 16px 18px;color:#fff;background:radial-gradient(120% 60% at 100% 0,#14534c 0,transparent 60%),linear-gradient(180deg,#0a2f33,#08262a)}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}
.brandmark{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:27px;color:#06302a;background:linear-gradient(135deg,#a7f3d0,#5eead4);box-shadow:0 8px 20px #2dd4bf40}
.brand strong{font:800 21px Arial;letter-spacing:1px}.brand strong span{font-size:11px;color:#7fd9c3;letter-spacing:2px}
.brand small{display:block;font-size:11px;color:#8fb3ad;margin-top:3px}
.workspace{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 12px;border:1px solid #ffffff14;border-radius:13px;background:#ffffff08;font-size:11px;color:#b9d2cc}
.workspace span{background:#ffffff14;color:#a7f3d0;padding:2px 9px;border-radius:8px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.navlabel{color:#6a958e;font-size:10px;letter-spacing:1.5px;margin:22px 12px 8px}
aside nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;margin-bottom:10px}aside nav::-webkit-scrollbar{display:none}
aside nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 13px;margin:3px 0;border-radius:13px;font-size:13px;font-weight:500;color:#9fbdb7;transition:background .25s,color .25s,transform .25s var(--ease)}
aside nav a:hover{background:#ffffff0a;color:#fff;transform:translateX(-3px)}
aside nav a.active{color:#06302a;font-weight:700;background:linear-gradient(135deg,#a7f3d0,#6ee7c4);box-shadow:0 8px 22px #2dd4bf33;animation:navIn .45s var(--spring)}
aside nav svg{width:19px;height:19px}
.navcount{margin-right:auto;font:700 10px Arial;background:#ffffff1a;color:#c9e7df;border-radius:8px;padding:3px 7px}
aside nav a.active .navcount{background:#06302a1f;color:#06302a}
.sidefoot{border-top:1px solid #ffffff12;padding-top:10px}
.rolebtn{display:block;width:100%;text-align:right;border:0;background:none;color:#a9c8c1;font-size:12px;padding:10px 6px;border-radius:10px;transition:.2s}.rolebtn:hover{color:#fff;background:#ffffff0a}
.profile{display:flex;gap:10px;align-items:center;padding:8px 4px 0}
.profile b{font-size:13px;display:block}.profile small{font-size:11px;color:#8fb3ad;display:block}
.profile>div{flex:1;min-width:0}
.profile button{border:0;background:#ffffff0f;color:#cfe6e0;width:34px;height:34px;border-radius:11px;transition:.3s var(--ease)}.profile button:hover{transform:rotate(60deg);background:#ffffff1c}
.avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;font-size:12px;color:#0a5a4b;background:linear-gradient(135deg,#d1fae5,#a7f3d0);overflow:hidden;border:0;padding:0}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.small{width:38px;height:38px}
.avatar.xl{width:68px;height:68px;border-radius:22px;font-size:21px;box-shadow:0 0 0 4px #fff,0 0 0 6px #bfe9da}

/* ---------- shell ---------- */
.shell{margin-right:264px;min-height:100dvh;display:flex;flex-direction:column}
header{position:sticky;top:0;z-index:15;height:74px;display:flex;justify-content:space-between;align-items:center;padding:0 36px;background:#f2f6f7d9;backdrop-filter:saturate(1.5) blur(18px);-webkit-backdrop-filter:saturate(1.5) blur(18px);border-bottom:1px solid #e3ebed99}
.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{margin:0 10px;color:#c2d0d2}.breadcrumb b{color:var(--ink);font-weight:700}
.headtools{display:flex;align-items:center;gap:12px}
.date{font-size:12px;color:var(--muted)}
.iconbutton{position:relative;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;color:var(--ink2);transition:transform .25s var(--spring),box-shadow .25s}
.iconbutton:hover{transform:translateY(-2px);box-shadow:var(--sh1)}.iconbutton svg{width:20px;height:20px}
#notificationCount{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;display:flex;align-items:center;justify-content:center;font:700 10px Arial;color:#fff;background:var(--red);border:2px solid var(--bg);animation:pop .4s var(--spring)}
#notificationCount:after{content:'';position:absolute;inset:-2px;border-radius:12px;border:2px solid var(--red);animation:ping 1.8s ease-out infinite}
.lock-button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 14px;font-size:12px;font-weight:600;color:var(--ink2);transition:.2s}.lock-button:hover{background:#fdeeeb;color:#b9442f;border-color:#f3cfc7}
main{flex:1;width:100%;max-width:1640px;margin:0 auto;padding:28px 36px 40px}
footer{padding:0 36px 20px;font-size:11px;color:#a3b5b8;display:flex;justify-content:space-between}
.preview-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 36px;background:linear-gradient(90deg,#fff6e0,#fffaf0);border-bottom:1px solid #f0e0b8;color:#8a6a24;animation:rise .4s var(--ease)}
.preview-banner b{font-size:13px}.preview-banner small{display:block;font-size:11px;color:#a98f55}
.titlebar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}
h1{font-size:28px;font-weight:800;letter-spacing:-.6px;line-height:1.3}
.buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink2);font-size:13px;font-weight:600;transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s}
.btn svg{width:17px;height:17px}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sh1);border-color:#cfdcdf}
.btn:active{transform:scale(.97)}
.btn.primary{border:0;color:#fff;background:linear-gradient(135deg,#12a384,#0a6b5c);box-shadow:0 8px 20px #0e8f7440}
.btn.primary:hover{box-shadow:0 12px 26px #0e8f7455}
.btn.danger,.danger{color:#c24a36!important}.btn.danger{background:#fff6f4;border-color:#f4d5ce}
.btn.wide{width:100%;margin-top:14px}
.btn:disabled{opacity:.55;pointer-events:none}
.link{border:0;background:none;padding:0;color:var(--brand);font-size:13px;font-weight:600;transition:.2s}.link:hover{color:var(--brand2)}
.ripple{position:absolute;width:10px;height:10px;margin:-5px;border-radius:50%;background:currentColor;opacity:.22;pointer-events:none;animation:ripple .6s ease-out forwards}
.more-button{width:38px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--muted);letter-spacing:2px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:.2s var(--ease)}
.more-button:hover{background:var(--mint);color:var(--brand2);transform:scale(1.06)}.more-button svg{width:16px;height:16px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:9px;background:var(--mint);color:#0b7a63;white-space:nowrap}
.badge.warn{background:#fff3dd;color:#a9741a}.badge.blue{background:#e9f0fc;color:#3f69b8}.badge.gray{background:#eef2f3;color:#7b8f94}.badge.red{background:#fdecea;color:#c24a36}

/* ---------- forms ---------- */
input,select,textarea{border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:11px 14px;min-width:0;outline:0;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px #0e8f741f}
textarea{min-height:88px;resize:vertical}
input[type=search]{-webkit-appearance:none;appearance:none}
input[type=file]{padding:9px;font-size:12px;background:#f8fbfb}
input[type=file]::file-selector-button{border:0;background:var(--mint);color:var(--brand2);font:600 12px inherit;padding:8px 14px;border-radius:10px;margin-inline-end:10px;cursor:pointer}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:var(--ink2)}
.field.full{grid-column:1/-1}
.field input,.field select,.field textarea{font-weight:400;min-height:48px;color:var(--ink)}
fieldset{margin:0;min-width:0}
legend{padding:0 8px;font-weight:700}
.note{margin-top:14px;padding:12px 14px;background:var(--mint);border-radius:13px;color:#0b6b57}
.quote{margin:10px 0;padding:10px 14px;border-right:3px solid #9fdcc8;background:#f3faf7;border-radius:10px;color:var(--ink2);white-space:pre-wrap;overflow-wrap:anywhere}
.toolbar{display:flex;gap:12px;margin-bottom:14px}
.toolbar input{flex:1;min-height:48px;border-radius:16px;padding-inline:18px;border-color:transparent;box-shadow:var(--sh1)}
.toolbar select{min-height:48px;border-radius:16px;border-color:transparent;box-shadow:var(--sh1);max-width:230px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:7px;flex-shrink:0;border:1px solid var(--line);background:#fff;border-radius:22px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--ink2);white-space:nowrap;transition:.25s var(--ease)}
.chip:hover{border-color:#bfe0d6}.chip i{width:8px;height:8px;border-radius:50%}
.chip b{font:700 11px Arial;background:#eef3f4;border-radius:10px;padding:2px 7px;color:var(--muted)}
.chip.active{background:var(--deep);border-color:var(--deep);color:#fff;box-shadow:0 6px 16px #0a2f3333}.chip.active b{background:#ffffff26;color:#fff}
.status-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.status-pick label{position:relative;cursor:pointer}
.status-pick input{position:absolute;opacity:0;inset:0;min-height:0}
.status-pick span{display:flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid var(--line);border-radius:13px;padding:12px 6px;font-size:12px;font-weight:600;color:var(--ink2);background:#fff;transition:.25s var(--ease)}
.status-pick span i{width:9px;height:9px;border-radius:50%;transition:transform .3s var(--spring)}
.status-pick input:checked+span{border-color:var(--brand);background:var(--mint);color:#0a5a4b;box-shadow:0 0 0 4px #0e8f741a;transform:translateY(-1px)}
.status-pick input:checked+span i{transform:scale(1.4)}
.status-pick input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
/* switches */
.switch-field{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2);transition:.25s}
.switch-field.boxed{align-self:end;min-height:48px}
.switch-field input{position:absolute;opacity:0;width:0;height:0;min-height:0}
.switch{position:relative;width:46px;height:27px;border-radius:20px;background:#cdd9dc;flex-shrink:0;transition:background .3s}
.switch:after{content:'';position:absolute;top:3px;inset-inline-start:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0003;transition:inset-inline-start .3s var(--spring)}
.switch-field input:checked+.switch{background:var(--brand)}.switch-field input:checked+.switch:after{inset-inline-start:22px}
.switch-field:has(input:checked){border-color:#9fdcc8;background:#f3faf7}
.switch-field input:focus-visible+.switch{outline:2px solid var(--brand);outline-offset:2px}
.perm-grid{border:1.5px solid var(--line);border-radius:16px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.perm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.toggle{border:0;width:46px;height:27px;border-radius:20px;background:#cdd9dc;padding:3px;display:flex;justify-content:flex-start;flex-shrink:0;transition:background .3s}
.toggle i{width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0003;transition:transform .3s var(--spring)}
.toggle.on{background:var(--brand)}.toggle.on i{transform:translateX(-19px)}
/* multi-select picker */
.picker{border:1.5px solid var(--line);border-radius:16px;padding:12px}
.picker-count{display:inline-flex;min-width:22px;justify-content:center;font:700 11px Arial;background:var(--brand);color:#fff;border-radius:10px;padding:3px 7px;margin-inline-start:6px}
.picker-tools{padding-bottom:10px}
.picker-list{display:grid;gap:8px;max-height:260px;overflow-y:auto;padding:2px}
.picker-list label{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;font-weight:400;transition:.2s var(--ease)}
.picker-list label:hover{border-color:#bfe0d6}
.picker-list input{position:absolute;opacity:0;width:0;height:0;min-height:0}
.picker-list .avatar{width:36px;height:36px;font-size:11px}
.picker-list .thumb{width:40px;height:40px}
.picker-name{flex:1;min-width:0}.picker-name b{display:block;font-size:13px;font-weight:600;color:var(--ink)}.picker-name small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tick{width:24px;height:24px;border-radius:50%;border:2px solid #c9d7da;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.25s var(--spring)}
.tick svg{width:14px;height:14px;stroke:#fff;stroke-width:3;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .3s .05s}
.picker-list label:has(input:checked){border-color:var(--brand);background:#f1faf6}
.picker-list label:has(input:checked) .tick{background:var(--brand);border-color:var(--brand);transform:scale(1.08)}
.picker-list label:has(input:checked) .tick svg{stroke-dashoffset:0}
.picker-list label:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.dropfield{position:relative;align-items:center;text-align:center;gap:10px;padding:26px 16px;border:2px dashed #b5d9cd;border-radius:18px;background:#f4fbf8;cursor:pointer;transition:.25s}
.dropfield:hover{border-color:var(--brand);background:#ecf8f3}
.dropfield input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0}
.dropfield b{font-size:13px;color:var(--ink);overflow-wrap:anywhere}
.drop-ic{width:54px;height:54px;border-radius:18px;background:#d9f2e8;color:var(--brand);display:flex;align-items:center;justify-content:center;animation:float 3.5s ease-in-out infinite}.drop-ic svg{width:26px;height:26px}

/* ---------- surfaces ---------- */
.panel,.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh1);overflow:hidden}
.card{padding:22px;overflow:visible}
.card h3{font-size:16px;margin-bottom:12px}
.panelhead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:18px 22px}
.panelhead h3{font-size:15px;display:flex;align-items:center;gap:8px}.panelhead h3 svg,.section-head svg,.fold h3 svg{width:18px;height:18px;color:var(--brand)}
.panelhead small{display:block;font-size:11px;color:var(--muted)}
.grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px;margin-bottom:22px}
.grid.even{grid-template-columns:1fr 1fr}
.stack{display:flex;flex-direction:column;gap:22px;min-width:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.empty{text-align:center;padding:54px 20px;color:var(--muted);grid-column:1/-1}.empty.small{padding:26px 16px;font-size:12px}
.meta-line{display:flex;align-items:center;gap:7px;min-width:0}.meta-line svg{width:15px;height:15px;color:#8fa9a6}
.details{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;background:#f5f9f9;border-radius:16px;margin-top:14px}
.details small{display:block;font-size:11px;color:var(--muted)}.details b{font-size:13px;overflow-wrap:anywhere}
.activity{padding:16px 22px;border-top:1px solid #eef3f4;transition:background .2s}.activity:hover{background:#f9fcfb}
.activity b{font-size:13px}.activity small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.activity h3{font-size:15px;margin-bottom:6px}.activity .link{margin-top:10px}.activity .btn{margin-top:10px}
.activity.unread{border-right:3px solid var(--brand);background:#f3faf7}
.notification-meta{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}
.row-ic{width:40px;height:40px;border-radius:13px;background:var(--mint);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.row-ic svg{width:19px;height:19px}
.progress{height:8px;border-radius:8px;background:#e6eef0;overflow:hidden;flex:1;min-width:40px}
.progress i{display:block;height:100%;width:var(--w,0);border-radius:8px;background:linear-gradient(90deg,#34d399,#0e8f74);animation:fill 1s .2s var(--ease) backwards;transition:width .5s var(--ease)}
.progress.big{height:12px}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:190px;padding:30px 34px;margin-bottom:20px;border-radius:28px;color:#fff;background:linear-gradient(135deg,#0a2f33 0,#0c4a45 60%,#0e6b5a 100%);box-shadow:0 20px 44px #0a2f3338}
.aurora{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55;pointer-events:none}
.aurora.a1{width:300px;height:300px;background:#2dd4bf;top:-140px;left:-60px;animation:drift 12s ease-in-out infinite}
.aurora.a2{width:240px;height:240px;background:#fbbf24;bottom:-150px;right:18%;opacity:.25;animation:drift 15s ease-in-out infinite reverse}
.grid-lines{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#ffffff0a 1px,transparent 1px) 0 0/100% 34px,linear-gradient(90deg,#ffffff0a 1px,transparent 1px) 0 0/34px 100%;-webkit-mask-image:radial-gradient(70% 90% at 20% 50%,#000,transparent);mask-image:radial-gradient(70% 90% at 20% 50%,#000,transparent)}
.hero-copy{position:relative;z-index:2;min-width:0}
.eyebrow{display:inline-block;font-size:12px;color:#a7f3d0;background:#ffffff12;border:1px solid #ffffff1c;padding:4px 12px;border-radius:20px;margin-bottom:12px}
.hero h2{font-size:32px;font-weight:800;letter-spacing:-.6px;line-height:1.35;animation:rise .7s .1s var(--ease) backwards}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#e6fbf3;background:#ffffff14;border:1px solid #ffffff1f;padding:6px 12px;border-radius:20px;backdrop-filter:blur(6px);animation:rise .6s var(--ease) backwards}
.pill:nth-child(1){animation-delay:.2s}.pill:nth-child(2){animation-delay:.28s}.pill:nth-child(3){animation-delay:.36s}
.pill i{width:7px;height:7px;border-radius:50%}
.hero-ring{position:relative;z-index:2;width:128px;height:128px;flex-shrink:0}
.hero-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-track{fill:none;stroke:#ffffff1f;stroke-width:3.4}
.ring-val{fill:none;stroke:#6ee7b7;stroke-width:3.4;stroke-linecap:round;stroke-dasharray:var(--len) 100;animation:ring 1.4s .3s var(--ease) backwards;filter:drop-shadow(0 0 3px #6ee7b780)}
.hero-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero-ring strong{font:800 27px Arial}.hero-ring small{font-size:11px;color:#b7e6d8}

/* ---------- dashboard ---------- */
.quick{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}
.quick button{position:relative;overflow:hidden;border:0;background:#fff;border-radius:20px;padding:15px 8px;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:12px;font-weight:600;color:var(--ink2);box-shadow:var(--sh1);transition:transform .3s var(--spring),box-shadow .3s;animation:rise .5s calc(var(--i,0)*50ms + .1s) var(--ease) backwards}
.quick button:hover{transform:translateY(-4px);box-shadow:var(--sh2)}.quick button:active{transform:scale(.95)}
.quick span{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#e7f6f0,#d3f0e6);color:var(--brand);display:flex;align-items:center;justify-content:center;transition:transform .35s var(--spring)}
.quick button:hover span{transform:rotate(-8deg) scale(1.08)}.quick svg{width:22px;height:22px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat{position:relative;overflow:hidden;background:#fff;border-radius:22px;padding:20px;box-shadow:var(--sh1);transition:transform .3s var(--ease),box-shadow .3s;animation:rise .55s calc(var(--i,0)*70ms + .15s) var(--ease) backwards}
.stat:hover{transform:translateY(-4px);box-shadow:var(--sh2)}
.stat:after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;left:-40px;bottom:-60px;background:var(--tone,#0e8f74);opacity:.07}
.stat .icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--tone,#0e8f74) 14%,#fff);color:var(--tone,#0e8f74)}
.stat .icon svg{width:20px;height:20px}
.stat strong{display:block;font:800 34px Arial;margin:14px 0 2px;letter-spacing:-1px}
.stat small{font-size:12px;color:var(--muted);font-weight:500}
.stat.ok{--tone:#0e8f74}.stat.warn{--tone:#e9a23b}.stat.bad{--tone:#e2604c}
.weekly-strip{display:flex;align-items:center;gap:16px;padding:16px 22px;margin-bottom:20px;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s}
.weekly-strip:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.strip-ic{width:44px;height:44px;border-radius:15px;background:var(--mint);color:var(--brand);display:flex;align-items:center;justify-content:center}.strip-ic svg{width:21px;height:21px}
.weekly-strip h3{font-size:14px}.weekly-strip small{font-size:11px;color:var(--muted)}.weekly-strip>b{font:800 15px Arial;color:var(--brand2);white-space:nowrap}
.chart{height:200px;display:flex;gap:14px;align-items:flex-end;direction:ltr;margin:6px 24px 22px;padding-top:22px;background:repeating-linear-gradient(to top,transparent 0 43px,#eef3f4 43px 44px)}
.bargrp{position:relative;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}
.bargrp i{width:min(34px,70%);height:var(--h,0);border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#34d399,#0e8f74);transform-origin:bottom;animation:grow .9s calc(var(--i,0)*80ms + .2s) var(--spring) backwards}
.bargrp em{font:700 11px Arial;color:var(--brand2);height:14px}
.bargrp span{font-size:11px;color:var(--muted);white-space:nowrap}
.donutwrap{display:flex;align-items:center;justify-content:center;gap:26px;padding:4px 20px 24px;flex-wrap:wrap}
.donut{position:relative;width:150px;height:150px}
.donut-svg{width:100%;height:100%}
.donut-track{fill:none;stroke:#eef3f4;stroke-width:5}
.donut-seg{fill:none;stroke-width:5;stroke-dasharray:var(--len) calc(100 - var(--len));stroke-dashoffset:var(--off);transform:rotate(-90deg);transform-origin:center;animation:donut 1s var(--d,0ms) var(--ease) backwards}
.donut>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut strong{font:800 30px Arial}.donut small{font-size:11px;color:var(--muted)}
.statuslegend{font-size:13px;color:var(--ink2);display:grid;gap:10px;min-width:130px}
.statuslegend div{display:flex;align-items:center;gap:8px}.statuslegend i{width:9px;height:9px;border-radius:50%}.statuslegend b{margin-inline-start:auto;font:700 13px Arial;color:var(--ink)}
.bars{padding:2px 22px 20px;display:flex;flex-direction:column;gap:13px}
.bars>div{display:grid;grid-template-columns:minmax(90px,38%) 1fr 28px;gap:12px;align-items:center;font-size:12px;color:var(--ink2)}
.bars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bars b{font:700 13px Arial;text-align:left}
.task{margin:0 22px;padding:14px 0;border-top:1px solid #eef3f4;display:flex;gap:12px;align-items:center;cursor:pointer;transition:transform .25s var(--ease)}
.task:hover{transform:translateX(-4px)}
.task>div{flex:1;min-width:0}.task h4{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task small{font-size:11px;color:var(--muted)}
.taskicon{width:40px;height:40px;border-radius:13px;background:var(--mint);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.taskicon svg{width:19px;height:19px}
.taskicon.hot{background:#fdecea;color:var(--red)}

/* ---------- tables ---------- */
.tablewrap{overflow:auto}
table{border-collapse:collapse;width:100%;text-align:right;white-space:nowrap}
th{font-size:11px;font-weight:600;color:var(--muted);background:#f7fafa;padding:13px 20px}
td{border-top:1px solid #eef3f4;padding:14px 20px;font-size:13px;color:var(--ink2)}
td b{color:var(--ink);font-weight:600}
td.wrap{white-space:normal;min-width:180px;line-height:1.8}
.device-table tbody tr{cursor:pointer;transition:background .2s}.device-table tbody tr:hover{background:#f6fbf9}
.devicecell{display:flex;gap:12px;align-items:center}
.devicecell>div{min-width:0}
.devicecell small{display:block;font:11px Arial;color:#9db0b3;margin-top:3px;direction:ltr;text-align:right}
.device-more{margin-inline-start:auto}
.thumb{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#eef6f3,#e2f0ea);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.thumb svg{width:38px;height:38px}.thumb img{width:100%;height:100%;object-fit:cover}

/* ---------- device detail / comments ---------- */
.detailart{height:190px;border-radius:20px;background:linear-gradient(135deg,#eef6f3,#e2f0ea);display:flex;justify-content:center;align-items:center;padding:14px;margin-bottom:18px;overflow:hidden}
.detailart svg{width:170px;animation:float 5s ease-in-out infinite}.detailart img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.detail-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.detail-title h2{font-size:20px;margin-bottom:2px}.detail-title p{text-align:right}
.loc-banner{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;background:linear-gradient(120deg,#e7f6f0,#f3faf7);border:1px solid #d3eee4}
.loc-banner svg{width:26px;height:26px;color:var(--brand)}
.loc-banner small{display:block;font-size:11px;color:#6f9c90}.loc-banner b{font-size:14px;color:#0a5a4b}.loc-banner span{display:block;font-size:12px;color:#5f8a80}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-head h3{font-size:15px;display:flex;gap:8px;align-items:center}
.comment-form{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.comment-form textarea{min-height:70px}.comment-form .btn{align-self:flex-start}
.comment-list{display:flex;flex-direction:column;gap:10px}
.comment{border:1px solid var(--line);border-radius:16px;padding:13px 15px;background:#fff;animation:rise .4s var(--ease) backwards}
.comment.maintenance{border-color:#d5e1f5;background:#f6f9fe}.comment.status{border-color:#f3e3bf;background:#fffbf1}
.comment-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.comment-head>div{flex:1;min-width:0}
.comment-head b{font-size:13px;display:block}.comment-head small{font-size:11px;color:var(--muted)}
.comment-head .avatar{width:34px;height:34px;font-size:11px}
.comment p{color:var(--ink2);white-space:pre-wrap;overflow-wrap:anywhere}

/* ---------- users ---------- */
.team-summary{display:flex;gap:0;background:#fff;border-radius:20px;box-shadow:var(--sh1);margin-bottom:18px;overflow:hidden}
.team-summary span{flex:1;padding:16px 20px;font-size:12px;color:var(--muted)}
.team-summary span+span{border-right:1px solid #eef3f4}
.team-summary b{display:block;font:800 24px Arial;color:var(--ink)}
.engineer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px}
.user-card{background:#fff;border-radius:24px;box-shadow:var(--sh1);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s;animation:rise .55s calc(var(--i,0)*70ms) var(--ease) backwards}
.user-card:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.user-cover{height:78px;padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;background:radial-gradient(90% 140% at 0 0,#5eead455,transparent 60%),linear-gradient(120deg,#0a2f33,#0e6b5a)}
.cover-chip{font-size:11px;font-weight:600;color:#d1fae5;background:#ffffff1a;border:1px solid #ffffff26;padding:4px 11px;border-radius:20px}
.user-cover .more-button{background:#ffffff1f;border-color:#ffffff2e;color:#fff}
.user-main{display:flex;align-items:center;gap:14px;padding:0 20px;margin-top:-30px}.user-main>div{padding-top:34px;min-width:0}.user-main .avatar.xl{position:relative;z-index:1}
.user-main h3{font-size:17px;line-height:1.4}.user-main p{font-size:12px}
.user-card .perm-chips{padding:0 20px}
.user-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:16px 20px;padding:14px 0;border-block:1px solid #eef3f4;text-align:center}
.user-stats div+div{border-right:1px solid #eef3f4}
.user-stats b{display:block;font:800 22px Arial}.user-stats span{font-size:11px;color:var(--muted)}
.identity-strip{display:flex;align-items:center;gap:12px;margin:0 20px 16px;padding:10px 12px;border-radius:16px;background:#f5f9f9}
.identity-strip>div{flex:1;min-width:0}.identity-strip b{display:block;font-size:12px}.identity-strip small{font:11px Arial;color:var(--muted)}
.identity-strip.is-disabled{opacity:.7}.identity-strip.is-disabled .row-ic{background:#e9eef0;color:#9aacaf}
.card-actions{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:0 20px 20px}.card-actions .btn{padding:9px 8px;font-size:12px}
.profile-hero{display:flex;align-items:center;gap:16px;margin:6px 0 4px}.profile-hero h2{font-size:19px}

/* ---------- tasks / weekly ---------- */
.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.task-card{cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s}.task-card:hover{transform:translateY(-4px);box-shadow:var(--sh2)}
.task-card h3{margin:14px 0 12px}.task-card p{margin-bottom:6px}
.week-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-radius:20px;box-shadow:var(--sh1);padding:10px 12px;margin-bottom:16px}
.week-nav>div{text-align:center}.week-nav b{display:block;font-size:15px}.week-nav small{font-size:11px;color:var(--muted)}.week-nav .btn{min-width:46px;font-size:20px;padding:6px 10px}
.week-progress{display:flex;align-items:center;gap:18px;padding:18px 22px;margin-bottom:18px}
.week-progress b{display:block;font-size:15px}.week-progress small{font-size:11px;color:var(--muted)}.week-progress strong{font:800 22px Arial;color:var(--brand)}
.wlist{display:flex;flex-direction:column;gap:12px}
.wtask{display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:20px;box-shadow:var(--sh1);padding:16px 18px;transition:transform .3s var(--ease),background .3s;animation:rise .5s var(--ease) backwards}
.wtask:nth-child(2){animation-delay:.06s}.wtask:nth-child(3){animation-delay:.12s}.wtask:nth-child(4){animation-delay:.18s}.wtask:nth-child(n+5){animation-delay:.24s}
.wtask>div{flex:1;min-width:0}.wtask h4{font-size:14px;margin:3px 0 4px;transition:color .3s}.wtask p{white-space:pre-wrap}
.wtask.done{background:#f6faf9}.wtask.done h4{text-decoration:line-through;color:#8aa3a0}
.wcheck{width:32px;height:32px;border-radius:11px;border:2px solid #c6d6d8;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:.3s var(--spring)}
button.wcheck:hover{border-color:var(--brand);transform:scale(1.1)}
.wcheck svg{width:18px;height:18px;stroke:#fff;stroke-width:2.8;stroke-dasharray:24;animation:draw .45s .1s var(--ease) backwards}
.wtask.done .wcheck{background:linear-gradient(135deg,#34d399,#0e8f74);border-color:transparent;box-shadow:0 5px 12px #0e8f7440;animation:pop .45s var(--spring)}
.wmeta{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:9px;font-size:12px;color:var(--muted)}
.wmeta>span:not(.badge){display:inline-flex;gap:5px;align-items:center}.wmeta svg{width:14px;height:14px}
.wtask .more-button{color:#c24a36}

/* ---------- job sheets ---------- */
.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.sheet-card{background:#fff;border-radius:20px;box-shadow:var(--sh1);overflow:hidden;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s;animation:rise .5s var(--ease) backwards}
.sheet-card:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.sheet-thumb{aspect-ratio:4/3;background:#edf3f4;display:flex;align-items:center;justify-content:center;overflow:hidden}
.sheet-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.sheet-card:hover .sheet-thumb img{transform:scale(1.07)}
.pdf-ic{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--red)}.pdf-ic svg{width:40px;height:40px;stroke-width:1.4}.pdf-ic b{font:700 11px Arial;letter-spacing:1px}.pdf-ic.big svg{width:70px;height:70px}
.sheet-info{padding:12px 14px}.sheet-info h4{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-info p{font-size:11px}.sheet-info small{font-size:11px;color:var(--ink2);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet-preview{background:#edf3f4;border-radius:18px;min-height:160px;display:flex;align-items:center;justify-content:center;overflow:hidden}.sheet-preview img{max-width:100%;max-height:55vh;object-fit:contain}

/* ---------- divisions / locations / reports ---------- */
.struct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:22px;align-items:start}
.rowline{display:flex;align-items:center;gap:12px;padding:12px 22px;border-top:1px solid #eef3f4;transition:background .2s}.rowline:hover{background:#f9fcfb}
.rowline>div{flex:1;min-width:0}.rowline>div[role=button]{cursor:pointer}
.rowline b{display:block;font-size:13px}.rowline small{font-size:11px;color:var(--muted)}.rowline.archived{opacity:.5}
.loc-group h4{padding:10px 22px;background:#f5f9f9;border-top:1px solid #eef3f4;font-size:12px;color:#0b6b57;display:flex;justify-content:space-between;align-items:center}
.loc-group h4 .link{font-size:17px;padding:0 6px}
.reportgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.report-card{display:flex;flex-direction:column;gap:12px;animation:rise .5s calc(var(--i,0)*60ms) var(--ease) backwards;transition:transform .3s var(--ease),box-shadow .3s}.report-card:hover{transform:translateY(-4px);box-shadow:var(--sh2)}
.report-card h3{margin:0}
details.fold{margin-top:22px;background:#fff;border-radius:var(--r);box-shadow:var(--sh1);overflow:hidden}
details.fold summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;cursor:pointer}
details.fold summary::-webkit-details-marker{display:none}
details.fold h3{font-size:15px;display:flex;gap:8px;align-items:center}details.fold summary>span{font-size:12px;color:var(--brand);font-weight:600;transition:transform .3s}
details.fold[open] summary>span{transform:rotate(180deg)}
.qrcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;padding:0 20px 20px}

/* ---------- identity / barcode pass ---------- */
.pass{position:relative;background:#fff;border-radius:24px;border:1px solid var(--line);box-shadow:var(--sh1);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s;text-align:right}
.pass:hover{transform:translateY(-4px);box-shadow:var(--sh2)}
.pass header{position:relative;height:auto;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;color:#fff;border:0;backdrop-filter:none;background:radial-gradient(80% 180% at 0 0,#5eead44d,transparent 60%),linear-gradient(120deg,#0a2f33,#0e6b5a)}
.pass.gold header{background:radial-gradient(80% 180% at 0 0,#fde68a4d,transparent 60%),linear-gradient(120deg,#2b2412,#8a6a2a)}
.pass-brand{direction:ltr;display:flex;align-items:center;gap:7px;font:800 14px Arial;letter-spacing:1.2px}
.pass-brand i{width:26px;height:26px;border-radius:9px;background:#ffffff24;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:15px}
.pass-brand em{font-style:normal;font-size:10px;opacity:.75;letter-spacing:2px}
.pass-kind{font-size:11px;font-weight:600;background:#ffffff1f;border:1px solid #ffffff29;padding:3px 10px;border-radius:20px}
.pass-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px}
.pass-info{min-width:0}
.pass-photo{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#eef6f3,#dcefe8);display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700;font-size:17px;color:#0a5a4b;margin-bottom:10px}
.pass-photo img,.pass-photo svg{width:100%;height:100%;object-fit:cover}
.pass-info h3{font-size:16px;line-height:1.5;overflow-wrap:anywhere}.pass-info p{font-size:12px;margin-bottom:8px}
.pass-info code{display:inline-block;font:700 11px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;color:#0a5a4b;background:var(--mint);padding:5px 10px;border-radius:9px}
.pass.gold .pass-info code{color:#7a5a1c;background:#fbf3df}
.pass-qr{position:relative;width:132px;height:132px;padding:12px;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #e7eef0}
.pass-qr svg{width:100%;height:100%;margin:0!important;display:block}
.pass-qr.off{color:#b4c3c6;background:#f3f6f7}.pass-qr.off svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.5}
.qr-corners{position:absolute;inset:0;border-radius:inherit;pointer-events:none;--c:var(--brand);background:
  linear-gradient(var(--c),var(--c)) top left/22px 3px no-repeat,linear-gradient(var(--c),var(--c)) top left/3px 22px no-repeat,
  linear-gradient(var(--c),var(--c)) top right/22px 3px no-repeat,linear-gradient(var(--c),var(--c)) top right/3px 22px no-repeat,
  linear-gradient(var(--c),var(--c)) bottom left/22px 3px no-repeat,linear-gradient(var(--c),var(--c)) bottom left/3px 22px no-repeat,
  linear-gradient(var(--c),var(--c)) bottom right/22px 3px no-repeat,linear-gradient(var(--c),var(--c)) bottom right/3px 22px no-repeat}
.pass.gold .qr-corners{--c:#b98d32}
.scanline{position:absolute;left:10px;right:10px;top:12%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#34d399,transparent);box-shadow:0 0 12px 2px #34d39966;animation:scan 2.8s ease-in-out infinite;pointer-events:none}
.pass.gold .scanline{background:linear-gradient(90deg,transparent,#e9b949,transparent);box-shadow:0 0 12px 2px #e9b94966}
.pass footer{position:relative;display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-top:1.5px dashed #d9e4e6;font-size:12px;color:var(--muted)}
.pass footer:before,.pass footer:after{content:'';position:absolute;top:-10px;width:20px;height:20px;border-radius:50%;background:var(--notch);box-shadow:inset 0 0 0 1px var(--line)}
.pass footer:before{right:-11px}.pass footer:after{left:-11px}
.pass-status{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.pass-status:before{content:'';width:8px;height:8px;border-radius:50%;background:#b4c3c6}
.pass-status.on{color:#0b7a63}.pass-status.on:before{background:#10b981;box-shadow:0 0 0 0 #10b98166;animation:pulse 2s infinite}
.disabled-qr{padding:24px;background:#f1f5f6;border-radius:14px;color:var(--muted);text-align:center}
.scan-art{position:relative;width:120px;height:120px;margin:4px auto 18px;border-radius:22px;background:var(--mint);color:var(--brand);display:flex;align-items:center;justify-content:center}.scan-art>svg{width:58px;height:58px;stroke-width:1.4}
.native-card-preview{width:100%;text-align:center;background:#eef3f4;padding:12px;border-radius:18px;max-height:62vh;overflow:auto}
.native-card-preview img{display:block;width:100%;height:auto;max-width:520px;margin:auto;border-radius:12px;box-shadow:var(--sh2);animation:rise .5s var(--ease)}

/* ---------- modal / toast ---------- */
dialog{border:0;border-radius:28px;padding:28px;width:640px;max-width:94vw;max-height:90dvh;color:var(--ink);box-shadow:0 40px 110px #06242a59;--notch:#fff;overflow-y:auto}
dialog:focus{outline:0}
dialog[open]{animation:modalIn .38s var(--spring)}
dialog.closing{animation:modalOut .18s ease-in forwards}
dialog::backdrop{background:#08262acc;backdrop-filter:blur(6px);animation:fade .3s ease}
dialog.closing::backdrop{animation:fadeOut .18s ease forwards}
.modalhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
.modalhead h2{font-size:20px;font-weight:800}
.close{border:0;background:#eff4f5;border-radius:50%;width:38px;height:38px;font-size:22px;line-height:1;color:var(--ink2);transition:.3s var(--ease)}.close:hover{background:#fdecea;color:var(--red);transform:rotate(90deg)}
.close:focus-visible,.more-button:focus-visible,.btn:focus-visible{outline:2px solid #7fd9c3;outline-offset:2px}
.modalfoot{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid #eef3f4}
.modalfoot .btn{min-width:110px}
.action-menu{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.action-menu .btn{justify-content:flex-start;border:0;border-radius:14px;padding:13px 12px;min-height:50px;box-shadow:none;animation:rise .35s var(--ease) backwards}
.action-menu .btn:hover{background:#f1f8f5;transform:translateX(-4px);box-shadow:none}
.action-menu .btn:nth-child(2){animation-delay:.03s}.action-menu .btn:nth-child(3){animation-delay:.06s}.action-menu .btn:nth-child(4){animation-delay:.09s}.action-menu .btn:nth-child(5){animation-delay:.12s}.action-menu .btn:nth-child(n+6){animation-delay:.15s}
.action-menu .btn.danger{background:#fff6f4}
.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:9px;padding:16px 6px;border-radius:20px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:600;color:var(--ink2);text-align:center;animation:pop .4s var(--spring) backwards;transition:transform .25s var(--spring)}
.tile:active{transform:scale(.94)}
.tile:nth-child(2){animation-delay:.03s}.tile:nth-child(3){animation-delay:.06s}.tile:nth-child(4){animation-delay:.09s}.tile:nth-child(5){animation-delay:.12s}.tile:nth-child(6){animation-delay:.15s}.tile:nth-child(n+7){animation-delay:.18s}
.tile.active{background:var(--mint);border-color:#b5e3d2;color:#0a5a4b}
.tile-ic{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#e7f6f0,#d3f0e6);color:var(--brand);display:flex;align-items:center;justify-content:center}.tile-ic svg{width:22px;height:22px}
.tile>b{position:absolute;top:8px;left:10px;font:700 10px Arial;background:var(--red);color:#fff;border-radius:10px;min-width:19px;padding:3px 5px}
#toast{position:fixed;bottom:28px;left:50%;z-index:100;display:none;max-width:min(92vw,460px);padding:13px 22px;border-radius:16px;font-size:13px;font-weight:500;color:#fff;background:#0a2f33f2;box-shadow:0 14px 40px #06242a59;backdrop-filter:blur(10px);transform:translateX(-50%);animation:toastIn .4s var(--spring);text-align:center}

/* ---------- login ---------- */
.login-screen{position:relative;overflow:hidden;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(60% 50% at 15% 15%,#14796a 0,transparent 60%),radial-gradient(50% 50% at 90% 90%,#0f5d6b 0,transparent 60%),linear-gradient(135deg,#06242a,#0a3a3a)}
.login-screen:before,.login-screen:after{content:'';position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}
.login-screen:before{width:340px;height:340px;background:#2dd4bf;opacity:.28;top:-80px;right:-60px;animation:drift 13s ease-in-out infinite}
.login-screen:after{width:280px;height:280px;background:#fbbf24;opacity:.14;bottom:-90px;left:-40px;animation:drift 16s ease-in-out infinite reverse}
.login-orbit{position:absolute;width:680px;height:680px;border:1px solid #ffffff12;border-radius:50%;box-shadow:0 0 0 80px #ffffff05,0 0 0 160px #ffffff04;animation:orbit 14s ease-in-out infinite;pointer-events:none}
.login-card{position:relative;z-index:2;width:410px;max-width:100%;padding:36px 32px;border-radius:30px;background:#ffffffeb;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border:1px solid #ffffff80;box-shadow:0 40px 100px #02161c80;animation:loginIn .8s var(--spring) both}
.login-logo{width:60px;height:60px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:34px;color:#fff;background:linear-gradient(135deg,#12a384,#0a5a4b);box-shadow:0 12px 26px #0e8f7455;margin-bottom:20px;animation:float 4s ease-in-out infinite}
.login-kicker{font:700 10px Arial;letter-spacing:2px;color:#7fa39c}
.login-card h1{font-size:28px;margin:8px 0 4px}
.login-card>p:not(#loginError){margin-bottom:22px}
.login-card .field{margin-top:14px;animation:rise .6s var(--ease) backwards}.login-card .field:nth-of-type(1){animation-delay:.25s}.login-card .field:nth-of-type(2){animation-delay:.33s}
.login-card .field input{min-height:54px;border-radius:16px;font-size:16px;text-align:center;direction:ltr;letter-spacing:.5px;background:#f6faf9}
.login-card .field input::placeholder{color:#b9c9c6}
.login-card>.btn{width:100%;min-height:54px;margin-top:10px;border-radius:16px;font-size:15px;animation:rise .6s .42s var(--ease) backwards}
#loginError{color:#c24a36;min-height:22px;margin-top:10px;font-size:12px}
.login-note{display:none}

/* ---------- entrance ---------- */
#main>*{animation:rise .55s calc(var(--i,0)*60ms) var(--ease) backwards}
#main.still *,#main.still{animation:none!important}
.cards>.card{animation:rise .5s var(--ease) backwards}.cards>.card:nth-child(2){animation-delay:.06s}.cards>.card:nth-child(3){animation-delay:.12s}.cards>.card:nth-child(n+4){animation-delay:.18s}
.sheet-card:nth-child(2){animation-delay:.05s}.sheet-card:nth-child(3){animation-delay:.1s}.sheet-card:nth-child(n+4){animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(18px) scale(.985)}}
@keyframes pop{from{opacity:0;transform:scale(.7)}}
@keyframes fade{from{opacity:0}}@keyframes fadeOut{to{opacity:0}}
@keyframes modalIn{from{opacity:0;transform:translateY(26px) scale(.95)}}
@keyframes modalOut{to{opacity:0;transform:translateY(16px) scale(.97)}}
@keyframes sheetIn{from{transform:translateY(100%)}}@keyframes sheetOut{to{transform:translateY(100%)}}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,24px) scale(.9)}}
@keyframes loginIn{from{opacity:0;transform:translateY(40px) scale(.94)}}
@keyframes navIn{from{transform:scale(.94);opacity:.5}}
@keyframes ripple{to{transform:scale(34);opacity:0}}
@keyframes grow{from{transform:scaleY(0)}}
@keyframes fill{from{width:0}}
@keyframes ring{from{stroke-dasharray:0 100}}
@keyframes donut{from{stroke-dasharray:0 100}}
@keyframes draw{from{stroke-dashoffset:24}}
@keyframes scan{0%,100%{top:12%;opacity:.2}50%{top:86%;opacity:1}}
@keyframes pulse{70%{box-shadow:0 0 0 7px #10b98100}100%{box-shadow:0 0 0 0 #10b98100}}
@keyframes ping{to{transform:scale(1.7);opacity:0}}
@keyframes float{50%{transform:translateY(-7px)}}
@keyframes drift{50%{transform:translate(40px,30px) scale(1.15)}}
@keyframes orbit{50%{transform:scale(1.08) rotate(8deg)}}
@keyframes navUp{from{transform:translateY(120%)}}

#mobileNav{display:none}
@media(max-width:1250px){.quick{grid-template-columns:repeat(3,1fr)}.struct-grid,.grid{grid-template-columns:1fr}.cards,.reportgrid{grid-template-columns:1fr 1fr}aside{width:230px}.shell{margin-right:230px}main{padding:24px}header{padding:0 24px}}

/* ---------- mobile ---------- */
@media(max-width:820px){
aside,footer,.date,.lock-button{display:none}
.shell{margin:0}
header{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;border:0}
.breadcrumb{font-size:0;display:flex;align-items:center}.breadcrumb>span,.breadcrumb>b{display:none}
.breadcrumb:before{content:'✚';width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:21px;margin-left:10px;color:#fff;background:linear-gradient(135deg,#12a384,#0a5a4b);box-shadow:0 6px 14px #0e8f7445}
.breadcrumb:after{content:'PMF CARE';font:800 15px Arial;letter-spacing:1.4px;color:var(--ink)}
.headtools{gap:10px}.headtools .avatar{width:40px;height:40px;box-shadow:0 0 0 2px #fff,0 3px 10px #0a2f3320}
.iconbutton{width:40px;height:40px;border:0;box-shadow:var(--sh1)}
main{padding:8px 16px calc(116px + env(safe-area-inset-bottom))}
.preview-banner{padding:10px 16px;position:sticky;top:calc(64px + env(safe-area-inset-top));z-index:14}.preview-banner .btn{min-height:38px;padding:6px 12px;font-size:12px;white-space:nowrap}
.titlebar{margin:6px 0 16px}h1{font-size:25px}
.titlebar .buttons .btn:not(.primary){display:none}.titlebar .btn.primary{white-space:nowrap}
.btn{min-height:46px}
.hero{min-height:0;padding:22px 20px;border-radius:26px;margin-bottom:16px}
.hero h2{font-size:24px}.eyebrow{font-size:11px}.pill{font-size:11px;padding:5px 10px}
.hero-ring{width:92px;height:92px}.hero-ring strong{font-size:20px}.hero-ring small{font-size:10px}
.quick{display:flex;gap:10px;overflow-x:auto;margin:0 -16px 16px;padding:4px 16px 8px;scrollbar-width:none;scroll-snap-type:x proximity}.quick::-webkit-scrollbar{display:none}
.quick button{flex:0 0 94px;scroll-snap-align:start;line-height:1.5}
.stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.stat{padding:16px;border-radius:20px}.stat strong{font-size:29px;margin-top:10px}
.weekly-strip{flex-wrap:wrap;gap:12px;padding:15px 16px;margin-bottom:16px}.weekly-strip>div:nth-child(2){flex:1}.weekly-strip .progress{order:3;flex-basis:100%}
.grid,.grid.even,.stack{grid-template-columns:1fr;gap:16px;margin-bottom:16px}
.panelhead{padding:16px 18px}
.chart{height:160px;margin:4px 16px 18px;gap:8px}
.donutwrap{gap:20px;padding:4px 16px 20px}.donut{width:132px;height:132px}
.bars{padding:2px 18px 18px}.task{margin:0 18px}
.toolbar{flex-wrap:wrap;gap:10px}.toolbar input{flex:1 1 100%;font-size:16px;min-height:50px}.toolbar select{flex:1;max-width:none}
.chips{margin:0 -16px;padding:2px 16px 12px}.picker-tools{margin:0;padding:0 0 10px}
.device-table{display:block;white-space:normal}.device-table thead{display:none}.device-table tbody{display:block}
.device-table tr{position:relative;display:grid;grid-template-columns:1fr auto;gap:10px 12px;align-items:center;background:#fff;border-radius:22px;padding:14px 16px;margin-bottom:12px;box-shadow:var(--sh1);overflow:hidden;animation:rise .5s calc(var(--i,0)*50ms) var(--ease) backwards}
.device-table tr:before{content:'';position:absolute;inset-block:14px;right:0;width:4px;border-radius:4px 0 0 4px;background:var(--st,#0e8f74)}
.device-table tbody tr:hover{background:#fff}.device-table tr:active{transform:scale(.985)}
.device-table td{padding:0;border:0;font-size:12px;min-width:0}
.device-table td:first-child{grid-column:1/-1;padding-bottom:12px;border-bottom:1px solid #eef3f4}
.device-table td:first-child b{font-size:15px}
.device-table td[data-label="المسؤول"]{grid-column:1/-1}
.device-table td[data-label="آخر صيانة"]{display:none}
.thumb{width:52px;height:52px;border-radius:16px}
.panel#deviceTable,.panel:has(>.tablewrap>.device-table){background:none;box-shadow:none;overflow:visible}
.panel:has(>.tablewrap>.device-table)>.panelhead{padding:2px 2px 12px}
.tablewrap:has(.device-table){overflow:visible}
.stack-table{display:block;white-space:normal}.stack-table thead{display:none}.stack-table tbody{display:block}
.stack-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:16px 18px;border-top:1px solid #eef3f4}.stack-table tr:first-child{border-top:0}
.stack-table td{padding:0;border:0;font-size:13px;display:flex;flex-direction:column;gap:3px;min-width:0}
.stack-table td:before{content:attr(data-label);font-size:11px;color:#9bb0b3}
.stack-table td:first-child,.stack-table td.wrap{grid-column:1/-1}.stack-table td:first-child:before{display:none}.stack-table td:first-child b{font-size:15px}
.stack-table td[dir=ltr]{direction:rtl}.stack-table .badge{align-self:flex-start}
.cards{grid-template-columns:1fr;gap:12px}.reportgrid{grid-template-columns:1fr 1fr;gap:12px}
.card{padding:18px}
.team-summary span{padding:14px 12px;font-size:11px}.team-summary b{font-size:21px}
.engineer-grid{grid-template-columns:1fr;gap:16px}
.sheet-grid{grid-template-columns:1fr 1fr;gap:12px}
.qrcards{grid-template-columns:1fr;padding:0 14px 16px}
.pass-qr{width:112px;height:112px;padding:10px}.pass-body{padding:16px;gap:12px}
.rowline{padding:12px 16px}.loc-group h4{padding:10px 16px}.activity{padding:15px 18px}
.formgrid,.perm-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.status-pick{grid-template-columns:1fr 1fr}
.field input,.field select,.field textarea,.comment-form textarea{font-size:16px;min-height:50px}
.detailart{height:170px}
dialog{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;padding:14px 18px calc(22px + env(safe-area-inset-bottom));border-radius:30px 30px 0 0}
dialog[open]{animation:sheetIn .42s var(--ease)}dialog.closing{animation:sheetOut .2s ease-in forwards}
dialog:before{content:'';display:block;width:44px;height:5px;border-radius:3px;background:#d3dfe1;margin:0 auto 12px}
.modalhead{position:sticky;top:-14px;z-index:3;background:#fff;margin:0 -18px 16px;padding:8px 18px 12px;border-bottom:1px solid #f0f4f5}
.modalhead h2{font-size:18px}
.modalfoot{position:sticky;bottom:calc(-22px - env(safe-area-inset-bottom));z-index:3;background:#fff;margin:20px -18px calc(-22px - env(safe-area-inset-bottom));padding:14px 18px calc(16px + env(safe-area-inset-bottom))}
.modalfoot .btn{flex:1;min-width:0;min-height:50px}
.action-menu .btn{min-height:54px;font-size:14px}
#mobileNav{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;padding:7px 6px;border-radius:26px;border:1px solid #ffffffb3;background:#ffffffe6;backdrop-filter:saturate(1.6) blur(22px);-webkit-backdrop-filter:saturate(1.6) blur(22px);box-shadow:0 14px 38px #0a2f3329,0 2px 6px #0a2f3314;animation:navUp .6s .1s var(--spring) backwards}
#mobileNav a,#mobileNav button{position:relative;overflow:hidden;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border:0;background:none;border-radius:18px;font:700 10px inherit;color:#8ba1a4;transition:color .3s}
.mnav-ic{position:relative;width:48px;height:31px;border-radius:16px;display:flex;align-items:center;justify-content:center;transition:transform .35s var(--spring)}
.mnav-ic:before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,#12a384,#0a5a4b);box-shadow:0 6px 14px #0e8f7450;transform:scale(.3);opacity:0;transition:transform .4s var(--spring),opacity .25s}
#mobileNav svg{position:relative;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#mobileNav .active{color:#0a5a4b}#mobileNav .active .mnav-ic{color:#fff;transform:translateY(-2px)}#mobileNav .active .mnav-ic:before{transform:scale(1);opacity:1}
.mnav-ic b{position:absolute;z-index:2;top:-6px;left:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:10px;display:flex;align-items:center;justify-content:center;font:700 9px Arial;color:#fff;background:var(--red);border:2px solid #fff}
#toast{bottom:calc(100px + env(safe-area-inset-bottom));width:calc(100% - 32px)}
.login-card{padding:32px 24px;border-radius:30px}
}
@media(max-width:370px){.hero-ring{display:none}.sheet-grid,.reportgrid{grid-template-columns:1fr}.status-pick span{font-size:11px}.tile{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{aside,header,footer,#mobileNav,.buttons,.toolbar,.quick,.chips,.modalfoot,.close,.preview-banner,.login-screen{display:none!important}.shell{margin:0}main{padding:0}}

@media(max-width:820px){.modalfoot .btn{white-space:nowrap;padding-inline:10px;font-size:12px}}

/* ---------- import wizard ---------- */
dialog.wide{width:860px}
.stepper{display:flex;gap:6px;list-style:none;margin:0 0 20px;padding:0;counter-reset:s}
.stepper li{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted);min-width:0}
.stepper li:not(:last-child):after{content:'';flex:1;height:2px;border-radius:2px;background:var(--line);min-width:8px}
.stepper li.done:not(:last-child):after{background:var(--brand)}
.stepper b{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font:700 12px Arial;background:#eef3f4;color:var(--muted);transition:.3s var(--spring)}
.stepper b svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.stepper li.now{color:var(--ink)}.stepper li.now b{background:var(--brand);color:#fff;box-shadow:0 0 0 5px #0e8f7426}
.stepper li.done b{background:var(--brand);color:#fff}
.stepper span{white-space:nowrap}
.kind-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.kind-pick label{position:relative;cursor:pointer}
.kind-pick input{position:absolute;opacity:0;width:0;height:0}
.kind-pick span{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border:1.5px solid var(--line);border-radius:18px;font-size:13px;font-weight:700;color:var(--ink2);transition:.25s var(--ease)}
.kind-pick i{width:42px;height:42px;border-radius:14px;background:#eef3f4;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:.25s}
.kind-pick i svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.kind-pick input:checked+span{border-color:var(--brand);background:#f1faf6;color:#0a5a4b;box-shadow:0 0 0 4px #0e8f741a}
.kind-pick input:checked+span i{background:var(--brand);color:#fff}
.kind-pick input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.imp-fields{font-size:12px;margin-bottom:14px}
.dropfield small{font-size:11px;color:var(--muted);font-weight:400}
.imp-file{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#f5f9f9;margin-bottom:14px}
.imp-file>svg{width:28px;height:28px;color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.6}
.imp-file>div{flex:1;min-width:0}.imp-file b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:right}.imp-file small{font-size:11px;color:var(--muted)}
.imp-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:12px 0}
.imp-h{font-size:14px;margin:18px 0 10px}
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.map-row{display:grid;grid-template-columns:minmax(110px,40%) 18px 1fr;align-items:center;gap:8px;padding:6px 6px 6px 10px;border:1.5px solid var(--line);border-radius:14px;transition:.2s}
.map-row.on{border-color:#b5e3d2;background:#f5fbf8}
.map-row.need{border-color:#f3cfc7;background:#fff8f6}
.map-field{font-size:13px;font-weight:600;color:var(--ink)}.map-field em{color:var(--red);font-style:normal}
.map-arrow{font-style:normal;color:#a9bcbf;text-align:center}
.map-row select{min-height:40px;padding:7px 10px;border-radius:11px;font-size:12px;width:100%}
.imp-summary{display:flex;align-items:center;gap:8px;margin:14px 0 8px;padding:12px 14px;border-radius:14px;background:var(--mint);color:#0a5a4b;font-size:13px;font-weight:600}
.imp-summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.imp-summary.warn{background:#fff3dd;color:#8a5a12}
.imp-preview{border:1px solid var(--line);border-radius:14px;max-height:280px}
.imp-preview th{position:sticky;top:0;z-index:1}
.imp-preview td,.imp-preview th{padding:9px 12px;font-size:12px}
.imp-preview td.miss{background:#fff1ee;color:var(--red)}
.imp-note{display:block;font-size:11px;color:var(--muted);margin-top:6px}
.imp-lead{margin-bottom:14px}
.imp-run{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px 10px;text-align:center}
.imp-run b{font-size:15px}.imp-run .progress{width:100%;max-width:420px}
.spinner{width:46px;height:46px;border-radius:50%;border:4px solid #e3eef0;border-top-color:var(--brand);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.result-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.result-tiles div{padding:14px 10px;border-radius:16px;text-align:center;background:#f5f9f9;animation:pop .45s var(--spring) backwards}
.result-tiles div:nth-child(2){animation-delay:.06s}.result-tiles div:nth-child(3){animation-delay:.12s}.result-tiles div:nth-child(4){animation-delay:.18s}
.result-tiles b{display:block;font:800 26px Arial}.result-tiles span{font-size:12px;color:var(--muted)}
.result-tiles .ok b{color:var(--brand)}.result-tiles .blue b{color:var(--blue)}.result-tiles .gray b{color:#7b8f94}.result-tiles .bad b{color:var(--red)}
.imp-done{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px}
.imp-done span{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#34d399,#0e8f74);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #0e8f7440;animation:pop .5s var(--spring)}
.imp-done svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;animation:draw .5s .2s var(--ease) backwards}
@media(max-width:820px){
  .kind-pick{grid-template-columns:1fr 1fr}
  .map-grid{grid-template-columns:1fr}
  .map-row{grid-template-columns:1fr;gap:6px;padding:10px}.map-arrow{display:none}
  .stepper span{display:none}.stepper li.now span{display:inline}
  .result-tiles{grid-template-columns:1fr 1fr}
}

/* desktop tidy-up */
@media(min-width:821px){
  .device-table.compact th:nth-child(n+4),.device-table.compact td:nth-child(n+4){display:none}
  .device-table td[data-label="المسؤول"],.device-table td[data-label="الموقع"]{white-space:normal;min-width:150px}
  .user-card{display:flex;flex-direction:column}.user-card .card-actions{margin-top:auto}
  .user-card .perm-chips{min-height:30px}
  .grid>.panel,.grid>.stack>.panel:last-child{display:flex;flex-direction:column}
  .stack>.panel:last-child{flex:1}
}
@media(min-width:821px) and (max-width:1100px){
  aside{width:208px;padding-inline:12px}.shell{margin-right:208px}
  .workspace{display:none}.navlabel{margin-top:6px}
  .brand small{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .date{display:none}
}

/* ================= v5: divisions → locations → devices, device history, monthly weekly plan, user scope ================= */
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:2px 0 14px}
.crumbs a{color:var(--brand);font-weight:600}.crumbs a:hover{text-decoration:underline}.crumbs b{color:var(--ink)}.crumbs span{color:#b8c7ca}
.div-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.div-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:22px;background:#fff;box-shadow:var(--sh1);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s;animation:rise .5s calc(var(--i,0)*60ms) var(--ease) backwards}
.div-card:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#34d399,#0e8f74)}
.div-card:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.div-top{display:flex;align-items:center;gap:12px}.div-top b{flex:1;font-size:16px}
.div-ic{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#e7f6f0,#d3f0e6);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.div-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.div-ic.big{width:58px;height:58px;border-radius:19px;background:#ffffff1f;color:#a7f3d0}.div-ic.big svg{width:28px;height:28px}
.chev{width:30px;height:30px;border-radius:10px;background:#f2f7f6;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:.3s var(--ease)}
.chev svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.div-card:hover .chev{background:var(--brand);color:#fff;transform:translateX(-4px)}
.div-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:6px;text-align:center}
.div-nums div{padding:8px 4px;border-radius:12px;background:#f6f9f9}.div-nums strong{display:block;font:800 20px Arial}.div-nums small{font-size:11px;color:var(--muted)}
.sbar{display:flex;height:8px;border-radius:8px;overflow:hidden;background:#eef3f4;gap:2px}
.sbar i{display:block;height:100%;animation:fill .9s .15s var(--ease) backwards}
.div-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink2)}
.div-legend span{display:inline-flex;align-items:center;gap:6px}.div-legend i{width:8px;height:8px;border-radius:50%}.div-legend b{font:700 12px Arial}
.div-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;padding:22px 24px;margin-bottom:16px;border-radius:26px;color:#fff;background:radial-gradient(70% 140% at 0 0,#2dd4bf40,transparent 60%),linear-gradient(135deg,#0a2f33,#0e6b5a);box-shadow:0 18px 40px #0a2f3330}
.div-hero-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.div-hero-txt{flex:1;min-width:160px}
.div-hero h1{color:#fff;font-size:26px;margin:0}.div-hero p{color:#bfe7da;font-size:13px}
.div-hero .sbar{background:#ffffff1f}.div-hero .div-legend{color:#d1fae5}
.div-hero .btn:not(.primary){background:#ffffff14;border-color:#ffffff2e;color:#fff}.div-hero .more-button{background:#ffffff14;border-color:#ffffff2e;color:#fff}
.seg{display:flex;gap:4px;padding:5px;margin-bottom:18px;border-radius:16px;background:#fff;box-shadow:var(--sh1);overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}
.seg a{flex:1;text-align:center;white-space:nowrap;padding:10px 14px;border-radius:12px;font-size:13px;font-weight:700;color:var(--ink2);transition:.25s var(--ease)}
.seg a b{font:700 11px Arial;background:#eef3f4;border-radius:8px;padding:2px 7px;margin-inline-start:4px}
.seg a.active{background:var(--deep);color:#fff;box-shadow:0 6px 14px #0a2f3333}.seg a.active b{background:#ffffff26;color:#fff}
.loc-h{font-size:13px;color:#0b6b57;margin:18px 2px 10px}
.loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.loc-grid.pad{padding:0 18px 18px}
.loc-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:4px 12px;align-items:center;padding:14px;border-radius:18px;background:#fff;box-shadow:var(--sh1);transition:transform .3s var(--ease),box-shadow .3s;animation:rise .45s calc(var(--i,0)*40ms) var(--ease) backwards}
.loc-tile:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.loc-tile .row-ic{grid-row:span 2}.loc-tile b{font-size:14px;display:block}.loc-tile small{font-size:12px;color:var(--muted)}.loc-tile small em{color:var(--red);font-style:normal;font-weight:600}
.loc-tile .sbar{grid-column:2;height:6px}
.loc-tile.is-empty{box-shadow:none;border:1.5px dashed #d5e2e4;background:#fbfdfd}.loc-tile.is-empty .row-ic{background:#eef3f4;color:#9ab0b3}
.team-list{display:grid;gap:10px}
.team-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:18px;background:#fff;box-shadow:var(--sh1);animation:rise .45s calc(var(--i,0)*50ms) var(--ease) backwards}
.team-row[role=button]{cursor:pointer}.team-row>div:first-of-type{flex:1;min-width:140px}.team-row b{display:block}.team-row small{color:var(--muted);font-size:12px}.team-row .perm-chips{margin:0}
.div-rows{display:flex;flex-direction:column;padding:0 22px 16px}
.div-row{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:12px 0;border-top:1px solid #eef3f4;transition:transform .25s var(--ease)}
.div-row:first-child{border-top:0}.div-row:hover{transform:translateX(-4px)}.div-row span{font-size:12px;color:var(--muted)}.div-row .sbar{grid-column:1/-1;height:6px}
.search-res{margin-bottom:18px}
.pad{padding:0 20px 20px}
.taskicon.tl-in{background:#e3f5ec;color:var(--brand)}.taskicon.tl-out{background:#fdecea;color:var(--red)}.taskicon.tl-move{background:#e9f0fc;color:var(--blue)}
/* device file */
.dev-head{display:flex;gap:16px;align-items:center;margin-bottom:14px}
.dev-photo{width:96px;height:96px;flex-shrink:0;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#eef6f3,#dcefe8);display:flex;align-items:center;justify-content:center}
.dev-photo img{width:100%;height:100%;object-fit:cover}.dev-photo svg{width:80px;height:80px}
.dev-head h2{font-size:20px;line-height:1.4}.dev-head p{text-align:right}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.details .full-cell{grid-column:1/-1}
details.sect{margin-top:14px;border:1px solid var(--line);border-radius:18px;padding:0 14px;background:#fff}
details.sect>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:14px 2px;cursor:pointer;font-weight:700;font-size:14px}
details.sect>summary::-webkit-details-marker{display:none}
details.sect>summary svg{width:18px;height:18px;color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
details.sect>summary b{font:700 11px Arial;background:#eef3f4;border-radius:8px;padding:2px 8px;color:var(--muted)}
details.sect>summary:after{content:'▾';margin-inline-start:auto;color:var(--muted);transition:transform .3s}
details.sect[open]>summary:after{transform:rotate(180deg)}
details.sect[open]{padding-bottom:14px}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline:before{content:'';position:absolute;top:8px;bottom:8px;right:17px;width:2px;background:#e3ebed;border-radius:2px}
.timeline li{position:relative;display:flex;gap:12px;padding:8px 0;animation:rise .4s var(--ease) backwards}
.timeline li>i{position:relative;z-index:1;width:36px;height:36px;flex-shrink:0;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e9f0fc;color:var(--blue);box-shadow:0 0 0 4px #fff}
.timeline li>i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.timeline .tl-in>i{background:#e3f5ec;color:var(--brand)}.timeline .tl-out>i{background:#fdecea;color:var(--red)}
.timeline li>div{flex:1;min-width:0}.timeline b{display:block;font-size:13px;line-height:1.7}.timeline small{display:block;font-size:11px;color:var(--muted)}
.timeline p{margin-top:4px;padding:6px 10px;border-radius:10px;background:#f6f9f9;color:var(--ink2);font-size:12px}
.form-h{grid-column:1/-1;font-size:13px;color:var(--brand);margin:6px 0 -6px;padding-top:8px;border-top:1px dashed var(--line)}
.form-h:first-child{border-top:0;padding-top:0;margin-top:0}
/* weekly plan */
.month-index{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 14px;scrollbar-width:none}.month-index::-webkit-scrollbar{display:none}
.mchip{position:relative;overflow:hidden;flex-shrink:0;min-width:136px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 14px 14px;border:1.5px solid var(--line);border-radius:16px;background:#fff;text-align:right;transition:.25s var(--ease)}
.mchip b{font-size:13px}.mchip small{font-size:11px;color:var(--muted)}
.mchip i{position:absolute;bottom:0;right:0;height:4px;width:var(--w,0);background:linear-gradient(90deg,#34d399,#0e8f74);transition:width .5s}
.mchip:hover{border-color:#bfe0d6}.mchip.active{border-color:var(--brand);background:#f1faf6;box-shadow:0 0 0 4px #0e8f741a}
.month-head{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:12px;border-radius:22px;background:#fff;box-shadow:var(--sh1)}
.month-head>div:first-of-type{flex:1;text-align:center}.month-head h2{font-size:20px}.month-head small{color:var(--muted);font-size:12px}
.month-head .btn{min-width:46px;font-size:20px;padding:6px 10px}
.mini-ring{width:54px;height:54px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--brand) calc(var(--p)*1%),#e6eef0 0);position:relative}
.mini-ring:before{content:'';position:absolute;inset:5px;border-radius:50%;background:#fff}.mini-ring b{position:relative;font:800 12px Arial;color:var(--brand2)}
.people-fold{margin:0 0 16px}
.people-table{padding:0 18px 16px;display:grid;gap:8px}
.pt-row{display:grid;grid-template-columns:auto minmax(110px,1fr) minmax(80px,1.4fr) auto auto;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:#f8fbfb}
.pt-row .avatar{width:32px;height:32px;font-size:10px}.pt-row b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pt-n{font:700 12px Arial;color:var(--ink2)}
.week-card{margin-bottom:16px;border-radius:24px;background:#fff;box-shadow:var(--sh1);overflow:hidden;animation:rise .5s calc(var(--i,0)*60ms) var(--ease) backwards}
.week-card.current{box-shadow:0 0 0 2px var(--brand),var(--sh2)}
.week-card>header{position:static;height:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;background:#f7fafa;border-bottom:1px solid #eef3f4;backdrop-filter:none}
.week-card>header>div:first-child{min-width:150px}.week-card>header b{display:block;font-size:15px}.week-card>header b em{font-style:normal;font-size:11px;color:#fff;background:var(--brand);padding:2px 8px;border-radius:8px;margin-inline-start:6px;vertical-align:2px}
.week-card>header small{font-size:12px;color:var(--muted)}.week-card>header .progress{min-width:90px}.wk-n{font:800 14px Arial;color:var(--brand2)}
.plan-list{display:flex;flex-direction:column}
.week-card .plan-list{padding:6px 12px 12px}
.plan-item{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:start;padding:14px 8px;border-top:1px solid #eef3f4;transition:background .25s}
.plan-list>.plan-item:first-child{border-top:0}
.plan-item:hover{background:#fafcfc}
.pi-when{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:16px;background:linear-gradient(135deg,#e7f6f0,#f3faf7);text-align:center}
.pi-when b{font-size:13px;color:#0a5a4b}.pi-when span{font-size:12px;color:var(--ink2)}.pi-when em{font:700 12px Arial;font-style:normal;color:var(--brand2);margin-top:4px;white-space:nowrap}
.pi-body{min-width:0}.pi-body h4{font-size:15px;line-height:1.5}.pi-body>p{margin:4px 0;white-space:pre-wrap}
.pi-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 10px;font-size:12px;color:var(--muted)}
.pi-meta span{display:inline-flex;align-items:center;gap:5px}.pi-meta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pi-count{font-weight:700;color:#a9741a}.pi-count.all{color:var(--brand)}
.people{display:flex;flex-wrap:wrap;gap:6px}
.person{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border:1.5px solid var(--line);border-radius:20px;background:#fff;font-size:12px;color:var(--ink2);transition:.25s var(--spring)}
button.person:not([tabindex="-1"]):hover{border-color:var(--brand);transform:translateY(-1px)}
.person .avatar{width:24px;height:24px;font-size:9px;background:#eef3f4;color:var(--muted)}
.person em{font-style:normal;white-space:nowrap}
.person>i{width:16px;height:16px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center}
.person>i svg{width:10px;height:10px;fill:none;stroke:#fff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.person.ok{border-color:#a7e3cd;background:#f1faf6;color:#0a5a4b}.person.ok .avatar{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#0a5a4b}
.pi-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}.pi-actions .btn{min-height:40px;white-space:nowrap}
.plan-item.done .pi-body h4{color:#7b9a96}.plan-item.done .pi-when{background:#f1f5f5}
.plan-item.done .pi-when b,.plan-item.done .pi-when em{color:var(--muted)}
/* plan form + user access */
.target-box{gap:10px}.target-box>span{font-weight:600}
.seg-pick{display:flex;gap:6px;flex-wrap:wrap}
.seg-pick label{position:relative;cursor:pointer}.seg-pick input{position:absolute;opacity:0;width:0;height:0;min-height:0}
.seg-pick span{display:inline-flex;padding:9px 16px;border:1.5px solid var(--line);border-radius:12px;font-size:13px;font-weight:600;color:var(--ink2);transition:.2s var(--ease)}
.seg-pick input:checked+span{border-color:var(--brand);background:var(--mint);color:#0a5a4b}
.seg-pick input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.target-box .t-division,.target-box .t-users{display:none}
.target-box:has(input[value=division]:checked) .t-division,.target-box:has(input[value=users]:checked) .t-users{display:block;animation:rise .3s var(--ease)}
.target-box .t-division select{width:100%;min-height:48px}
.access-box{border:1.5px solid #b5e3d2;background:#f6fbf9;border-radius:18px;padding:14px;display:grid;gap:14px}
.access-box legend{display:flex;align-items:center;gap:6px;color:#0a5a4b}.access-box legend svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.acc-row{display:grid;gap:8px}.acc-row>b{font-size:13px}
.acc-list{display:flex;flex-wrap:wrap;gap:6px;padding:10px;border-radius:14px;background:#fff;border:1px solid var(--line);max-height:220px;overflow:auto}
.acc-row:has(input[value=all]:checked) .acc-list{display:none}
.acc-group{width:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.acc-group>small{width:100%;font-size:11px;color:var(--muted);font-weight:700;margin-top:4px}
.check-chip{position:relative;cursor:pointer}.check-chip input{position:absolute;opacity:0;width:0;height:0;min-height:0}
.check-chip span{display:inline-flex;padding:6px 12px;border:1.5px solid var(--line);border-radius:20px;font-size:12px;font-weight:500;color:var(--ink2);transition:.2s}
.check-chip input:checked+span{border-color:var(--brand);background:var(--brand);color:#fff}
.check-chip input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.access-box .switch-field{background:#fff}
.scope-line{display:flex;align-items:center;gap:8px;margin:12px 20px 0;padding:8px 12px;border-radius:12px;background:#f5f9f9;font-size:12px;color:var(--ink2)}
.scope-line svg{width:16px;height:16px;flex-shrink:0;color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.8}
.user-card .perm-chips{margin-top:10px}
@media(max-width:820px){
  .div-grid,.loc-grid{grid-template-columns:1fr}
  .div-hero{padding:18px;border-radius:24px}.div-hero h1{font-size:21px}.div-hero .buttons{width:100%}.div-hero .buttons .btn{flex:1}
  .seg{margin:0 -2px 14px}.seg a{padding:9px 10px;font-size:12px}
  .plan-item{grid-template-columns:1fr;gap:10px;padding:14px 4px}
  .pi-when{flex-direction:row;justify-content:flex-start;gap:8px;padding:8px 12px;border-radius:12px}.pi-when em{margin:0 auto 0 0}
  .pi-actions{flex-direction:row;justify-content:flex-end}.pi-actions .btn{flex:1}
  .week-card>header{padding:12px 14px}.week-card>header .progress{order:5;flex-basis:100%}
  .month-head{padding:12px}.month-head h2{font-size:17px}.mini-ring{display:none}
  .pt-row{grid-template-columns:auto 1fr auto}.pt-row .progress{grid-column:1/-1;order:5}.pt-row .badge{display:none}
  .dev-head{align-items:flex-start}.dev-photo{width:76px;height:76px;border-radius:20px}
  .loc-grid.pad{padding:0 12px 12px}
}

/* ---------- v5.1: errors inside the window, add-device everywhere ---------- */
#toast.error{background:#a8321d;box-shadow:0 14px 40px #a8321d55;font-weight:600}
dialog #toast{position:fixed;top:calc(18px + env(safe-area-inset-top));bottom:auto;z-index:5}
.form-error{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;border-radius:14px;background:#fdecea;border:1px solid #f4c7bf;color:#a1301c;font-size:13px;font-weight:600;line-height:1.7;animation:shake .45s ease}
.form-error svg{width:20px;height:20px;flex-shrink:0;margin-top:2px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.field.invalid{color:#b3361f}
.field.invalid input,.field.invalid select,.field.invalid textarea,input.invalid{border-color:var(--red)!important;box-shadow:0 0 0 4px #e2604c26!important;background:#fff8f7}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.card-wrap{position:relative;display:grid}
.card-wrap>a{min-width:0}
.card-add{position:absolute;z-index:2;top:12px;left:12px;display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px;border:0;border-radius:11px;background:linear-gradient(135deg,#12a384,#0a6b5c);color:#fff;font-size:12px;font-weight:700;box-shadow:0 6px 14px #0e8f7440;transition:transform .25s var(--spring),box-shadow .25s}
.card-add:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 20px #0e8f7455}
.card-add:active{transform:scale(.94)}
.card-add svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.card-add span:empty{display:none}
.card-wrap:has(.card-add) .chev{display:none}
.loc-grid .card-add{top:50%;transform:translateY(-50%);width:34px;padding:0;justify-content:center}
.loc-grid .card-add:hover{transform:translateY(-50%) scale(1.08)}
.loc-grid .card-wrap:has(.card-add) .loc-tile{padding-left:56px}
.fab{display:none}
@media(max-width:820px){
  .fab{position:fixed;z-index:29;left:18px;bottom:calc(92px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;width:58px;height:58px;border:0;border-radius:20px;color:#fff;background:linear-gradient(135deg,#12a384,#0a5a4b);box-shadow:0 14px 30px #0e8f7466;animation:pop .5s .2s var(--spring) backwards}
  .fab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
  .fab:active{transform:scale(.92)}
  .card-add{height:38px}.loc-grid .card-add{width:38px}
  dialog #toast{width:calc(100% - 32px)}
}

/* ================= v6: nested divisions/locations, list rows, filters, pro import/export ================= */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.filters input[type=search]{flex:1 1 240px;min-height:46px;border-radius:14px;border-color:transparent;box-shadow:var(--sh1);padding-inline:16px}
.filters select{flex:0 1 190px;min-height:46px;border-radius:14px;border-color:transparent;box-shadow:var(--sh1);font-size:13px}
.filters .btn{min-height:46px}
.exp-filters .field{flex:1 1 200px}.exp-filters .field.full{flex-basis:100%}
.result-count{font-size:12px;color:var(--muted);margin:0 4px 10px;font-weight:600}
.add-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;border:2px dashed #b5d9cd;border-radius:22px;background:#f6fbf9;color:var(--brand);font-size:13px;font-weight:700;transition:.25s var(--ease)}
.add-tile svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.add-tile:hover{border-color:var(--brand);background:#ecf8f3;transform:translateY(-3px)}
.add-tile.small{min-height:74px;flex-direction:row;border-radius:18px}
.sub-grid{margin-bottom:6px}
.loc-h{display:flex;align-items:center;gap:6px}.loc-h svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.acc-hint{display:block;width:100%;font-size:11px;color:var(--muted);margin-top:4px}
.imp-h-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.imp-h-row .imp-h{margin-bottom:10px}.imp-h small{color:var(--muted);font-weight:500}
/* list panels: rows instead of cards, everywhere */
.list-panel{overflow:hidden}
.device-table .m-sub,.user-table .m-sub{display:none}
.m-chev{width:28px;color:#b6c6c9}.m-chev svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.st-dot{display:none;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}
.user-table tbody tr{cursor:pointer;transition:background .2s}.user-table tbody tr:hover{background:#f6fbf9}
.usercell{display:flex;align-items:center;gap:12px}.usercell>div{min-width:0}.usercell b{display:block}.usercell small{font:11px Arial;color:#9db0b3}
.usercell .avatar{width:40px;height:40px}
.pill-n{font:700 12px Arial;background:#eef3f4;border-radius:8px;padding:3px 8px;color:var(--ink2)}
.dev-photo.person span{font-size:28px;font-weight:800;color:#0a5a4b}
.mini-list{display:flex;flex-direction:column}
.mini-list button{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;text-align:right;padding:10px 4px;border:0;border-top:1px solid #eef3f4;background:none}
.mini-list button:first-child{border-top:0}.mini-list .st-dot{display:inline-block;grid-row:span 2}.mini-list b{font-size:13px}.mini-list small{font-size:11px;color:var(--muted)}
/* import */
.big-drop{padding:38px 16px}
.dropfield.drag{border-color:var(--brand);background:#e3f5ec;transform:scale(1.01)}
.result-tiles.five{grid-template-columns:repeat(5,1fr)}
.result-tiles button{padding:14px 8px;border-radius:16px;text-align:center;background:#f5f9f9;border:2px solid transparent;transition:.2s var(--ease);animation:pop .45s var(--spring) backwards}
.result-tiles button:hover{transform:translateY(-2px)}.result-tiles button.sel{border-color:currentColor;background:#fff}
.result-tiles button b{display:block;font:800 24px Arial}.result-tiles button span{font-size:12px;color:var(--muted)}
.result-tiles .ok{color:var(--brand)}.result-tiles .blue{color:var(--blue)}.result-tiles .gray{color:#7b8f94}.result-tiles .bad{color:var(--red)}.result-tiles .warnt{color:#c58a25}
.result-tiles .warnt b{color:#c58a25}
.chk-head{display:flex;justify-content:space-between;align-items:center;margin:12px 2px 8px;font-size:13px;font-weight:700}
.chk-table{max-height:340px}
.chk-table tr.r-error td{background:#fff7f5}
.m-err,.m-warn,.m-ok{display:block;font-size:12px;line-height:1.7}
.m-err{color:#b3361f;font-weight:600}.m-err:before{content:'✕ '}
.m-warn{color:#9a6a12}.m-warn:before{content:'! '}
.m-ok{color:var(--brand)}.m-ok:before{content:'✓ '}
@media(max-width:820px){
  .filters{gap:8px}.filters input[type=search]{flex-basis:100%;font-size:16px}.filters select{flex:1 1 calc(50% - 8px);min-width:0}
  .filters .btn{flex:1 1 auto}
  .result-tiles.five{grid-template-columns:repeat(3,1fr)}
  /* device + user tables become tidy list rows (not cards) */
  .panel#deviceTable,.panel:has(>.tablewrap>.device-table),.list-panel{background:#fff!important;box-shadow:var(--sh1)!important;border-radius:20px;overflow:hidden!important}
  .panel:has(>.tablewrap>.device-table)>.panelhead{padding:14px 16px 4px}
  .device-table,.user-table{display:block;white-space:normal}.device-table thead,.user-table thead{display:none}.device-table tbody,.user-table tbody{display:block}
  .device-table tr,.user-table tr{display:flex!important;align-items:center;gap:10px;margin:0!important;padding:11px 14px!important;border-radius:0!important;box-shadow:none!important;background:#fff;border-top:1px solid #eef3f4;animation:fade .35s ease backwards;overflow:visible}
  .device-table tr:first-child,.user-table tr:first-child{border-top:0}
  .device-table tr:before{display:none!important}
  .device-table tr:active,.user-table tr:active{background:#f1f8f5;transform:none}
  .device-table td,.user-table td{display:none!important;padding:0;border:0}
  .device-table td:first-child,.user-table td:first-child{display:block!important;flex:1;min-width:0;padding:0!important;border:0!important;grid-column:auto}
  .device-table td[data-label="الحالة"]{display:flex!important;align-items:center;gap:6px;flex-shrink:0}
  .device-table td[data-label="الحالة"] .badge{display:none}.device-table td[data-label="الحالة"] .badge.red{display:inline-flex;font-size:10px;padding:2px 6px}
  .device-table .st-dot{display:inline-block}
  .device-table td.m-chev,.user-table td.m-chev{display:flex!important;flex-shrink:0;width:auto}
  .devicecell,.usercell{gap:11px}.devicecell .thumb{width:42px;height:42px;border-radius:12px}.devicecell .thumb svg{width:34px;height:34px}
  .device-table .device-more{display:none}
  .device-table td:first-child b,.user-table td:first-child b{font-size:14px;line-height:1.5;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .devicecell small,.usercell small{font-size:11px;margin-top:0}
  .device-table .m-sub,.user-table .m-sub{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .m-sub svg{width:12px;height:12px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2}
  .usercell .avatar{width:42px;height:42px}
  .sub-grid{grid-template-columns:1fr 1fr}.sub-grid .div-card{padding:14px;gap:10px}.sub-grid .div-nums div:nth-child(n+3){display:none}.sub-grid .div-top b{font-size:14px}
  .add-tile{min-height:90px}
}
@media(max-width:820px){.sub-grid .card-add{width:34px;padding:0;justify-content:center;top:10px;left:10px}.sub-grid .card-add span{display:none}.sub-grid .card-wrap:has(.card-add) .div-top{padding-left:36px}.div-hero .buttons .btn{padding-inline:10px;font-size:12px}}
@media(max-width:820px){.chk-table{max-height:none;border:0}.chk-table table,.chk-table tbody{display:block;white-space:normal}.chk-table thead{display:none}.chk-table tr{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:10px 4px;border-top:1px solid #eef3f4}.chk-table td{padding:0;border:0;font-size:13px}.chk-table td:first-child{grid-row:span 3;font:700 12px Arial;color:var(--muted);padding-top:3px}.chk-table td:nth-child(3){font-weight:700}.chk-table tr.r-error td{background:none}.chk-table tr.r-error{background:#fff7f5}}
.exp-filters .field select,.exp-filters .field input{flex:none;max-width:none;min-height:46px}.exp-filters{align-items:flex-end}.kind-pick{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}

/* ================= v7: live notifications, reminders, swipe + scroll hints ================= */
#popHost{position:fixed;z-index:130;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));display:flex;flex-direction:column;gap:10px;pointer-events:none}
.pop{pointer-events:auto;display:flex;gap:12px;align-items:flex-start;padding:14px 14px 14px 10px;border-radius:20px;background:#fffffff5;border:1px solid #e3ebed;box-shadow:0 20px 50px #0a2f3338;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:popIn .5s var(--spring) both;touch-action:pan-y}
.pop.out{animation:popOut .26s ease-in forwards}
.pop-ic{width:42px;height:42px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#12a384,#0a5a4b);box-shadow:0 6px 14px #0e8f7440;animation:ring-bell 1s .25s ease}
.pop-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pop-task .pop-ic{background:linear-gradient(135deg,#4c7bd0,#2f55a0);box-shadow:0 6px 14px #4c7bd040}
.pop-remind .pop-ic{background:linear-gradient(135deg,#f0b24a,#c9821c);box-shadow:0 6px 14px #e9a23b55}
.pop-body{flex:1;min-width:0}.pop-body b{display:block;font-size:14px;line-height:1.5;color:var(--ink)}
.pop-body p{font-size:12.5px;color:var(--ink2);white-space:pre-line;margin-top:2px;line-height:1.7}
.pop-act{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.pop-act button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:700;color:var(--ink2)}
.pop-act button.pri{border:0;background:var(--brand);color:#fff}
.pop-x{border:0;background:none;color:#9fb1b4;font-size:20px;line-height:1;padding:2px 6px}
@keyframes popIn{from{opacity:0;transform:translateY(-24px) scale(.94)}}
@keyframes popOut{to{opacity:0;transform:translateY(-14px) scale(.96)}}
@keyframes ring-bell{15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}75%{transform:rotate(2deg)}}
.notif-card{margin-top:22px;display:grid;gap:14px}
.notif-card h3{display:flex;align-items:center;gap:8px;margin:0}.notif-card h3 svg{width:20px;height:20px;color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.8}
.notif-sys{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#f5f9f9}
.notif-sys>div{flex:1}.notif-sys b{display:block;font-size:13px}.notif-sys small{font-size:12px;color:var(--muted)}
.switch-field.mini{border:0;padding:0;background:none}
.tone-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.tone-row .chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.hint-p{font-size:12px}
/* sideways scrolling: fade at the end + hint */
.sw-more:not(.sw-end){-webkit-mask-image:linear-gradient(to left,transparent 0,#000 56px);mask-image:linear-gradient(to left,transparent 0,#000 56px)}
.swipe-hint{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:-4px 2px 12px;font-size:12px;font-weight:700;color:var(--brand);animation:fade .4s ease;transition:opacity .3s,max-height .3s,margin .3s;max-height:30px;overflow:hidden}
.swipe-hint i{display:flex}.swipe-hint svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;animation:nudgeL 1.1s ease-in-out infinite}
.swipe-hint.gone{opacity:0;max-height:0;margin:0}
@keyframes nudgeL{50%{transform:translateX(-5px)}}
/* vertical: fades on scrollable lists, "scroll for more" pill, back to top */
.v-down:not(.v-up){-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 40px),transparent)}
.v-up:not(.v-down){-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30px);mask-image:linear-gradient(to bottom,transparent,#000 30px)}
.v-up.v-down{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 30px,#000 calc(100% - 40px),transparent)}
.v-hint{position:fixed;z-index:65;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:20px;background:#0a2f33e8;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 8px 22px #0a2f3340;backdrop-filter:blur(8px);opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity .25s,transform .3s var(--ease)}
.v-hint.show{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.v-hint svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-90deg);animation:bobV 1.1s ease-in-out infinite}
@keyframes bobV{50%{translate:0 3px}}
.to-top{position:fixed;z-index:28;left:18px;bottom:24px;width:46px;height:46px;border:0;border-radius:16px;background:#fff;color:var(--brand);box-shadow:var(--sh2);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(12px);transition:.3s var(--ease)}
.to-top.show{opacity:1;pointer-events:auto;transform:none}
.to-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;transform:rotate(90deg)}
@media(max-width:820px){.to-top{bottom:calc(160px + env(safe-area-inset-bottom));left:22px;width:42px;height:42px}body:not([data-page=divisions]) .to-top{bottom:calc(96px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.swipe-hint svg,.v-hint svg,.pop-ic{animation:none}}

/* ================= v8: device lifecycle, locked actions, presets ================= */
.life-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:16px;border:1px solid;animation:rise .4s var(--ease)}
.life-banner>div{flex:1;min-width:180px}.life-banner b{display:block;font-size:14px}.life-banner small{display:block;font-size:12px;line-height:1.7}
.life-banner .lb-ic{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.life-banner .lb-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.life-banner.pending{background:#f6f0fd;border-color:#ddcdf6;color:#5d3c8f}.life-banner.pending .lb-ic{background:linear-gradient(135deg,#a879e0,#7a4fc0);animation:ring-bell 1.2s .4s ease}
.life-banner.stored{background:#eef3fb;border-color:#cfdcf2;color:#35558a}.life-banner.stored .lb-ic{background:linear-gradient(135deg,#6f93cf,#45679f)}
.life-banner.small{margin:0 0 12px}
.btn.locked{color:#9aaaae;border-style:dashed;background:#f8fafa}
.btn.locked svg{width:15px;height:15px}
.status-pick label.disabled{opacity:.45;pointer-events:none}
.status-pick{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.timeline .tl-install>i{background:#d9f4e8;color:#0b7a63}
.timeline .tl-status>i{background:#fff1dc;color:#b57712}
.timeline .tl-maint>i{background:#ecf0ff;color:#4c62c8}
.preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.preset-row>span{font-weight:700}.preset-row small{width:100%;color:var(--muted);font-weight:500}
.note.full{grid-column:1/-1;display:flex;gap:8px;align-items:center}.note svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8}
#mvNote{margin:12px 0 0}

/* side-scroll: arrows on both sides, fades, pretty hint */
.sw-wrap{position:relative}
.sw-wrap>.fade-l:not(.fade-r){-webkit-mask-image:linear-gradient(to left,transparent 0,#000 54px);mask-image:linear-gradient(to left,transparent 0,#000 54px)}
.sw-wrap>.fade-r:not(.fade-l){-webkit-mask-image:linear-gradient(to right,transparent 0,#000 54px);mask-image:linear-gradient(to right,transparent 0,#000 54px)}
.sw-wrap>.fade-l.fade-r{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 54px,#000 calc(100% - 54px),transparent);mask-image:linear-gradient(to right,transparent 0,#000 54px,#000 calc(100% - 54px),transparent)}
.sw-more:not(.sw-end){-webkit-mask-image:none;mask-image:none}
.sw-arrow{position:absolute;z-index:3;top:50%;width:34px;height:34px;margin-top:-17px;border:1px solid #ffffffcc;border-radius:50%;background:#ffffffe8;color:var(--brand);box-shadow:0 6px 16px #0a2f3326;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:scale(.7);transition:opacity .25s,transform .3s var(--spring);backdrop-filter:blur(8px)}
.sw-arrow svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sw-arrow.sw-l{left:2px}.sw-arrow.sw-r{right:2px}.sw-arrow.sw-r svg{transform:rotate(180deg)}
.sw-wrap.more-l .sw-l,.sw-wrap.more-r .sw-r{opacity:1;pointer-events:auto;transform:scale(1)}
.sw-wrap.more-l .sw-l{animation:arrowL 1.6s ease-in-out 2}.sw-wrap.more-r .sw-r svg{animation:none}
.sw-arrow:active{transform:scale(.9)}
.sw-wrap:has(.chips) .sw-arrow,.sw-wrap:has(.seg) .sw-arrow,.sw-wrap:has(.picker-tools) .sw-arrow{margin-top:-24px;width:30px;height:30px}
@keyframes arrowL{50%{transform:translateX(-4px)}}
.swipe-hint{display:flex;justify-content:center;margin:-2px 0 12px;max-height:44px;overflow:visible;animation:rise .45s .3s var(--ease) backwards;transition:opacity .35s,max-height .35s,margin .35s}
.swipe-hint.gone{opacity:0;max-height:0;margin:0;overflow:hidden}
.sh-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:22px;background:linear-gradient(135deg,#0a2f33,#0e6b5a);color:#e9fbf3;box-shadow:0 8px 20px #0a2f3333;font-size:12px}
.sh-pill b{font-weight:700;white-space:nowrap}
.sh-hand{display:flex;color:#a7f3d0}.sh-hand svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;animation:handSwipe 1.8s ease-in-out infinite}
.sh-arr{display:flex;color:#6ee7b7}.sh-arr svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sh-arr.r svg{transform:rotate(180deg);animation:arrR 1.2s ease-in-out infinite}.sh-arr.l svg{animation:arrL2 1.2s ease-in-out infinite}
@keyframes handSwipe{0%,100%{transform:translateX(5px) rotate(8deg)}50%{transform:translateX(-5px) rotate(-8deg)}}
@keyframes arrR{50%{translate:3px 0;opacity:.5}}@keyframes arrL2{50%{translate:-3px 0;opacity:.5}}
@media(min-width:821px){.sw-arrow{width:38px;height:38px;margin-top:-19px}}
@media(prefers-reduced-motion:reduce){.sh-hand svg,.sh-arr svg,.sw-wrap .sw-l{animation:none}}

/* floating add button always sits above the bottom bar (measured at runtime; this is the fallback) */
@media(max-width:820px){
  .fab{z-index:31;bottom:calc(110px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:18px;box-shadow:0 12px 26px #0e8f7455,0 0 0 4px #f2f6f7}
  body[data-page=divisions] .to-top{bottom:calc(182px + env(safe-area-inset-bottom))}
}

/* ===== v8.3 back navigation ===== */
.headstart{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.back-btn{flex:none;width:40px;height:40px;border-radius:14px;border:1px solid #dbe6e8;background:linear-gradient(180deg,#fff,#f3f8f8);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 0 #fff inset,0 4px 12px #0a2f3314;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,border-color .18s,background .18s;animation:backIn .32s cubic-bezier(.2,.8,.2,1)}
.back-btn[hidden]{display:none}
.back-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.back-btn:hover{border-color:#9fd9cb;box-shadow:0 1px 0 #fff inset,0 8px 20px #0e8f7426;color:var(--brand,#0e8f74)}
.back-btn:hover svg{transform:translateX(3px)}
.back-btn:active,.back-btn.tap{transform:scale(.9)}
.back-btn:focus-visible{outline:3px solid #12a38455;outline-offset:2px}
.back-title{display:none;min-width:0;flex-direction:column;line-height:1.25}
.back-title small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.back-title small:before{content:'‹ ';opacity:.6}
.back-title b{font-size:16px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:backTitleIn .3s cubic-bezier(.2,.8,.2,1)}
@keyframes backIn{from{opacity:0;transform:translateX(10px) scale(.85)}to{opacity:1;transform:none}}
@keyframes backTitleIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@media(max-width:820px){
  .headstart{gap:10px}
  body.has-back .headstart .breadcrumb{display:none}
  body.has-back .back-title{display:flex}
  .back-btn{width:42px;height:42px;border-radius:50%;background:#ffffffcc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  body.has-back .headtools .date{display:none}
}
@media(prefers-reduced-motion:reduce){.back-btn,.back-title b{animation:none}}

/* ===== v8.4 clear task names + "done" ===== */
.people{gap:8px}
.person{gap:7px;padding:6px 12px 6px 10px;border-radius:14px;font-size:13px;line-height:1.3}
.person>i{flex:none;width:20px;height:20px}
.person>i svg{width:12px;height:12px}
.person.wait>i{background:#fdf1dc}.person.wait>i svg{stroke:#c98a1e;stroke-width:2.6}
.person em{font-weight:700;color:var(--ink);white-space:normal}
.person small{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#fdf1dc;color:#a9741a}
.person.ok small{background:#d1fae5;color:#0a6b5c}
.person.you{border-color:#9fd9cb;box-shadow:0 0 0 3px #12a38414}
.pi-badge{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;margin-inline-start:6px;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#12a384,#0a6b5c)}
.pi-badge svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.pi-cta{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:16px;border:1.5px dashed #f0c674;background:#fffaf0}
.pi-cta>span{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#8a5a12}
.pi-cta>span svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.done-btn{min-height:46px;padding:0 22px;border:0;border-radius:14px;font-size:15px;font-weight:800;color:#fff;background:linear-gradient(135deg,#16b38f,#0a6b5c);box-shadow:0 8px 20px #0e8f7440;animation:donePulse 2.4s ease-in-out infinite}
.done-btn svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.done-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.done-btn:active{transform:scale(.97)}
@keyframes donePulse{0%,100%{box-shadow:0 8px 20px #0e8f7440,0 0 0 0 #12a38455}50%{box-shadow:0 8px 20px #0e8f7440,0 0 0 8px #12a38400}}
.pi-stamp{margin-top:12px;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #a7e3cd;animation:backTitleIn .35s var(--ease)}
.pi-stamp>i{flex:none;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#16b38f,#0a6b5c);box-shadow:0 6px 14px #0e8f7433}
.pi-stamp>i svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.pi-stamp>div{flex:1;min-width:0}.pi-stamp b{display:block;font-size:15px;color:#0a5a4b}.pi-stamp small{font-size:12px;color:#3d7a6c}.pi-stamp p{margin:4px 0 0;font-size:12px;color:var(--ink2);white-space:pre-wrap}
.pi-stamp .link{flex:none;border:0;background:none;font-size:12px;color:var(--muted);text-decoration:underline;cursor:pointer}
@media(max-width:820px){.pi-cta{flex-direction:column;align-items:stretch;text-align:center}.pi-cta>span{justify-content:center}.done-btn{width:100%}.pi-actions{flex-direction:row;justify-content:flex-end}}
@media(prefers-reduced-motion:reduce){.done-btn{animation:none}}
.person{cursor:default}
