:root{--bg:#0e0814;--panel:#191021;--panel-2:#1f112b;--line:rgba(241,225,255,.11);--text:#fff6f7;--muted:#ad9cbd;--rose:#a55ce6;--rose-2:#652c98;--lime:#b96bff;--ok:#b88cdf;--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 80% -10%,#30114b 0,transparent 34%),var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,select{font:inherit}button{color:inherit}.hub-shell{min-height:100svh}.hub-nav{height:76px;display:flex;align-items:center;gap:34px;padding:0 clamp(22px,4vw,64px);border-bottom:1px solid var(--line);background:rgba(14,8,20,.84);backdrop-filter:blur(24px);position:sticky;top:0;z-index:20}.hub-brand{font-size:30px;font-weight:850;letter-spacing:-2px;margin-right:18px}.hub-brand i{font-style:normal;color:var(--rose)}.hub-links{display:flex;align-items:center;gap:8px}.hub-links a{padding:10px 14px;border-radius:999px;color:var(--muted);font-size:14px}.hub-links a:hover,.hub-links a.active{color:#ffffff;background:rgba(255,255,255,.07)}.hub-account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ba7af2,#511e7f);font-weight:750;color:white}.hub-main{max-width:1440px;margin:auto;padding:46px clamp(22px,5vw,76px) 80px}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.kicker{color:#c08cef;font-size:12px;letter-spacing:2.5px;font-weight:700;margin:0 0 14px}.page-intro h1{font-size:clamp(38px,5vw,68px);letter-spacing:-3px;line-height:1.02;margin:0;font-weight:690}.page-intro h1 span{color:#8a6aa6}.demo-pill{border:1px solid var(--line);border-radius:999px;padding:10px 15px;color:var(--muted);font-size:13px;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:18px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,rgba(31,17,43,.92),rgba(21,13,28,.92));border-radius:22px;padding:24px;overflow:hidden}.sync-panel{min-height:292px;position:relative}.panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.panel h2{font-size:21px;margin:0 0 8px;letter-spacing:-.5px}.panel-copy{font-size:14px;color:var(--muted);line-height:1.65;margin:0}.status{font-size:12px;padding:7px 11px;border-radius:999px;background:rgba(184,140,223,.11);color:var(--ok);border:1px solid rgba(184,140,223,.2);white-space:nowrap}.sync-flow{display:grid;grid-template-columns:1fr 44px 1fr 44px 1fr;align-items:center;margin-top:34px}.service{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:17px;padding:18px;min-height:112px}.service-icon{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:#ffffff;color:#222222;font-weight:850;font-size:13px;margin-bottom:15px}.service.garmin .service-icon{background:#111111;color:#a756ef}.service strong{display:block;font-size:15px;margin-bottom:4px}.service small{color:var(--muted);font-size:12px}.flow-arrow{text-align:center;color:#7a658c;font-size:22px}.sync-action{background:linear-gradient(140deg,var(--rose),var(--rose-2));border:0;border-radius:17px;min-height:112px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:18px;transition:.2s transform}.sync-action:hover{transform:translateY(-2px)}.sync-action span{font-size:12px;opacity:.75}.sync-action strong{font-size:16px}.next-panel{display:flex;flex-direction:column;justify-content:space-between;min-height:292px;background:linear-gradient(155deg,#2c1342,#150d1d)}.next-date{font-size:54px;line-height:1;font-weight:700;letter-spacing:-3px;margin-top:25px}.next-date span{font-size:15px;color:var(--muted);letter-spacing:0;margin-left:8px}.next-footer{display:flex;justify-content:space-between;align-items:end;color:var(--muted);font-size:13px}.next-footer b{color:#ffffff;font-size:15px;display:block;margin-bottom:5px}.metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric{min-height:140px}.metric-label{color:var(--muted);font-size:13px}.metric-value{font-size:38px;font-weight:690;letter-spacing:-1.5px;margin:24px 0 9px}.metric-value small{font-size:15px;color:var(--muted);font-weight:500}.metric-trend{font-size:12px;color:var(--ok)}.chart-panel{grid-column:1/2;min-height:350px}.chart-wrap{height:225px;margin-top:28px;position:relative}.chart-wrap svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:rgba(255,255,255,.08);stroke-width:1}.chart-line{fill:none;stroke:var(--rose);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-area{fill:url(#areaFill)}.chart-labels{display:flex;justify-content:space-between;color:#716080;font-size:11px;margin-top:10px}.activity-panel{grid-column:2/3;grid-row:3/5}.activity-list{margin-top:22px}.activity{display:grid;grid-template-columns:44px 1fr auto;gap:13px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.activity:first-child{border-top:0}.activity-day{width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.05);display:grid;place-items:center;font-size:12px;color:var(--muted)}.activity strong{display:block;font-size:14px;margin-bottom:5px}.activity span{color:var(--muted);font-size:12px}.activity-status{width:8px;height:8px;border-radius:50%;background:var(--ok)}.activity-status.wait{background:#a762e4}.distribution{grid-column:1/2;display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:center}.bars{margin-top:20px}.bar-row{display:grid;grid-template-columns:66px 1fr 42px;align-items:center;gap:12px;margin:14px 0;font-size:12px;color:var(--muted)}.bar{height:8px;background:rgba(255,255,255,.06);border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#612893,#b26eef)}.donut{width:170px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--rose) 0 62%,#532081 62% 82%,#443155 82%);display:grid;place-items:center;margin:auto}.donut:after{content:"";width:110px;aspect-ratio:1;border-radius:50%;background:#191021}.toast{position:fixed;right:24px;bottom:24px;z-index:50;padding:16px 20px;border-radius:14px;background:#f6e8ec;color:#1e112a;font-size:14px;font-weight:650;box-shadow:0 18px 50px #00000088;transform:translateY(130%);transition:.3s}.toast.show{transform:translateY(0)}
@media(max-width:900px){.hub-main{padding-bottom:110px}.hub-links{position:fixed;left:14px;right:14px;bottom:12px;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:6px;border:1px solid var(--line);border-radius:18px;background:rgba(23,13,32,.92);backdrop-filter:blur(24px);box-shadow:0 16px 50px #00000088}.hub-links a{padding:11px 5px;text-align:center;font-size:12px}.dashboard-grid{grid-template-columns:1fr}.sync-panel,.next-panel,.chart-panel,.activity-panel,.distribution{grid-column:1;grid-row:auto}.metrics{grid-template-columns:repeat(2,1fr)}.activity-panel{min-height:0}.page-intro{align-items:start;flex-direction:column}.sync-flow{grid-template-columns:1fr 34px 1fr}.sync-action{grid-column:1/-1;margin-top:14px;min-height:90px}.distribution{grid-template-columns:1fr 190px}}
@media(max-width:580px){.hub-nav{height:66px}.hub-account span{display:none}.hub-main{padding-top:32px}.hub-links{left:8px;right:8px;bottom:8px}.page-intro h1{font-size:43px;letter-spacing:-2px}.panel{padding:20px;border-radius:18px}.sync-flow{grid-template-columns:1fr;gap:9px;margin-top:24px}.flow-arrow{transform:rotate(90deg)}.sync-action{grid-column:auto;margin:0}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{min-height:122px}.metric-value{font-size:29px}.distribution{grid-template-columns:1fr}.donut{display:none}}

/* Journal */
.journal-feature{display:grid;grid-template-columns:1.25fr .75fr;min-height:560px;border-radius:26px;overflow:hidden;border:1px solid var(--line);background:#1b1024}.feature-photo{position:relative;background:url('ride-coast.webp') center 34%/cover}.feature-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#190e23d9,transparent 55%)}.feature-index{position:absolute;top:24px;left:24px;z-index:2;background:rgba(14,8,20,.75);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);padding:9px 13px;border-radius:999px;font-size:12px}.feature-copy{padding:clamp(30px,5vw,68px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 100% 0,#3c185c,transparent 43%),#1a1023}.feature-copy h2{font-size:clamp(34px,4vw,54px);line-height:1.08;letter-spacing:-2px;margin:0 0 22px}.feature-copy>p{color:var(--muted);font-size:15px;line-height:1.8;margin:0 0 32px}.ride-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px}.ride-stats span{font-size:11px;color:var(--muted)}.ride-stats b{font-size:21px;display:block;color:#ffffff;margin-top:7px}.text-link{display:inline-flex;align-items:center;gap:22px;color:#ffffff;font-size:14px;font-weight:700}.text-link i{font-style:normal;width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:var(--rose)}.journal-heading{margin:62px 0 24px;display:flex;justify-content:space-between;align-items:end}.journal-heading h2{font-size:32px;letter-spacing:-1.2px;margin:0}.filter-row{display:flex;gap:8px}.filter-row button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 13px;font-size:12px;color:var(--muted);cursor:pointer}.filter-row button.active{background:#ffffff;color:#1b1024}.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.journal-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:rgba(27,16,37,.76);transition:.25s transform,.25s border-color}.journal-card:hover{transform:translateY(-5px);border-color:rgba(165,92,230,.45)}.journal-card img{display:block;width:100%;height:250px;object-fit:cover}.journal-card:nth-child(2) img{object-position:center 68%}.journal-card:nth-child(3) img{object-position:center 72%}.journal-card-copy{padding:22px}.journal-card time{font-size:11px;letter-spacing:1px;color:#b181dc}.journal-card h3{font-size:21px;margin:9px 0 17px}.journal-mini{display:flex;gap:16px;color:var(--muted);font-size:12px}

/* Ride detail */
.ride-hero{min-height:640px;position:relative;margin:-46px max(calc(clamp(22px,5vw,76px) * -1),-76px) 0;background:url('ride-coast.webp') center 28%/cover;display:flex;align-items:flex-end}.ride-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0e0814 0%,rgba(14,8,20,.2) 65%),linear-gradient(90deg,rgba(14,8,20,.5),transparent)}.ride-hero-copy{position:relative;z-index:2;padding:90px clamp(22px,5vw,76px);width:100%}.ride-hero-copy h1{font-size:clamp(48px,8vw,104px);line-height:.95;letter-spacing:-5px;margin:0 0 24px;max-width:900px}.ride-hero-copy .ride-stats{max-width:560px;margin:0}.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-top:18px}.story-panel{padding:clamp(27px,4vw,52px)}.story-panel h2{font-size:32px;letter-spacing:-1px;margin:0 0 20px}.story-panel p{font-size:16px;line-height:1.95;color:#b8a7c7;margin:0}.route-panel{min-height:430px;position:relative;background:radial-gradient(circle at 52% 50%,#35184e,#160e1e 61%)}.route-panel svg{position:absolute;inset:60px 35px 45px;width:calc(100% - 70px);height:calc(100% - 105px)}.route-line{fill:none;stroke:#b876f3;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 9px #a55ce677)}.route-road{fill:none;stroke:#6b5182;stroke-width:1;stroke-dasharray:5 7}.route-meta{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;z-index:2}.route-meta span{font-size:12px;color:var(--muted)}.route-meta b{font-size:14px}.elevation{grid-column:1/-1;min-height:280px}.elevation svg{width:100%;height:180px;margin-top:12px}.media-strip{grid-column:1/-1;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px}.media-item{min-height:390px;border-radius:20px;overflow:hidden;position:relative}.media-item img{width:100%;height:100%;object-fit:cover;display:block}.media-item:nth-child(2) img{object-position:center 70%}.media-item:nth-child(3) img{object-position:center 74%}.play{position:absolute;inset:0;display:grid;place-items:center;background:#10081730}.play i{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.88);color:#251038;display:grid;place-items:center;font-style:normal;font-size:20px;padding-left:4px}

/* Medals */
.medal-stage{min-height:380px;border:1px solid var(--line);border-radius:26px;position:relative;overflow:hidden;background:url('cycling-medals.webp') center 48%/cover;margin-bottom:46px}.medal-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,7,22,.9),rgba(15,7,22,.15)),linear-gradient(0deg,rgba(15,7,22,.6),transparent)}.medal-stage-copy{position:absolute;z-index:2;left:clamp(24px,5vw,64px);top:50%;transform:translateY(-50%);max-width:480px}.medal-stage h2{font-size:clamp(38px,5vw,64px);line-height:1.04;letter-spacing:-2.5px;margin:0 0 18px}.medal-stage p{color:#dacce7;line-height:1.7}.medal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.medal-card{min-height:350px;padding:26px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(150deg,#231332,#160e1e);display:flex;flex-direction:column;position:relative;overflow:hidden;transition:.25s transform,.25s border-color}.medal-card:hover{transform:translateY(-6px);border-color:#9d5cd74f}.medal-visual{height:180px;margin:-26px -26px 22px;background-image:url('cycling-medals.webp');background-size:220%;background-position:18% 42%;border-bottom:1px solid var(--line);filter:saturate(.82)}.medal-card:nth-child(2) .medal-visual{background-position:58% 35%}.medal-card:nth-child(3) .medal-visual{background-position:91% 48%}.medal-card:nth-child(4) .medal-visual{background-position:23% 83%}.medal-card:nth-child(5) .medal-visual{background-position:66% 78%}.medal-card:nth-child(6) .medal-visual{background-position:91% 83%}.medal-card time{font-size:11px;color:#b282dd;letter-spacing:1.3px}.medal-card h3{font-size:21px;margin:10px 0 8px}.medal-card p{font-size:13px;color:var(--muted);margin:0 0 20px}.medal-card .text-link{margin-top:auto;font-size:12px;gap:10px}
@media(max-width:900px){.journal-feature{grid-template-columns:1fr}.feature-photo{min-height:460px}.journal-grid,.medal-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.elevation,.media-strip{grid-column:1}.media-strip{grid-template-columns:1fr 1fr}.media-item:first-child{grid-column:1/-1}.ride-hero{min-height:590px}}
@media(max-width:580px){.journal-feature{min-height:0}.feature-photo{min-height:410px}.ride-stats{gap:7px}.ride-stats b{font-size:17px}.journal-heading{display:block}.filter-row{margin-top:17px}.journal-grid,.medal-grid{grid-template-columns:1fr}.journal-card img{height:290px}.ride-hero{min-height:610px;margin-top:-32px}.ride-hero-copy{padding-bottom:56px}.ride-hero-copy h1{letter-spacing:-3px}.media-strip{grid-template-columns:1fr}.media-item,.media-item:first-child{grid-column:1;min-height:440px}.medal-stage{min-height:450px}.medal-stage:after{background:linear-gradient(0deg,rgba(15,7,22,.85),rgba(15,7,22,.1))}.medal-stage-copy{top:auto;bottom:30px;transform:none;right:24px}}

/* Access, settings and records */
.auth-body{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr;background:#0d0712}.auth-image{background:url('ride-coast.webp') center 35%/cover;position:relative}.auth-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(13,7,18,.45)),linear-gradient(0deg,rgba(13,7,18,.7),transparent 55%)}.auth-caption{position:absolute;z-index:2;left:7vw;bottom:7vw;max-width:480px}.auth-caption h1{font-size:clamp(44px,6vw,76px);line-height:.98;letter-spacing:-4px;margin:0 0 18px}.auth-caption p{color:#dacde5;line-height:1.7}.auth-side{padding:7vw;display:flex;flex-direction:column;justify-content:center}.auth-brand{position:absolute;top:34px;font-size:34px;font-weight:850;letter-spacing:-2px}.auth-brand i{font-style:normal;color:var(--rose)}.auth-card{max-width:450px;width:100%}.auth-card h2{font-size:34px;margin:0 0 10px}.auth-card>p{color:var(--muted);line-height:1.6;margin:0 0 32px}.field{display:block;margin-bottom:18px}.field>span,.field-label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.field input,.field select,.field textarea,.inline-select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#ffffff;border-radius:13px;padding:13px 14px;outline:0}.field textarea{min-height:120px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9e5cd8}.primary-btn,.ghost-btn,.danger-btn{border:0;border-radius:13px;padding:13px 17px;font-weight:700;cursor:pointer}.primary-btn{background:linear-gradient(140deg,var(--rose),var(--rose-2));color:#ffffff}.ghost-btn{background:rgba(255,255,255,.06);border:1px solid var(--line)}.danger-btn{background:rgba(165,92,230,.1);color:#c08af0}.auth-card .primary-btn{width:100%;margin-top:8px}.demo-accounts{border-top:1px solid var(--line);margin-top:27px;padding-top:22px}.demo-accounts>span{font-size:11px;color:#7f6d8f;letter-spacing:1px}.account-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.account-shortcuts button{padding:12px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--muted);cursor:pointer}.account-shortcuts button:hover{color:#ffffff;background:rgba(255,255,255,.04)}.user-menu{margin-left:auto;display:flex;align-items:center;gap:10px}.role-tag{font-size:11px;color:#c596ef;border:1px solid #a261db44;background:#9c59d814;padding:5px 9px;border-radius:999px}.logout{border:0;background:none;color:var(--muted);cursor:pointer;font-size:12px}.admin-only[hidden]{display:none!important}.compact-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.compact-metric{padding:20px;border:1px solid var(--line);border-radius:18px;background:rgba(29,16,40,.75)}.compact-metric span{font-size:12px;color:var(--muted)}.compact-metric b{display:block;font-size:28px;margin-top:12px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:34px}.setting-card{display:grid;grid-template-columns:50px 1fr 175px;gap:16px;align-items:center}.setting-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#ffffff;color:#1b1024;font-weight:850}.setting-icon.garmin{background:#101010;color:#af5ff5}.setting-card h3{font-size:16px;margin:0 0 5px}.setting-card p{color:var(--muted);font-size:12px;margin:0}.inline-select{padding:10px 12px;font-size:13px}.section-bar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:40px 0 16px}.section-bar h2{font-size:26px;margin:0 0 6px}.section-bar p{color:var(--muted);font-size:13px;margin:0}.actions{display:flex;gap:9px}.table-panel{padding:0}.records-table{width:100%;border-collapse:collapse}.records-table th{text-align:left;color:#7f6e8f;font-size:11px;font-weight:600;letter-spacing:.6px;padding:15px 20px;border-bottom:1px solid var(--line)}.records-table td{font-size:13px;padding:17px 20px;border-bottom:1px solid var(--line)}.records-table tr:last-child td{border-bottom:0}.records-table td:first-child{font-weight:700}.records-table small{display:block;color:var(--muted);margin-top:4px}.track-link,.download-link{border:0;background:none;color:#b884e7;cursor:pointer;padding:0}.download-link{color:#b9a9c8}.sync-queue{margin-top:18px;padding:18px 22px;display:flex;align-items:center;gap:18px}.sync-queue h3{font-size:15px;margin:0}.sync-queue p{font-size:12px;color:var(--muted);margin:4px 0 0}.sync-queue .primary-btn{margin-left:auto}.queue-dot{width:9px;height:9px;border-radius:50%;background:#9b4edf;box-shadow:0 0 0 6px #9b4edf18}.upload-zone{border:1px dashed #b083d84f;border-radius:15px;padding:22px;text-align:center;color:var(--muted);font-size:13px;cursor:pointer}.upload-zone strong{color:#ffffff;display:block;margin-bottom:5px}.dialog-backdrop{position:fixed;inset:0;z-index:100;background:#060309c9;backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:20px}.dialog-backdrop.open{display:flex}.dialog{width:min(620px,100%);max-height:90svh;overflow:auto;border:1px solid var(--line);border-radius:23px;background:#1b1024;padding:26px;box-shadow:0 30px 90px #000000bb}.dialog-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-head h2{margin:0;font-size:24px}.close-dialog{border:0;background:none;color:var(--muted);font-size:23px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.check-list{display:grid;gap:8px;max-height:170px;overflow:auto}.check-row{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:13px}.check-row input{accent-color:var(--rose)}.check-row span{margin-left:auto;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .wide{grid-column:1/-1}.media-preview{display:flex;gap:8px;margin-top:10px}.media-preview i{width:62px;height:62px;border-radius:10px;background:linear-gradient(140deg,#55277e,#231232);display:grid;place-items:center;font-style:normal;color:#c9a3ea;font-size:11px}

/* Users */
.user-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}.user-stat{padding:22px;border:1px solid var(--line);border-radius:18px;background:rgba(28,15,39,.75)}.user-stat b{font-size:31px;display:block;margin-bottom:6px}.user-stat span{font-size:12px;color:var(--muted)}.user-row{display:grid;grid-template-columns:minmax(180px,1.5fr) 120px 150px 115px 190px;gap:12px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.user-row:last-child{border-bottom:0}.user-row.head{font-size:11px;color:#786787;letter-spacing:.6px}.user-person{display:flex;gap:12px;align-items:center}.user-person b{display:block;font-size:14px}.user-person small{color:var(--muted)}.user-actions{display:flex;gap:7px}.mini-btn{font-size:11px;padding:7px 9px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.mini-btn:hover{color:#ffffff}.state{font-size:11px;padding:5px 8px;border-radius:999px;color:var(--ok);background:#b88cdf12;width:max-content}.state.archived{color:#8b7a9a;background:#ffffff00}
@media(max-width:900px){.auth-body{grid-template-columns:1fr}.auth-image{display:none}.auth-side{min-height:100svh;padding:28px}.auth-brand{top:24px}.settings-grid{grid-template-columns:1fr}.user-row{grid-template-columns:1fr 95px 120px}.user-row>*:nth-child(3),.user-row>*:nth-child(4){display:none}.compact-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.setting-card{grid-template-columns:44px 1fr}.setting-card .inline-select{grid-column:1/-1}.records-table th:nth-child(3),.records-table td:nth-child(3),.records-table th:nth-child(4),.records-table td:nth-child(4){display:none}.records-table th,.records-table td{padding:14px 12px}.section-bar{align-items:flex-start;flex-direction:column}.sync-queue{align-items:flex-start;flex-wrap:wrap}.sync-queue .primary-btn{margin-left:27px}.user-stats{grid-template-columns:1fr 1fr}.user-stats .user-stat:last-child{grid-column:1/-1}.user-row{grid-template-columns:1fr auto;padding:14px}.user-row>*:nth-child(2),.user-row>*:nth-child(3),.user-row>*:nth-child(4){display:none}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}

@media(max-width:900px){.hub-links{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}

/* Data center analytics */
.compact-metric{position:relative;overflow:hidden}.compact-metric:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-45px;top:-55px;background:radial-gradient(circle,#a55ce626,transparent 68%)}.compact-metric b small{font-size:12px;color:var(--muted);font-weight:500}.compact-metric em{display:block;margin-top:9px;color:var(--ok);font-size:11px;font-style:normal}.compact-section-bar{margin-top:28px}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:18px}.analytics-grid .panel{min-height:390px}.chart-eyebrow{color:#ab7ad6;font-size:10px;letter-spacing:1.8px;font-weight:750;margin:0 0 7px}.analytics-grid h3{font-size:20px;margin:0}.chart-controls{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:999px;background:#120b19}.chart-controls button{border:0;background:transparent;color:var(--muted);font-size:12px;padding:8px 13px;border-radius:999px;cursor:pointer}.chart-controls button.active{background:#ebe3f2;color:#221231}.chart-total{text-align:right}.chart-total span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.chart-total b{font-size:21px}.chart-total small{color:var(--muted);font-size:11px;font-weight:500}.line-chart{height:274px;position:relative;margin-top:28px}.line-chart svg{position:absolute;inset:0 0 24px;width:100%;height:calc(100% - 24px);overflow:visible}.chart-grid{position:absolute;inset:0 0 24px;display:flex;flex-direction:column;justify-content:space-between}.chart-grid i{display:block;border-top:1px dashed rgba(255,255,255,.07)}.analytics-area{fill:url(#distanceFill);opacity:0;animation:fade-chart 1.1s .35s forwards}.analytics-line{fill:none;stroke:#b06bed;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 8px #a55ce680);stroke-dasharray:1;stroke-dashoffset:1;animation:draw-chart 1.4s cubic-bezier(.2,.8,.2,1) forwards}.chart-points circle{fill:#ffffff;stroke:#a55ce6;stroke-width:4;cursor:pointer;opacity:0;animation:fade-chart .5s .9s forwards;transition:.2s}.chart-points circle:hover{r:8;filter:drop-shadow(0 0 8px #ffffff)}.axis-labels{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;color:#6e5d7e;font-size:10px}.chart-tooltip{position:absolute;z-index:3;right:0;top:0;pointer-events:none;padding:9px 11px;border:1px solid #ffffff18;background:#0e0813d9;backdrop-filter:blur(8px);border-radius:10px;opacity:0;transform:translateY(5px);transition:.2s}.chart-tooltip.visible{opacity:1;transform:none}.chart-tooltip span{display:block;color:var(--muted);font-size:10px}.chart-tooltip b{font-size:12px}.weekly-bars{height:220px;display:flex;align-items:flex-end;gap:9px;margin:30px 0 18px;border-bottom:1px solid var(--line)}.week-bar{height:100%;flex:1;border:0;background:none;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;cursor:pointer}.week-bar i{display:block;width:100%;height:var(--value);min-height:8px;border-radius:9px 9px 2px 2px;background:linear-gradient(180deg,#51316d,#2d2039);transform-origin:bottom;animation:rise-chart .85s cubic-bezier(.2,.8,.2,1) both;transition:.25s height,.25s background,.25s filter}.week-bar:hover i,.week-bar.active i{background:linear-gradient(180deg,#b774f3,#642b96);filter:drop-shadow(0 0 9px #a55ce655)}.week-bar span{font-size:10px;color:#7c698c;margin-bottom:9px}.week-bar.active span{color:#ffffff}.rhythm-reading{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center}.rhythm-reading>span{color:#ba87e8;font-size:12px}.rhythm-reading b{font-size:24px}.rhythm-reading small{grid-column:1/-1;color:var(--muted);font-size:10px}.ride-map-card{margin-top:18px;padding:30px;background:radial-gradient(circle at 26% 48%,#311748 0,transparent 39%),linear-gradient(145deg,#1d1029,#120b19)}.map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.map-head h2{font-size:26px;margin:0 0 7px}.map-head>div>p:last-child{font-size:12px;color:var(--muted);margin:0}.map-progress{text-align:right;padding:10px 0}.map-progress b{display:block;font-size:32px;color:#ba7af2}.map-progress span{color:var(--muted);font-size:11px}.map-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.55fr);gap:18px}.map-canvas{position:relative;min-height:440px;border:1px solid var(--line);border-radius:19px;overflow:hidden;background:radial-gradient(circle at 57% 55%,#4f227638,transparent 26%),linear-gradient(#140c1ccc,#100916)}.map-canvas:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,transparent,#000000 20%,#000000 80%,transparent)}.map-canvas>svg{position:absolute;inset:0;width:100%;height:100%;padding:15px}.map-land{fill:url(#mapLand);stroke:#7e50a7;stroke-width:1.5;stroke-linejoin:round;filter:drop-shadow(0 18px 35px #00000077)}.map-route{fill:none;stroke:#b778ee;stroke-width:2;stroke-dasharray:7 8;opacity:.6;animation:route-flow 9s linear infinite}.map-route.secondary{stroke:#805ba0;animation-direction:reverse}.city-pin{--pin:#ba7af2;position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);border:0;background:none;padding:0;cursor:pointer;z-index:3}.city-pin i{display:block;width:11px;height:11px;border-radius:50%;background:var(--pin);border:2px solid #ebd5ff;box-shadow:0 0 0 5px #b877f224,0 0 22px #b16bef;transition:.25s transform}.city-pin:after{content:"";position:absolute;width:28px;height:28px;left:-8.5px;top:-8.5px;border:1px solid #b877f299;border-radius:50%;animation:pin-pulse 2s infinite}.city-pin span{position:absolute;left:17px;top:-5px;font-size:11px;color:#c8b5d9;white-space:nowrap;transition:.2s}.city-pin:hover i,.city-pin.is-active i{transform:scale(1.55);background:#ffffff}.city-pin:hover span,.city-pin.is-active span{color:#ffffff;font-weight:700}.city-pin.muted{--pin:#89749c;filter:saturate(.35);opacity:.72}.map-legend{position:absolute;left:18px;bottom:17px;display:flex;gap:17px;color:#7e6b8e;font-size:10px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:7px;height:7px;border-radius:50%;background:#b371ee;box-shadow:0 0 8px #b371ee}.map-legend i.dim{background:#675676;box-shadow:none}.map-detail{border:1px solid var(--line);border-radius:19px;padding:26px;display:flex;flex-direction:column;background:#ffffff08}.map-index{color:#82669b;font-size:9px;letter-spacing:1.4px}.map-detail h3{font-size:44px;letter-spacing:-2px;margin:25px 0 8px}.map-detail>p{color:var(--muted);font-size:11px;line-height:1.6;min-height:36px;margin:0}.map-stats{display:grid;grid-template-columns:1fr 1.2fr;gap:9px;margin:36px 0 auto}.map-stats div{padding:14px 12px;border:1px solid var(--line);border-radius:13px;background:#ffffff05}.map-stats b{display:block;font-size:18px;margin-bottom:6px}.map-stats span{font-size:10px;color:var(--muted)}.map-detail .text-link{font-size:11px;gap:10px;margin-top:28px}.map-detail .text-link i{width:30px;height:30px}.track-preview{height:260px;border-radius:16px;background:radial-gradient(circle at 50% 50%,#33184b,#110a17);overflow:hidden}.track-preview svg{width:100%;height:100%;padding:30px}.track-preview path{fill:none;stroke:#b574ef;stroke-width:5;stroke-linecap:round;filter:drop-shadow(0 0 8px #a55ce6)}.optional-note{font-size:10px;color:#8d789f;margin-left:6px}.check-row.no-link{border-style:dashed;background:#ffffff03}.check-row.no-link strong{font-weight:600;color:#c9b7d9}.toast{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(20px)}.toast.show{visibility:visible;opacity:1;transform:translateY(0)}
@keyframes draw-chart{to{stroke-dashoffset:0}}@keyframes fade-chart{to{opacity:1}}@keyframes rise-chart{from{transform:scaleY(0)}}@keyframes route-flow{to{stroke-dashoffset:-180}}@keyframes pin-pulse{0%{transform:scale(.5);opacity:.8}70%,100%{transform:scale(1.5);opacity:0}}
@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.analytics-grid .panel{min-height:0}.map-layout{grid-template-columns:1fr}.map-detail{min-height:260px}.map-stats{margin-bottom:20px}.map-detail .text-link{margin-top:0}}
@media(max-width:620px){.analytics-grid{gap:12px}.chart-controls{width:100%;justify-content:stretch}.chart-controls button{flex:1}.line-chart{height:230px}.ride-map-card{padding:20px}.map-head{align-items:flex-end}.map-canvas{min-height:360px}.map-canvas>svg{transform:scale(1.15)}.city-pin span{font-size:9px}.map-detail h3{font-size:36px}.compact-metric em{font-size:9px}}
@media(prefers-reduced-motion:reduce){.analytics-line,.analytics-area,.chart-points circle,.week-bar i,.map-route,.city-pin:after{animation:none!important}.analytics-area,.chart-points circle{opacity:1}.analytics-line{stroke-dashoffset:0}}

/* Records, compact sync, editing and media captions */
.goal-status{border:1px solid rgba(165,92,230,.28);background:rgba(165,92,230,.09);color:#c9a0ed;border-radius:999px;padding:7px 10px;font-size:11px;cursor:pointer}.goal-status i{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:3px;border:1px solid currentColor;border-radius:50%;font-style:normal;font-size:9px}.map-island{fill:#33184a;stroke:#7e50a7;stroke-width:1.2}.china-land{filter:drop-shadow(0 18px 35px #00000077) drop-shadow(0 0 18px #a55ce614)}.sync-management{margin-top:18px;padding:24px}.sync-management-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.sync-management-head h2{font-size:22px;margin:0 0 5px}.sync-management-head>div>p:last-child{font-size:12px;color:var(--muted);margin:0}.compact-sync-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.compact-sync-grid>label{display:grid;grid-template-columns:1fr 160px;align-items:center;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:15px;background:#ffffff04}.compact-sync-grid>label>span{display:flex;align-items:center;gap:11px}.compact-sync-grid .setting-icon{width:34px;height:34px;border-radius:10px;font-size:11px;font-style:normal}.compact-sync-grid b{font-size:13px}.sync-queue.compact{margin-top:12px;padding:13px 15px;background:#ffffff03}.sync-queue.compact .primary-btn{padding:10px 14px}.back-link{display:inline-flex;color:#bb9ad9;font-size:12px;margin:0 0 22px;align-items:center;gap:6px}.button-reset{border:0;background:none;padding:0;cursor:pointer}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.detail-toolbar .back-link{margin:0}.admin-detail-actions{display:flex;gap:8px}.admin-detail-actions .ghost-btn,.admin-detail-actions .danger-btn{padding:9px 12px;font-size:11px}.media-item{margin:0}.media-item figcaption{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:55px 20px 18px;background:linear-gradient(0deg,rgba(14,8,20,.9),transparent);color:#eee4f7;font-size:12px;line-height:1.55}.confirm-dialog{max-width:460px}.media-caption-list{grid-column:1/-1;display:grid;gap:10px;margin-top:2px}.media-caption-list article{display:grid;grid-template-columns:105px 1fr;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:#ffffff03}.media-caption-list .field{margin:0}.media-thumb{height:78px;border-radius:10px;background-position:center;background-size:cover;position:relative;overflow:hidden}.media-thumb.coast{background-image:url('ride-coast.webp')}.media-thumb.summit{background-image:url('ride-summit.webp')}.media-thumb.video{background-image:linear-gradient(#11081955,#11081955),url('ride-portrait.webp')}.media-thumb span{position:absolute;inset:auto 0 0;padding:18px 8px 7px;background:linear-gradient(transparent,#0e0814d9);font-size:10px}.media-caption-list>p{color:var(--muted);font-size:10px;margin:0}.supporting-media-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.supporting-media-list article{padding:10px;border:1px solid var(--line);border-radius:14px}.supporting-media-list .field{margin:9px 0 0}.supporting-thumb{height:68px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(140deg,#63348d,#251236);color:#dbc4ef;font-size:11px}.supporting-thumb.muted{background:linear-gradient(140deg,#3d3147,#1c1424)}.records-intro{margin-top:4px}.records-toolbar{display:grid;grid-template-columns:1fr 170px 170px auto;gap:12px;align-items:end;margin-bottom:18px}.records-toolbar label>span{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.record-search input{width:100%;border:1px solid var(--line);background:#ffffff05;color:#ffffff;border-radius:13px;padding:12px 14px;outline:0}.records-full{overflow:auto}.records-full .records-table{min-width:980px}.state.waiting{color:#a861e7;background:#a861e712}.records-footer{display:flex;justify-content:space-between;align-items:center;margin-top:15px;color:var(--muted);font-size:11px}.records-footer>div{display:flex;gap:6px}.mini-btn.active{color:#ffffff;background:#7136a5;border-color:#7136a5}
@media(max-width:900px){.compact-sync-grid{grid-template-columns:1fr}.records-toolbar{grid-template-columns:1fr 1fr}.record-search{grid-column:1/-1}.detail-toolbar{align-items:flex-start}.media-strip{grid-template-columns:1fr 1fr}.media-item:first-child{grid-column:1/-1}}
@media(max-width:620px){.sync-management{padding:20px}.sync-management-head{align-items:flex-start}.compact-sync-grid>label{grid-template-columns:1fr}.detail-toolbar{flex-direction:column}.admin-detail-actions{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}.media-caption-list article{grid-template-columns:82px 1fr}.supporting-media-list{grid-template-columns:1fr}.records-toolbar{grid-template-columns:1fr}.record-search{grid-column:auto}.records-footer{align-items:flex-start;gap:12px;flex-direction:column}}
.detail-toolbar{position:relative;z-index:5}.detail-toolbar+.ride-hero{margin-top:0}
.service-logo{height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;font-style:normal}.igpsport-logo{width:118px;background:#ffffff;padding:8px 10px}.igpsport-logo img{display:block;width:100%;height:auto}.garmin-connect-logo{width:132px;height:15px;border-radius:0;background-image:url('assets/garmin-connect-sprite.png');background-repeat:no-repeat;background-position:center top;background-size:132px auto}
@media(max-width:620px){.service-logo{width:112px}.garmin-connect-logo{background-size:112px auto}}
.service-favicon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;background:#ffffff;font-style:normal}.service-favicon img{display:block;width:100%;height:100%;object-fit:contain}.garmin-connect-favicon{padding:8px}.mobile-record-stats{display:none!important;color:#c29ae6!important}
@media(max-width:620px){.mobile-record-stats{display:block!important;margin-top:6px!important}.service-favicon{width:38px;height:38px}}
.live-badge{padding:9px 14px;border:1px solid #8955b766;border-radius:999px;color:#ac7bd8;background:#241730;font-size:13px}.empty-state{padding:36px 24px;text-align:center;color:var(--muted);border:1px dashed #5c4472;border-radius:16px;line-height:1.8}.wide-empty{grid-column:1/-1}.empty-note{color:var(--muted);font-size:14px}.toast.error{background:#5e298d}.inline-input{min-width:230px;background:#1c1225;border:1px solid #463357;border-radius:12px;color:#ffffff;padding:13px 15px;font:inherit}.one-provider{grid-template-columns:1fr 1fr 1fr}.one-provider label{min-height:112px}.china-map-wrap{margin-top:26px;border:1px solid #463357;border-radius:22px;padding:18px;background:radial-gradient(circle at 70% 60%,#3e195f4d,transparent 38%),#0f0a13;overflow:hidden}.china-map-wrap svg{display:block;width:100%;height:auto}.china-map-wrap .province{fill:#281538;stroke:#9058c2;stroke-width:.65;vector-effect:non-scaling-stroke;transition:fill .25s,filter .25s}.china-map-wrap .province:hover{fill:#422160;filter:drop-shadow(0 0 5px #a55ce6)}.city-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.city-chip{border:1px solid #5a4170;background:#1f122a;color:#dec7f3;padding:8px 13px;border-radius:999px}.journal-placeholder{height:240px;display:grid;place-items:center;background:linear-gradient(135deg,#351d4b,#140d1b);color:#b48bd9;letter-spacing:.2em}.medal-photo{width:100%;aspect-ratio:1;object-fit:contain;border-radius:50%;background:radial-gradient(circle,#3f2655,#120b18)}.media-item video{width:100%;height:100%;object-fit:cover}.sync-settings input{width:100%}.user-row>div#usersList{display:contents}
@media(max-width:900px){.one-provider{grid-template-columns:1fr}.inline-input{min-width:0}.china-map-wrap{padding:8px}}

/* Live dashboard refinements */
.dashboard-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1.12fr);gap:24px;align-items:stretch;margin-bottom:52px}.dashboard-overview .compact-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-overview .compact-metric{min-height:0;margin:0;padding:25px}.compact-map{margin:0;padding:24px;min-width:0}.compact-map .panel-top{align-items:flex-start}.compact-map .china-map-wrap{margin-top:12px;padding:8px;border-radius:16px}.compact-map .china-map-wrap svg{max-height:275px}.compact-map .city-list{margin-top:10px;max-height:44px;overflow:auto}.compact-map .city-chip{font-size:10px;padding:5px 9px}.week-bars{height:245px;display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;padding-top:24px}.week-bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.week-bar i{display:block;width:100%;min-height:4px;border-radius:10px 10px 3px 3px;background:linear-gradient(180deg,#b26af1,#4a2669);transition:height .7s cubic-bezier(.2,.8,.2,1)}.week-bar b{font-size:10px;color:#cea8f0}.week-bar span{font-size:11px;color:var(--muted)}
.upload-dialog{width:min(720px,calc(100vw - 28px))}.upload-dialog .upload-zone{position:relative;display:flex;min-height:145px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:26px}.upload-dialog .upload-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-file-list{display:grid;gap:9px;max-height:220px;overflow:auto}.upload-file-list label{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.2fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.upload-file-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.upload-file-list input{width:100%;border:1px solid #534064;background:#130d19;color:#ffffff;border-radius:9px;padding:10px 12px}.upload-status{margin-top:12px;color:var(--muted);font-size:12px}.upload-progress{height:7px;margin-bottom:8px;background:#120b18;border-radius:999px;overflow:hidden}.upload-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#7935b6,#bf76ff);border-radius:inherit;transition:width .2s}.rename-link{border:0;background:none;color:#b47ae8;font-size:10px;padding:0;cursor:pointer}.track-preview svg{display:block;width:100%;height:auto;aspect-ratio:620/260}.login-link{color:#d4b4f0;text-decoration:none}.medal-photo{aspect-ratio:1;object-fit:cover;border-radius:20px;background:#150d1c}.medal-crop{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:22px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#110b16}.medal-crop canvas{display:block;width:100%;aspect-ratio:1;border-radius:16px;background:#060408}.crop-controls{display:flex;flex-direction:column;justify-content:center;gap:18px}.crop-controls label{display:grid;gap:8px;color:var(--muted);font-size:12px}.crop-controls input{width:100%;accent-color:#974dd8}
@media(max-width:1050px){.dashboard-overview{grid-template-columns:1fr}.compact-map .china-map-wrap svg{max-height:340px}}
@media(max-width:620px){.dashboard-overview .compact-metrics{grid-template-columns:1fr 1fr;gap:10px}.dashboard-overview .compact-metric{padding:18px 14px}.dashboard-overview .compact-metric b{font-size:24px}.upload-file-list label{grid-template-columns:1fr}.medal-crop{grid-template-columns:1fr}.week-bars{height:200px;gap:5px}}

/* Brighter city footprint and typography */
.dashboard-overview{grid-template-columns:minmax(0,.9fr) minmax(500px,1.3fr)}.dashboard-overview .compact-metric>span{font-size:15px;font-weight:750;color:#e8dcf3;letter-spacing:.1px}.dashboard-overview .compact-metric b{font-size:36px;line-height:1.05;margin-top:18px;letter-spacing:-1px}.dashboard-overview .compact-metric b>span{font-size:inherit;color:#ffffff}.dashboard-overview .compact-metric b small{font-size:14px}.dashboard-overview .compact-metric em{font-size:12px;margin-top:13px}.compact-map{padding:26px}.compact-map .china-map-wrap{padding:5px}.compact-map .china-map-wrap svg{max-height:330px}.map-total{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;color:var(--muted);font-size:12px;white-space:nowrap}.map-total b{color:#bd73ff;font-size:30px;line-height:1;text-shadow:0 0 20px #ae52ff88}.china-map-wrap .lit-city{fill:#a64ff3;stroke:#e9d1ff;stroke-width:1.15;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px #a33bff) drop-shadow(0 0 16px #8323d8aa);animation:city-glow 2.8s ease-in-out infinite alternate}.china-map-wrap .lit-label{fill:#ffffff;font-size:13px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#44156e;stroke-width:3px;pointer-events:none}.medal-stage{isolation:isolate}.medal-stage:after{z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(13,6,20,.58) 0%,rgba(13,6,20,.18) 62%,rgba(13,6,20,.08) 100%),linear-gradient(0deg,rgba(13,6,20,.3),transparent 65%),rgba(8,3,12,.64);box-shadow:inset 0 0 90px rgba(3,1,5,.42)}
@keyframes city-glow{from{fill:#8d31df;filter:drop-shadow(0 0 5px #a33bff)}to{fill:#b868ff;filter:drop-shadow(0 0 10px #ae52ff) drop-shadow(0 0 20px #8323d8cc)}}
@media(max-width:1050px){.dashboard-overview{grid-template-columns:1fr}.compact-map .china-map-wrap svg{max-height:390px}}
@media(max-width:620px){.dashboard-overview .compact-metric>span{font-size:13px}.dashboard-overview .compact-metric b{font-size:27px}.compact-map .china-map-wrap svg{max-height:320px}.map-total{font-size:10px}.map-total b{font-size:24px}.medal-stage:after{background:linear-gradient(0deg,rgba(13,6,20,.52) 0%,rgba(13,6,20,.12) 62%),rgba(8,3,12,.66)}}

/* City summary uses a calm wrapping grid instead of an inner scrollbar. */
.compact-map .city-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin-top:14px;max-height:none;overflow:visible}.compact-map .city-chip{width:100%;min-width:0;padding:7px 9px;font-size:10px;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis}
@media(max-width:620px){.compact-map .city-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.compact-map .city-chip{font-size:9px}}

.sync-progress-copy{flex:1;min-width:0}.igp-progress{width:min(520px,100%);height:9px;margin-top:12px;border-radius:999px;overflow:hidden;background:#100916;box-shadow:inset 0 0 0 1px #ffffff0d}.igp-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#782fb8,#bc71ff);box-shadow:0 0 16px #a44fefaa;transition:width .45s cubic-bezier(.2,.8,.2,1)}#igpProgressPercent{display:block;min-height:16px;margin-top:7px;color:#b790d9;font-size:10px}.sync-queue:has(.igp-progress:not([hidden])) .queue-dot{background:#a85bec;box-shadow:0 0 0 6px #a85bec18,0 0 14px #a85bec88;animation:pin-pulse 1.6s infinite}
.record-actions{white-space:nowrap}.delete-record{border:0;background:none;color:#b46ff1;padding:0;cursor:pointer;font:inherit}.delete-record:hover{color:#d09bff;text-decoration:underline}.delete-record:disabled{opacity:.45;cursor:wait}.action-separator{color:#554167;margin:0 2px}

/* Compact footprint with a dedicated city ranking. */
.footprint-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:stretch;margin-top:12px}.footprint-layout .china-map-wrap{margin-top:0;min-width:0}.city-ranking{display:flex;min-width:0;flex-direction:column;padding:17px 15px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(160deg,#23133299,#100a16)}.city-ranking h3{margin:4px 0 13px;font-size:17px}.city-ranking ol,.ranking-full ol{list-style:none;padding:0;margin:0;display:grid;gap:7px}.city-ranking li,.ranking-full li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:9px 8px;border-radius:10px;background:#ffffff05}.city-ranking li b,.ranking-full li b{color:#ab66e8;font-size:10px;font-variant-numeric:tabular-nums}.city-ranking li span,.ranking-full li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ebdff5;font-size:12px}.city-ranking li strong,.ranking-full li strong{white-space:nowrap;color:#ffffff;font-size:11px}.city-ranking .ranking-empty{display:block;color:var(--muted);font-size:11px;line-height:1.7}.ranking-more{margin-top:auto;padding:12px 0 0;border:0;background:none;color:#bd8ce9;text-align:left;cursor:pointer;font:inherit;font-size:11px}.ranking-more:hover{color:#dab0ff}.ranking-dialog{width:min(610px,calc(100vw - 28px))}.ranking-full ol{grid-template-columns:1fr 1fr;gap:9px}.ranking-full li{padding:12px 14px;border:1px solid #ffffff08}.china-map-wrap .city-leader{stroke:#cca2f2;stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke;opacity:.85}.china-map-wrap .map-labels .lit-label{font-size:12px}.compact-map .china-map-wrap svg{max-height:310px}
@media(max-width:1050px){.footprint-layout{grid-template-columns:minmax(0,1fr) 220px}}
@media(max-width:720px){.footprint-layout{grid-template-columns:1fr}.city-ranking{min-height:0}.city-ranking ol{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-more{margin-top:12px}.ranking-full ol{grid-template-columns:1fr}.compact-map .china-map-wrap svg{max-height:320px}}

.metrics-column{min-width:0}.peak-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.peak-metrics article{position:relative;overflow:hidden;padding:15px 17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#1b1025cc,#130c19cc)}.peak-metrics article:after{content:"";position:absolute;right:-30px;bottom:-44px;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle,#a55ce61c,transparent 68%)}.peak-metrics span{display:block;color:#c3aed6;font-size:11px;font-weight:700}.peak-metrics b{display:inline-block;margin-top:10px;color:#ffffff;font-size:22px;line-height:1;font-variant-numeric:tabular-nums}.peak-metrics small{margin-left:5px;color:var(--muted);font-size:9px}.dashboard-overview .compact-metrics{margin-bottom:0}
@media(max-width:620px){.peak-metrics{gap:8px}.peak-metrics article{padding:13px 12px}.peak-metrics span{font-size:10px}.peak-metrics b{font-size:18px}.peak-metrics small{display:block;margin:5px 0 0}}

/* Dashboard proportion, readable trend axes, and full-screen footprint explorer. */
.dashboard-overview{grid-template-columns:minmax(0,.82fr) minmax(620px,1.48fr);align-items:stretch}.metrics-column{display:flex;flex-direction:column}.dashboard-overview .compact-metrics{flex:1}.compact-map{height:100%;display:flex;flex-direction:column}.footprint-layout{grid-template-columns:minmax(0,1fr) 220px;flex:1;min-height:405px}.compact-map .china-map-wrap{display:flex;position:relative;min-height:405px;align-items:center;justify-content:center}.compact-map .china-map-wrap svg{width:100%;max-height:none}.city-ranking{padding:21px 18px}.city-ranking h3{font-size:19px}.city-ranking li{padding:11px 9px}.map-open{width:100%;color:inherit;font:inherit;text-align:left;cursor:zoom-in}.map-open-hint{position:absolute;right:14px;bottom:12px;z-index:2;padding:7px 10px;border:1px solid #ffffff14;border-radius:999px;background:#0f0914cc;color:#b893d9;font-size:10px;opacity:0;transform:translateY(4px);transition:.2s}.map-open:hover .map-open-hint,.map-open:focus-visible .map-open-hint{opacity:1;transform:none}.chart-unit{color:var(--muted);font-size:11px}.trend-card .line-chart{height:330px;margin-top:18px}.trend-card .line-chart svg{position:static;width:100%;height:100%;overflow:visible}.trend-grid{stroke:#ffffff12;stroke-width:1;stroke-dasharray:4 6}.trend-axis{stroke:#ffffff28;stroke-width:1}.trend-y-label{fill:#8a749e;font-size:10px;text-anchor:end;font-variant-numeric:tabular-nums}.trend-x-label{fill:#9079a5;font-size:10px;text-anchor:middle;font-variant-numeric:tabular-nums}.trend-point{fill:#ffffff;stroke:#ad63ef;stroke-width:3;cursor:pointer;transition:r .18s}.trend-point:hover{r:7;filter:drop-shadow(0 0 8px #c88aff)}.trend-card .analytics-area{fill:url(#trendFill);opacity:1;animation:none}.trend-card .analytics-line{stroke-width:3.5;stroke-dasharray:none;stroke-dashoffset:0;animation:none}.trend-empty{fill:#8a749e;font-size:13px;text-anchor:middle}.map-explorer{padding:18px}.map-explorer-dialog{width:min(1280px,calc(100vw - 36px));height:min(820px,calc(100vh - 36px));display:flex;flex-direction:column}.map-zoom-controls{display:flex;align-items:center;gap:8px}.map-zoom-controls button{min-width:38px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#1d1227;color:#eadff4;cursor:pointer}.map-zoom-controls .close-dialog{font-size:24px}.map-explorer-stage{flex:1;min-height:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 62% 52%,#471d6d4d,transparent 34%),#0d0811}.map-explorer-stage svg{display:block;width:100%;height:100%}.map-explorer-stage .province{fill:#281538;stroke:#9058c2;stroke-width:.65;vector-effect:non-scaling-stroke}.map-explorer-stage .lit-city{fill:#a64ff3;stroke:#e9d1ff;stroke-width:1.15;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px #a33bff) drop-shadow(0 0 16px #8323d8aa)}.map-explorer-stage .lit-label{fill:#ffffff;font-size:13px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#44156e;stroke-width:3px}.map-explorer-stage .city-leader{stroke:#cca2f2;stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.map-explorer-help{margin:10px 0 0;color:var(--muted);font-size:11px;text-align:center}
@media(max-width:1150px){.dashboard-overview{grid-template-columns:1fr}.footprint-layout{min-height:380px}.compact-map .china-map-wrap{min-height:380px}}
@media(max-width:720px){.footprint-layout{min-height:0}.compact-map .china-map-wrap{min-height:300px}.trend-card .line-chart{height:270px}.chart-unit{display:none}.map-explorer{padding:8px}.map-explorer-dialog{width:calc(100vw - 16px);height:calc(100vh - 16px)}.map-zoom-controls button{min-width:34px;padding:0 9px}.map-zoom-controls button[data-map-zoom=reset]{display:none}}

/* Readable dashboard chart and a larger always-visible footprint. */
.dashboard-overview{grid-template-columns:minmax(0,.7fr) minmax(700px,1.65fr);gap:26px}.compact-map{padding:30px}.compact-map .panel-top h2{font-size:25px}.footprint-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px;min-height:470px}.compact-map .china-map-wrap{min-height:470px;padding:0}.compact-map .china-map-wrap svg{width:108%;max-width:none;transform:scale(1.08);transform-origin:center}.city-ranking{padding:24px 20px}.city-ranking h3{font-size:21px;margin-bottom:18px}.city-ranking ol{gap:10px}.city-ranking li{grid-template-columns:32px minmax(0,1fr) auto;padding:13px 11px}.city-ranking li b{font-size:11px}.city-ranking li span{font-size:13px}.city-ranking li strong{font-size:12px}.ranking-more{font-size:12px}.map-open-hint{display:none}.trend-card{background:radial-gradient(circle at 55% 42%,#371a504d,transparent 42%),linear-gradient(145deg,#1f112b,#120b19)}.trend-card .line-chart{height:350px}.trend-card .analytics-line{stroke:#c078ff;stroke-width:4.5;filter:drop-shadow(0 0 7px #af55ff99)}.trend-card .analytics-area{fill:url(#trendFill)}.trend-grid{stroke:#966bbd52;stroke-width:1}.trend-axis{stroke:#bb99d988;stroke-width:1.2}.trend-y-label,.trend-x-label{fill:#cab2e0;font-family:var(--font);font-size:12px;font-weight:650;letter-spacing:.15px}.trend-point{fill:#fff4f7;stroke:#c078ff;stroke-width:3.5;filter:drop-shadow(0 0 4px #b96aff99)}.chart-unit{color:#bca2d4;font-size:12px;font-weight:600}.trend-empty{fill:#c1aad6;font-family:var(--font);font-size:14px;font-weight:600}
@media(max-width:1250px){.dashboard-overview{grid-template-columns:1fr}.footprint-layout{min-height:440px}.compact-map .china-map-wrap{min-height:440px}}
@media(max-width:720px){.compact-map{padding:20px}.footprint-layout{grid-template-columns:1fr;min-height:0}.compact-map .china-map-wrap{min-height:330px}.compact-map .china-map-wrap svg{width:112%;transform:scale(1.12)}.city-ranking{padding:18px}.trend-card .line-chart{height:290px}.trend-y-label,.trend-x-label{font-size:11px}}

/* Medal cards open a complete story view with records and certificates. */
button.medal-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}.medal-detail-dialog{width:min(1040px,100%);padding:30px}.medal-detail-body{display:grid;gap:28px}.medal-detail-loading{padding:70px 20px;text-align:center;color:var(--muted)}.medal-detail-hero{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:32px;align-items:center}.medal-detail-image{aspect-ratio:1;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:radial-gradient(circle,#3a2051,#0e0913);display:grid;place-items:center}.medal-detail-image img{display:block;width:100%;height:100%;object-fit:contain}.medal-detail-placeholder{font-size:18px;letter-spacing:.35em;color:#ad7dd7}.medal-detail-copy time{color:#c08cee;font-size:12px;letter-spacing:1.2px}.medal-detail-copy h3{margin:12px 0 16px;font-size:clamp(27px,4vw,44px);line-height:1.08;letter-spacing:-1.5px}.medal-detail-copy p{margin:0;color:#c2afd3;font-size:14px;line-height:1.85;white-space:pre-wrap}.medal-journal-link{display:inline-flex;margin-top:26px;align-items:center}.medal-section-title{margin-bottom:15px}.medal-section-title h3{margin:0;font-size:20px}.medal-activity,.medal-attachments{padding-top:26px;border-top:1px solid var(--line)}.medal-activity-head{margin-bottom:14px}.medal-activity-head b{display:block;font-size:17px}.medal-activity-head span{display:block;margin-top:6px;color:var(--muted);font-size:12px}.medal-activity-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.medal-activity-stats div{padding:16px;border:1px solid var(--line);border-radius:14px;background:#ffffff05}.medal-activity-stats b{display:block;font-size:18px;font-variant-numeric:tabular-nums}.medal-activity-stats span{display:block;margin-top:7px;color:var(--muted);font-size:10px}.medal-attachment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.medal-attachment-grid a{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#100a16}.medal-attachment-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}.medal-attachment-grid a:hover img{transform:scale(1.035)}.medal-attachment-grid span{position:absolute;left:0;right:0;bottom:0;padding:34px 13px 11px;background:linear-gradient(transparent,#0b0610dd);color:#ffffff;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.medal-detail-dialog{padding:20px}.medal-detail-hero{grid-template-columns:1fr;gap:20px}.medal-detail-image{max-height:55vh}.medal-activity-stats{grid-template-columns:1fr 1fr}.medal-attachment-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.medal-attachment-grid{grid-template-columns:1fr}.medal-detail-copy h3{font-size:27px}}

/* Enlarge the geography inside its existing frame without growing the card. */
.compact-map .china-map-wrap svg{width:108%;transform:scale(1.42);transform-origin:50% 48%}
@media(max-width:720px){.compact-map .china-map-wrap svg{width:108%;transform:scale(1.34);transform-origin:50% 48%}}

/* Keep metric values and their units together at every dashboard width. */
.dashboard-overview .compact-metric b{display:flex;align-items:baseline;gap:8px;max-width:100%;white-space:nowrap;font-size:clamp(29px,3vw,46px)}.dashboard-overview .compact-metric b>span{min-width:0}.dashboard-overview .compact-metric b small{flex:0 0 auto;white-space:nowrap;font-size:clamp(12px,1.1vw,16px)}.peak-metrics article{display:grid;grid-template-columns:max-content max-content;align-content:center;column-gap:7px;min-width:0}.peak-metrics article>span{grid-column:1/-1;white-space:normal}.peak-metrics article>b{grid-column:1;white-space:nowrap}.peak-metrics article>small{grid-column:2;align-self:end;margin:0 0 1px;white-space:nowrap}
@media(max-width:620px){.dashboard-overview .compact-metric b{gap:5px;font-size:clamp(24px,7.2vw,34px)}.dashboard-overview .compact-metric b small{font-size:11px}.peak-metrics article{column-gap:5px}.peak-metrics article>small{display:block;margin:0 0 1px;font-size:8px}}

.medal-detail-tools{display:flex;align-items:center;gap:8px}.medal-detail-tools .ghost-btn,.medal-detail-tools .danger-btn{padding:9px 13px;font-size:11px}.medal-detail-tools .close-dialog{margin-left:3px}.medal-detail-tools[hidden],.medal-public-close[hidden]{display:none!important}
@media(max-width:560px){.medal-detail-tools{gap:5px}.medal-detail-tools .ghost-btn,.medal-detail-tools .danger-btn{padding:8px 10px}.medal-detail-dialog>.dialog-head{align-items:flex-start}}

/* Show the medal hero photo at full brightness; readability comes from type. */
.medal-stage:after{display:none!important;background:none!important;box-shadow:none!important}.medal-stage-copy .kicker,.medal-stage-copy h2,.medal-stage-copy>p:last-child{position:relative;color:#ffffff;text-shadow:0 2px 3px rgba(5,2,8,.95),0 5px 18px rgba(5,2,8,.9),0 0 2px rgba(5,2,8,1)}.medal-stage-copy h2{-webkit-text-stroke:.55px rgba(12,5,18,.85)}.medal-stage-copy .kicker{color:#d09bff;font-weight:850;text-shadow:0 1px 3px #0a0310,0 3px 12px #0a0310}.medal-stage-copy>p:last-child{font-weight:600;-webkit-text-stroke:.25px rgba(12,5,18,.75)}

/* Give the metric column enough room and never shrink numbers under units. */
.dashboard-overview{grid-template-columns:minmax(520px,.95fr) minmax(0,1.45fr)}.dashboard-overview .compact-metric b>span{flex:0 0 auto;min-width:max-content;letter-spacing:-1.4px}.dashboard-overview .compact-metric b small{position:relative;z-index:1}
@media(max-width:1250px){.dashboard-overview{grid-template-columns:1fr}}

/* Stable two-row mobile navigation and readable medal hero type. */
@media(max-width:900px){.hub-nav{height:124px;align-items:flex-start;padding:16px 18px 0;backdrop-filter:none;-webkit-backdrop-filter:none}.hub-brand{line-height:34px}.user-menu{margin-left:auto}.hub-links{position:absolute;top:66px;bottom:auto;left:8px;right:8px;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);gap:3px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;box-shadow:0 10px 30px #00000066}.hub-links::-webkit-scrollbar{display:none}.hub-links a{white-space:nowrap}.hub-main{padding-top:32px;padding-bottom:70px}}
@media(max-width:620px){.medal-stage-copy{left:22px;right:22px;bottom:24px;max-width:none}.medal-stage-copy h2{font-size:32px;line-height:1.15;letter-spacing:-1px;-webkit-text-stroke:0;text-shadow:0 2px 7px #0a0310,0 4px 16px #0a0310}.medal-stage-copy .kicker{font-size:10px;line-height:1.4;letter-spacing:1.8px;-webkit-text-stroke:0}.medal-stage-copy>p:last-child{font-size:13px;line-height:1.65;font-weight:600;-webkit-text-stroke:0;text-shadow:0 2px 7px #0a0310,0 4px 14px #0a0310}}

/* Final responsive hardening: prevent page overflow and keep all controls usable. */
html,body{max-width:100%;overflow-x:clip}img,video,svg{max-width:100%}.panel,.page-intro>*,.dashboard-grid>*,.form-grid>*{min-width:0}.primary-btn,.ghost-btn,.danger-btn,.mini-btn{white-space:nowrap}.user-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){
  .hub-links{display:flex;grid-template-columns:none;grid-auto-flow:initial;grid-auto-columns:initial;overflow:visible}
  .hub-links a{flex:1 1 0;min-width:0;padding:11px 3px;font-size:clamp(10px,2.8vw,12px)}
}
@media(max-width:720px){
  .records-full{overflow:visible;padding:0;border:0;background:transparent}
  .records-full .records-table{display:block;min-width:0}
  .records-full .records-table thead{display:none}
  .records-full .records-table tbody{display:grid;gap:11px}
  .records-full .records-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:16px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,rgba(31,17,43,.92),rgba(21,13,28,.92))}
  .records-full .records-table td{display:block!important;padding:0;border:0;min-width:0}
  .records-full .records-table td:first-child{grid-column:1/-1}
  .records-full .records-table td:nth-child(n+3):nth-child(-n+7){display:none!important}
  .records-full .record-title{display:inline-block;max-width:calc(100% - 62px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
  .records-full .mobile-record-stats{white-space:normal;line-height:1.65}
  .records-full .record-actions{text-align:right;white-space:nowrap}
  .records-full tr:has(.empty-state){display:block}
  .records-full tr:has(.empty-state) td{display:block!important}
  .dialog-backdrop{padding:8px;align-items:flex-end}
  .dialog{width:100%;max-height:calc(100svh - 16px);padding:21px 18px;border-radius:22px}
  .dialog-head{margin-bottom:20px}
  .dialog-actions{display:grid;grid-template-columns:1fr 1fr}
  .dialog-actions>*{width:100%}
  .media-preview{max-width:100%;overflow-x:auto;padding-bottom:3px}
  .actions{max-width:100%;flex-wrap:wrap}
}
@media(max-width:420px){
  .hub-nav{padding-left:12px;padding-right:12px}
  .hub-links{left:5px;right:5px;padding:5px}
  .hub-links a{padding:11px 2px;font-size:10px}
  .hub-main{padding-left:16px;padding-right:16px}
  .page-intro{gap:20px;margin-bottom:27px}
  .page-intro h1{font-size:clamp(36px,11vw,43px);letter-spacing:-1.8px}
  .page-intro>.primary-btn{width:100%}
  .user-menu{gap:6px}
  .role-tag{padding:5px 7px}
  .logout{padding:4px 0}
  .dialog-head h2{font-size:22px}
  .medal-detail-tools{flex-wrap:wrap;justify-content:flex-end}
}

/* Publishing feedback and thumbnail-led media editing. */
.medal-card .medal-photo{display:block;margin-bottom:22px}
.medal-card time{display:block;margin-bottom:4px;line-height:1.5}
.journal-card-copy{padding-top:25px}
.media-item figcaption:empty,.media-item figcaption[hidden],.medal-attachment-grid span:empty,.medal-attachment-grid span[hidden],.publish-status[hidden]{display:none}
.media-editor-list,.media-input-list{display:grid;gap:10px;min-width:0}
.media-editor-list:empty,.media-input-list:empty{display:none}
.media-editor-list:before{content:'已上传的媒体';display:block;color:var(--muted);font-size:12px}
.date-input-wrap{display:block;position:relative}.date-input-wrap>input[type=text]{padding-right:49px}.date-picker-icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:#c9a5e8;font-size:20px;pointer-events:none}.date-input-wrap .date-native-picker{position:absolute;right:4px;top:0;width:43px;height:100%;opacity:0;cursor:pointer;padding:0;z-index:1}
.media-editor-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:13px;align-items:start;padding:11px;border:1px solid var(--line);border-radius:14px;background:#ffffff05;min-width:0}
.media-editor-thumb{width:110px;height:88px;position:relative;overflow:hidden;border-radius:10px;background:#0d0812}
.media-editor-thumb img,.media-editor-thumb video{width:100%;height:100%;display:block;object-fit:cover}
.media-editor-thumb span{position:absolute;right:5px;bottom:5px;padding:3px 7px;border-radius:6px;background:#0e0814dd;color:#ffffff;font-size:11px}
.media-editor-fields{min-width:0}.media-editor-fields .field{margin:0 0 9px}.media-editor-fields .field:last-child{margin-bottom:0}
.publish-status{margin-top:14px;color:#dcc1f4;font-size:12px}.publish-status .upload-progress{margin-bottom:9px}.publish-status.done{color:#b88cdf}.publish-status.failed{color:#d09bff}
.primary-btn.is-busy{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:wait;opacity:.82}
.primary-btn.is-busy:before{content:'';display:inline-block;width:13px;height:13px;border:2px solid #ffffff80;border-top-color:#ffffff;border-radius:50%;animation:publish-spin .7s linear infinite}
@keyframes publish-spin{to{transform:rotate(360deg)}}
@media(max-width:480px){.media-editor-row{grid-template-columns:88px minmax(0,1fr)}.media-editor-thumb{width:88px;height:82px}.medal-card .medal-photo{margin-bottom:18px}}

/* Keep the medal preview compact and open the original only on request. */
.medal-detail-hero{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:36px}.medal-detail-image{width:280px;max-width:100%;justify-self:center}.medal-image-open{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.medal-image-open:focus-visible,.medal-attachment-grid a:focus-visible{outline:3px solid #cda5f0;outline-offset:3px}.medal-attachment-grid a{cursor:zoom-in}
.media-lightbox{display:none;position:fixed;inset:0;z-index:200;align-items:center;justify-content:center;padding:36px;background:rgba(6,3,8,.94)}.media-lightbox.open{display:flex}.media-lightbox img{display:block;max-width:100%;max-height:calc(100dvh - 72px);width:auto;height:auto;object-fit:contain}.media-lightbox-close{position:absolute;right:22px;top:18px;z-index:1;width:46px;height:46px;border:1px solid #ffffff55;border-radius:50%;background:#241432;color:#ffffff;font-size:30px;line-height:1;cursor:pointer}
.media-editor-list:before{content:'已上传媒体 · 替换或删除将在保存后生效'}.media-editor-name{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:10px;color:#e5d4f5;font-size:12px}.media-editor-name strong{flex:0 0 auto}.media-editor-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.media-editor-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.media-replace,.media-remove{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 10px;border:1px solid #9e7bbd;border-radius:8px;background:#ffffff0b;color:#e2ccf5;font:inherit;font-size:11px;cursor:pointer}.media-replace input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.media-remove{border-color:#7b539e;color:#d9afff}.media-replace-name{min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.media-editor-row.is-deleted{opacity:.55}.media-editor-row.is-deleted .media-editor-fields .field,.media-editor-row.is-deleted .media-replace,.media-editor-row.is-deleted .media-replace-name{text-decoration:line-through;pointer-events:none}
@media(max-width:760px){.medal-detail-hero{grid-template-columns:1fr;gap:20px}.medal-detail-image{width:min(100%,260px)}}

.medal-card .medal-photo{cursor:zoom-in}
.medal-card .medal-photo{cursor:pointer}.medal-crop[hidden]{display:none!important}.medal-crop canvas{touch-action:none;cursor:grab}.medal-crop canvas:active{cursor:grabbing}.crop-title{margin:0 0 12px;color:#e9dcf5;font-weight:700}.crop-hint{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.edit-medal-crop{margin-top:18px}
.medal-crop-overlay{position:fixed;inset:0;z-index:180;display:flex;align-items:center;justify-content:center;padding:16px;background:#060309df;backdrop-filter:blur(12px)}.medal-crop-overlay[hidden]{display:none!important}.medal-crop-dialog{width:min(720px,100%);max-height:calc(100dvh - 32px);overflow:auto}.medal-crop-dialog .medal-crop{grid-template-columns:minmax(0,1fr) minmax(170px,.65fr)}.medal-crop-shortcut{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.medal-crop-shortcut .ghost-btn,.media-crop-trigger{padding:8px 11px;font-size:11px}.medal-crop-shortcut .ghost-btn:disabled{opacity:.45;cursor:not-allowed}.media-crop-trigger{border:1px solid #9e7bbd;border-radius:8px;background:#ffffff0b;color:#e2ccf5;font:inherit;cursor:pointer}
.medal-crop-shortcut img{width:52px;height:52px;flex:0 0 auto;object-fit:cover;border-radius:9px;border:1px solid var(--line)}.medal-crop-shortcut img[hidden]{display:none!important}
@media(max-width:620px){.medal-crop-dialog .medal-crop{grid-template-columns:1fr}.medal-crop-dialog .crop-controls{gap:10px}.medal-crop-dialog .dialog-head{margin-bottom:14px}}

/* Give the data import settings distinct rows and breathing room. */
.sync-management-head{margin-bottom:28px}.sync-management-head h2{margin:8px 0 10px;line-height:1.3}.sync-management-head>div>p:last-child{line-height:1.7}.sync-settings.one-provider{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.sync-settings.one-provider>label{display:grid;gap:10px;min-height:0}.sync-settings.one-provider>label>span{display:flex;align-items:center;gap:10px;line-height:1.45}.sync-settings.one-provider>label>span b{font-size:14px}.sync-settings.one-provider .inline-input,.sync-settings.one-provider .inline-select{min-width:0;width:100%;min-height:48px;margin:0}.sync-management .sync-queue.compact{margin-top:28px;padding:18px 20px}
@media(max-width:620px){.sync-management-head{margin-bottom:24px}.sync-settings.one-provider{gap:18px}.sync-management .sync-queue.compact{margin-top:24px}}

/* Five compact medals across a laptop viewport. */
.medal-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.medal-card{min-width:0;min-height:0;padding:14px;border-radius:17px}.medal-card .medal-photo{width:100%;margin-bottom:14px;border-radius:12px}.medal-card .medal-visual{height:auto;aspect-ratio:1;margin:-14px -14px 14px;background-size:cover}.medal-card time{font-size:10px;letter-spacing:.8px}.medal-card h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:clamp(13px,1.15vw,17px);line-height:1.4;margin:7px 0 8px;min-height:2.8em}.medal-card p{font-size:11px;line-height:1.5;margin:0 0 14px}.medal-card .text-link{font-size:11px;line-height:1.4}
@media(max-width:899px){.medal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:699px){.medal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:619px){.medal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:419px){.medal-grid{grid-template-columns:1fr}}
