:root{
  --bg:#f7eefb;--panel:#fff;--line:#ead7fb;--purple:#8b5cf6;--purple2:#d946ef;--text:#2e224e;--muted:#6f6786;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#f8eefb,#f3ecfb);color:var(--text);overflow:hidden}
button,input,select,textarea{font:inherit}
.shell{height:100dvh;max-width:1440px;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.topbar{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:24px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:84px}
.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-badge{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--purple),var(--purple2));display:grid;place-items:center;color:#fff;font-size:22px;flex:0 0 auto}.brand h1{margin:0;font-size:28px;line-height:1}.brand p{margin:4px 0 0;color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
button{border:none;cursor:pointer;font-weight:700}.ghost,.primary,.secondary{border-radius:16px;padding:12px 16px}.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.primary{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;width:100%;box-shadow:0 12px 24px rgba(139,92,246,.18)}.secondary{background:#fff;border:1px solid var(--line);color:var(--text)}
.layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:12px}
.panel{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:28px;padding:16px;min-height:0;overflow:hidden}
.controls{display:flex;flex-direction:column;gap:10px}.results{display:flex;flex-direction:column;gap:10px}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.compact-gap{margin-bottom:2px}
.controls h2,.results h2{margin:0;font-size:26px;line-height:1.05}.muted{color:var(--muted)}.right-note{font-size:13px}.mini-title{text-transform:uppercase;letter-spacing:.12em;color:var(--purple);font-size:11px;font-weight:800;margin:0 0 8px}
.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.category-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 10px 11px;min-height:62px;text-align:left;transition:.18s ease}.category-card.active{background:#f3e8ff;border-color:#b69bf8;box-shadow:0 0 0 2px rgba(139,92,246,.08) inset}.category-card .emoji{font-size:18px;line-height:1}.category-card strong{display:block;margin-top:5px;font-size:13px;line-height:1.15}
.fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-group{margin:0}.field-group.full-row{grid-column:1/-1}.field-group label{display:block;margin:0 0 5px;font-size:13px;font-weight:700} input,select,textarea{width:100%;padding:12px 13px;border-radius:16px;border:1px solid var(--line);font-size:14px;background:#fff;outline:none} input:focus,select:focus,textarea:focus{border-color:#b89ef6;box-shadow:0 0 0 3px rgba(139,92,246,.08)}
.sticky-cta{margin-top:2px}
.results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.result-list{border:1px dashed #ddc8f5;border-radius:24px;padding:12px;background:rgba(255,255,255,.48);flex:1;min-height:0;overflow:auto}.empty-state{display:grid;place-items:center;text-align:center}.empty-emoji{font-size:32px;margin-bottom:8px}
.pro-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;margin-bottom:10px;align-items:start}.pro-card:last-child{margin-bottom:0}.pro-card h4{margin:0 0 6px;font-size:21px}.pill{display:inline-block;background:#f4ebff;color:var(--purple);padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800;margin:0 6px 6px 0}.subline{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.service-chips,.portfolio-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.mini-chip{background:#fff7fb;border:1px solid #f1d7f0;color:#8a3f86;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:700}.price-badge{display:inline-flex;align-items:center;gap:6px;background:#eefbf2;border:1px solid #cbeed6;color:#198754;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:800;margin-top:8px}.card-actions{display:flex;flex-direction:column;gap:8px;min-width:122px}.card-actions .primary,.card-actions .secondary{width:100%;padding:11px 12px;border-radius:14px}
.modal{position:fixed;inset:0;background:rgba(38,22,62,.34);display:grid;place-items:center;padding:16px;z-index:99}.hidden{display:none!important}.modal-card{width:min(100%,440px);max-height:min(92dvh,760px);overflow:auto;background:#fff;border-radius:28px;padding:20px;border:1px solid var(--line);position:relative}.modal-card.wide{width:min(100%,760px)}.close{position:absolute;right:14px;top:10px;background:transparent;font-size:28px;color:#8a7baa;padding:0 4px}.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tab{padding:10px 12px;border-radius:14px;background:#f7f0ff;border:1px solid var(--line)}.tab.active{background:#efe1ff;color:var(--purple)}.full{width:100%;margin-top:10px}.auth-message{min-height:22px;margin-top:10px}.appointment-list{display:grid;gap:10px;margin-top:16px}.appointment-card{background:#fbf8ff;border:1px solid var(--line);border-radius:18px;padding:14px}.appointment-card h4{margin:0 0 6px}.appointment-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media (max-width: 1100px){.layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.brand h1{font-size:25px}.brand p{font-size:13px}.controls h2,.results h2{font-size:24px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 820px){.shell{padding:10px}.topbar{padding:12px 14px;min-height:74px;border-radius:20px}.layout{grid-template-columns:1fr;grid-template-rows:minmax(320px,44dvh) minmax(260px,1fr)}.panel{border-radius:22px;padding:14px}.fields-grid{gap:8px}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.brand p{display:none}.results-head .right-note{display:none}}
@media (max-width: 620px){.topbar{align-items:flex-start}.brand h1{font-size:22px}.layout{grid-template-rows:minmax(330px,48dvh) minmax(220px,1fr)}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fields-grid{grid-template-columns:1fr}.pro-card{grid-template-columns:1fr}.card-actions{min-width:0;flex-direction:row;flex-wrap:wrap}}

.appt-summary-card{background:#fbf7ff;border:1px solid var(--line);border-radius:18px;padding:12px;margin:10px 0 14px}
.appointment-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.status-line{margin-top:6px;font-weight:700}
@media (max-width: 620px){.appointment-top{flex-direction:column}}


.pro-card-main{min-width:0}
.pro-top-wrap{display:flex;gap:14px;align-items:flex-start}
.pro-visual{flex:0 0 auto}
.pro-avatar{width:112px;height:112px;object-fit:cover;border-radius:24px;border:1px solid var(--line);background:#f8f1ff;display:block;box-shadow:0 10px 24px rgba(139,92,246,.12)}
.pro-copy{min-width:0}
.works-scroller{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;margin-top:8px;scrollbar-width:thin}
.work-card{margin:0;flex:0 0 152px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:8px;box-shadow:0 12px 24px rgba(139,92,246,.08)}
.work-card img{width:100%;height:164px;object-fit:cover;border-radius:16px;display:block;background:#f7efff}
.work-card figcaption{margin-top:8px;font-size:13px;font-weight:800;color:#6a437e;line-height:1.25}
.compact-pro-top .pro-avatar{width:80px;height:80px;border-radius:20px}
@media (max-width: 980px){.pro-top-wrap{align-items:center}.pro-avatar{width:96px;height:96px}.work-card{flex-basis:128px}.work-card img{height:140px}}
@media (max-width: 620px){.pro-top-wrap{flex-direction:column;align-items:flex-start}.compact-pro-top .pro-avatar,.pro-avatar{width:84px;height:84px}.works-scroller{padding-bottom:8px}.work-card{flex-basis:120px}.work-card img{height:126px}}

@media (max-width: 820px){html,body,body{overflow:auto} body{overflow:auto}.shell{height:auto;min-height:100dvh}.panel{overflow:visible}.result-list{overflow:visible;max-height:none}}
