:root{--ink:#1f2b27;--muted:#718078;--green:#315b4b;--green-dark:#244838;--canvas:#f4f7f5;--line:#e4ebe6;--sidebar:258px}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:25px 18px 16px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1020}.brand{color:var(--ink);text-decoration:none;padding:0 9px 30px}.brand:hover{color:var(--green)}.brand strong{font-size:1rem;letter-spacing:.01em}.brand small{font-size:.74rem;color:var(--muted);margin-top:2px}.brand-mark{width:42px;height:42px;border-radius:13px;background:#e8f1eb;color:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem}.sidebar-label,.eyebrow{color:#8a9890;font-weight:700;font-size:.67rem;letter-spacing:.12em}.sidebar-label{padding:0 12px 11px}.sidebar .nav{gap:4px}.sidebar .nav-link{display:flex;align-items:center;gap:13px;border-radius:9px;color:#59675f;padding:10px 12px;font-size:.9rem;transition:.15s}.sidebar .nav-link i{width:20px;font-size:1rem;text-align:center;color:#7c8c82}.sidebar .nav-link:hover{background:#f4f4f4;color:var(--green)}.sidebar .nav-link.active{background:#eaf2ed;color:var(--green-dark);font-weight:650}.sidebar .nav-link.active i{color:var(--green)}.sidebar-footer{margin-top:auto;padding:15px 12px 2px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:#53a77a;display:inline-block;margin:0 8px 1px 0}.main-area{margin-left:var(--sidebar);min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:1000}.crumb{font-size:.84rem;color:#89958e}.crumb strong{color:var(--ink);font-weight:600}.content-wrap{max-width:1500px;margin:0 auto;padding:34px 36px 60px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{font-size:1.8rem;letter-spacing:-.04em;font-weight:700;margin:7px 0 5px}.page-heading p{margin:0;color:var(--muted);font-size:.92rem}.eyebrow{color:var(--green)}.btn-primary{--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green-dark);--bs-btn-hover-border-color:var(--green-dark);--bs-btn-active-bg:var(--green-dark)}.module-card{height:100%;border:1px solid var(--line);border-radius:13px;transition:transform .16s,box-shadow .16s;cursor:pointer}.module-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #243b2c12}.module-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:#eaf2ed;color:var(--green);font-size:1.3rem}.module-card h2{font-size:1rem;font-weight:650;margin:18px 0 5px}.module-card p{font-size:.82rem;color:var(--muted);margin:0}.module-arrow{color:#96a49b}.data-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 3px 12px #243b2c08}.search-box .input-group-text,.search-box .form-control,.search-box .btn{background:#f7f9f8;border-color:#e5ebe7}.search-box .form-control:focus{box-shadow:none}.table thead th{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:#849189;font-weight:700;background:#f8faf9;padding:12px 16px;white-space:nowrap;border-bottom:1px solid var(--line)}.table tbody td{padding:12px 16px;border-color:#edf1ee;font-size:.86rem;max-width:420px}.table tbody tr:hover{background:#fbfdfb}.table tbody td.text-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-actions{white-space:nowrap}.table-actions .btn{--bs-btn-color:#67756d;--bs-btn-hover-color:var(--green);--bs-btn-hover-bg:#eef4f0}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 0,#e6f0e9 0,transparent 56%),var(--canvas)}.login-card{width:min(100%,430px);border-radius:18px}.login-card h1{font-weight:700;letter-spacing:-.04em}.login-card .brand-mark{width:50px;height:50px}.form-control,.form-select{border-color:#dfe7e1}.form-control:focus,.form-select:focus{border-color:#8aaa96;box-shadow:0 0 0 .2rem #315b4b18}.modal-content{border:0;border-radius:14px;overflow:hidden}.modal-header,.modal-footer{padding:18px 22px}.modal-body{padding:20px 22px}.field-label{font-size:.78rem;font-weight:650;color:#58675f;margin-bottom:6px}.field-value{font-size:.8rem;color:#8a9890}.media-thumb{width:42px;height:42px;object-fit:cover;border-radius:7px;background:#eef2ef}.empty-state{padding:56px 20px!important;text-align:center;color:var(--muted)}@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:0 12px 40px #14241b20}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{padding:0 18px}.content-wrap{padding:25px 18px 44px}}@media(max-width:575.98px){.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:1.55rem}.content-wrap{padding-top:22px}.topbar{height:60px}}
.sidebar .nav-link img{width:24px;height:24px;object-fit:contain}.module-icon img{max-width:46px;max-height:46px;object-fit:contain;border-radius:8px}
.track-canvas{width:100%;min-height:300px;background:linear-gradient(0deg,#f1f6f2,#fbfdfb);border:1px solid var(--line);border-radius:12px;overflow:hidden}.track-canvas svg{width:100%;height:auto;min-height:300px}.track-line{fill:none;stroke:#32795a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.track-grid{stroke:#dce7df;stroke-width:1}.track-stats{display:flex;gap:18px;flex-wrap:wrap;color:#69786f;font-size:.82rem}.track-stats strong{color:var(--ink)}
.pano-body{overflow:auto;background:#f4f7f5}#panoStage{position:relative;width:max-content;max-width:100%;line-height:0;margin:auto}#panoImage{display:block;max-width:100%;height:auto}#panoDots{position:absolute;inset:0;overflow:hidden}.pano-dot{position:absolute;width:14px;height:14px;border:2px solid #c53f32;border-radius:50%;background:#ffffff88;transform:translate(-50%,-50%);cursor:move;touch-action:none}.pano-dot.selected{background:#e44b37aa;box-shadow:0 0 0 3px #ffffffaa}
.records-title{display:flex;align-items:center;gap:25px}.records-title #recordsTitleIcon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px}.records-title #recordsTitleIcon img{display:block;width:48px;height:48px;object-fit:contain}.records-title #recordsTitleIcon .bi{font-size:2rem;color:var(--green)}
:root{color-scheme:dark;--ink:#e7e8e7;--muted:#b1b4b2;--green:#858585;--green-dark:#626262;--canvas:#121413;--line:#373a38;--bs-body-bg:#121413;--bs-body-color:#e7e8e7;--bs-secondary-color:#b1b4b2;--bs-tertiary-bg:#252726;--bs-border-color:#373a38;--bs-emphasis-color:#f4f4f4;--bs-link-color:#c5c5c5;--bs-link-hover-color:#e0e0e0}
:root body{background:var(--canvas);color:var(--ink)}
:root .sidebar,:root .topbar{background:#1b1d1c;border-color:var(--line)}
:root .sidebar-label,:root .crumb,:root .sidebar .nav-link{color:#b4b7b5}
:root .sidebar .nav-link:hover{background:#2a2a2a;color:#e6e6e6}
:root .sidebar .nav-link.active{background:#252627;color:#e2e2e2}
:root .sidebar .nav-link.active i{color:#c5c5c5}
:root .brand-mark,:root .module-icon{background:#252627;color:#c5c5c5}
:root .module-card,:root .data-card,:root .login-card{background:#1b1d1c;border-color:var(--line)}
:root .module-card:hover{box-shadow:0 10px 24px #0006}
:root .module-arrow{color:#898989}
:root .data-card .card-header.bg-white,:root .data-card .card-footer.bg-white{background:#1b1d1c!important}
:root .search-box .input-group-text,:root .search-box .form-control,:root .search-box .btn{background:#181a19;border-color:#414442;color:var(--ink)}
:root .table{--bs-table-bg:#1b1d1c;--bs-table-color:#dedfdf;--bs-table-border-color:#373a38;--bs-table-hover-bg:#2a2c2b;--bs-table-hover-color:#f1f1f1}
:root .table thead th{background:#252726;color:#b4b7b5;border-color:var(--line)}
:root .table tbody td{border-color:#373a38}
:root .table tbody tr:hover{background:#2a2c2b}
:root .table-actions .btn{--bs-btn-color:#c5c5c5;--bs-btn-bg:#272928;--bs-btn-border-color:#3c403d;--bs-btn-hover-color:#e5e5e5;--bs-btn-hover-bg:#343735;--bs-btn-hover-border-color:#555956}
:root .form-control,:root .form-select{background-color:#181a19;border-color:#454845;color:#e7e8e7}
:root .form-control::placeholder{color:#898989}
:root .form-control:focus,:root .form-select:focus{border-color:#858585;box-shadow:0 0 0 .2rem #90909030}
:root .form-check-input:checked{background-color:#777b79;border-color:#777b79}
:root .form-check-input:focus{border-color:#9a9e9c;box-shadow:0 0 0 .2rem #9a9e9c40}
:root #recordFields .form-check-input{margin-left:15px}
:root .field-label{color:#c7c9c8}
:root .field-value,:root .eyebrow{color:#b7b7b7}
:root .btn-primary{--bs-btn-bg:#555555;--bs-btn-border-color:#555555;--bs-btn-hover-bg:#666666;--bs-btn-hover-border-color:#666666;--bs-btn-active-bg:#454545}
:root .btn-outline-secondary{--bs-btn-color:#c4c4c4;--bs-btn-border-color:#565656;--bs-btn-hover-bg:#323232;--bs-btn-hover-border-color:#777777;--bs-btn-hover-color:#f2f6f3}
:root .login-shell{background:radial-gradient(ellipse at 50% 0,#252627 0,transparent 56%),var(--canvas)}
:root .modal-content{background:#1b1d1c;color:var(--ink)}
:root .modal-header,:root .modal-footer{border-color:var(--line)}
:root .track-canvas{background:linear-gradient(0deg,#1a1d1b,#242927)}
:root .track-line{stroke:#8b938e}:root .track-grid{stroke:#434644}:root .track-stats{color:#bdc0be}
:root .pano-body{background:#121413}
:root .media-thumb{background:#252726}
:root .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
:root .btn-outline-primary{--bs-btn-color:#c4c4c4;--bs-btn-border-color:#565656;--bs-btn-hover-color:#f2f2f2;--bs-btn-hover-bg:#323232;--bs-btn-hover-border-color:#777;--bs-btn-active-color:#f2f2f2;--bs-btn-active-bg:#454545;--bs-btn-active-border-color:#777;--bs-btn-disabled-color:#777;--bs-btn-disabled-border-color:#444}
.brand-mark{overflow:hidden;padding:0}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.sidebar .brand-mark{position:relative;display:block;flex:0 0 42px;width:42px;min-width:42px;height:42px;min-height:42px}.login-card .brand-mark{position:relative;display:block;flex:0 0 50px;width:50px;min-width:50px;height:50px;min-height:50px}.brand-mark img{position:absolute;inset:0;display:block;width:100%;max-width:100%;height:100%;max-height:100%;object-fit:cover;border-radius:inherit}
.strava-activity-scroll{max-height:min(38vh,420px);overflow-y:auto;overscroll-behavior:contain}
:root #stravaImportSelected:disabled{opacity:1;color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);cursor:wait}
