:root {
  --tg-purple: #4b00b8;
  --tg-purple-deep: #2e086f;
  --tg-green: #06a521;
  --tg-green-deep: #087a28;
  --tg-lavender: #f5f1ff;
  --tg-mint: #effaf2;
  --tg-ink: #21144f;
}

html.tg-public-active,
body.tg-public-active {
  height: auto;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

/* Signed-in themes. Dark intentionally inherits the established application. */
html[data-tg-theme="island-light"] body,
html[data-tg-theme="island-light"] .screen,
html[data-tg-theme="island-light"] main {
  background: #fbfaff !important;
  color: #251653 !important;
}
html[data-tg-theme="island-light"] {
  --bg:#fbfaff; --bg2:#f5f1ff; --surface:#ffffff; --surface2:#f8f5ff;
  --card:#ffffff; --panel:#ffffff; --text:#251653; --muted:#71658a;
  --border:#e5dcf6; --accent:#079b2c; --primary:#4b00b8;
}
html[data-tg-theme="island-light"] [class*="screen"],
html[data-tg-theme="island-light"] [class*="page"],
html[data-tg-theme="island-light"] [class*="content"] { background-color:#fbfaff !important; color:#251653 !important; }
html[data-tg-theme="island-light"] [class*="header"],
html[data-tg-theme="island-light"] [class*="topbar"] { background-color:#fff !important; border-color:#e5dcf6 !important; color:#251653 !important; }
html[data-tg-theme="island-light"] header,
html[data-tg-theme="island-light"] nav,
html[data-tg-theme="island-light"] .topbar,
html[data-tg-theme="island-light"] .bottom-nav {
  background: rgba(255,255,255,.97) !important;
  border-color: #e4dafa !important;
  color: #2e086f !important;
}
html[data-tg-theme="island-light"] .card,
html[data-tg-theme="island-light"] .panel,
html[data-tg-theme="island-light"] .modal,
html[data-tg-theme="island-light"] .sheet,
html[data-tg-theme="island-light"] [class*="card"],
html[data-tg-theme="island-light"] [class*="panel"] {
  background-color: #fff !important;
  border-color: #e5dcf6 !important;
  color: #251653 !important;
  box-shadow: 0 12px 35px rgba(61,19,126,.08);
}
html[data-tg-theme="island-light"] input,
html[data-tg-theme="island-light"] textarea,
html[data-tg-theme="island-light"] select {
  background: #faf8ff !important;
  border-color: #d9ccef !important;
  color: #251653 !important;
}
html[data-tg-theme="island-light"] h1,
html[data-tg-theme="island-light"] h2,
html[data-tg-theme="island-light"] h3,
html[data-tg-theme="island-light"] strong { color: #33077e; }
html[data-tg-theme="island-light"] button.primary,
html[data-tg-theme="island-light"] .btn-primary { background: #079b2c !important; color: #fff !important; }

html[data-tg-theme="caribbean-breeze"] body,
html[data-tg-theme="caribbean-breeze"] .screen,
html[data-tg-theme="caribbean-breeze"] main {
  background: linear-gradient(145deg,#eefbf8 0%,#f8fbff 55%,#fff8e9 100%) fixed !important;
  color: #073e4a !important;
}
html[data-tg-theme="caribbean-breeze"] header,
html[data-tg-theme="caribbean-breeze"] nav,
html[data-tg-theme="caribbean-breeze"] .topbar,
html[data-tg-theme="caribbean-breeze"] .bottom-nav {
  background: rgba(5,61,78,.96) !important;
  border-color: #1c7584 !important;
  color: #fff !important;
}
html[data-tg-theme="caribbean-breeze"] .card,
html[data-tg-theme="caribbean-breeze"] .panel,
html[data-tg-theme="caribbean-breeze"] .modal,
html[data-tg-theme="caribbean-breeze"] .sheet,
html[data-tg-theme="caribbean-breeze"] [class*="card"],
html[data-tg-theme="caribbean-breeze"] [class*="panel"] {
  background-color: rgba(255,255,255,.96) !important;
  border-color: #bfe3dc !important;
  color: #073e4a !important;
  box-shadow: 0 12px 34px rgba(4,73,82,.09);
}
html[data-tg-theme="caribbean-breeze"] input,
html[data-tg-theme="caribbean-breeze"] textarea,
html[data-tg-theme="caribbean-breeze"] select {
  background: #f4fffc !important;
  border-color: #aad8d0 !important;
  color: #073e4a !important;
}

.tg-theme-launcher { position:fixed; right:18px; bottom:84px; z-index:10020; width:46px; height:46px; border:0; border-radius:50%; background:linear-gradient(135deg,var(--tg-purple),var(--tg-green)); color:#fff; font-size:20px; box-shadow:0 10px 28px rgba(30,10,75,.28); cursor:pointer; }
.tg-theme-menu { position:fixed; right:18px; bottom:140px; z-index:10021; width:260px; padding:16px; border:1px solid #ded4f2; border-radius:18px; background:#fff; color:#241250; box-shadow:0 20px 60px rgba(31,10,73,.24); font-family:"Trebuchet MS",sans-serif; }
.tg-theme-menu[hidden] { display:none; }
.tg-theme-menu h3 { margin:0 0 4px; color:#300777; font-size:17px; }
.tg-theme-menu p { margin:0 0 12px; color:#72668b; font-size:12px; }
.tg-theme-option { display:flex; width:100%; align-items:center; gap:10px; padding:10px; margin-top:7px; border:1px solid #e5dcf3; border-radius:12px; background:#fff; color:#281457; cursor:pointer; text-align:left; }
.tg-theme-option[aria-pressed="true"] { border:2px solid var(--tg-green); background:#f0fff3; }
.tg-theme-swatch { width:34px; height:34px; border-radius:10px; flex:0 0 auto; }
.tg-theme-swatch.dark { background:linear-gradient(135deg,#090e2c,#35105e); }
.tg-theme-swatch.light { background:linear-gradient(135deg,#f3edff 48%,#19a837 49%); }
.tg-theme-swatch.breeze { background:linear-gradient(135deg,#075365 48%,#f6cc68 49%); }
.tg-theme-launcher,.tg-theme-menu { display:none !important; }
.tg-account-themes { margin:18px; padding:20px; border:1px solid var(--border,#e5dcf6); border-radius:18px; background:var(--surface,#fff); box-shadow:0 12px 34px rgba(46,8,111,.08); }
.tg-account-themes h2 { margin:0 0 5px; font-size:20px; }
.tg-account-themes>p { margin:0 0 16px; color:var(--muted,#71658a); font-size:13px; }
.tg-account-theme-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.tg-account-theme { display:flex; align-items:center; gap:12px; min-height:72px; padding:12px; border:1px solid var(--border,#e5dcf6); border-radius:14px; background:var(--surface2,#f8f5ff); color:var(--text,#251653); text-align:left; cursor:pointer; }
.tg-account-theme:hover,.tg-account-theme:focus-visible { transform:translateY(-1px); border-color:#06a521; outline:none; }
.tg-account-theme[aria-pressed="true"] { border:2px solid #06a521; box-shadow:0 0 0 3px rgba(6,165,33,.12); }
.tg-account-theme .swatch { width:42px; height:42px; flex:0 0 auto; border-radius:12px; border:1px solid rgba(0,0,0,.09); }
.tg-account-theme b,.tg-account-theme small { display:block; }.tg-account-theme small { margin-top:3px; opacity:.68; }
.tg-account-theme .island { background:linear-gradient(135deg,#f6f0ff 48%,#0ba329 49%); }
.tg-account-theme .midnight { background:linear-gradient(135deg,#090e2c 48%,#6f56f6 49%); }
.tg-account-theme .breeze { background:linear-gradient(135deg,#075365 48%,#f6cc68 49%); }
.tg-account-theme .plum { background:linear-gradient(135deg,#32104f 48%,#d89bd8 49%); }
.tg-account-theme .ocean { background:linear-gradient(135deg,#053b68 48%,#42c9dd 49%); }
.tg-account-theme .sunset { background:linear-gradient(135deg,#fff1d7 48%,#e96f51 49%); }

html[data-tg-theme="royal-plum"] { --bg:#f8f2fb;--bg2:#f1e4f5;--surface:#fff;--surface2:#fbf5fd;--card:#fff;--panel:#fff;--text:#391049;--muted:#7b617f;--border:#e6d2e9;--accent:#a83c91;--primary:#5c1b78; }
html[data-tg-theme="ocean-blue"] { --bg:#eff9fc;--bg2:#e2f4f8;--surface:#fff;--surface2:#f4fbfd;--card:#fff;--panel:#fff;--text:#073b55;--muted:#587785;--border:#c9e5ec;--accent:#008ba3;--primary:#075b8d; }
html[data-tg-theme="sunset-sand"] { --bg:#fff9ee;--bg2:#fff1d7;--surface:#fffdf8;--surface2:#fff7e8;--card:#fffdf8;--panel:#fffdf8;--text:#52291f;--muted:#846b5e;--border:#edd9bd;--accent:#d85d42;--primary:#9d462f; }
html[data-tg-theme="royal-plum"] body,html[data-tg-theme="royal-plum"] main,html[data-tg-theme="royal-plum"] [class*="screen"],html[data-tg-theme="royal-plum"] [class*="page"],
html[data-tg-theme="ocean-blue"] body,html[data-tg-theme="ocean-blue"] main,html[data-tg-theme="ocean-blue"] [class*="screen"],html[data-tg-theme="ocean-blue"] [class*="page"],
html[data-tg-theme="sunset-sand"] body,html[data-tg-theme="sunset-sand"] main,html[data-tg-theme="sunset-sand"] [class*="screen"],html[data-tg-theme="sunset-sand"] [class*="page"] { background:var(--bg) !important; color:var(--text) !important; }
html[data-tg-theme="royal-plum"] header,html[data-tg-theme="royal-plum"] nav,html[data-tg-theme="royal-plum"] [class*="header"],html[data-tg-theme="royal-plum"] [class*="topbar"],
html[data-tg-theme="ocean-blue"] header,html[data-tg-theme="ocean-blue"] nav,html[data-tg-theme="ocean-blue"] [class*="header"],html[data-tg-theme="ocean-blue"] [class*="topbar"],
html[data-tg-theme="sunset-sand"] header,html[data-tg-theme="sunset-sand"] nav,html[data-tg-theme="sunset-sand"] [class*="header"],html[data-tg-theme="sunset-sand"] [class*="topbar"] { background:var(--surface) !important; border-color:var(--border) !important; color:var(--text) !important; }
html[data-tg-theme="royal-plum"] [class*="card"],html[data-tg-theme="royal-plum"] [class*="panel"],html[data-tg-theme="royal-plum"] .modal,
html[data-tg-theme="ocean-blue"] [class*="card"],html[data-tg-theme="ocean-blue"] [class*="panel"],html[data-tg-theme="ocean-blue"] .modal,
html[data-tg-theme="sunset-sand"] [class*="card"],html[data-tg-theme="sunset-sand"] [class*="panel"],html[data-tg-theme="sunset-sand"] .modal { background:var(--surface) !important; border-color:var(--border) !important; color:var(--text) !important; }

.tg-public { position:relative; z-index:20000; min-height:100vh; background:#fff; color:var(--tg-ink); font-family:"Segoe UI Variable","Aptos","Segoe UI",sans-serif; font-size:15px; }
.tg-public * { box-sizing:border-box; }
.tg-public-header { height:82px; display:flex; align-items:center; gap:44px; padding:0 clamp(30px,4vw,64px); border-bottom:1px solid #eee8fa; background:#fff; }
.tg-public-logo { min-width:250px; line-height:.9; font-weight:900; font-size:36px; letter-spacing:-1.7px; color:var(--tg-purple); }
.tg-public-logo span { color:var(--tg-green); }
.tg-public-logo small { display:block; margin-top:9px; font-size:11px; letter-spacing:.1px; color:var(--tg-purple); }
.tg-public-nav { display:flex; align-items:center; gap:34px; margin-left:auto; }
.tg-public-nav a,.tg-public-nav button { border:0; background:none; color:#211050; font-size:15px; font-weight:750; cursor:pointer; text-decoration:none; }
.tg-public-nav .tg-join { padding:14px 22px; border-radius:10px; background:var(--tg-green); color:#fff; }
.tg-public-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:49% 51%; min-height:360px; margin:0 2.5%; border-radius:0 0 24px 24px; background:linear-gradient(120deg,#fbf9ff 0%,#f4efff 52%,#e9fff0 100%); }
.tg-public-hero-copy { position:relative; z-index:2; padding:42px 28px 34px 34px; }
.tg-public-hero h1 { max-width:680px; margin:0; color:#35077d; font-size:clamp(43px,4.2vw,62px); line-height:1.01; letter-spacing:-2.8px; }
.tg-public-hero h1 em { color:var(--tg-green); }
.tg-public-hero-copy>p { max-width:520px; margin:17px 0 20px; color:#493a6e; font-size:17px; line-height:1.45; }
.tg-public-visual { position:relative; min-height:360px; background-image:linear-gradient(90deg,#f5f0ff 0%,rgba(245,240,255,.05) 18%),url('assets/tudoguru-public-hero.png'); background-size:cover; background-position:center; }
.tg-search { display:grid; grid-template-columns:1fr 190px auto; gap:0; max-width:760px; padding:6px; border:1px solid #ddd3ef; border-radius:13px; background:#fff; box-shadow:0 12px 30px rgba(55,10,110,.1); }
.tg-search input,.tg-search select { min-width:0; padding:13px 14px; border:0; border-right:1px solid #ece7f4; background:#fff; color:#281557; font-size:14px; outline:none; }
.tg-search button { padding:0 25px; border:0; border-radius:9px; background:var(--tg-green); color:#fff; font-weight:800; cursor:pointer; }
.tg-popular { margin:14px 0 0; font-size:12px; font-weight:700; }
.tg-popular button { display:inline-block; margin:6px 3px 0; padding:7px 12px; border:0; border-radius:99px; background:#eee8fa; color:#4a268e; font-weight:700; cursor:pointer; }
.tg-popular button:hover,.tg-popular button:focus-visible { background:#ded1f7; outline:2px solid #4b00b8; outline-offset:2px; }
.tg-public-section { padding:22px clamp(24px,4.6vw,70px); }
.tg-public-section.soft { background:linear-gradient(90deg,#fbf8ff,#f4fff7); }
.tg-public-title { display:flex; align-items:end; justify-content:space-between; margin-bottom:13px; }
.tg-public-title h2 { margin:0; color:#35077d; font-size:24px; font-weight:800; }
.tg-service-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:14px; }
.tg-service { min-height:136px; width:100%; padding:17px 12px; border:1px solid #e8e0f4; border-radius:14px; background:#fff; color:inherit; font:inherit; text-align:center; box-shadow:0 8px 22px rgba(54,13,108,.05); cursor:pointer; }
.tg-service:hover,.tg-service:focus-visible { border-color:#06a521; transform:translateY(-2px); box-shadow:0 12px 26px rgba(54,13,108,.1); outline:none; }
.tg-service b { display:block; margin:10px 0 5px; color:#300875; }
.tg-service small { color:#73678d; line-height:1.35; }
.tg-service-icon { width:38px; height:38px; margin:auto; color:var(--tg-purple); }
.tg-service-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.tg-pro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.tg-pro { display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center; padding:18px; border:1px solid #e5ddef; border-radius:16px; background:#fff; }
.tg-avatar { width:64px; height:64px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background-image:url('assets/tudoguru-public-hero.png'); background-repeat:no-repeat; background-size:420px auto; color:transparent; font-size:0; border:2px solid #eee7f7; }
.tg-avatar.electric { background-position:6% 34%; }
.tg-avatar.clean { background-position:43% 27%; }
.tg-avatar.garden { background-position:91% 30%; }
.tg-pro b { color:#310877; }.tg-pro span,.tg-pro small { display:block; margin-top:3px; color:#6d6284; }.tg-pro button { padding:9px 12px; border:1px solid var(--tg-green); border-radius:8px; background:#fff; color:var(--tg-green-deep); font-weight:800; }
.tg-public-title>button { border:0; background:transparent; color:#087a28; font:inherit; font-weight:800; cursor:pointer; }
.tg-public-results[hidden] { display:none; }
.tg-results-toolbar { display:flex; align-items:center; gap:10px; }
.tg-results-toolbar button { width:38px; height:34px; border:1px solid #ddd3ef; border-radius:8px; background:#fff; color:#4b00b8; cursor:pointer; }
.tg-results-toolbar button[aria-pressed="true"] { background:#4b00b8; color:#fff; }
.tg-results-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.tg-results-grid.list { grid-template-columns:1fr; }
.tg-results-map,.tg-auth-results-map{position:relative;min-height:500px;overflow:hidden;border:1px solid #d9cdef;border-radius:18px;background:#eef7f2;box-shadow:0 10px 28px rgba(54,13,108,.08)}.tg-results-map[hidden],.tg-auth-results-map[hidden]{display:none}.tg-map-canvas{width:100%;height:500px}.tg-map-empty{min-height:360px;display:grid;place-content:center;gap:8px;padding:30px;text-align:center;color:#71658a}.tg-map-empty b{color:#35077d;font-size:18px}.tg-map-empty span{max-width:540px}
.tg-map-legend{position:absolute;z-index:500;left:14px;bottom:14px;display:flex;flex-wrap:wrap;gap:12px;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.94);color:#4b3672;font-size:12px;box-shadow:0 5px 20px rgba(42,8,89,.15)}.tg-map-legend span{display:flex;align-items:center;gap:6px}.tg-map-legend i{width:11px;height:11px;border-radius:50%}.tg-map-legend i.registered{background:#06a521}.tg-map-legend i.imported{background:#f09a22}.tg-map-marker-shell{background:transparent;border:0}.tg-map-marker{display:block;width:22px;height:22px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 9px rgba(34,13,61,.35)}.tg-map-marker.registered{background:#06a521}.tg-map-marker.imported{background:#f09a22}.tg-map-popup{display:grid;gap:3px;min-width:180px;color:#493a6e}.tg-map-popup strong{color:#35077d;font-size:14px}.tg-map-popup span,.tg-map-popup b{font-size:12px}.tg-map-popup .tg-map-approx{color:#a75a00}.tg-map-popup button{margin-top:7px;padding:8px 10px;border:0;border-radius:7px;background:#06a521;color:#fff;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.tg-map-popup button:hover,.tg-map-popup button:focus-visible{background:#087a28;outline:2px solid #4b00b8;outline-offset:2px}
.tg-map-controls{position:absolute;z-index:700;top:14px;right:14px;display:flex;align-items:stretch;gap:7px;padding:8px;border:1px solid #ddd3ef;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 6px 22px rgba(42,8,89,.17)}.tg-map-zoom{display:flex;align-items:stretch;gap:7px;height:42px}.tg-map-controls button,.tg-map-controls select{display:flex;height:42px;min-height:42px;box-sizing:border-box;align-items:center;justify-content:center;margin:0;border:1px solid #d9cdef;border-radius:10px;background:#fff;color:#35077d;font:inherit;font-weight:800;line-height:1;vertical-align:middle}.tg-map-zoom button,.tg-map-zoom button:first-child,.tg-map-zoom button:last-child{width:42px;padding:0;border:1px solid #d9cdef;border-radius:10px;font-size:21px}.tg-map-controls label{display:block;height:42px;margin:0}.tg-map-controls select{display:block;width:112px;min-width:112px;padding:0 30px 0 12px;appearance:auto}.tg-map-controls .tg-map-save{min-width:140px;padding:0 15px;border-color:#06a521;background:#06a521;color:#fff;white-space:nowrap}.tg-map-controls .tg-map-expand{width:42px;padding:0}.tg-map-controls .tg-map-expand svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tg-map-controls button:hover,.tg-map-controls button:focus-visible,.tg-map-controls select:focus-visible{outline:2px solid #4b00b8;outline-offset:2px}.tg-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}body.tg-map-expanded-open{overflow:hidden!important}.tg-map-expanded{position:fixed!important;inset:16px!important;z-index:16000!important;width:auto!important;height:calc(100vh - 32px)!important;min-height:0!important;border-radius:18px!important}.tg-map-expanded .tg-map-canvas{height:100%!important}
.tg-auth-directory-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 16px 14px;padding:12px;border:1px solid #dfd3f2;border-radius:14px;background:#fff}.tg-auth-view-buttons{display:flex;gap:7px}.tg-auth-view-buttons button{display:flex;align-items:center;gap:5px;padding:9px 12px;border:1px solid #d9cdef;border-radius:9px;background:#fff;color:#4b268d;font:inherit;font-weight:800;cursor:pointer}.tg-auth-view-buttons button[aria-pressed="true"]{border-color:#4b00b8;background:#4b00b8;color:#fff}.tg-admin-preview-toggle{display:flex;align-items:center;gap:8px;color:#4b3672;font-size:13px;font-weight:800;cursor:pointer}.tg-admin-preview-toggle input{accent-color:#06a521}.tg-admin-preview-toggle span,.tg-admin-only-badge{padding:4px 7px;border-radius:99px;background:#fff1db;color:#955100;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.tg-admin-map-preview{margin:0 16px 18px;padding:16px;border:1px solid #edcf9d;border-radius:16px;background:#fffaf1}.tg-admin-map-preview[hidden]{display:none}.tg-admin-preview-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.tg-admin-preview-heading div{display:grid;gap:3px}.tg-admin-preview-heading b{color:#35077d}.tg-admin-preview-heading span{color:#71658a;font-size:12px}.tg-admin-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:430px;overflow:auto;padding-right:5px}.tg-admin-preview-grid article{display:grid;gap:3px;padding:12px;border:1px solid #eadcc4;border-radius:10px;background:#fff}.tg-admin-preview-grid article b{color:#35077d}.tg-admin-preview-grid article span,.tg-admin-preview-grid article small{color:#71658a}#results-list.tg-auth-card-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px}#results-list.tg-auth-card-view .tradesman-row{margin:0}#results-list.tg-auth-list-view{display:block}
.tg-provider-card { display:grid; grid-template-columns:68px 1fr; gap:14px; padding:17px; border:1px solid #e5ddef; border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(54,13,108,.05); cursor:pointer; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.tg-provider-card:hover,.tg-provider-card:focus-visible { transform:translateY(-2px); border-color:#06a521; outline:none; box-shadow:0 13px 28px rgba(54,13,108,.12); }
.tg-results-grid.list .tg-provider-card { grid-template-columns:68px 1fr auto; align-items:center; }
.tg-provider-photo { width:68px; height:68px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:linear-gradient(135deg,#4b00b8,#06a521); color:#fff; font-size:21px; font-weight:900; }
.tg-provider-photo img { width:100%; height:100%; object-fit:cover; }
.tg-provider-card h3 { margin:0; color:#310877; font-size:17px; }.tg-provider-card p { margin:5px 0; color:#6d6284; }.tg-provider-meta { font-size:12px; color:#766990; }
.tg-provider-card .verified { color:#078b2b; font-weight:800; }
.tg-provider-card button { grid-column:1/-1; padding:10px 12px; border:1px solid #06a521; border-radius:9px; background:#fff; color:#087a28; font-weight:800; cursor:pointer; }
.tg-results-grid.list .tg-provider-card button { grid-column:auto; }
.tg-results-empty { padding:42px; border:1px dashed #d8ccec; border-radius:16px; color:#71658a; text-align:center; }
.tg-pagination { display:flex; justify-content:center; align-items:center; gap:10px; margin-top:18px; }.tg-pagination button { padding:9px 14px; border:1px solid #d9cdef; border-radius:8px; background:#fff; color:#3d147d; cursor:pointer; }.tg-pagination button:disabled { opacity:.4; cursor:default; }
.tg-public-modal { position:fixed; inset:0; z-index:30000; display:grid; place-items:center; padding:20px; background:rgba(29,7,66,.62); backdrop-filter:blur(5px); }
.tg-public-modal[hidden] { display:none; }.tg-public-dialog { position:relative; width:min(520px,100%); max-height:90vh; overflow:auto; padding:26px; border-radius:20px; background:#fff; color:#251653; box-shadow:0 28px 80px rgba(18,3,48,.35); }.tg-public-dialog.wide { width:min(760px,100%); }
.tg-public-close { position:absolute; right:15px; top:13px; width:36px; height:36px; border:0; border-radius:50%; background:#f1ebfa; color:#3b117b; font-size:20px; cursor:pointer; }
.tg-public-dialog h2 { margin:0 42px 6px 0; color:#35077d; }.tg-public-dialog>p { color:#71658a; }
.tg-auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:18px 0; padding:5px; border-radius:12px; background:#f3eefb; }.tg-auth-tabs button { padding:10px; border:0; border-radius:8px; background:transparent; color:#513483; font-weight:800; cursor:pointer; }.tg-auth-tabs button[aria-pressed="true"] { background:#fff; color:#35077d; box-shadow:0 3px 10px rgba(49,8,119,.08); }
.tg-auth-form { display:grid; gap:12px; }.tg-auth-form label { display:grid; gap:5px; color:#4b3672; font-size:13px; font-weight:700; }.tg-auth-form input,.tg-auth-form select { width:100%; padding:12px; border:1px solid #d9cdef; border-radius:9px; background:#fbf9ff; color:#251653; font:inherit; }.tg-auth-submit { padding:13px; border:0; border-radius:10px; background:#06a521; color:#fff; font-weight:900; cursor:pointer; }.tg-auth-message { min-height:20px; margin:2px 0; color:#9d2442; font-size:13px; }.tg-forgot { border:0; background:none; color:#4b00b8; cursor:pointer; text-align:left; }
.tg-auth-form [hidden] { display:none !important; }
.tg-auth-form .tg-remember { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:8px; font-weight:600; }
.tg-auth-form .tg-remember input { width:auto; margin:0; accent-color:#06a521; }
.tg-role-choices { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.tg-role-choice { padding:12px; border:1px solid #d9cdef; border-radius:10px; background:#fbf9ff; color:#4b3672; font-weight:800; cursor:pointer; }.tg-role-choice[aria-pressed="true"] { border:2px solid #06a521; background:#effaf2; color:#087a28; }
.tg-detail-head { display:grid; grid-template-columns:86px 1fr; gap:16px; align-items:center; }.tg-detail-head .tg-provider-photo { width:86px; height:86px; }.tg-detail-trades { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0; }.tg-detail-trades span { padding:7px 10px; border-radius:99px; background:#eee8fa; color:#4b268d; font-size:12px; font-weight:700; }.tg-detail-actions { display:flex; gap:10px; margin-top:20px; }.tg-detail-actions button { flex:1; padding:12px; border:1px solid #06a521; border-radius:9px; background:#fff; color:#087a28; font-weight:900; cursor:pointer; }.tg-detail-actions .primary { background:#06a521; color:#fff; }
.tg-profile-storefront{max-width:1500px;margin:auto;padding-bottom:90px;color:#251653}.tg-profile-cover{position:relative;min-height:330px;padding:clamp(28px,5vw,70px);display:flex;align-items:end;overflow:hidden;background:linear-gradient(125deg,#2d056f 0%,#4b00b8 48%,#06a521 135%);background-image:linear-gradient(90deg,rgba(39,3,94,.96),rgba(67,0,154,.8),rgba(0,127,47,.58)),var(--tg-profile-cover);background-size:cover;background-position:center;border-radius:0 0 28px 28px}.tg-profile-cover:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 85% 20%,rgba(255,255,255,.18) 0 2px,transparent 3px),radial-gradient(circle at 78% 65%,rgba(255,255,255,.1) 0 3px,transparent 4px);background-size:44px 44px,70px 70px;pointer-events:none}.tg-profile-cover-content{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:132px 1fr auto;gap:26px;align-items:end;color:#fff}.tg-profile-avatar{width:132px;height:132px;object-fit:cover;display:grid;place-items:center;border:5px solid rgba(255,255,255,.9);border-radius:26px;background:#fff;color:#4b00b8;font-size:38px;font-weight:900;box-shadow:0 20px 45px rgba(18,0,51,.3)}.tg-profile-identity h1{margin:5px 0 7px;color:#fff;font-size:clamp(34px,4vw,60px);line-height:.98;letter-spacing:-.045em}.tg-profile-identity p{margin:0;color:rgba(255,255,255,.82);font-size:15px}.tg-profile-eyebrow,.tg-profile-kicker{color:#00c73c;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.11em}.tg-profile-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tg-profile-badges span{padding:7px 10px;border:1px solid rgba(255,255,255,.25);border-radius:99px;background:rgba(255,255,255,.12);color:#fff;font-size:11px;font-weight:800;backdrop-filter:blur(6px)}.tg-profile-badges .verified{background:#eaffef;color:#087a28}.tg-profile-hero-status{display:grid;gap:4px;min-width:190px;padding:18px;border:1px solid rgba(255,255,255,.25);border-radius:16px;background:rgba(21,0,54,.35);backdrop-filter:blur(10px)}.tg-profile-hero-status b{font-size:18px}.tg-profile-hero-status span{color:rgba(255,255,255,.78);font-size:11px}.tg-profile-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:-1px clamp(18px,4vw,64px) 0;overflow:hidden;border:1px solid #e5dcf6;border-radius:0 0 18px 18px;background:#e5dcf6}.tg-profile-metrics div{display:grid;gap:5px;padding:19px;background:#fff}.tg-profile-metrics span{color:#71658a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.tg-profile-metrics b{color:#35077d;font-size:14px}.tg-profile-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.7fr);gap:24px;padding:28px clamp(18px,4vw,64px)}.tg-profile-layout main{display:grid;gap:22px}.tg-profile-layout aside{display:grid;align-content:start;gap:18px}.tg-profile-panel,.tg-profile-side-card,.tg-profile-contact-card{padding:clamp(20px,3vw,32px);border:1px solid #e5dcf6;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(54,13,108,.055)}.tg-profile-panel h2,.tg-profile-side-card h3,.tg-profile-contact-card h2{margin:5px 0 14px;color:#35077d}.tg-profile-about p{max-width:850px;margin:0;color:#5f5278;font-size:15px;line-height:1.75}.tg-profile-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tg-profile-services article{display:grid;grid-template-columns:34px 1fr;gap:3px 10px;padding:15px;border:1px solid #e9e1f3;border-radius:13px;background:linear-gradient(135deg,#fdfbff,#f6fff8)}.tg-profile-services i{grid-row:1/3;display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#eee6fb;color:#4b00b8;font-style:normal}.tg-profile-services b{color:#35077d}.tg-profile-services span{color:#786b8f;font-size:11px}.tg-profile-section-head{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:14px}.tg-profile-section-head h2{margin-bottom:0}.tg-profile-section-head>span{color:#71658a;font-size:12px}.tg-profile-gallery,.tg-public-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tg-profile-gallery button,.tg-public-gallery button{position:relative;min-height:190px;padding:0;overflow:hidden;border:0;border-radius:14px;background:#eee8f4;cursor:pointer}.tg-profile-gallery img,.tg-public-gallery img{width:100%;height:100%;min-height:190px;object-fit:cover;transition:transform .25s ease}.tg-profile-gallery button:hover img,.tg-public-gallery button:hover img{transform:scale(1.04)}.tg-profile-gallery button span,.tg-public-gallery button span{position:absolute;right:9px;bottom:9px;padding:6px 9px;border-radius:99px;background:rgba(37,6,83,.78);color:#fff;font-size:10px;font-weight:800}.tg-profile-empty{display:grid;place-items:center;gap:5px;min-height:130px;padding:24px;border:1px dashed #d7c9e8;border-radius:14px;background:#fbf9ff;color:#71658a;text-align:center}.tg-profile-empty b{color:#35077d}.tg-profile-reviews{display:grid;gap:10px}.tg-profile-reviews article{padding:16px;border:1px solid #ece4f4;border-radius:13px}.tg-profile-reviews article>div:first-child{display:flex;justify-content:space-between}.tg-profile-reviews span{color:#887b9d;font-size:11px}.tg-profile-reviews p{margin:7px 0 0;color:#625579;line-height:1.55}.tg-profile-contact-card{position:sticky;top:18px;background:linear-gradient(145deg,#35077d,#4b00b8);color:#fff}.tg-profile-contact-card>span{color:#aaffbd;font-size:11px;font-weight:900;text-transform:uppercase}.tg-profile-contact-card h2{color:#fff}.tg-profile-contact-card p{color:rgba(255,255,255,.75);line-height:1.5}.tg-profile-contact-card button{width:100%;margin-top:9px;padding:12px;border:1px solid rgba(255,255,255,.45);border-radius:10px;background:transparent;color:#fff;font-weight:900;cursor:pointer}.tg-profile-contact-card button.primary{border-color:#00bd32;background:#00bd32}.tg-profile-contact-card small{display:block;margin-top:12px;color:rgba(255,255,255,.62);line-height:1.4}.tg-profile-side-card ul{display:grid;gap:13px;margin:15px 0 0;padding:0;list-style:none}.tg-profile-side-card li{display:grid;grid-template-columns:26px 1fr;gap:9px}.tg-profile-side-card li i{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#effaf2;color:#087a28;font-style:normal;font-weight:900}.tg-profile-side-card li span{display:grid;color:#776a8e;font-size:11px}.tg-profile-side-card li b{color:#35077d;font-size:13px}.tg-profile-area-visual{display:grid;place-items:center;min-height:120px;margin:12px 0;border-radius:14px;background:radial-gradient(circle at center,#eaffef 0 16%,transparent 17%),linear-gradient(135deg,#eee6fb,#e9fff0);color:#4b00b8}.tg-profile-area-visual span{font-size:30px}.tg-profile-area-card p{color:#71658a;font-size:11px;line-height:1.5}.tg-photo-lightbox{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;padding:28px;background:rgba(22,3,51,.88);backdrop-filter:blur(8px)}.tg-photo-lightbox>button{position:absolute;right:24px;top:20px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#35077d;font-size:25px;cursor:pointer}.tg-photo-lightbox figure{max-width:min(1000px,92vw);margin:0}.tg-photo-lightbox img{display:block;max-width:100%;max-height:78vh;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.4)}.tg-photo-lightbox figcaption{padding:12px;color:#fff;text-align:center}
.tg-public-dialog.wide{width:min(1100px,96vw);padding:0;overflow:auto}.tg-public-profile{background:#f9f6ff}.tg-public-profile-hero{display:grid;grid-template-columns:100px 1fr auto;gap:18px;align-items:center;padding:32px;background:linear-gradient(125deg,#35077d,#4b00b8 65%,#078b2b);color:#fff}.tg-public-profile-hero .tg-provider-photo{width:100px;height:100px;border:4px solid #fff}.tg-public-profile-hero h2{margin:4px 0;color:#fff;font-size:32px}.tg-public-profile-hero p{margin:0;color:rgba(255,255,255,.78)}.tg-public-profile-hero .tg-detail-trades span{background:rgba(255,255,255,.14);color:#fff}.tg-public-profile-status{display:grid;gap:3px;padding:14px;border:1px solid rgba(255,255,255,.24);border-radius:13px;background:rgba(0,0,0,.16)}.tg-public-profile-status span{font-size:11px;color:rgba(255,255,255,.75)}.tg-public-profile-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:18px;padding:22px}.tg-public-profile-grid main{display:grid;gap:15px}.tg-public-profile-grid main>section,.tg-public-contact,.tg-public-trust{padding:22px;border:1px solid #e5dcf6;border-radius:16px;background:#fff}.tg-public-profile-grid h3{margin:5px 0 10px;color:#35077d}.tg-public-profile-grid p{color:#64567c;line-height:1.65}.tg-public-profile-grid aside{display:grid;align-content:start;gap:14px}.tg-public-contact{background:linear-gradient(145deg,#35077d,#4b00b8);color:#fff}.tg-public-contact h3,.tg-public-contact p{color:#fff}.tg-public-contact button{width:100%;margin-top:8px;padding:11px;border:1px solid rgba(255,255,255,.4);border-radius:9px;background:transparent;color:#fff;font-weight:900}.tg-public-contact button.primary{border-color:#06a521;background:#06a521}.tg-public-trust{display:grid;gap:10px}.tg-public-trust b{padding-bottom:9px;border-bottom:1px solid #eee8f5;color:#4b3672}
@media(max-width:900px){.tg-profile-cover-content{grid-template-columns:96px 1fr}.tg-profile-avatar{width:96px;height:96px;border-radius:20px}.tg-profile-hero-status{grid-column:1/-1}.tg-profile-layout,.tg-public-profile-grid{grid-template-columns:1fr}.tg-profile-contact-card{position:static}.tg-profile-metrics{grid-template-columns:repeat(2,1fr)}.tg-public-profile-hero{grid-template-columns:80px 1fr}.tg-public-profile-hero .tg-provider-photo{width:80px;height:80px}.tg-public-profile-status{grid-column:1/-1}}
@media(max-width:600px){.tg-profile-cover{padding:28px 18px}.tg-profile-cover-content{grid-template-columns:1fr;text-align:center}.tg-profile-avatar{margin:auto}.tg-profile-badges{justify-content:center}.tg-profile-services,.tg-profile-gallery,.tg-public-gallery{grid-template-columns:1fr}.tg-profile-gallery button,.tg-public-gallery button{min-height:230px}.tg-profile-metrics{margin:0 12px}.tg-profile-layout{padding:18px 12px}.tg-public-profile-hero{grid-template-columns:1fr;text-align:center}.tg-public-profile-hero .tg-provider-photo{margin:auto}.tg-public-profile-hero .tg-detail-trades{justify-content:center}.tg-public-profile-grid{padding:12px}}
.tg-review-job-button{margin-top:11px;padding:8px 12px;border:1px solid #b79bdc;border-radius:9px;background:#fff;color:#4b00b8;font-weight:800;cursor:pointer}.tg-review-job-button:hover{border-color:#4b00b8;background:#f7f1ff}.tg-review-modal{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;padding:18px;background:rgba(34,5,73,.7);backdrop-filter:blur(7px)}.tg-review-dialog{position:relative;width:min(520px,96vw);padding:32px;border:1px solid #e3d7f2;border-radius:22px;background:linear-gradient(145deg,#fff,#fbf7ff);box-shadow:0 28px 80px rgba(42,0,91,.3)}.tg-review-dialog h2{margin:7px 0;color:#35077d;font-size:28px}.tg-review-dialog>p{color:#6c5e82;line-height:1.55}.tg-review-close{position:absolute;top:15px;right:15px;width:38px;height:38px;border:1px solid #ded1ed;border-radius:50%;background:#fff;color:#4b00b8;font-size:22px;cursor:pointer}.tg-review-stars{display:flex;justify-content:center;gap:7px;margin:24px 0 7px}.tg-review-stars button{padding:0;border:0;background:none;color:#d8cee6;font-size:42px;line-height:1;cursor:pointer;transition:transform .15s,color .15s}.tg-review-stars button:hover{transform:translateY(-2px)}.tg-review-stars button.selected{color:#f4ae00}.tg-review-rating-label{text-align:center;color:#4b00b8;font-weight:900}.tg-review-copy{display:grid;gap:8px;margin:22px 0 13px;color:#35077d;font-weight:800}.tg-review-copy span{color:#88799d;font-size:11px;font-weight:500}.tg-review-copy textarea{min-height:120px;padding:13px;border:1px solid #d9c9ea;border-radius:12px;background:#fff;color:#35077d;font:inherit;font-weight:400;line-height:1.5;resize:vertical}.tg-review-copy textarea:focus{outline:3px solid rgba(0,189,50,.14);border-color:#00a82d}.tg-review-note{margin-bottom:16px;padding:11px;border-radius:10px;background:#effaf2;color:#25713a;font-size:11px;line-height:1.45}
.tg-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:25px clamp(24px,5vw,76px); background:#effaf2; color:#21453a; }
.tg-trust div { text-align:center; }.tg-trust b { display:block; color:#310877; }
.tg-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.tg-step { padding:24px; border-radius:18px; background:#fff; border:1px solid #e8dff4; }.tg-step i { display:inline-grid; width:36px; height:36px; place-items:center; border-radius:50%; background:var(--tg-purple); color:#fff; font-style:normal; font-weight:900; }.tg-step b { margin-left:8px; color:#35077d; }.tg-step p { color:#71648b; line-height:1.5; }
.tg-platform-footer {
  position: relative;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 16px;
  width: 100%;
  margin-top: 32px;
  padding: 20px 24px calc(104px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #eadcf4;
  background: linear-gradient(135deg, #fbf7ff 0%, #f2fff7 100%);
  color: #4b1767;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
}
.tg-platform-footer a {
  color: #009d2f;
  font-weight: 800;
  text-decoration: none;
}
.tg-platform-footer a:hover,
.tg-platform-footer a:focus-visible {
  text-decoration: underline;
}
.tg-public-footer {
  margin-top: 0;
  padding-top: 26px;
  background: linear-gradient(135deg, #2b0767 0%, #52008d 55%, #007e52 100%);
  color: #fff;
}
.tg-public-footer a { color: #8dffae; }
.tg-original-hidden { display:none !important; }
@media(max-width:1000px){.tg-service-grid{grid-template-columns:repeat(4,1fr)}.tg-pro-grid,.tg-results-grid{grid-template-columns:1fr}.tg-public-visual{display:none}.tg-public-hero{grid-template-columns:1fr}.tg-public-nav a{display:none}}
@media(max-width:640px){.tg-public-header{height:68px;padding:0 16px}.tg-public-logo{min-width:auto;font-size:25px}.tg-public-logo small{display:none}.tg-public-nav{gap:8px}.tg-public-nav button{font-size:12px}.tg-public-nav .tg-join{padding:10px}.tg-public-hero{margin:0;border-radius:0}.tg-public-hero-copy{padding:42px 20px}.tg-public-hero h1{font-size:43px;letter-spacing:-2px}.tg-search{grid-template-columns:1fr}.tg-search input,.tg-search select{border-right:0;border-bottom:1px solid #eee7f7}.tg-search button{padding:14px}.tg-service-grid{grid-template-columns:repeat(2,1fr)}.tg-pro{grid-template-columns:52px 1fr}.tg-pro button{grid-column:1/-1}.tg-trust,.tg-steps{grid-template-columns:1fr}.tg-account-theme-grid{grid-template-columns:1fr}.tg-account-themes{margin:12px}.tg-auth-directory-tools{align-items:stretch;flex-direction:column}.tg-auth-view-buttons{display:grid;grid-template-columns:repeat(3,1fr)}.tg-auth-view-buttons button{justify-content:center}.tg-admin-preview-grid,#results-list.tg-auth-card-view{grid-template-columns:1fr}.tg-map-canvas{height:420px}.tg-results-map,.tg-auth-results-map{min-height:420px}}
@media(max-width:640px){.tg-map-controls{left:8px;right:8px;top:8px;align-items:center;flex-wrap:wrap}.tg-map-controls label{flex:1;min-width:92px}.tg-map-controls select{width:100%;min-width:0}.tg-map-controls .tg-map-save{flex:1}.tg-map-legend{right:8px;left:8px;justify-content:center}.tg-map-expanded{inset:0!important;height:100vh!important;border-radius:0!important}}

/* View state must win over the authenticated design-system grid below. */
html[data-tg-theme] body:not(.tg-public-active) #results-list[hidden]{display:none!important}
html[data-tg-theme] body:not(.tg-public-active) #results-list.tg-auth-list-view{display:block;grid-template-columns:none;padding:0 clamp(18px,4vw,64px)}
html[data-tg-theme] body:not(.tg-public-active) #results-list.tg-auth-card-view{display:grid}

/* Authenticated application design system ---------------------------------
   Mirrors the public Tudo Guru experience while retaining every role and
   feature. Theme choices change colour, not information architecture. */
html[data-tg-theme="island-light"] {
  --navy:#fbfaff; --navy2:#ffffff; --navy3:#f5f1ff;
  --teal:#06a521; --teal-dark:#087a28; --teal-light:#087a28; --teal-muted:#effaf2;
  --text-primary:#251653; --text-secondary:#493a6e; --text-tertiary:#71658a;
  --border:#e5dcf6; --border-hover:#bda9e4; --overlay:rgba(75,0,184,.045);
  --danger:#b42348; --info:#4b00b8; --success-tint:#087a28;
}
html[data-tg-theme="caribbean-breeze"] {
  --navy:#f3fbfa; --navy2:#ffffff; --navy3:#e8f7f4;
  --teal:#087f75; --teal-dark:#075e57; --teal-light:#087f75; --teal-muted:#dff4ef;
  --text-primary:#073e4a; --text-secondary:#315d65; --text-tertiary:#648087;
  --border:#bfe3dc; --border-hover:#76bdb1; --overlay:rgba(8,127,117,.055);
}
html[data-tg-theme="royal-plum"] {
  --navy:#f8f2fb; --navy2:#ffffff; --navy3:#f1e4f5;
  --teal:#a83c91; --teal-dark:#7c286a; --teal-light:#8e327b; --teal-muted:#f4e2f1;
  --text-primary:#391049; --text-secondary:#64466e; --text-tertiary:#7b617f;
  --border:#e6d2e9; --border-hover:#c79dce; --overlay:rgba(92,27,120,.05);
}
html[data-tg-theme="ocean-blue"] {
  --navy:#eff9fc; --navy2:#ffffff; --navy3:#e2f4f8;
  --teal:#008ba3; --teal-dark:#066b7d; --teal-light:#007a91; --teal-muted:#dcf3f7;
  --text-primary:#073b55; --text-secondary:#385f70; --text-tertiary:#587785;
  --border:#c9e5ec; --border-hover:#82c5d3; --overlay:rgba(0,139,163,.05);
}
html[data-tg-theme="sunset-sand"] {
  --navy:#fff9ee; --navy2:#fffdf8; --navy3:#fff1d7;
  --teal:#d85d42; --teal-dark:#a94431; --teal-light:#b94e37; --teal-muted:#fde8dd;
  --text-primary:#52291f; --text-secondary:#6f4c40; --text-tertiary:#846b5e;
  --border:#edd9bd; --border-hover:#d6ad84; --overlay:rgba(216,93,66,.05);
}

html[data-tg-theme] body:not(.tg-public-active) {
  background:
    radial-gradient(circle at 8% 8%, color-mix(in srgb,var(--teal) 8%,transparent), transparent 30%),
    radial-gradient(circle at 92% 0%, rgba(75,0,184,.08), transparent 32%),
    var(--navy) !important;
  color:var(--text-primary) !important;
  font-family:"Segoe UI Variable","Aptos","Segoe UI",sans-serif !important;
}
html[data-tg-theme] body:not(.tg-public-active) .app { background:transparent; }
html[data-tg-theme] body:not(.tg-public-active) h1,
html[data-tg-theme] body:not(.tg-public-active) h2,
html[data-tg-theme] body:not(.tg-public-active) h3 { letter-spacing:-.025em; font-weight:800; }

/* Brand header */
html[data-tg-theme] body:not(.tg-public-active) .top-bar {
  min-height:76px; height:76px; padding:0 clamp(18px,4vw,64px);
  background:rgba(255,255,255,.94) !important; border-bottom:1px solid var(--border) !important;
  box-shadow:0 10px 30px rgba(48,8,104,.055); backdrop-filter:blur(18px); z-index:40;
}
html[data-tg-theme] body:not(.tg-public-active) .logo {
  color:#4b00b8 !important; font-size:27px; font-weight:900; letter-spacing:-1.2px;
}
html[data-tg-theme] body:not(.tg-public-active) .logo em { color:#06a521 !important; }
html[data-tg-theme] body:not(.tg-public-active) .icon-btn,
html[data-tg-theme] body:not(.tg-public-active) .avatar-btn {
  background:#fff !important; border:1px solid var(--border) !important; color:var(--text-primary) !important;
  box-shadow:0 6px 18px rgba(48,8,104,.07);
}
html[data-tg-theme] body:not(.tg-public-active) .avatar-btn { width:38px;height:38px;border-color:var(--teal) !important;color:var(--teal-dark) !important; }

/* Shared screen composition */
html[data-tg-theme] body:not(.tg-public-active) .screen {
  background:transparent !important; padding-bottom:110px;
}
@keyframes tg-screen-in { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:none} }
html[data-tg-theme] body:not(.tg-public-active) .screen.active { opacity:1;animation:tg-screen-in .34s ease both; }

/* Tudo Guru now has one visual language. Legacy theme controls are hidden. */
.tg-theme-launcher,.tg-theme-menu,.tg-account-themes,.theme-swatch-btn { display:none !important; }
html[data-tg-theme] body:not(.tg-public-active) .post-header,
html[data-tg-theme] body:not(.tg-public-active) .results-header,
html[data-tg-theme] body:not(.tg-public-active) .analytics-header,
html[data-tg-theme] body:not(.tg-public-active) #screen-profile>div:first-child,
html[data-tg-theme] body:not(.tg-public-active) #screen-myprofile>div:first-child,
html[data-tg-theme] body:not(.tg-public-active) #screen-messages>div:first-child {
  min-height:76px; padding:16px clamp(20px,4vw,64px) !important;
  background:linear-gradient(105deg,#f8f3ff,#f1fff5) !important;
  border-bottom:1px solid var(--border) !important;
}
html[data-tg-theme] body:not(.tg-public-active) .back-btn { background:#fff;border:1px solid var(--border);box-shadow:0 5px 15px rgba(48,8,104,.06); }

/* Client marketplace home */
html[data-tg-theme] body:not(.tg-public-active) #screen-home { padding-top:20px; }
html[data-tg-theme] body:not(.tg-public-active) .home-hero {
  position:relative; isolation:isolate; min-height:330px; overflow:hidden;
  margin:0 clamp(18px,3vw,48px); padding:52px clamp(26px,4vw,58px);
  border:1px solid #e7ddf5; border-radius:26px;
  background:linear-gradient(118deg,#fbf8ff 0%,#f4efff 53%,#e9fff0 100%) !important;
  box-shadow:0 24px 60px rgba(50,8,111,.08);
}
html[data-tg-theme] body:not(.tg-public-active) .home-hero::after {
  content:""; position:absolute; z-index:-1; inset:0 0 0 48%;
  background:linear-gradient(90deg,#f5efff 0%,rgba(245,239,255,.05) 22%),url('assets/tudoguru-public-hero.png') center/cover no-repeat;
}
html[data-tg-theme] body:not(.tg-public-active) .hero-eyebrow { color:#087a28;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800; }
html[data-tg-theme] body:not(.tg-public-active) .hero-title { max-width:650px;margin:12px 0 24px;color:#35077d !important;font-size:clamp(42px,4.5vw,66px);line-height:1;letter-spacing:-3px; }
html[data-tg-theme] body:not(.tg-public-active) .hero-title em { color:#06a521 !important; }
html[data-tg-theme] body:not(.tg-public-active) .search-row { position:relative;z-index:2;max-width:700px;padding:6px;border:1px solid #ddd3ef;border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(55,10,110,.12); }
html[data-tg-theme] body:not(.tg-public-active) .search-row input { min-height:48px;background:#fff !important;border:0 !important;padding-left:16px; }
html[data-tg-theme] body:not(.tg-public-active) .search-btn { width:50px;height:48px;border-radius:10px;background:#06a521 !important; }
html[data-tg-theme] body:not(.tg-public-active) .islands-scroll { margin:18px clamp(18px,4vw,64px) 6px;padding:0;gap:9px; }
html[data-tg-theme] body:not(.tg-public-active) .island-pill,
html[data-tg-theme] body:not(.tg-public-active) .chip { background:#fff;border:1px solid var(--border);color:var(--text-secondary);box-shadow:0 4px 12px rgba(48,8,104,.03); }
html[data-tg-theme] body:not(.tg-public-active) .island-pill.active,
html[data-tg-theme] body:not(.tg-public-active) .chip.sel { background:#effaf2;color:#087a28;border-color:#06a521; }
html[data-tg-theme] body:not(.tg-public-active) #screen-home>.islands-scroll+div,
html[data-tg-theme] body:not(.tg-public-active) #screen-home>div[style*="padding:10px"] { padding:10px clamp(18px,4vw,64px) !important; }
html[data-tg-theme] body:not(.tg-public-active) .info-box { background:linear-gradient(90deg,#f0fff4,#f8f4ff) !important;border:1px solid color-mix(in srgb,var(--teal) 45%,var(--border)) !important;border-radius:12px;color:var(--text-secondary); }
html[data-tg-theme] body:not(.tg-public-active) .section-label { color:#35077d;font-size:18px;font-weight:800;letter-spacing:-.02em;text-transform:none; }
html[data-tg-theme] body:not(.tg-public-active) #screen-home>div[style*="padding:0 16px"],
html[data-tg-theme] body:not(.tg-public-active) #screen-home>div[style*="padding: 4px 16px"] { padding:18px clamp(18px,4vw,64px) 10px !important; }
html[data-tg-theme] body:not(.tg-public-active) .cat-scroll { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0 clamp(18px,4vw,64px);overflow:visible; }
html[data-tg-theme] body:not(.tg-public-active) .cat-item { width:auto;min-height:116px;padding:20px 12px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(54,13,108,.055);transition:.2s ease; }
html[data-tg-theme] body:not(.tg-public-active) .cat-item:hover { transform:translateY(-3px);border-color:#06a521;box-shadow:0 16px 32px rgba(54,13,108,.1); }
html[data-tg-theme] body:not(.tg-public-active) .cat-item svg { width:34px;height:34px;color:#4b00b8;stroke:#4b00b8; }
html[data-tg-theme] body:not(.tg-public-active) .cat-item span { margin-top:10px;color:#35077d;font-weight:750; }
html[data-tg-theme] body:not(.tg-public-active) #tradesman-list,
html[data-tg-theme] body:not(.tg-public-active) #results-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 clamp(18px,4vw,64px); }
html[data-tg-theme] body:not(.tg-public-active) .tradesman-row { min-height:120px;margin:0;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(54,13,108,.055); }
html[data-tg-theme] body:not(.tg-public-active) #screen-home>div:last-child { padding:18px clamp(18px,4vw,64px) !important; }

/* Forms, cards, lists, dashboards and admin */
html[data-tg-theme] body:not(.tg-public-active) input,
html[data-tg-theme] body:not(.tg-public-active) textarea,
html[data-tg-theme] body:not(.tg-public-active) select { min-height:46px;border:1px solid var(--border) !important;border-radius:11px;background:#fbf9ff !important;color:var(--text-primary) !important; }
html[data-tg-theme] body:not(.tg-public-active) input:focus,
html[data-tg-theme] body:not(.tg-public-active) textarea:focus,
html[data-tg-theme] body:not(.tg-public-active) select:focus { border-color:#4b00b8 !important;box-shadow:0 0 0 4px rgba(75,0,184,.09); }
html[data-tg-theme] body:not(.tg-public-active) label { color:var(--text-secondary);font-weight:700; }
html[data-tg-theme] body:not(.tg-public-active) .btn { min-height:42px;border-radius:10px;font-weight:800; }
html[data-tg-theme] body:not(.tg-public-active) .btn-primary,
html[data-tg-theme] body:not(.tg-public-active) .btn-accept,
html[data-tg-theme] body:not(.tg-public-active) .btn-bid,
html[data-tg-theme] body:not(.tg-public-active) .btn-approve { background:#06a521 !important;color:#fff !important;box-shadow:0 8px 18px rgba(6,165,33,.18); }
html[data-tg-theme] body:not(.tg-public-active) .btn-secondary { background:#fff !important;color:#35077d !important;border:1px solid #d9cdef !important; }
html[data-tg-theme] body:not(.tg-public-active) .form-block,
html[data-tg-theme] body:not(.tg-public-active) #screen-myprofile>div:nth-child(2),
html[data-tg-theme] body:not(.tg-public-active) .pay-summary,
html[data-tg-theme] body:not(.tg-public-active) .card-input-wrap { width:min(1080px,calc(100% - 36px));margin:16px auto;padding:22px;border:1px solid var(--border) !important;border-radius:18px;background:#fff !important;box-shadow:0 12px 32px rgba(54,13,108,.06); }
html[data-tg-theme] body:not(.tg-public-active) .card,
html[data-tg-theme] body:not(.tg-public-active) .job-card,
html[data-tg-theme] body:not(.tg-public-active) .incoming-card,
html[data-tg-theme] body:not(.tg-public-active) .doc-card,
html[data-tg-theme] body:not(.tg-public-active) .ai-provider-card,
html[data-tg-theme] body:not(.tg-public-active) .model-select-row,
html[data-tg-theme] body:not(.tg-public-active) .ast,
html[data-tg-theme] body:not(.tg-public-active) .perf-card,
html[data-tg-theme] body:not(.tg-public-active) .mp-professional-card { background:#fff !important;border:1px solid var(--border) !important;border-radius:16px !important;box-shadow:0 10px 26px rgba(54,13,108,.055); }
html[data-tg-theme] body:not(.tg-public-active) .incoming-card { width:min(1080px,calc(100% - 36px));margin:0 auto 14px; }
html[data-tg-theme] body:not(.tg-public-active) .analytics-header { background:linear-gradient(105deg,#3a0788,#06a521) !important;color:#fff !important; }
html[data-tg-theme] body:not(.tg-public-active) .analytics-header * { color:#fff !important; }
html[data-tg-theme] body:not(.tg-public-active) .earnings-card,
html[data-tg-theme] body:not(.tg-public-active) .perf-grid,
html[data-tg-theme] body:not(.tg-public-active) .recent-jobs-list { width:min(1120px,calc(100% - 36px));margin-left:auto;margin-right:auto; }
html[data-tg-theme] body:not(.tg-public-active) .admin-screen { background:transparent !important; }
html[data-tg-theme] body:not(.tg-public-active) .admin-header { padding:28px clamp(20px,4vw,64px);background:linear-gradient(110deg,#35077d,#4b00b8 60%,#078b2b) !important;color:#fff !important; }
html[data-tg-theme] body:not(.tg-public-active) .admin-header * { color:#fff !important; }
html[data-tg-theme] body:not(.tg-public-active) .admin-stat-grid { grid-template-columns:repeat(4,1fr);gap:14px;padding:20px clamp(18px,4vw,64px); }
html[data-tg-theme] body:not(.tg-public-active) .tab-bar { padding:0 clamp(18px,4vw,64px);background:rgba(255,255,255,.94) !important;border-color:var(--border); }
html[data-tg-theme] body:not(.tg-public-active) .tab-item.active { color:#4b00b8;border-bottom-color:#06a521; }
html[data-tg-theme] body:not(.tg-public-active) .user-row,
html[data-tg-theme] body:not(.tg-public-active) .flag-item { margin:10px clamp(18px,4vw,64px);border:1px solid var(--border);border-radius:14px;background:#fff; }

/* Messaging and modal surfaces */
html[data-tg-theme] body:not(.tg-public-active) .modal-overlay,
html[data-tg-theme] body:not(.tg-public-active) .bid-submit-modal { background:rgba(39,7,82,.55);backdrop-filter:blur(6px); }
html[data-tg-theme] body:not(.tg-public-active) .modal-sheet,
html[data-tg-theme] body:not(.tg-public-active) .bid-submit-sheet { max-width:620px;padding:26px;border:1px solid var(--border);border-radius:24px 24px 0 0;background:#fff !important;box-shadow:0 -20px 70px rgba(40,7,90,.2); }
html[data-tg-theme] body:not(.tg-public-active) .role-btn { background:#fbf9ff;border:1px solid var(--border); }
html[data-tg-theme] body:not(.tg-public-active) .message-bubble,
html[data-tg-theme] body:not(.tg-public-active) .msg-bubble { border-radius:16px;box-shadow:0 6px 16px rgba(54,13,108,.05); }

/* Desktop navigation dock */
html[data-tg-theme] body:not(.tg-public-active) .bottom-nav {
  position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(760px,calc(100% - 32px));height:72px;
  border:1px solid var(--border) !important;border-radius:22px;background:rgba(255,255,255,.95) !important;
  box-shadow:0 18px 52px rgba(42,7,91,.16);backdrop-filter:blur(18px);overflow:visible;
}
html[data-tg-theme] body:not(.tg-public-active) .bnav { color:var(--text-tertiary);font-weight:700; }
html[data-tg-theme] body:not(.tg-public-active) .bnav.active { color:#4b00b8; }
html[data-tg-theme] body:not(.tg-public-active) .bnav-post { width:54px;height:54px;background:#06a521;color:#fff;box-shadow:0 10px 24px rgba(6,165,33,.3); }

@media(max-width:1000px) {
  html[data-tg-theme] body:not(.tg-public-active) .home-hero::after { opacity:.34;inset:0 0 0 38%; }
  html[data-tg-theme] body:not(.tg-public-active) #tradesman-list,
  html[data-tg-theme] body:not(.tg-public-active) #results-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html[data-tg-theme] body:not(.tg-public-active) .admin-stat-grid { grid-template-columns:repeat(2,1fr); }
}

/* Compact native selection controls. Prevent generic form-input sizing from
   turning checkboxes and radio buttons into large blocks. */
input[type="checkbox"],
input[type="radio"] {
  width:18px !important;
  min-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  margin:0 8px 0 0 !important;
  padding:0 !important;
  border-radius:5px;
  accent-color:#00ad36;
  vertical-align:middle;
}
input[type="radio"] { border-radius:50%; }
label:has(> input[type="checkbox"]),
label:has(> input[type="radio"]) {
  display:flex;
  align-items:center;
  gap:6px;
}
@media(max-width:640px) {
  html[data-tg-theme] body:not(.tg-public-active) .top-bar { height:64px;min-height:64px;padding:0 14px; }
  html[data-tg-theme] body:not(.tg-public-active) .logo { font-size:23px; }
  html[data-tg-theme] body:not(.tg-public-active) #screen-home { padding-top:0; }
  html[data-tg-theme] body:not(.tg-public-active) .home-hero { min-height:330px;margin:0;padding:40px 20px;border-width:0 0 1px;border-radius:0; }
  html[data-tg-theme] body:not(.tg-public-active) .home-hero::after { opacity:.14;inset:0; }
  html[data-tg-theme] body:not(.tg-public-active) .hero-title { font-size:44px;letter-spacing:-2px; }
  html[data-tg-theme] body:not(.tg-public-active) .cat-scroll { grid-template-columns:repeat(2,minmax(0,1fr));padding:0 14px;gap:10px; }
  html[data-tg-theme] body:not(.tg-public-active) .cat-item { min-height:105px; }
  html[data-tg-theme] body:not(.tg-public-active) #tradesman-list,
  html[data-tg-theme] body:not(.tg-public-active) #results-list { grid-template-columns:1fr;padding:0 14px; }
  html[data-tg-theme] body:not(.tg-public-active) .form-block,
  html[data-tg-theme] body:not(.tg-public-active) #screen-myprofile>div:nth-child(2),
  html[data-tg-theme] body:not(.tg-public-active) .pay-summary,
  html[data-tg-theme] body:not(.tg-public-active) .card-input-wrap { width:calc(100% - 24px);padding:16px;margin:12px auto; }
  html[data-tg-theme] body:not(.tg-public-active) .bottom-nav { left:0;bottom:0;transform:none;width:100%;height:68px;border-width:1px 0 0 !important;border-radius:0; }
}

.tg-auth-location-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tg-auth-location-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tg-auth-location-actions button{min-height:42px;border:1px solid #d7b9eb;border-radius:12px;background:#fff;color:#4b006e;font-weight:700;padding:0 14px;cursor:pointer}.tg-auth-location-status{font-size:12px;color:#6d537c}.tg-auth-form textarea{width:100%;min-height:72px;resize:vertical}.tg-auth-form select{width:100%}@media(max-width:640px){.tg-auth-location-grid{grid-template-columns:1fr}}

/* Quote modal bottom-navigation safety - r123 */
.bid-submit-modal {
  z-index:11050 !important;
  padding-bottom:env(safe-area-inset-bottom, 0px);
  overflow-y:auto;
}
html[data-tg-theme] body:not(.tg-public-active) .bid-submit-sheet {
  max-height:calc(100dvh - 24px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-bottom:calc(28px + env(safe-area-inset-bottom, 0px)) !important;
}

/* Public unclaimed provider directory */
.tg-provider-card--unclaimed{border-style:dashed;background:linear-gradient(135deg,#fff 0%,#fbf6ff 100%)}
.tg-provider-card--unclaimed .tg-provider-photo{filter:saturate(.78)}
.tg-unclaimed-badge{display:inline-flex;align-items:center;width:max-content;padding:.28rem .58rem;border:1px solid #d8b04c;border-radius:999px;background:#fff7d8;color:#745100;font-size:.72rem;font-weight:800;letter-spacing:.02em;vertical-align:middle}
.tg-provider-privacy{margin-top:.48rem;color:#705d78;font-size:.78rem;line-height:1.4}
.tg-unclaimed-profile{display:grid;gap:1rem;padding:.25rem}
.tg-unclaimed-profile>header{padding:1.25rem;border-radius:1.35rem;background:linear-gradient(125deg,#52008e,#7800c8 58%,#008f58);color:#fff}
.tg-unclaimed-profile>header h2{margin:.75rem 0 .2rem;color:#fff;font-size:clamp(1.8rem,4vw,3.2rem)}
.tg-unclaimed-profile>header .tg-unclaimed-badge{background:#fff7d8;color:#654700}
.tg-unclaimed-notice,.tg-claim-panel{padding:1.15rem;border:1px solid #ead7f4;border-radius:1.15rem;background:#fff}
.tg-unclaimed-notice h3,.tg-claim-panel h3{margin:0 0 .45rem;color:#44006f}
.tg-unclaimed-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
.tg-unclaimed-actions button,.tg-claim-panel>button{min-height:2.8rem;padding:.7rem 1rem;border:1px solid #d6b7e8;border-radius:.75rem;background:#fff;color:#4b006f;font-weight:800}
.tg-unclaimed-actions .tg-primary-action,.tg-claim-panel .tg-primary-action{border-color:#00a92d;background:#00b82e;color:#fff}
.tg-claim-form{display:grid;gap:.85rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #ead7f4}
.tg-claim-form[hidden]{display:none!important}.tg-claim-form label{display:grid;gap:.35rem;color:#3f2050;font-weight:700}
.tg-claim-form input,.tg-claim-form textarea{width:100%;box-sizing:border-box;padding:.78rem .85rem;border:1px solid #ddc7e9;border-radius:.75rem;background:#fcf9ff;color:#2c073f;font:inherit}
.tg-claim-form textarea{min-height:7rem;resize:vertical}.tg-claim-message{min-height:1.25rem;margin:0;color:#705d78}
.tg-claim-message.is-error{color:#a11d3d}.tg-claim-message.is-success{color:#087a28;font-weight:700}.tg-claim-role-note{padding:.8rem;border-radius:.75rem;background:#fff7d8;color:#654700}
@media(max-width:650px){.tg-unclaimed-actions{display:grid}.tg-unclaimed-actions button{width:100%}}

/* Public profile loading state */
.tg-profile-loader{min-height:340px;display:grid;place-items:center;padding:36px;background:radial-gradient(circle at 50% 20%,rgba(0,184,36,.10),transparent 34%),linear-gradient(145deg,#fbf9ff,#f4edff)}
.tg-profile-loader-card{display:grid;justify-items:center;gap:9px;width:min(320px,82vw);padding:30px 24px;border:1px solid rgba(81,13,158,.12);border-radius:22px;background:rgba(255,255,255,.88);box-shadow:0 18px 48px rgba(49,7,99,.14);text-align:center}
.tg-profile-loader-card strong{color:#35077d;font-size:18px;letter-spacing:-.01em}.tg-profile-loader-card small{max-width:240px;color:#75688b;font-size:12px;line-height:1.5}
.tg-profile-spinner{position:relative;width:54px;height:54px;margin-bottom:5px;border-radius:50%;background:conic-gradient(from 20deg,#00b824,#00b824 28%,#5f08be 70%,rgba(95,8,190,.08) 96%);animation:tg-profile-spin .85s linear infinite;box-shadow:0 9px 24px rgba(0,184,36,.16)}
.tg-profile-spinner::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}.tg-profile-spinner span{position:absolute;z-index:1;inset:20px;border-radius:50%;background:#00b824}
@keyframes tg-profile-spin{to{transform:rotate(360deg)}}
@media (max-width:640px){.tg-profile-loader{min-height:280px;padding:24px 16px}.tg-profile-loader-card{padding:26px 18px}}
@media (prefers-reduced-motion:reduce){.tg-profile-spinner{animation-duration:1.8s}}