:root{color:#171719;background:#eef1ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--page: #eef1ed;--panel: #ffffff;--text: #171719;--muted: #65706a;--line: #d8ddd8;--accent: #c53d4e;--accent-dark: #9d2d3b;--green: #2f6f5e;--amber: #e0a83e;--blue: #536f9d;--ink: #222226}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}button,input{font:inherit}button{min-height:42px;border:0;border-radius:6px;cursor:pointer}button:disabled{cursor:wait;opacity:.68}input,textarea,select{width:100%;color:var(--text);background:#fbfcfb;border:1px solid var(--line);border-radius:6px}select{min-height:42px;padding:10px 12px}.policy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.policy-card{display:grid;align-content:start;gap:16px}.inline-check{display:flex;align-items:center;gap:8px}.inline-check input{width:auto;min-height:auto}.client-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.client-summary span,.client-summary strong{display:block}.client-summary span{color:var(--muted);font-size:12px}.client-summary strong{margin-top:4px;font-size:14px}input{min-height:42px;padding:10px 12px}textarea{min-height:220px;resize:vertical;padding:12px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}label{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:700}h1,h2,h3,p{margin:0}h1{color:var(--text);font-size:30px;line-height:1.1}h2{color:var(--text);font-size:22px}h3{color:var(--text);font-size:15px}.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr;background:var(--page)}.sidebar{min-height:100vh;display:flex;flex-direction:column;gap:28px;padding:22px;color:#f7faf6;background:#18251d}.brand{display:flex;align-items:center;gap:12px}.brand-mark,.login-logo{width:42px;height:42px;border-radius:8px;object-fit:cover}.login-logo{width:54px;height:54px}.brand strong,.brand span{display:block}.brand span{margin-top:3px;color:#b9c5bc;font-size:12px}nav{display:grid;gap:6px}nav button{padding:10px 12px;color:#cbd5ce;text-align:left;background:transparent}nav button.active,nav button:hover{color:#fff;background:#ffffff1a}.ghost{margin-top:auto;color:#fff;background:#ffffff1a}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(420px,100%);display:grid;gap:18px;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.primary,.secondary,.danger{padding:0 16px;font-weight:800}.primary{color:#fff;background:var(--accent)}.primary:hover,.danger:hover{background:var(--accent-dark)}.secondary{color:var(--ink);background:#dfe6df}.danger{color:#fff;background:var(--accent)}.workspace{min-width:0;padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.topbar p,.tool-header p,.muted{margin-top:6px;color:var(--muted)}.stats-row{display:grid;grid-template-columns:repeat(2,minmax(160px,240px));gap:12px;margin-bottom:20px}.stats-row.compact{grid-template-columns:repeat(4,minmax(120px,1fr))}.stat-card,.tool-surface,.user-detail,.users-list,.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:8px}.stat-card{display:grid;gap:8px;padding:16px}.stat-card span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.stat-card strong{color:var(--text);font-size:30px}.tool-surface,.user-detail,.chart-card{padding:22px}.tool-header{display:flex;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.mode-switch{display:inline-grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:4px;margin-top:18px;padding:4px;background:#eef2ee;border:1px solid var(--line);border-radius:8px}.mode-switch button{min-height:34px;padding:0 12px;color:var(--muted);background:transparent;font-weight:800}.mode-switch button.active{color:var(--text);background:#fff;border:1px solid var(--line)}.import-grid{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;margin-top:20px}.file-control input{padding-top:8px}.management-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}.management-list{display:grid;gap:8px;max-height:78vh;overflow:auto;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.content-row{display:flex;justify-content:space-between;gap:10px;padding:11px 12px;color:var(--text);text-align:left;background:#f7f9f7;border:1px solid transparent}.content-row.active{background:#fff;border-color:var(--accent)}.content-row span{display:grid;gap:3px;min-width:0}.content-row small{color:var(--muted);overflow-wrap:anywhere}.content-row b{color:#9d2d3b;font-size:12px}.trail-editor{margin:0}.region-migration{max-width:720px}.region-search{margin-top:18px}.region-picker{display:grid;max-height:360px;margin:14px 0 18px;overflow:auto;border:1px solid var(--line);border-radius:8px}.region-option{display:flex;align-items:center;gap:10px;min-height:38px;padding:7px 11px;border-bottom:1px solid var(--line);cursor:pointer}.region-option:last-child{border-bottom:0}.region-option:hover{background:#f7f9f7}.region-option.select-all{background:var(--surface)}.region-option input{width:auto;margin:0}.region-target{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:end}.source-badge{justify-self:start;padding:2px 7px;border:1px solid transparent;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.source-own{color:#fff;background:var(--ink)}.source-trailforks{color:var(--accent-dark);background:#f7e4e6;border-color:#e8c7cc}.source-strava{color:#8a5411;background:#fbeeda;border-color:#f0dcb8}.source-osm{color:var(--blue);background:#e3e9f4;border-color:#c9d5e9}.source-other{color:var(--green);background:#e3eee8;border-color:#c8ded4}.source-unknown{color:var(--muted);background:#ecefec;border-color:var(--line)}.list-filter{display:flex;align-items:center;gap:8px;padding:2px 2px 6px;color:var(--muted);font-size:13px;font-weight:700}.list-filter input{width:auto}.content-row .ride-count{color:var(--green)}.ride-geometry{padding:14px;border:1px solid var(--line);border-radius:6px}.ride-geometry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ride-geometry h3{margin:0 0 4px;font-size:15px}.ride-geometry p{margin:0 0 4px;font-size:13px}.ride-geometry-header button{white-space:nowrap}.ride-candidates{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.ride-candidates li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f7f9f7;border:1px solid transparent;border-radius:6px}.ride-candidates li.active{background:#fff;border-color:var(--green)}.ride-candidates span{display:grid;gap:3px;min-width:0}.ride-candidates small{color:var(--muted);overflow-wrap:anywhere}.ride-actions{display:flex!important;gap:8px}.ride-actions button{min-height:34px;padding:0 12px;font-size:13px}.geometry-preview{display:grid;gap:6px;margin-top:14px;padding:12px;font-size:13px;background:#f2f6f3;border-left:3px solid var(--green);border-radius:0 6px 6px 0}.geometry-preview button{justify-self:start;margin-top:6px}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.editor-grid label{min-width:0}.editor-grid input,.editor-grid select,.editor-grid textarea{width:100%}.full-width{grid-column:1 / -1}.bike-types{display:flex;flex-wrap:wrap;gap:8px 14px;padding:12px;border:1px solid var(--line);border-radius:6px}.bike-types label,.flag-row label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;font-size:13px;font-weight:700}.bike-types input,.flag-row input{width:auto}.flag-row{display:flex;flex-wrap:wrap;gap:18px}.code-input{font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.segment-import{align-items:end}.empty-editor{padding:36px;color:var(--muted);text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:8px}.error{margin-top:14px;color:#9d2d3b;font-weight:800}.reserved-usernames,.smtp-settings{display:grid;gap:20px}.smtp-status-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.smtp-status-grid .stat-card strong{overflow-wrap:anywhere;font-size:20px}.smtp-status-grid .smtp-wide{grid-column:span 2}.smtp-warnings{padding:16px;color:#684b12;background:#fff8e7;border:1px solid #ead39d;border-radius:8px}.smtp-warnings ul{display:grid;gap:6px;margin:10px 0 0;padding-left:20px}.smtp-test-form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,340px) auto;gap:16px;align-items:end;padding-top:20px;border-top:1px solid var(--line)}.smtp-test-form>div p{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.45}.smtp-success{padding:16px;color:#1f5948;background:#e8f4ee;border:1px solid #afd4c4;border-radius:8px}.smtp-success p{margin-top:5px}.smtp-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff5f6;border:1px solid #e7b8bf;border-radius:8px}.smtp-error code{padding:4px 7px;color:#7c2834;background:#f8dfe3;border-radius:4px;font-size:12px}.item-count{align-self:center;color:var(--muted);white-space:nowrap}.reserved-add-row{display:grid;grid-template-columns:minmax(240px,460px) auto;gap:12px;align-items:end}.link-host-add-row{grid-template-columns:minmax(220px,340px) minmax(180px,280px) auto}.reserved-search{width:min(620px,100%);margin:0}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);background:#f6f8f6;font-size:12px;text-transform:uppercase}th:last-child,td:last-child{width:1%;text-align:right}tbody tr:last-child td{border-bottom:0}.compact-button{min-height:34px;padding:0 12px}.empty-table{padding:22px;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.result{margin-top:22px}.result-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.result-metrics span,.content-item{padding:12px;color:var(--muted);background:#f6f8f6;border:1px solid var(--line);border-radius:6px}.result-metrics strong,.content-item strong{display:block;color:var(--text)}.users-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px;align-items:start}.users-list{display:grid;gap:8px;padding:14px}.users-count{display:flex;align-items:baseline;gap:8px;padding:2px 2px 6px;color:var(--muted);font-size:13px}.users-count strong{color:var(--text);font-size:24px}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:6px}.user-row{display:flex;justify-content:space-between;gap:12px;min-height:64px;padding:10px 12px;color:var(--text);text-align:left;background:#f7f9f7;border:1px solid transparent}.user-row.active{background:#fff;border-color:var(--accent)}.user-row span{display:grid;gap:3px;min-width:0}.user-row small,.user-row b{color:var(--muted);font-size:12px}.user-row b.blocked,.status.blocked{color:#fff;background:var(--accent)}.profile-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.profile-head p{margin-top:6px;color:var(--muted)}.status{padding:6px 10px;color:var(--green);background:#e3eee8;border-radius:999px;font-size:12px;font-weight:800}.user-tabs,.section-tabs{display:flex;gap:8px;margin:0 0 18px;border-bottom:1px solid var(--line)}.user-tabs button,.section-tabs button{padding:10px 12px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0}.user-tabs button.active,.section-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.section-tabs button{font-weight:800}.account-controls{max-width:900px}.block-panel{display:grid;grid-template-columns:1fr auto;gap:10px;margin:18px 0}.delete-user-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:16px;background:#fff5f6;border:1px solid #e7b8bf;border-radius:8px}.delete-user-panel p{margin-top:5px;color:var(--muted);font-size:13px}.delete-user-panel button{flex:0 0 auto}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#111814ad}.confirmation-dialog{width:min(520px,100%);display:grid;gap:22px;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 60px #00000040}.confirmation-dialog>div>p{margin-top:10px;color:var(--muted);line-height:1.5}.confirmation-dialog form{display:grid;gap:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.content-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.content-columns>div{display:grid;align-content:start;gap:10px}.content-item{min-height:74px}.content-item span{display:block;margin-top:6px;font-size:12px}.reports-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.chart-card{display:grid;gap:14px;min-height:260px}.chart-card.wide{grid-column:span 2}.donut-card{grid-column:span 2;grid-template-columns:180px 1fr;align-items:center}.donut-card h2{grid-column:1 / -1}.chart-card svg{width:100%;min-height:180px}.chart-line{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.chart-line.users{stroke:var(--accent)}.chart-line.rides{stroke:var(--green)}.chart-line.posts{stroke:var(--blue)}.legend{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px;font-weight:800}.legend.vertical{display:grid}.bar-row{display:grid;grid-template-columns:minmax(78px,118px) 1fr auto;gap:10px;align-items:center;color:var(--muted);font-size:13px}.bar-row i{display:block;height:12px;background:linear-gradient(90deg,var(--green),var(--accent));border-radius:999px}.bar-row b{color:var(--text)}.donut-track,.donut-segment{fill:none;stroke-width:22}.donut-track{stroke:#edf1ed}.donut-segment{transform:rotate(-90deg);transform-origin:90px 90px}.marketplace-toolbar{grid-template-columns:minmax(220px,1fr) 220px auto;margin-bottom:18px}.listing-review-grid,.report-list{display:grid;gap:16px}.listing-review-card{display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.listing-review-media{position:relative;display:grid;min-height:220px;place-items:center;overflow:hidden;background:#edf3ff;color:var(--muted);font-weight:800}.listing-review-media img{width:100%;height:100%;object-fit:cover}.listing-status{position:absolute;top:12px;left:12px;padding:7px 10px;border-radius:999px;background:#232323;color:#fff;font-size:11px;text-transform:uppercase}.listing-status.published{background:var(--green)}.listing-status.rejected,.listing-status.deleted{background:var(--accent)}.listing-status.archived{background:#67717d}.listing-status.sold{background:#2f6f4f}.listing-review-body{display:grid;gap:12px;padding:18px}.listing-review-title{display:flex;justify-content:space-between;gap:20px}.listing-review-title h3{margin:0 0 4px}.listing-review-title p,.listing-description{margin:0;color:var(--muted)}.listing-meta{display:flex;flex-wrap:wrap;gap:8px}.listing-meta span,.listing-meta strong{padding:6px 9px;border-radius:999px;background:var(--page);font-size:12px}.moderation-note{display:grid;gap:7px;font-weight:800}.listing-actions{display:flex;flex-wrap:wrap;gap:8px}.report-toolbar{grid-template-columns:220px auto;margin-bottom:18px}.report-card{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.report-card header{display:flex;justify-content:space-between;gap:16px}.report-card header div{display:grid;gap:4px}.report-card header span{color:var(--muted);font-size:13px}.report-card p,.report-card blockquote{margin:0}.report-card blockquote{padding:14px;border-left:4px solid var(--accent);border-radius:8px;background:var(--page);white-space:pre-wrap}@media(max-width:1120px){.users-layout,.content-columns,.management-layout{grid-template-columns:1fr}.smtp-status-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.smtp-test-form{grid-template-columns:1fr}.reports-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{min-height:auto}.import-grid,.topbar,.block-panel,.search-row,.stats-row.compact,.donut-card,.editor-grid,.reserved-add-row,.region-target,.listing-review-card{grid-template-columns:1fr}.listing-review-media{min-height:260px}.listing-review-title,.report-card header{flex-direction:column}.topbar,.delete-user-panel{align-items:stretch;flex-direction:column}.dialog-actions{display:grid}.smtp-status-grid{grid-template-columns:1fr}.smtp-status-grid .smtp-wide{grid-column:auto}.reports-grid{grid-template-columns:1fr}.chart-card.wide,.donut-card{grid-column:auto}}.consent-current{display:grid;gap:8px;margin-bottom:18px}.consent-current>div{display:flex;align-items:baseline;gap:10px}.consent-current strong.ok{color:#1f8a4c}.consent-current strong.refused{color:#b3261e}.content-item.superseded{opacity:.55}.stat-card.rep-card small{margin-top:2px;color:var(--muted);font-size:12px}.stat-card.rep-card.negative strong,.rep-summary strong.negative,.rep-delta.negative{color:var(--accent)}.rep-summary{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;padding:16px 18px;border:1px solid var(--line);border-radius:8px;background:#f6f8f6}.rep-summary>div{display:flex;flex-direction:column;gap:4px}.rep-summary span{color:var(--muted);font-size:12px;text-transform:uppercase}.rep-summary strong{font-size:22px}.rep-warning{flex-basis:100%;margin:0;color:var(--accent-dark);font-size:13px}.rep-edit-row{display:grid;grid-template-columns:minmax(140px,180px) minmax(220px,1fr) auto auto;gap:12px;align-items:end;margin-top:18px}.rep-entry .rep-delta{display:inline-block;min-width:42px;font-variant-numeric:tabular-nums}.rep-delta.positive{color:var(--green)}.rep-entry em{margin-left:6px;color:var(--muted);font-size:12px;font-style:normal}.voting-params-table input{width:82px;min-height:34px;padding:0 8px}.voting-params-table .quorum-preview{font-variant-numeric:tabular-nums;font-weight:600}.row-actions{display:flex;gap:8px;justify-content:flex-end}.row-actions button{min-height:34px;padding:0 12px}@media(max-width:900px){.rep-edit-row{grid-template-columns:1fr}}
