.ass-box{max-width:1180px;margin:40px auto}.ass-register-wrap,.ass-panel{background:#fff;border:1px solid #e4e9f4;border-radius:24px;padding:30px;box-shadow:0 18px 50px rgba(29,16,70,.08)}.ass-register-wrap{max-width:560px;margin:auto}.ass-role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:25px}.ass-role-tabs a{padding:13px;text-align:center;border-radius:14px;background:#f4f0ff;font-weight:800}.ass-role-tabs a.active{background:#6d35d8;color:#fff}.ass-form{display:grid;gap:15px}.ass-form label{font-weight:700;font-size:14px}.ass-form input,.ass-form select,.ass-form textarea{display:block;width:100%;margin-top:7px;border:1px solid #dce2ef;border-radius:12px;padding:13px;font:inherit;background:#fbfcff;box-sizing:border-box}.ass-btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:13px;background:linear-gradient(135deg,#6d35d8,#9b5cff);color:#fff;padding:13px 22px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none;box-shadow:0 10px 24px rgba(109,53,216,.2)}.ass-btn.outline{background:#fff;color:#5630ad;border:1px solid rgba(255,255,255,.65);box-shadow:none}.ass-btn.full{width:100%}.ass-btn.small-btn{padding:9px 14px;font-size:13px}.ass-muted{color:#728099;line-height:1.9}.ass-switch{margin-bottom:0;text-align:center}.ass-switch a{color:#6d35d8;font-weight:800}.ass-notice{border-radius:14px;padding:12px 15px;margin-bottom:15px;font-weight:700}.ass-notice.error{background:#fff1f1;color:#b42318;border:1px solid #fecaca}.ass-notice.success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.ass-virtual-page{min-height:60vh;padding:40px 20px}.ass-virtual-page>.ass-box{max-width:900px;margin:auto}.ass-virtual-page>.ass-box>h1{text-align:center;margin:0 0 18px;color:#241047}
.ass-pro-dashboard{max-width:1160px;margin:auto;direction:rtl;color:#20163a}.ass-pro-head{position:relative;overflow:hidden;background:linear-gradient(135deg,#32136e 0%,#6330bd 55%,#8e52eb 100%);color:#fff;border-radius:30px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:25px;box-shadow:0 25px 60px rgba(73,34,143,.22);margin-bottom:16px}.ass-pro-head:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.08);left:-100px;top:-160px}.ass-pro-user{display:flex;align-items:center;gap:18px;position:relative;z-index:1}.ass-avatar{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;font-size:28px;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}.ass-pro-head h2{margin:8px 0 4px;font-size:27px}.ass-pro-head p{margin:0;color:rgba(255,255,255,.8)}.ass-badge{display:inline-flex;background:#d8b9ff;color:#32136e;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:900}.ass-pro-actions{display:flex;gap:10px;position:relative;z-index:1}.ass-dash-nav{display:flex;gap:8px;background:#fff;border:1px solid #ece8f5;padding:8px;border-radius:18px;margin-bottom:20px;box-shadow:0 12px 30px rgba(40,20,80,.05)}.ass-dash-nav a{padding:10px 16px;border-radius:12px;color:#685e7c;font-weight:800;text-decoration:none}.ass-dash-nav a.active,.ass-dash-nav a:hover{background:#f1e9ff;color:#6330bd}.ass-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.ass-stat-card{position:relative;background:#fff;border:1px solid #ece8f5;border-radius:22px;padding:20px;min-height:105px;box-shadow:0 14px 34px rgba(40,20,80,.06);overflow:hidden}.ass-stat-card span{display:block;color:#766c8a;font-size:13px;font-weight:700}.ass-stat-card strong{display:block;font-size:31px;margin-top:10px;color:#32136e}.ass-stat-card i{position:absolute;left:18px;top:18px;width:40px;height:40px;border-radius:13px;background:#f1e9ff;display:grid;place-items:center;font-style:normal}.ass-dash-columns{display:grid;grid-template-columns:1.35fr .65fr;gap:20px;margin-bottom:20px}.ass-panel{margin:0}.ass-panel-glass{background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(247,241,255,.9));backdrop-filter:blur(12px)}.ass-panel-purple{background:linear-gradient(145deg,#35136f,#7040c9);color:#fff;border:0}.ass-panel-purple .ass-kicker{color:#dfc9ff}.ass-panel-purple h3{font-size:26px;margin:10px 0}.ass-panel-purple p{color:rgba(255,255,255,.78)}.ass-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.ass-section-head h3{margin:5px 0 0;font-size:20px}.ass-kicker{color:#7c42d1;font-size:11px;font-weight:900;letter-spacing:.4px}.ass-mini-icon{width:42px;height:42px;border-radius:14px;background:#f1e9ff;display:grid;place-items:center;font-size:19px}.ass-count{font-size:12px;color:#786e8d;background:#f5f1fa;padding:7px 11px;border-radius:999px;font-weight:800}.ass-profile-summary{display:flex;align-items:center;justify-content:space-between;background:#f8f6fc;padding:15px;border-radius:16px;margin-bottom:12px}.ass-profile-summary b,.ass-profile-summary small{display:block}.ass-profile-summary small{color:#7d738e;margin-top:4px}.ass-verified{background:#e9fbf1;color:#087443;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.ass-info-row{display:flex;justify-content:space-between;padding:13px 2px;border-bottom:1px solid #eeeaf4;font-size:13px}.ass-info-row span{color:#81778f}.ass-progress{background:#faf8fd;padding:15px;border-radius:16px;margin-bottom:18px}.ass-progress>div:first-child{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin-bottom:10px}.ass-progress-bar{height:8px;background:#e9e1f5;border-radius:20px;overflow:hidden}.ass-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,#6d35d8,#b47aff);border-radius:20px}.ass-specialty-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}.ass-specialty-tags span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);padding:7px 10px;border-radius:999px;font-size:11px}.ass-requests-panel{margin-top:20px}.ass-request-list{display:grid;gap:10px}.ass-request-card{display:flex;gap:14px;align-items:flex-start;border:1px solid #eeeaf4;border-radius:18px;padding:16px;background:#fff}.ass-request-icon,.ass-job-icon{width:48px;height:48px;flex:0 0 48px;border-radius:15px;background:#f2eaff;display:grid;place-items:center;font-size:22px}.ass-request-main{flex:1;min-width:0}.ass-request-main>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.ass-request-main h4{margin:0;font-size:15px}.ass-request-main>div:first-child span{font-size:11px;color:#8a8195}.ass-request-main p{margin:9px 0;color:#756c83;font-size:13px;line-height:1.8}.ass-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;white-space:nowrap}.ass-status.new{background:#edf4ff;color:#245db0}.ass-status.pending{background:#fff5df;color:#9a6300}.ass-status.working{background:#efe8ff;color:#6330bd}.ass-status.done{background:#e9fbf1;color:#087443}.ass-status.cancelled{background:#fff0f0;color:#b42318}.ass-assigned{color:#6330bd;font-weight:800}.ass-request-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.ass-job-card{border:1px solid #eee8f7;border-radius:20px;padding:18px;background:linear-gradient(145deg,#fff,#fbf9ff);transition:transform .25s,box-shadow .25s}.ass-job-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(68,34,130,.09)}.ass-job-top{display:flex;justify-content:space-between;align-items:center}.ass-job-card h4{margin:14px 0 9px}.ass-job-meta{display:flex;gap:12px;flex-wrap:wrap;color:#81788f;font-size:11px}.ass-job-card p{color:#746a81;font-size:12px;line-height:1.8;min-height:43px}.ass-inline-form{display:flex;gap:8px;align-items:center;margin-top:10px}.ass-inline-form select{flex:1;border:1px solid #e0d8ed;border-radius:10px;padding:8px;background:#fff}.ass-empty{text-align:center;padding:30px 20px}.ass-empty.small{padding:25px}.ass-empty-icon{font-size:34px;margin-bottom:8px}.ass-empty h2,.ass-empty h4{margin:6px 0}.ass-empty p{color:#7c7388}.compact{max-width:700px}.ass-panel+.ass-panel{margin-top:20px}
@media(max-width:850px){.ass-pro-head{align-items:flex-start;flex-direction:column}.ass-pro-actions{width:100%}.ass-pro-actions .ass-btn{flex:1}.ass-stats{grid-template-columns:repeat(2,1fr)}.ass-dash-columns{grid-template-columns:1fr}.ass-request-grid{grid-template-columns:1fr}}
@media(max-width:560px){.ass-box{margin:20px auto}.ass-pro-head{padding:22px}.ass-pro-head h2{font-size:22px}.ass-dash-nav{overflow:auto}.ass-dash-nav a{white-space:nowrap}.ass-stats{grid-template-columns:1fr 1fr;gap:9px}.ass-stat-card{padding:15px}.ass-stat-card strong{font-size:25px}.ass-request-card{padding:12px}.ass-request-main>div:first-child{align-items:flex-start;flex-direction:column}.ass-inline-form{flex-direction:column;align-items:stretch}}

/* v1.7 — 3D dashboard + profiles */
.ass-avatar-photo{overflow:hidden;position:relative;transform:translateZ(0)}
.ass-avatar-photo img,.ass-avatar-large img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.ass-avatar-large{width:86px;height:86px;border-radius:26px;font-size:32px;flex:0 0 86px;background:linear-gradient(145deg,#8b5cf6,#4c1d95);color:#fff;box-shadow:12px 14px 28px rgba(76,29,149,.22),inset 0 1px 0 rgba(255,255,255,.35)}
.ass-profile-hero{display:flex;align-items:center;gap:16px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#fbf9ff,#f0e9ff);box-shadow:inset 0 1px 0 #fff,0 14px 30px rgba(76,29,149,.07);margin-bottom:16px}
.ass-profile-hero strong,.ass-profile-hero small{display:block}.ass-profile-hero strong{font-size:19px}.ass-profile-hero small{margin-top:5px;color:#7b718a}
.ass-profile-3d{transform:perspective(1200px) rotateX(.4deg);box-shadow:0 24px 55px rgba(44,20,92,.10),inset 0 1px 0 #fff}
.ass-profile-form input[type=file]{padding:10px;background:#fff}
.ass-field-note{font-size:10px;color:#887c98;font-weight:500;margin-right:5px}
.ass-request-photo{display:inline-flex;align-items:center;gap:6px;margin:2px 0 7px;padding:7px 10px;border-radius:10px;background:#f1eaff;color:#6330bd;font-size:11px;font-weight:900;text-decoration:none}
.ass-request-photo:hover{background:#e5d8ff;transform:translateY(-1px)}
.ass-pro-dashboard .ass-stats .ass-stat-card{transform-style:preserve-3d;transition:transform .28s ease,box-shadow .28s ease}
.ass-pro-dashboard .ass-stats .ass-stat-card:hover{transform:perspective(900px) rotateX(4deg) rotateY(-4deg) translateY(-4px);box-shadow:0 24px 42px rgba(55,25,110,.13)}
.ass-pro-dashboard .ass-job-card{position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .3s ease,box-shadow .3s ease}
.ass-pro-dashboard .ass-job-card:before{content:"";position:absolute;inset:-30% auto auto -20%;width:150px;height:150px;border-radius:50%;background:rgba(146,92,246,.10);filter:blur(2px);pointer-events:none}
.ass-pro-dashboard .ass-job-card:hover{transform:perspective(1000px) rotateX(3deg) rotateY(-3deg) translateY(-5px);box-shadow:0 26px 48px rgba(64,30,130,.14)}
.ass-pro-dashboard .ass-job-icon{box-shadow:8px 10px 18px rgba(99,48,189,.10);transform:translateZ(18px)}
.ass-pro-dashboard .ass-panel-purple{position:relative;overflow:hidden;box-shadow:0 25px 55px rgba(68,25,130,.22),inset 0 1px 0 rgba(255,255,255,.22);transform-style:preserve-3d}
.ass-pro-dashboard .ass-panel-purple:before,.ass-pro-dashboard .ass-panel-purple:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.ass-pro-dashboard .ass-panel-purple:before{width:210px;height:210px;left:-90px;bottom:-100px;background:rgba(255,255,255,.08);box-shadow:0 0 70px rgba(255,255,255,.08)}
.ass-pro-dashboard .ass-panel-purple:after{width:120px;height:120px;right:-30px;top:-30px;background:rgba(210,170,255,.13)}
.ass-pro-dashboard .ass-panel-purple>*{position:relative;z-index:1}
.ass-pro-dashboard .ass-panel-purple h3{transform:translateZ(10px);text-shadow:0 7px 20px rgba(20,0,60,.25)}
.ass-pro-dashboard .ass-dash-nav a{transition:transform .2s ease,background .2s ease}.ass-pro-dashboard .ass-dash-nav a:hover{transform:translateY(-2px)}
@keyframes assFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.ass-pro-dashboard .ass-panel-purple .ass-mini-icon{animation:assFloat 4s ease-in-out infinite}
@media(max-width:560px){.ass-avatar-large{width:70px;height:70px;flex-basis:70px}.ass-profile-hero{padding:12px}}


/* v1.9.0 — purple glass dashboard refresh (employer/customer + technician) */
.ass-box{isolation:isolate}
.ass-box:has(.ass-panel){--ass-purple:#742fe0;--ass-violet:#a34ff5;--ass-ink:#28104f;position:relative}
.ass-box:has(.ass-panel)::before{content:"";position:absolute;inset:-22px -18px;z-index:-1;pointer-events:none;border-radius:36px;background:radial-gradient(ellipse at 12% 8%,rgba(173,123,255,.20),transparent 43%),radial-gradient(ellipse at 88% 24%,rgba(111,56,223,.14),transparent 42%),linear-gradient(145deg,#f7f3ff 0%,#f4f8ff 48%,#fbf7ff 100%)}
.ass-box .ass-panel{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(250,244,255,.66));border:1px solid rgba(255,255,255,.92);box-shadow:0 18px 48px rgba(69,35,124,.10),inset 0 1px 0 rgba(255,255,255,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.ass-box .ass-panel::before{content:"";position:absolute;top:-68px;right:-52px;width:190px;height:150px;border-radius:50%;background:linear-gradient(135deg,rgba(164,93,255,.13),rgba(112,48,220,.025));filter:blur(2px);pointer-events:none}
.ass-box .ass-panel:hover{transform:translateY(-4px);border-color:rgba(155,93,245,.35);box-shadow:0 24px 58px rgba(92,42,168,.16),inset 0 1px 0 #fff}
.ass-box .ass-section-head{position:relative;z-index:1}
.ass-box .ass-kicker{color:#8d4be7;font-weight:900;letter-spacing:.01em}
.ass-box .ass-panel h2,.ass-box .ass-panel h3{color:#29134e}
.ass-box .ass-btn{background:linear-gradient(125deg,#7130d7,#a14df2 55%,#8541e8);border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 26px rgba(115,48,215,.23),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}
.ass-box .ass-btn:hover{transform:translateY(-2px);filter:saturate(1.12);box-shadow:0 16px 30px rgba(115,48,215,.30),inset 0 1px 0 rgba(255,255,255,.4)}
.ass-box .ass-mini-icon,.ass-box .ass-stat-icon,.ass-box .ass-avatar{box-shadow:0 8px 20px rgba(121,58,209,.12),inset 0 1px 0 rgba(255,255,255,.85)}
.ass-box .ass-stats,.ass-box .ass-stat-grid{gap:14px}
.ass-box .ass-stat{background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(246,236,255,.78));border:1px solid rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(54,29,97,.08),inset 0 1px 0 #fff;backdrop-filter:blur(14px);transition:transform .25s ease,box-shadow .25s ease}
.ass-box .ass-stat:hover{transform:translateY(-5px) perspective(700px) rotateX(2deg);box-shadow:0 20px 38px rgba(94,48,159,.15),inset 0 1px 0 #fff}
.ass-box .ass-profile-hero{background:linear-gradient(130deg,rgba(250,243,255,.88),rgba(238,224,255,.78));border:1px solid rgba(255,255,255,.9);border-radius:24px;padding:18px;box-shadow:inset 0 1px 0 #fff,0 12px 28px rgba(92,48,145,.08)}
.ass-box .ass-avatar{border:1px solid rgba(255,255,255,.9);background:linear-gradient(145deg,#8f4ae7,#5b26b6);color:#fff}
.ass-box .ass-form input,.ass-box .ass-form select,.ass-box .ass-form textarea{background:rgba(255,255,255,.82);border-color:rgba(151,112,205,.24);box-shadow:inset 0 1px 2px rgba(54,27,92,.035);transition:border-color .2s ease,box-shadow .2s ease}
.ass-box .ass-form input:focus,.ass-box .ass-form select:focus,.ass-box .ass-form textarea:focus{outline:none;border-color:#a15cf0;box-shadow:0 0 0 4px rgba(147,78,229,.12)}
.ass-box .ass-tabs,.ass-box .ass-dashboard-tabs,.ass-box .ass-nav{background:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 10px 28px rgba(67,36,115,.07);backdrop-filter:blur(16px)}
@keyframes assGlassFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.ass-box .ass-stat-icon,.ass-box .ass-mini-icon{animation:assGlassFloat 4.5s ease-in-out infinite}
.ass-box .ass-stat:nth-child(2) .ass-stat-icon{animation-delay:.3s}.ass-box .ass-stat:nth-child(3) .ass-stat-icon{animation-delay:.6s}.ass-box .ass-stat:nth-child(4) .ass-stat-icon{animation-delay:.9s}
@media(max-width:700px){.ass-box:has(.ass-panel)::before{inset:-10px -6px;border-radius:24px}.ass-box .ass-panel{padding:20px;border-radius:20px}.ass-box .ass-panel:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.ass-box .ass-panel,.ass-box .ass-btn,.ass-box .ass-stat,.ass-box .ass-stat-icon,.ass-box .ass-mini-icon{animation:none!important;transition:none!important}.ass-box .ass-panel:hover,.ass-box .ass-btn:hover,.ass-box .ass-stat:hover{transform:none}}


/* v2.0.0 — clearly visible animated purple glass for employer/customer + technician dashboards */
.ass-pro-dashboard{--glass-violet:rgba(127,55,220,.16);--glass-lilac:rgba(202,160,255,.24);}
.ass-pro-dashboard .ass-pro-head{background:linear-gradient(115deg,rgba(54,17,112,.96),rgba(112,42,201,.94),rgba(158,76,242,.94));background-size:220% 220%;animation:assPurpleFlow 9s ease-in-out infinite;box-shadow:0 24px 60px rgba(99,43,180,.27),inset 0 1px 0 rgba(255,255,255,.25)}
.ass-pro-dashboard .ass-dash-nav{background:rgba(246,238,255,.64);border-color:rgba(255,255,255,.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ass-pro-dashboard .ass-stat-card,
.ass-pro-dashboard .ass-panel:not(.ass-panel-purple),
.ass-pro-dashboard .ass-request-card,
.ass-pro-dashboard .ass-job-card{background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(230,209,255,.46),rgba(248,242,255,.72));border:1px solid rgba(255,255,255,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 18px 42px rgba(89,38,156,.12),inset 0 1px 0 rgba(255,255,255,.95);}
.ass-pro-dashboard .ass-stat-card{animation:assGlassBob 5.2s ease-in-out infinite;}
.ass-pro-dashboard .ass-stat-card:nth-child(2){animation-delay:-1.3s}.ass-pro-dashboard .ass-stat-card:nth-child(3){animation-delay:-2.6s}.ass-pro-dashboard .ass-stat-card:nth-child(4){animation-delay:-3.9s}
.ass-pro-dashboard .ass-panel:not(.ass-panel-purple){animation:assPanelHover 7s ease-in-out infinite;}
.ass-pro-dashboard .ass-panel:not(.ass-panel-purple):nth-child(2n){animation-delay:-3.5s}
.ass-pro-dashboard .ass-section-head h3,
.ass-pro-dashboard .ass-stat-card span,
.ass-pro-dashboard .ass-stat-card strong,
.ass-pro-dashboard .ass-request-main h4,
.ass-pro-dashboard .ass-job-card h4,
.ass-pro-dashboard .ass-pro-head h2{animation:assTextFloat 4.6s ease-in-out infinite;text-shadow:0 3px 16px rgba(118,54,202,.12)}
.ass-pro-dashboard .ass-stat-card strong{color:#55209d}
.ass-pro-dashboard .ass-stat-card i,.ass-pro-dashboard .ass-mini-icon,.ass-pro-dashboard .ass-request-icon,.ass-pro-dashboard .ass-job-icon{background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(209,174,255,.72));border:1px solid rgba(255,255,255,.95);box-shadow:0 9px 22px rgba(103,43,180,.18),inset 0 1px 0 #fff;animation:assIconDrift 4s ease-in-out infinite}
.ass-pro-dashboard .ass-dash-nav a{transition:transform .3s ease,background .3s ease,box-shadow .3s ease}
.ass-pro-dashboard .ass-dash-nav a.active,.ass-pro-dashboard .ass-dash-nav a:hover{background:linear-gradient(135deg,rgba(206,170,255,.65),rgba(242,226,255,.82));box-shadow:0 7px 20px rgba(115,49,194,.15);transform:translateY(-3px)}
.ass-pro-dashboard .ass-btn{animation:assButtonPulse 3.8s ease-in-out infinite}
@keyframes assPurpleFlow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes assGlassBob{0%,100%{transform:translateY(0) rotateX(0)}50%{transform:translateY(-6px) rotateX(1deg)}}
@keyframes assPanelHover{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes assTextFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes assIconDrift{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-3deg)}}
@keyframes assButtonPulse{0%,100%{box-shadow:0 12px 26px rgba(115,48,215,.22),inset 0 1px 0 rgba(255,255,255,.35)}50%{box-shadow:0 16px 34px rgba(151,70,240,.38),inset 0 1px 0 rgba(255,255,255,.5)}}
@media(prefers-reduced-motion:reduce){.ass-pro-dashboard .ass-pro-head,.ass-pro-dashboard .ass-stat-card,.ass-pro-dashboard .ass-panel,.ass-pro-dashboard .ass-section-head h3,.ass-pro-dashboard .ass-stat-card span,.ass-pro-dashboard .ass-stat-card strong,.ass-pro-dashboard .ass-request-main h4,.ass-pro-dashboard .ass-job-card h4,.ass-pro-dashboard .ass-pro-head h2,.ass-pro-dashboard .ass-mini-icon,.ass-pro-dashboard .ass-request-icon,.ass-pro-dashboard .ass-job-icon,.ass-pro-dashboard .ass-btn{animation:none!important}}

/* v2.1.0 — technician profile parity with employer glass profile */
.ass-pro-dashboard .ass-technician-profile{background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(239,222,255,.72),rgba(249,244,255,.78));border:1px solid rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 22px 54px rgba(95,43,160,.14),inset 0 1px 0 #fff;}
.ass-pro-dashboard .ass-technician-profile .ass-profile-hero{background:linear-gradient(130deg,rgba(255,255,255,.78),rgba(221,191,255,.56));border:1px solid rgba(255,255,255,.98);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.ass-pro-dashboard .ass-technician-profile .ass-avatar-large{flex:0 0 86px;}
.ass-pro-dashboard .ass-technician-profile .ass-form label{color:#39205d;}
.ass-pro-dashboard .ass-technician-profile .ass-form input[type=file]{padding:10px;background:rgba(255,255,255,.78);border:1px solid rgba(151,112,205,.28);border-radius:13px;}
.ass-pro-dashboard .ass-technician-profile .ass-progress{background:rgba(255,255,255,.56);border:1px solid rgba(255,255,255,.8);}
@media(max-width:560px){.ass-pro-dashboard .ass-technician-profile .ass-profile-hero{align-items:center;gap:12px}.ass-pro-dashboard .ass-technician-profile .ass-avatar-large{width:70px;height:70px;flex-basis:70px}}

/* v2.2.0 — global purple glass hover polish */
:root{--ass-hover-purple:#7d35dc;--ass-hover-lilac:#c9a0ff;--ass-hover-glow:rgba(132,65,220,.28)}
.ass-pro-dashboard a,.ass-virtual-page a,.ass-box a,.ass-pro-dashboard button,.ass-virtual-page button,.ass-box button,.ass-pro-dashboard input[type=submit],.ass-virtual-page input[type=submit],.ass-box input[type=submit]{transition:color .22s ease,background .28s ease,border-color .22s ease,box-shadow .28s ease,transform .28s cubic-bezier(.2,.8,.2,1),filter .22s ease}
.ass-pro-dashboard a:hover,.ass-virtual-page a:hover,.ass-box a:hover{color:#7b35d2;text-shadow:0 0 16px rgba(155,94,230,.24)}
.ass-pro-dashboard button:hover,.ass-virtual-page button:hover,.ass-box button:hover,.ass-pro-dashboard input[type=submit]:hover,.ass-virtual-page input[type=submit]:hover,.ass-box input[type=submit]:hover{transform:translateY(-3px) scale(1.015);filter:saturate(1.15);box-shadow:0 15px 32px var(--ass-hover-glow),inset 0 1px 0 rgba(255,255,255,.5)}
.ass-pro-dashboard h1:hover,.ass-pro-dashboard h2:hover,.ass-pro-dashboard h3:hover,.ass-pro-dashboard h4:hover,.ass-pro-dashboard label:hover,.ass-virtual-page h1:hover,.ass-virtual-page h2:hover,.ass-virtual-page h3:hover,.ass-box h1:hover,.ass-box h2:hover,.ass-box h3:hover,.ass-box label:hover{color:#7d35dc;text-shadow:0 0 18px rgba(155,94,230,.28);transition:color .25s ease,text-shadow .25s ease;cursor:default}
.ass-pro-dashboard .ass-stat-card,.ass-pro-dashboard .ass-panel,.ass-pro-dashboard .ass-request-card,.ass-pro-dashboard .ass-job-card,.ass-pro-dashboard .ass-profile-summary,.ass-virtual-page .ass-box,.ass-box .ass-panel,.ass-box .ass-stat{transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s ease,border-color .25s ease,background .3s ease}
.ass-pro-dashboard .ass-request-card:hover,.ass-pro-dashboard .ass-profile-summary:hover{transform:translateY(-4px) perspective(900px) rotateX(1deg);border-color:rgba(169,119,239,.6);box-shadow:0 18px 38px rgba(84,39,143,.14),inset 0 1px 0 #fff;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(241,226,255,.88))}
.ass-pro-dashboard .ass-stat-card:hover,.ass-pro-dashboard .ass-panel:hover{border-color:rgba(174,126,239,.55);box-shadow:0 22px 46px rgba(92,42,168,.15),inset 0 1px 0 #fff}
.ass-pro-dashboard .ass-dash-nav a:hover,.ass-pro-dashboard .ass-dash-nav a:focus-visible{color:#5e24b3;background:linear-gradient(120deg,rgba(218,190,255,.78),rgba(249,241,255,.95));box-shadow:0 8px 22px rgba(123,53,210,.2),inset 0 1px 0 white;transform:translateY(-3px) scale(1.025)}
.ass-pro-dashboard input:not([type=checkbox]):not([type=radio]):hover,.ass-pro-dashboard select:hover,.ass-pro-dashboard textarea:hover,.ass-box input:not([type=checkbox]):not([type=radio]):hover,.ass-box select:hover,.ass-box textarea:hover{border-color:rgba(135,66,220,.58);box-shadow:0 0 0 3px rgba(153,99,224,.1),0 8px 20px rgba(98,49,158,.07)}
.ass-pro-dashboard a:focus-visible,.ass-pro-dashboard button:focus-visible,.ass-box a:focus-visible,.ass-box button:focus-visible{outline:3px solid rgba(155,99,235,.55);outline-offset:3px}
@media(hover:none){.ass-pro-dashboard .ass-request-card:hover,.ass-pro-dashboard .ass-profile-summary:hover,.ass-pro-dashboard .ass-stat-card:hover,.ass-pro-dashboard .ass-panel:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.ass-pro-dashboard a,.ass-virtual-page a,.ass-box a,.ass-pro-dashboard button,.ass-virtual-page button,.ass-box button,.ass-pro-dashboard .ass-stat-card,.ass-pro-dashboard .ass-panel,.ass-pro-dashboard .ass-request-card,.ass-pro-dashboard .ass-job-card,.ass-pro-dashboard .ass-profile-summary,.ass-box .ass-panel,.ass-box .ass-stat{transition:none!important}}


/* v2.3.0 — visible purple custom cursor */
html, body, body * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M5 2 L5 24 L11 18 L16 29 L21 27 L16 16 L25 16 Z' fill='%237d35dc' stroke='%23ffffff' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 5 3, auto !important; }
a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], select, summary, label[for], .ass-btn, .ass-dash-nav a { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M10 15 V7 a2.5 2.5 0 0 1 5 0 v7 -9 a2.5 2.5 0 0 1 5 0 v10 -7 a2.5 2.5 0 0 1 5 0 v10 l2 -3 a2.5 2.5 0 0 1 4 3 l-5 9 a7 7 0 0 1 -6 3 h-4 a7 7 0 0 1 -6 -4 l-4 -6 a2.5 2.5 0 0 1 4 -3 z' fill='%237d35dc' stroke='%23ffffff' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") 10 3, pointer !important; }
input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="search"], input[type="tel"], textarea, [contenteditable="true"] { cursor: text !important; }
@media (hover: none), (pointer: coarse) { html, body, body * { cursor: auto !important; } }


/* v2.4.0 — dimensional 3D purple cursor */
html, body, body * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f3e7ff'/%3E%3Cstop offset='.35' stop-color='%23b477ff'/%3E%3Cstop offset='.72' stop-color='%23752bd7'/%3E%3Cstop offset='1' stop-color='%23401886'/%3E%3C/linearGradient%3E%3ClinearGradient id='side' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23401982'/%3E%3Cstop offset='1' stop-color='%23220c50'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M7 3 L7 29 L14 22 L20 35 L25 32 L19 20 L30 20 Z' fill='%23220c50' opacity='.45'/%3E%3Cpath d='M5 2 L5 27 L12 20 L18 32 L23 29 L17 18 L28 18 Z' fill='url(%23side)' stroke='%233a167b' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M5 2 L5 27 L12 20 L18 32 L23 29 L17 18 L28 18 Z' fill='url(%23g)' stroke='%23fff' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M7.5 5.5 L7.5 22 L11.8 17.5 L15 19.3 Z' fill='%23fff' opacity='.55'/%3E%3C/svg%3E") 5 2, auto !important;
}
a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], select, summary, label[for], .ass-btn, .ass-dash-nav a {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cdefs%3E%3ClinearGradient id='h' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f7edff'/%3E%3Cstop offset='.28' stop-color='%23c18aff'/%3E%3Cstop offset='.65' stop-color='%23823be5'/%3E%3Cstop offset='1' stop-color='%23401986'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M10 18 V10 a3 3 0 0 1 6 0 v7 V7 a3 3 0 0 1 6 0 v10 V9 a3 3 0 0 1 6 0 v11 l2 -3 a3 3 0 0 1 5 3 l-6 11 a8 8 0 0 1 -7 4 h-4 a8 8 0 0 1 -7 -4 l-4 -6 a3 3 0 0 1 5 -3 l2 2 Z' transform='translate(1 2)' fill='%23220c50' opacity='.45'/%3E%3Cpath d='M9 17 V9 a3 3 0 0 1 6 0 v8 V6 a3 3 0 0 1 6 0 v11 V8 a3 3 0 0 1 6 0 v11 l2 -3 a3 3 0 0 1 5 3 l-6 11 a8 8 0 0 1 -7 4 h-4 a8 8 0 0 1 -7 -4 l-4 -6 a3 3 0 0 1 5 -3 l2 2 Z' fill='url(%23h)' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 16 V9 M18 15 V7 M24 15 V9' stroke='%23fff' stroke-width='1.3' stroke-linecap='round' opacity='.8'/%3E%3C/svg%3E") 10 4, pointer !important;
}


/* ===== Mobile layout safety patch v2.6.0 ===== */
*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:clip}
body{max-width:100%;overflow-x:clip}
img,video,iframe,svg{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}
.ass-box,.ass-virtual-page,.ass-pro-dashboard,.ass-register-wrap,.ass-panel{min-width:0;max-width:100%}
.ass-pro-dashboard{width:min(1160px,100%);padding-inline:16px}
@media(max-width:900px){
  .ass-pro-head{flex-wrap:wrap;padding:24px;border-radius:22px}
  .ass-pro-actions{flex-wrap:wrap}
  .ass-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ass-dash-columns{grid-template-columns:minmax(0,1fr)}
  .ass-dash-nav{flex-wrap:wrap}
  .ass-dash-nav a{flex:1 1 auto;text-align:center}
  .ass-section-head{flex-wrap:wrap}
  .ass-table-wrap,.ass-table-responsive{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:600px){
  .ass-box{margin:20px auto;padding-inline:12px}
  .ass-register-wrap,.ass-panel{padding:18px;border-radius:18px}
  .ass-pro-dashboard{padding-inline:12px}
  .ass-pro-head{padding:20px 16px;gap:16px}
  .ass-pro-user{align-items:flex-start;gap:12px;min-width:0}
  .ass-pro-head h2{font-size:22px;overflow-wrap:anywhere}
  .ass-pro-head p{overflow-wrap:anywhere}
  .ass-avatar{flex:0 0 48px;width:48px;height:48px;border-radius:15px;font-size:22px}
  .ass-pro-actions{width:100%;gap:8px;flex-direction:column}
  .ass-pro-actions a,.ass-pro-actions button{width:100%;text-align:center}
  .ass-stats{grid-template-columns:minmax(0,1fr);gap:10px}
  .ass-stat-card{padding:16px;min-height:90px}
  .ass-stat-card strong{font-size:26px}
  .ass-dash-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;gap:5px}
  .ass-dash-nav a{padding:10px 7px;font-size:13px;min-width:0;overflow-wrap:anywhere}
  .ass-section-head h3{font-size:18px}
  .ass-panel-purple h3{font-size:22px}
  .ass-form input,.ass-form select,.ass-form textarea{font-size:16px}
  .ass-btn{max-width:100%;white-space:normal}
  .site-footer{padding-top:32px}
  .footer-grid{grid-template-columns:minmax(0,1fr)!important;gap:22px;padding-bottom:28px}
  .footer-grid>*{min-width:0;overflow-wrap:anywhere}
  .copyright{padding:16px 12px;line-height:1.8;overflow-wrap:anywhere}
  .page-wrap,.content-card{min-width:0;max-width:100%}
  .content-card{padding:20px 16px;border-radius:18px}
}
@media(prefers-reduced-motion:reduce){.ass-pro-head:after{animation:none!important}}

/* v2.7 device picker (technician registration / profile) */
.ass-device-picker{border:0;margin:0 0 14px;padding:0;min-width:0}
.ass-device-picker legend{font-weight:700;font-size:14px;padding:0;margin-bottom:8px}
.ass-chip-group{display:flex;flex-wrap:wrap;gap:8px}
.ass-form .ass-chip{position:relative;display:inline-block;margin:0;font-weight:600}
.ass-form .ass-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;border:0}
.ass-form .ass-chip span{display:inline-block;padding:9px 15px;border:1px solid rgba(151,112,205,.3);border-radius:999px;background:rgba(255,255,255,.85);font-size:13px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.ass-form .ass-chip input:checked+span{background:#7d35dc;border-color:#7d35dc;color:#fff}
.ass-form .ass-chip input:focus-visible+span{outline:3px solid rgba(147,78,229,.35);outline-offset:2px}


/* v2.9 responsive forms, dashboards and Chrome mobile viewport */
.ass-box, .ass-register-wrap, .ass-panel, .ass-pro-dashboard, .ass-pro-head,
.ass-section, .ass-stat-card, .ass-form, .ass-form label, .ass-table-wrap,
.ass-table-responsive { min-width: 0; max-width: 100%; }
.ass-form input, .ass-form select, .ass-form textarea, .ass-form button { max-width: 100%; }
.ass-form input, .ass-form select, .ass-form textarea { box-sizing: border-box; }
@media (max-width: 600px) {
  .ass-box { width: calc(100% - 20px); }
  .ass-register-wrap, .ass-panel { width: 100%; }
  .ass-form input, .ass-form select, .ass-form textarea { width: 100%; min-height: 44px; font-size: 16px; }
  .ass-form button, .ass-form .ass-btn, .ass-btn { min-height: 44px; }
  .ass-table-wrap table, .ass-table-responsive table { min-width: 620px; }
  .ass-table-wrap, .ass-table-responsive { overflow-x: auto; overscroll-behavior-x: contain; }
  .ass-chip-group { gap: 7px; }
  .ass-form .ass-chip span { padding: 9px 12px; }
  .ass-pro-head, .ass-pro-user { min-width: 0; max-width: 100%; }
  .ass-pro-user > * { min-width: 0; }
  .ass-section-head { flex-wrap: wrap; gap: 10px; }
  .ass-section-head > * { min-width: 0; max-width: 100%; }
  .ass-modal, .ass-popup { max-width: 100vw; }
}
@media (max-width: 380px) {
  .ass-box { width: calc(100% - 14px); }
  .ass-register-wrap, .ass-panel { padding: 14px 11px; }
  .ass-dash-nav { grid-template-columns: minmax(0,1fr); }
  .ass-pro-head h2 { font-size: 20px; }
}

.ass-verification-panel{margin:20px 0}.ass-verification-panel .ass-status{display:inline-block;padding:8px 12px;border-radius:10px;background:#fff4e5}.ass-verification-panel label{display:block;margin:12px 0}.ass-verification-panel input[type=file]{max-width:100%;}
