:root {
  --app-primary:#2563eb;--app-primary-dark:#1d4ed8;--app-primary-soft:#eff6ff;
  --app-ink:#0f172a;--app-text:#334155;--app-muted:#64748b;--app-line:#e2e8f0;
  --app-line-soft:#edf1f6;--app-surface:#fff;--app-canvas:#f5f7fb;
  --app-success:#15803d;--app-danger:#b42318;--app-radius-sm:8px;
  --app-radius:11px;--app-radius-lg:14px;
  --app-shadow:0 1px 2px rgba(15,23,42,.03),0 8px 24px rgba(15,23,42,.045);
  --app-focus:0 0 0 3px rgba(37,99,235,.16);
}
html{min-width:320px}body{color:var(--app-text);background:var(--app-canvas);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.875rem;-webkit-font-smoothing:antialiased}
a,button,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,transform .16s ease}a{text-underline-offset:2px}:focus-visible{outline:0;box-shadow:var(--app-focus)!important}
.app-shell{width:100%;max-width:1680px;margin:0 auto;padding:12px}.app-layout{display:grid;grid-template-columns:238px minmax(0,1fr);gap:14px;align-items:start}.app-main{min-width:0}
.app-sidebar{position:sticky;top:12px;display:flex;flex-direction:column;height:calc(100vh - 24px);overflow:hidden;color:#dbeafe;background:linear-gradient(165deg,#101b36 0%,#172d66 58%,#1e3a8a 100%);border:1px solid rgba(255,255,255,.08);border-radius:var(--app-radius-lg);box-shadow:0 14px 36px rgba(15,23,42,.18)}
.app-sidebar__head{display:flex;align-items:center;min-height:64px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.09)}.app-brand{display:flex;align-items:center;gap:10px;min-width:0;color:#fff;text-decoration:none}.app-brand:hover{color:#fff}.app-brand__logo{width:34px;height:34px;flex:0 0 auto;padding:5px;border-radius:9px;background:rgba(255,255,255,.96);object-fit:contain}.app-brand__copy{min-width:0}.app-brand__name{display:block;overflow:hidden;font-size:.91rem;font-weight:750;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.app-brand__meta{display:block;margin-top:1px;color:#93b4ee;font-size:.66rem;font-weight:650;letter-spacing:.055em;text-transform:uppercase}.app-sidebar__nav{flex:1 1 auto;overflow:auto;padding:10px 9px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.app-sidebar__footer{padding:10px;border-top:1px solid rgba(255,255,255,.09)}.app-sidebar__user{overflow:hidden;color:#bcd1f5;font-size:.71rem;text-overflow:ellipsis;white-space:nowrap}
.app-nav-link,.app-nav-group-toggle{display:flex;align-items:center;gap:10px;min-height:38px;margin-bottom:3px;padding:8px 10px;border-radius:9px;color:#c9daf7;font-size:.82rem;font-weight:620;line-height:1.2;text-decoration:none}.app-nav-link:hover,.app-nav-group-toggle:hover{color:#fff;background:rgba(255,255,255,.09)}.app-nav-link.is-active,.app-nav-group-toggle.is-active{color:#fff;background:rgba(37,99,235,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.app-nav-icon{width:17px;height:17px;flex:0 0 auto;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.app-nav-label{flex:1 1 auto;min-width:0}.app-nav-group{margin:0}.app-nav-group-toggle{cursor:pointer;list-style:none}.app-nav-group-toggle .app-nav-label{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase}.app-nav-group-toggle::-webkit-details-marker{display:none}.app-nav-chevron{width:14px;height:14px;margin-left:auto;transition:transform .18s ease}.app-nav-group[open] .app-nav-chevron{transform:rotate(180deg)}.app-nav-submenu{margin:2px 0 5px 18px;padding:2px 0 2px 12px;border-left:1px solid rgba(255,255,255,.14)}.app-nav-sublink{display:block;margin:1px 0;padding:7px 9px;border-radius:8px;color:#bcd1f5;font-size:.76rem;font-weight:600;line-height:1.25;text-decoration:none}.app-nav-sublink:hover{color:#fff;background:rgba(255,255,255,.08)}.app-nav-sublink.is-active{color:#fff;background:rgba(37,99,235,.58)}
.app-topbar{position:sticky;top:0;z-index:1010;display:flex;align-items:center;min-height:64px;margin-bottom:14px;padding:9px 12px 9px 16px;border:1px solid rgba(226,232,240,.9);border-radius:var(--app-radius-lg);background:rgba(255,255,255,.88);box-shadow:0 5px 18px rgba(15,23,42,.04);backdrop-filter:blur(14px)}.app-topbar-main{flex:1 1 auto;min-width:0}.app-topbar-title{margin:0;overflow:hidden;color:var(--app-ink);font-size:1.18rem;font-weight:760;letter-spacing:-.02em;line-height:1.22;text-overflow:ellipsis;white-space:nowrap}.app-topbar-subheading{margin-top:3px;overflow:hidden;color:var(--app-muted);font-size:.72rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.app-topbar-actions{display:flex;align-items:center;gap:8px;margin-left:14px}.app-menu-button{display:none;width:38px;height:38px;align-items:center;justify-content:center;margin-right:9px;padding:0}.app-user-menu{min-width:224px;padding:7px;border-color:var(--app-line);border-radius:var(--app-radius);box-shadow:0 18px 46px rgba(15,23,42,.14)}.app-user-trigger{display:flex;align-items:center;gap:8px;max-width:220px;padding:5px 8px 5px 5px;border-color:var(--app-line);background:#fff}.app-user-trigger::after{margin-left:2px}.app-user-avatar{display:grid;place-items:center;width:27px;height:27px;flex:0 0 auto;border-radius:8px;color:#fff;background:linear-gradient(135deg,#2563eb,#1e40af);font-size:.69rem;font-weight:800}.app-user-name{overflow:hidden;font-size:.75rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.app-content{min-width:0}.app-flashes .alert{margin-bottom:10px}
.app-content>.card,.app-content>form.card,.app-content .card{border:1px solid var(--app-line);border-radius:var(--app-radius);background:var(--app-surface);box-shadow:var(--app-shadow)!important}.app-content>.card>.card-body,.app-content .card>.card-body{padding:15px}.card-header,.card-footer{border-color:var(--app-line-soft);background:#fbfcfe}.card-title,h2,h3,h4,h5,h6{color:var(--app-ink);letter-spacing:-.012em}.fw-semibold{font-weight:650!important}.text-muted{color:var(--app-muted)!important}.small,small{font-size:.78rem}hr{border-color:var(--app-line);opacity:1}
.form-label{margin-bottom:5px;color:#475569;font-size:.76rem;font-weight:650}.form-control,.form-select{min-height:38px;padding:.43rem .68rem;border-color:#cfd8e6;border-radius:var(--app-radius-sm);color:var(--app-ink);background-color:#fff;font-size:.84rem}textarea.form-control{min-height:84px}.form-control-sm,.form-select-sm{min-height:32px;padding:.3rem .55rem;border-radius:7px;font-size:.77rem}.form-control::placeholder{color:#94a3b8}.form-control:hover,.form-select:hover{border-color:#aebbcf}.form-control:focus,.form-select:focus{border-color:var(--app-primary);box-shadow:var(--app-focus)}.form-control:disabled,.form-select:disabled,.form-control[readonly]{color:#64748b;background-color:#f8fafc}.form-check-input{border-color:#b8c4d5}.form-check-input:checked{border-color:var(--app-primary);background-color:var(--app-primary)}.form-check-input:focus{border-color:var(--app-primary);box-shadow:var(--app-focus)}.input-group>.btn{min-height:38px}
.btn{min-height:36px;padding:.41rem .72rem;border-radius:var(--app-radius-sm);font-size:.8rem;font-weight:650;line-height:1.2}.btn-sm,.btn-group-sm>.btn{min-height:30px;padding:.3rem .55rem;border-radius:7px;font-size:.73rem}.btn-lg{min-height:44px;padding:.65rem 1rem;font-size:.9rem}.btn-primary{border-color:var(--app-primary);background:var(--app-primary);box-shadow:0 1px 2px rgba(37,99,235,.12)}.btn-primary:hover,.btn-primary:focus{border-color:var(--app-primary-dark);background:var(--app-primary-dark);transform:translateY(-1px)}.btn-outline-primary{color:var(--app-primary-dark);border-color:#b7caf8;background:#fff}.btn-outline-primary:hover{color:#fff;border-color:var(--app-primary);background:var(--app-primary)}.btn-outline-secondary{color:#475569;border-color:#cbd5e1;background:#fff}.btn-outline-secondary:hover{color:var(--app-ink);border-color:#aebaca;background:#f8fafc}.btn-outline-danger{color:var(--app-danger);border-color:#fecaca;background:#fff}.btn-outline-success{color:var(--app-success);border-color:#bbf7d0;background:#fff}.dropdown-menu{border-color:var(--app-line);border-radius:var(--app-radius);box-shadow:0 14px 40px rgba(15,23,42,.12);font-size:.8rem}.dropdown-item{padding:.48rem .62rem;border-radius:7px}.dropdown-item:hover{background:#f1f5f9}
.table-responsive{border:1px solid var(--app-line-soft);border-radius:9px;scrollbar-width:thin}.table-responsive>.table{margin-bottom:0}.table{--bs-table-bg:transparent;color:var(--app-text);font-size:.78rem}.table>:not(caption)>*>*{padding:.66rem .7rem;border-bottom-color:var(--app-line-soft);vertical-align:middle}.table thead th{color:var(--app-muted);background:#f8fafc;font-size:.67rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}.table tbody tr:last-child td{border-bottom-width:0}.table tbody tr:hover>*{--bs-table-bg-state:#f8fbff}.badge{padding:.34rem .48rem;border-radius:999px;font-size:.66rem;font-weight:700}.progress{overflow:hidden;border-radius:999px;background:#e8edf5}.pagination{--bs-pagination-border-radius:7px;--bs-pagination-color:#475569;--bs-pagination-active-bg:var(--app-primary);--bs-pagination-active-border-color:var(--app-primary)}.alert{padding:.68rem .82rem;border-radius:9px;font-size:.79rem}.modal-content{overflow:hidden;border:0;border-radius:var(--app-radius-lg);box-shadow:0 24px 70px rgba(15,23,42,.22)}.modal-header,.modal-footer{padding:.82rem 1rem;border-color:var(--app-line)}.modal-body{padding:1rem}.modal-title{font-size:.98rem;font-weight:720}.offcanvas{--bs-offcanvas-width:min(304px,88vw)}.offcanvas-header{border-bottom:1px solid var(--app-line)}.offcanvas-body{padding:10px;background:#101b36}.empty-state{max-width:34rem;margin:1rem auto;padding:1.5rem;border:1px dashed #bfd0ea;border-radius:var(--app-radius);background:#f8fbff;text-align:center}
.app-content form.bg-light,.app-content .bg-light.border,.app-content .border.rounded.p-3{border-color:var(--app-line)!important;border-radius:var(--app-radius)!important;background:#f8fafc!important}.app-content .row.g-3{--bs-gutter-x:.85rem;--bs-gutter-y:.85rem}.app-content .row.g-2{--bs-gutter-x:.55rem;--bs-gutter-y:.55rem}.app-content .mb-4{margin-bottom:1.25rem!important}.app-content .mt-4{margin-top:1.25rem!important}
.app-content .card-body>.d-flex:first-child{min-width:0}.app-content .card-body>.d-flex:first-child>div:first-child{min-width:0}.app-content .card-body>.d-flex:first-child .d-flex{flex-wrap:wrap}.app-content td .d-flex{row-gap:4px!important}
#btnDeleteSelected:disabled,#btnBulkCompetitorAssignments:disabled{display:none}.dashboard-hero{padding:18px!important;border-radius:14px!important;box-shadow:0 10px 28px rgba(29,78,216,.16)!important}.dashboard-summary{gap:18px!important;margin-top:16px!important}.dashboard-filterbar{padding:11px!important;border-radius:11px!important}.dashboard-card{border-radius:11px!important;box-shadow:var(--app-shadow)!important}.dashboard-card__header{padding:14px 15px 0!important}.dashboard-card__body{padding:14px 15px!important}.dashboard-kpi{min-height:124px!important}.dashboard-kpi__value{margin-top:10px!important;font-size:1.5rem!important}.dashboard-chart{height:270px!important}.dashboard-chart--small{height:235px!important}.dashboard-task{min-height:66px!important;padding:10px!important}.places-empty-state{border-radius:var(--app-radius)!important}.reviews-filter-bar{padding:12px!important}
.app-content [id$="Loading"]:not(.d-none),.app-content [id$="loading"]:not(.d-none){animation:app-pulse 1.3s ease-in-out infinite}@keyframes app-pulse{0%,100%{opacity:.55}50%{opacity:1}}
.auth-page{min-height:100vh;color:var(--app-text);background:radial-gradient(circle at 82% 10%,#dce8ff 0,transparent 28%),radial-gradient(circle at 8% 88%,#e8f1ff 0,transparent 25%),#f6f8fc}.auth-shell{display:grid;grid-template-columns:minmax(300px,420px) minmax(320px,560px);justify-content:center;align-items:stretch;gap:14px;width:min(1010px,calc(100% - 32px));min-height:min(620px,calc(100vh - 48px));margin:24px auto}.auth-panel,.auth-aside{border:1px solid rgba(226,232,240,.9);border-radius:18px;box-shadow:0 22px 60px rgba(30,58,138,.1)}.auth-panel{display:flex;flex-direction:column;padding:20px;background:rgba(255,255,255,.96)}.auth-panel__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:auto}.auth-brand{display:inline-flex;align-items:center;gap:9px;color:var(--app-ink);font-size:.88rem;font-weight:760;text-decoration:none}.auth-brand img{width:31px;height:31px;object-fit:contain}.auth-language .btn{min-width:36px}.auth-body{width:100%;margin:34px auto}.auth-title{margin:0 0 7px;color:var(--app-ink);font-size:1.52rem;font-weight:790;letter-spacing:-.035em}.auth-intro{margin-bottom:22px;color:var(--app-muted);font-size:.82rem;line-height:1.55}.auth-panel .form-label{font-size:.78rem}.auth-panel .form-control{min-height:42px}.auth-panel .btn-primary{min-height:42px}.auth-actions{display:grid;gap:9px}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;margin-top:14px;font-size:.76rem}.auth-links a{color:var(--app-primary-dark);font-weight:620;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-password{position:relative}.auth-password .form-control{padding-right:48px}.auth-password-toggle{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:7px;color:#64748b;background:transparent}.auth-password-toggle:hover{color:var(--app-primary);background:#eff6ff}.auth-password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.auth-trust{margin-top:auto;color:#7c8da5;font-size:.68rem;text-align:center}.auth-aside{position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:clamp(30px,5vw,56px);color:#fff;background:radial-gradient(circle at 85% 12%,rgba(125,211,252,.32),transparent 28%),linear-gradient(145deg,#1e56cc,#102554 82%)}.auth-aside::before,.auth-aside::after{content:"";position:absolute;border:42px solid rgba(255,255,255,.07);border-radius:50%}.auth-aside::before{width:230px;height:230px;right:-100px;bottom:-92px}.auth-aside::after{width:130px;height:130px;left:-62px;top:34%}.auth-aside>*{position:relative;z-index:1}.auth-aside__eyebrow{color:#9fc0ff;font-size:.72rem;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.auth-aside h2{max-width:420px;margin:14px 0;color:#fff;font-size:clamp(1.75rem,3vw,2.7rem);font-weight:790;letter-spacing:-.04em;line-height:1.08}.auth-aside p{max-width:430px;color:#c8d8f6;font-size:.9rem;line-height:1.65}.auth-benefits{display:grid;gap:10px;margin:28px 0 0;padding:0;list-style:none}.auth-benefits li{display:flex;align-items:center;gap:9px;color:#e4edff;font-size:.8rem;font-weight:620}.auth-benefits li::before{content:"";width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#66e0b5;box-shadow:0 0 0 4px rgba(102,224,181,.13)}.auth-aside__note{color:#8eabdf;font-size:.69rem}.password-policy{padding:9px 11px;border:1px solid var(--app-line-soft);border-radius:8px;background:#f8fafc}.password-policy ul{display:grid;grid-template-columns:1fr 1fr;gap:3px 9px}.password-policy li{color:#64748b;font-size:.68rem}.password-policy li.text-success{color:var(--app-success)!important}.auth-code{text-align:center;font-size:1.18rem!important;font-weight:750;letter-spacing:.42em;font-variant-numeric:tabular-nums}
#locationDetailsModal .modal-body{background:#f8fafc}#locationDetailsModal .card{border:1px solid rgba(0,0,0,.08)}#locationDetailsModal .small-note{color:#6c757d;font-size:.9rem}#locationDetailsModal .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}#locationDetailsModal .table th,#locationDetailsModal .table td{vertical-align:middle}#locationDetailsModal img{background:#eef1f5}
@media(max-width:991.98px){.app-shell{padding:8px}.app-layout{display:block}.app-sidebar{display:none}.app-topbar{top:0;min-height:58px;margin-bottom:10px;padding:7px 9px;border-radius:11px}.app-menu-button{display:inline-flex}.app-topbar-actions{margin-left:8px}.app-user-name{display:none}.app-user-trigger{padding-right:5px}.app-content>.card>.card-body,.app-content .card>.card-body{padding:13px}.offcanvas .app-brand{padding:4px 3px}.auth-shell{grid-template-columns:minmax(300px,430px);min-height:calc(100vh - 32px);margin:16px auto}.auth-aside{display:none}}
@media(max-width:575.98px){body{font-size:.84rem}.app-topbar-title{font-size:1.02rem}.app-topbar-subheading{max-width:70vw}.app-content>.card>.card-body,.app-content .card>.card-body{padding:11px}.btn:not(.btn-sm):not(.auth-password-toggle){min-height:38px}.table>:not(caption)>*>*{padding:.58rem .62rem}.app-content .card-body>.d-flex:first-child{align-items:stretch!important}.app-content .card-body>.d-flex:first-child>.d-flex{width:100%}.app-content .card-body>.d-flex:first-child>.d-flex>.btn{flex:1 1 auto}.action-center-item__layout{flex-direction:column}.action-center-item__content{width:100%;min-width:0}.action-center-item__content>div{min-width:0;overflow-wrap:anywhere}.action-center-item__actions{width:100%;flex-wrap:wrap}.action-center-item__actions>.btn,.action-center-item__actions>.dropdown{flex:1 1 0}.action-center-item__actions .dropdown>.btn{width:100%}.dashboard-chart{height:240px!important}.dashboard-task-grid{grid-template-columns:1fr!important}.auth-shell{width:min(100% - 16px,430px);min-height:calc(100vh - 16px);margin:8px auto}.auth-panel{padding:16px;border-radius:14px}.auth-body{margin:28px auto}.password-policy ul{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.app-flashes{position:fixed;top:78px;right:16px;z-index:1090;width:min(380px,calc(100vw - 32px));pointer-events:none}.app-flashes .alert{margin-bottom:8px;padding-right:2.7rem;background-color:#fff;box-shadow:0 16px 42px rgba(15,23,42,.14);pointer-events:auto}.auth-panel button[type=submit][aria-busy="true"]::before{content:"";display:inline-block;width:13px;height:13px;margin-right:8px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:auth-spin .65s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
