
:root{--bg:#f4f6fa;--card:#fff;--ink:#182033;--muted:#748096;--nav:#111827;--nav2:#1b2434;--accent:#6d4aff;--accent2:#8b6cff;--line:#e7eaf0;--shadow:0 10px 35px rgba(24,32,51,.06);--green:#12a56a;--blue:#3b82f6;--amber:#e7a619;--red:#d94242}
*{box-sizing:border-box}html{font-size:14px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}
.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,var(--nav),#0f1724);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 16px;display:flex;flex-direction:column;overflow-y:auto;z-index:50}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:900;padding:0 10px 22px}.brandmark{display:grid;place-items:center;width:38px;height:38px;background:linear-gradient(135deg,var(--accent),#a78bfa);border-radius:12px}.nav-label{font-size:10px;letter-spacing:.14em;color:#6f7b91;padding:14px 12px 8px;font-weight:800}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:10px 12px;border-radius:11px;color:#b9c2d1;display:flex;gap:11px;align-items:center;font-weight:650;transition:.15s}.sidebar nav a:hover,.sidebar nav a.active{background:var(--nav2);color:#fff}.sidebar nav a.pos-link{color:#e9e3ff}.sidebar nav a.pos-link.active,.sidebar nav a.pos-link:hover{background:linear-gradient(135deg,#6542ea,#7b5af4)}.userbox{margin-top:auto;padding:16px 8px 2px;display:flex;gap:10px;align-items:center;border-top:1px solid #263044}.userbox b{display:block;font-size:12px}.userbox a{display:block;color:#8995aa;font-size:11px;margin-top:2px}.avatar{width:36px;height:36px;border-radius:11px;background:#ede9fe;color:#5b3dd7;display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.content{margin-left:250px;width:calc(100% - 250px);padding:30px 34px 50px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-head h1{font-size:29px;margin:2px 0 3px;letter-spacing:-.025em}.page-head p,.panel-head p{margin:0;color:var(--muted)}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--accent)}.head-actions{display:flex;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;color:#334155;padding:10px 15px;border-radius:11px;font-weight:750;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.02)}.btn:hover{transform:translateY(-1px)}.btn.primary{border:0;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 8px 20px rgba(109,74,255,.22)}.btn.big{width:100%;padding:14px}.big-cta{padding:13px 18px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.panel h2{margin:0 0 16px;font-size:17px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.panel-head h2{margin:0}.panel-head a{color:var(--accent);font-weight:700;font-size:12px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:var(--shadow)}.stat-icon{width:42px;height:42px;border-radius:13px;background:#f4f1ff;display:grid;place-items:center;font-size:20px}.stat-card small{display:block;color:var(--muted);font-weight:650;margin-bottom:3px}.stat-card strong{font-size:19px}.dash-grid{display:grid;grid-template-columns:1.55fr .75fr;gap:20px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #edf0f4;vertical-align:middle}th{font-size:10px;color:#8791a4;letter-spacing:.05em;text-transform:uppercase}td{font-size:12.5px}.block{display:block;color:var(--muted);margin-top:3px}.mono-link{font-family:ui-monospace,monospace;color:#5f43d8;font-weight:750}.table-scroll{overflow:auto}
.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10.5px;font-weight:850;white-space:nowrap}.badge.deposited{background:#fff4ce;color:#986a00}.badge.in_progress{background:#e4efff;color:#2461b5}.badge.completed{background:#dcf7ea;color:#08784b}.badge.delivered{background:#eceef2;color:#5c6472}.role-pill{background:#f0edff;color:#6245d1;border-radius:999px;padding:5px 8px;font-size:10.5px;font-weight:800}
label{display:grid;gap:6px;font-size:12px;font-weight:750;margin-bottom:13px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#9a84ff;box-shadow:0 0 0 3px rgba(109,74,255,.1)}textarea{min-height:78px;resize:vertical}.inline{display:flex;gap:10px}.inline>*{flex:1}.alert{padding:12px 15px;border-radius:12px;background:#e2f8ee;color:#08774c;border:1px solid #c8efdd;margin-bottom:16px}.alert.danger{background:#fde9e9;color:#a52c2c;border-color:#f7caca}
.grid-2{display:grid;grid-template-columns:1.35fr .65fr;gap:20px}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.filter-tabs a{padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:750}.filter-tabs a.active{background:#221f31;color:#fff;border-color:#221f31}.row-actions{display:flex;gap:5px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:9px;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}
.birthday-list{display:grid}.birthday-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf0f4}.birthday-item:last-child{border:0}.birthday-item div:nth-child(2){flex:1}.birthday-item b,.birthday-item small{display:block}.birthday-item small{color:var(--muted);font-size:11px;margin-top:2px}.birthday-item>span{font-size:11px;color:var(--muted)}.pet-dot{width:35px;height:35px;background:#fff5e4;border-radius:11px;display:grid;place-items:center}
.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:20px}.checkout-side .sticky{position:sticky;top:20px}.step-title{display:flex;gap:12px;align-items:center;margin-bottom:16px}.step-title>span{width:32px;height:32px;border-radius:10px;background:#ece8ff;color:#5e42d2;display:grid;place-items:center;font-weight:900}.step-title h2{margin:0;font-size:16px}.step-title p{margin:2px 0 0;color:var(--muted);font-size:11px}.phone-search{height:56px;border:2px solid #ddd6ff;border-radius:14px;display:flex;align-items:center;padding:0 14px;gap:10px;background:#faf9ff}.phone-search input{border:0;box-shadow:none!important;background:transparent;font-size:17px;padding:0}.customer-results{margin-top:10px;display:grid;gap:7px}.search-empty{text-align:center;color:var(--muted);padding:18px;font-size:12px}.customer-result{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.customer-result:hover,.customer-result.selected{border-color:#9e88ff;background:#faf9ff}.customer-result .grow{flex:1}.customer-result b,.customer-result small{display:block}.customer-result small{color:var(--muted);margin-top:3px}.customer-result .chev{color:#7c66df}.quick-link{font-size:11px;color:var(--muted);margin-top:10px}.quick-link a{color:var(--accent);font-weight:800}.pet-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pet-card{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff;cursor:pointer;text-align:left}.pet-card:hover,.pet-card.selected{border-color:#8e74ff;box-shadow:0 0 0 3px rgba(109,74,255,.08)}.pet-card b,.pet-card small{display:block}.pet-card small{color:var(--muted);margin-top:4px}.pet-card .health-mini{color:#b42318;margin-top:7px;font-size:10px;font-weight:700}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.service-tile{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:13px;border-radius:13px;cursor:pointer;margin:0}.service-tile:has(input:checked){border-color:#8d73ff;background:#faf9ff;box-shadow:0 0 0 2px rgba(109,74,255,.07)}.service-tile input{width:auto}.service-tile>div{flex:1}.service-tile span,.service-tile small{display:block}.service-tile small{font-weight:500;color:var(--muted);margin-top:3px}.service-tile strong{font-size:12px}.selected-summary{background:#f7f8fb;border-radius:12px;padding:13px;margin-bottom:14px}.selected-summary small,.selected-summary b{display:block}.selected-summary small{font-size:9px;color:var(--muted);font-weight:900;margin-top:8px}.selected-summary small:first-child{margin-top:0}.totalline{display:flex;justify-content:space-between;padding:10px 0}.totalline.grand{font-size:19px;border-block:1px dashed #d7dbe3;margin:4px 0 13px}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.secure-note{text-align:center;color:var(--muted);font-size:10px;margin-bottom:0}
.detail-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:20px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.info-grid small,.info-grid b{display:block}.info-grid small{color:var(--muted);font-size:10px;margin-bottom:3px}.health-alert{margin-top:16px;padding:12px;background:#fff2f2;color:#a52c2c;border-radius:11px}.line-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf0f4}.line-item.total{font-size:16px;border-top:2px solid #e7eaf0;border-bottom:0;margin-top:5px}.timeline-row{display:flex;gap:11px;padding:5px 0 14px;position:relative}.timeline-row i{width:10px;height:10px;border-radius:50%;background:#7152ed;margin-top:4px;box-shadow:0 0 0 4px #ede9ff}.timeline-row b,.timeline-row small{display:block}.timeline-row small{color:var(--muted);font-size:10px;margin-top:3px}
.staff-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 360px;gap:20px}.person-cell{display:flex;align-items:center;gap:9px}.person-cell .avatar{width:32px;height:32px;font-size:10px}.person-cell b,.person-cell small{display:block}.person-cell small{color:var(--muted);font-size:10px}.roles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.role-card{margin:0}.role-head{display:flex;gap:10px;align-items:center;margin-bottom:14px}.role-head h2{margin:0}.role-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.permission-list{display:grid;gap:4px;margin-bottom:15px}.permission-row{display:flex;gap:9px;align-items:center;padding:9px;background:#f8f9fb;border-radius:9px;margin:0}.permission-row input{width:auto}.permission-row span{flex:1}.permission-row b,.permission-row small{display:block}.permission-row small{font-size:9px;color:var(--muted);font-weight:500}.settings-card{max-width:700px}
.login-page,.tracking-page{min-height:100vh;background:radial-gradient(circle at 20% 10%,#ece8ff,transparent 30%),linear-gradient(160deg,#f7f8fc,#eef1f6);display:grid;place-items:center;padding:20px}.login-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 25px 70px rgba(35,43,67,.13)}.logo-big{text-align:center;font-size:42px}.login-card h1{text-align:center;margin:3px 0}.login-card>p{text-align:center;color:var(--muted);margin-top:4px}
.tracking-card{width:min(560px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 30px 80px rgba(38,46,75,.13);padding:24px}.tracking-brand{text-align:center;color:#4f36b8;margin-bottom:22px}.tracking-hero{text-align:center}.pet-avatar{font-size:42px;width:78px;height:78px;border-radius:24px;background:#fff3dd;display:grid;place-items:center;margin:auto}.tracking-hero small{display:block;margin-top:12px;color:#8b93a2;font-weight:900;letter-spacing:.12em}.tracking-hero h1{font-size:30px;margin:4px 0}.tracking-hero p{color:var(--muted);font-family:ui-monospace,monospace;margin-top:0}.customer-status{display:flex;align-items:center;gap:12px;border-radius:14px;padding:15px;margin:20px 0;background:#fff4ce}.customer-status.in_progress{background:#e4efff}.customer-status.completed{background:#dcf7ea}.customer-status.delivered{background:#eceef2}.customer-status small,.customer-status strong{display:block}.customer-status small{font-size:9px;letter-spacing:.1em;color:#677286}.customer-status strong{font-size:16px;margin-top:2px}.pulse{width:10px;height:10px;background:#e0a000;border-radius:50%;box-shadow:0 0 0 5px rgba(224,160,0,.15)}.progress-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:24px 0}.progress-step{text-align:center;position:relative}.progress-step:before{content:"";height:3px;background:#e8eaf0;position:absolute;top:15px;left:-50%;right:50%}.progress-step:first-child:before{display:none}.progress-step.done:before{background:#7152ed}.progress-step i{width:31px;height:31px;border-radius:50%;background:#eef0f4;color:#9198a5;display:grid;place-items:center;margin:auto;position:relative;z-index:2;font-style:normal;font-weight:800}.progress-step.done i{background:#7152ed;color:#fff}.progress-step.current i{box-shadow:0 0 0 5px #eeeaff}.progress-step span{display:block;font-size:9px;margin-top:6px;color:#858c99;font-weight:800}.tracking-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f7f8fa;padding:13px;border-radius:13px}.tracking-info small,.tracking-info b{display:block}.tracking-info small{font-size:9px;color:var(--muted)}.tracking-info b{font-size:11px;margin-top:3px}.tracking-services,.tracking-note{padding:16px 2px 2px}.tracking-services h2{font-size:14px}.tracking-services div{padding:5px 0;font-size:12px}.tracking-note{background:#fff8e8;padding:12px;border-radius:11px;margin-top:10px}.tracking-note p{margin-bottom:0}.refresh-note{text-align:center;color:#98a0ae;font-size:9px}.tracking-card footer{text-align:center;color:#7c8493;font-size:10px;padding-top:14px;border-top:1px solid #edf0f4}
.ticket-page{background:#e9edf3;padding:20px}.print-actions{max-width:80mm;margin:0 auto 12px;display:flex;justify-content:space-between}.thermal-ticket{width:80mm;margin:auto;background:white;padding:5mm 5mm 7mm;box-shadow:0 20px 50px rgba(0,0,0,.12);font-family:"Courier New",monospace;font-size:11px;color:#000}.thermal-ticket header{text-align:center}.thermal-ticket h1{font-size:23px;margin:3px}.thermal-ticket header p{margin:2px 0}.ticket-logo{font-size:30px}.ticket-rule{border-top:1px dashed #000;margin:10px 0}.ticket-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.ticket-row span{max-width:62%}.ticket-total{font-size:15px;padding:8px 0;font-weight:bold}.ticket-section{display:block;text-align:center;margin-bottom:5px}.initial-status{text-align:center;font-weight:bold;padding:5px}.qr-section{text-align:center;margin-top:9px}.qr-section p{font-size:9px;margin:4px}.qr-section #qrcode{display:flex;justify-content:center;margin:8px auto}.qr-section canvas,.qr-section img{margin:auto!important}.ticket-thanks{text-align:center;font-weight:bold;line-height:1.4}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.pos-layout,.staff-grid,.detail-grid,.dash-grid{grid-template-columns:1fr}.checkout-side .sticky{position:static}.roles-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.sidebar{width:72px;padding:16px 8px}.brand span:last-child,.nav-label,.sidebar nav a span,.userbox>div:last-child{display:none}.brand{padding:0 8px 20px}.sidebar nav a{justify-content:center;font-size:18px}.content{margin-left:72px;width:calc(100% - 72px);padding:18px 14px 35px}.page-head{align-items:flex-start;flex-direction:column}.head-actions{flex-wrap:wrap}.pet-cards,.service-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr 1fr}.roles-grid{grid-template-columns:1fr}}
@media(max-width:480px){.cards{grid-template-columns:1fr}.payment-grid,.tracking-info,.info-grid{grid-template-columns:1fr}.tracking-card{padding:16px}.progress-step span{font-size:8px}}
@media print{.print-actions{display:none}.ticket-page{padding:0;background:#fff}.thermal-ticket{width:80mm;box-shadow:none;margin:0;padding:3mm 4mm}@page{size:80mm auto;margin:0}}

/* DOGBESTO PRO — double sélection client POS */
.client-selector-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}
.field-title{display:block;margin-bottom:7px;color:#445066;font-size:11px;font-weight:850}
.phone-search{position:relative}
.phone-search .search-clear{width:30px;height:30px;border:0;border-radius:9px;background:#ece9fa;color:#6551be;font-size:20px;line-height:1;cursor:pointer;flex:0 0 auto}
.search-help{font-size:10px;color:var(--muted);margin:6px 2px 0}
.dropdown-selector{background:#f8f9fc;border:1px solid var(--line);border-radius:14px;padding:14px}
.dropdown-selector select{background:#fff}
.dropdown-summary{font-size:10px;color:var(--muted);margin-top:-5px;margin-bottom:12px}
.selected-client-card{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #d9dfe9;border-radius:12px;padding:12px;transition:.15s}
.selected-client-card.empty{opacity:.62}
.selected-client-card.selected{border-color:#8c76ef;box-shadow:0 0 0 3px rgba(109,74,255,.07)}
.selected-client-card>div:nth-child(2){flex:1}
.selected-client-card small,.selected-client-card b,.selected-client-card span{display:block}
.selected-client-card small{font-size:8px;color:var(--muted);font-weight:900;letter-spacing:.08em}
.selected-client-card b{font-size:13px;margin:2px 0}
.selected-client-card span{font-size:10px;color:var(--muted)}
.selected-client-card .selected-check{display:none;width:24px;height:24px;border-radius:50%;background:#e2f7ed;color:#0c8655;place-items:center;font-size:12px;font-weight:900}
.selected-client-card.selected .selected-check{display:grid}
.customer-results{max-height:330px;overflow:auto;padding-right:2px}
.result-count{font-size:9px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:3px 4px}
.customer-result{width:100%;font:inherit;text-align:left}
.customer-result .pets-count{font-size:10px;font-weight:850;color:#6651c4;background:#f0edff;padding:4px 7px;border-radius:999px;white-space:nowrap}
.search-loading{padding:18px;text-align:center;color:var(--muted);font-size:11px}
.search-loading span{display:inline-block;width:10px;height:10px;border:2px solid #c9c1f2;border-top-color:#6d4aff;border-radius:50%;animation:dogbesto-spin .65s linear infinite;margin-right:6px}
.search-error{padding:14px;border-radius:11px;background:#fff0f0;color:#a03232;font-size:11px;text-align:center}
.search-error small{display:block;margin-top:4px;color:#936262}
.empty-pet-state{grid-column:1/-1;border:1px dashed #d9dde5;border-radius:12px;padding:18px;text-align:center;color:var(--muted);font-size:11px;background:#fafbfc}
.pet-note-mini{font-size:9px;color:#7a8291;margin-top:5px}
@keyframes dogbesto-spin{to{transform:rotate(360deg)}}
@media(max-width:920px){.client-selector-grid{grid-template-columns:1fr}.customer-results{max-height:280px}}
