:root {
  --bg:#f6f7f5;
  --panel:#fff;
  --ink:#18332b;
  --muted:#738078;
  --line:#e4e9e4;
  --green:#22664d;
  --mint:#e7f1e9;
  --amber:#926a24;
  --radius:14px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-size:14px;
  font-synthesis:none
}
.table-wrap {
  position:relative
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select {
  font:inherit
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  opacity:.45;
  cursor:not-allowed
}
a:hover {
  text-decoration:none
}
button:focus-visible,a:focus-visible,input:focus-visible {
  outline:3px solid #80b59b;
  outline-offset:3px
}
h1,h2,h3,p {
  margin:0
}
h1 {
  font-size:36px;
  line-height:1.15;
  letter-spacing:-1.2px;
  font-weight:620
}
h2 {
  font-size:18px;
  letter-spacing:-.4px;
  font-weight:620
}
h3 {
  font-size:18px
}
small {
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
  margin-top:4px;
  overflow-wrap:anywhere
}
input {
  border:1px solid #d9e1db;
  border-radius:8px;
  background:#fff;
  color:var(--ink);
  padding:11px 12px;
  width:100%;
  min-width:0
}
input:focus {
  border-color:#6b9b82
}
label {
  display:block;
  font-size:12px;
  font-weight:550;
  color:#53655a
}
label input {
  display:block;
  margin-top:7px
}
table {
  border-collapse:collapse;
  width:100%;
  text-align:left
}
th {
  font-size:10px;
  font-weight:600;
  color:#79887e;
  text-transform:uppercase;
  letter-spacing:.8px;
  padding:14px 22px;
  background:#fcfdfb;
  border-block:1px solid var(--line)
}
td {
  padding:18px 22px;
  border-bottom:1px solid #edf0ec;
  font-size:12px;
  line-height:1.5
}
td strong {
  font-size:13px;
  font-weight:570
}
.sidebar {
  width:228px;
  position:fixed;
  inset:0 auto 0 0;
  background:#fff;
  border-right:1px solid var(--line);
  padding:36px 22px;
  display:flex;
  flex-direction:column;
  z-index:10
}
.brand {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:26px;
  font-weight:700;
  letter-spacing:-1px
}
.sidebar .brand {
  font-size:18px;
  letter-spacing:-.6px;
  white-space:nowrap
}
.brand-sub {
  display:block;
  font-size:8px;
  letter-spacing:1.6px;
  font-weight:600;
  margin-top:4px;
  color:var(--muted)
}
.brand-mark {
  display:block;
  flex-shrink:0;
  width:35px;
  height:40px;
  background:var(--mint);
  border-radius:9px;
  padding:7px
}
.brand-mark svg {
  width:100%;
  height:100%;
  stroke:var(--green);
  stroke-width:1.6;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}
.nav-label {
  font-size:9px;
  letter-spacing:1.4px;
  color:#97a299;
  margin:52px 10px 15px
}
.nav-link {
  display:flex;
  gap:12px;
  align-items:center;
  padding:13px 12px;
  margin:3px 0;
  color:#697b6d;
  font-size:12px;
  border-radius:8px
}
.nav-link:first-child,.nav-link:hover {
  background:var(--mint);
  color:#23533b
}
.nav-link span {
  font-size:20px;
  width:21px
}
.sidebar-bottom {
  margin-top:auto
}
.private-badge {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  color:var(--green);
  padding:12px 0
}
.dot {
  height:6px;
  width:6px;
  background:#478963;
  border-radius:50%;
  display:inline-block;
  flex-shrink:0
}
.disabled-dot {
  background:#bbb
}
.signed-in {
  font-size:10px;
  color:var(--muted);
  overflow-wrap:anywhere;
  margin:4px 0 10px
}
.main {
  margin-left:228px;
  padding:36px 44px 0;
  max-width:1680px
}
.page-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin:5px 0 28px
}
.eyebrow {
  font-size:9px;
  letter-spacing:1.6px;
  color:var(--green);
  font-weight:700;
  margin-bottom:12px
}
.subtitle {
  font-size:13px;
  color:var(--muted);
  margin-top:12px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border-radius:8px;
  padding:11px 16px;
  border:1px solid transparent;
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
  min-height:39px
}
.primary {
  color:#fff;
  background:var(--green)
}
.primary:hover {
  background:#194f3b
}
.secondary {
  background:white;
  border-color:#dce4dd;
  color:#41594a
}
.secondary:hover {
  background:#f4f8f3
}
.button-row {
  display:flex;
  align-items:center;
  gap:9px
}
.button-row form {
  margin:0
}
.wide {
  width:100%;
  justify-content:space-between
}
.text-button {
  background:none;
  border:none;
  padding:5px 0;
  color:var(--green);
  font-size:12px
}
.collection-bar {
  padding:18px 21px;
  border:1px solid var(--line);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-radius:var(--radius)
}
.collection-state {
  display:flex;
  align-items:center;
  gap:12px
}
.collection-state strong {
  font-size:13px;
  font-weight:570
}
.collection-state span:not(.status-light) {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:4px
}
.status-light {
  display:block;
  width:9px;
  height:9px;
  background:#c89b55;
  border-radius:50%;
  box-shadow:0 0 0 5px #faf3e8;
  margin:0 6px
}
.status-light.on {
  background:#3f8d65;
  box-shadow:0 0 0 5px #ebf4eb
}
.stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin:22px 0
}
.stat-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px 23px
}
.stat-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  color:#66766b
}
.stat-label span {
  font-size:19px;
  color:var(--green)
}
.stat-label .amber {
  color:var(--amber)
}
.stat-card strong {
  display:block;
  font-size:36px;
  line-height:1.3;
  font-weight:560;
  letter-spacing:-1.8px;
  margin:13px 0 8px
}
.stat-card p {
  font-size:10px;
  color:#8a968c
}
.panel {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:22px;
  overflow:hidden
}
.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:25px 23px;
  gap:20px
}
.section-heading p:not(.eyebrow) {
  font-size:11px;
  color:var(--muted);
  margin-top:7px
}
.section-heading .eyebrow {
  margin-bottom:9px
}
.count-badge {
  font-size:10px;
  color:var(--muted);
  background:#f5f7f3;
  padding:7px 10px;
  border-radius:5px;
  white-space:nowrap
}
.filters {
  padding:0 23px 18px;
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.filter {
  font-size:11px;
  color:#7a877d;
  padding:7px 10px;
  border-radius:6px;
  display:flex;
  gap:7px;
  align-items:center
}
.filter.selected {
  color:#2b6b4c;
  background:var(--mint);
  font-weight:550
}
.filter span {
  font-size:9px;
  border-radius:3px;
  background:#fff9;
  padding:1px 4px
}
.table-wrap {
  overflow:auto
}
.file-cell {
  display:flex;
  align-items:center;
  gap:11px;
  min-width:160px
}
.file-icon {
  font-size:8px;
  font-weight:650;
  color:#507963;
  border:1px solid #dbe5dc;
  background:#f4f8f2;
  border-radius:6px;
  width:30px;
  height:37px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0
}
.date-cell {
  white-space:nowrap
}
.status {
  display:inline-block;
  padding:5px 8px;
  border-radius:5px;
  background:#f0f2ee;
  color:#7a827b;
  font-size:10px;
  font-weight:550;
  white-space:nowrap
}
.status.uploaded,.status.completed,.status.approved,.status.ready {
  background:#edf5ed;
  color:#3c7756
}
.status.needs_review,.status.paused,.status.interrupted,.status.completed_with_errors {
  background:#fbf3df;
  color:#99763a
}
.status.failed,.status.upload_failed {
  background:#faece9;
  color:#a76452
}
.status.running,.status.queued {
  background:#edf1fa;
  color:#5b6e9b
}
.row-action {
  font-size:11px;
  color:var(--green);
  white-space:nowrap
}
.table-footer {
  display:flex;
  justify-content:space-between;
  padding:15px 23px;
  font-size:10px;
  color:#8a958c;
  gap:12px
}
.table-footer strong {
  font-weight:500;
  color:#64766a
}
.table-footer a {
  margin-left:15px;
  color:var(--green)
}
.empty-state {
  text-align:center;
  max-width:430px;
  margin:25px auto 34px
}
.empty-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#f2f6ee;
  width:58px;
  height:58px;
  font-size:30px;
  border-radius:14px;
  color:#5d8368;
  margin-bottom:17px
}
.empty-state h3 {
  font-size:16px;
  margin-bottom:10px
}
.empty-state p {
  font-size:12px;
  color:var(--muted);
  line-height:1.8
}
.two-column {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px
}
.account {
  padding:0 23px 22px;
  margin-top:6px;
  border-bottom:1px solid var(--line);
  margin-bottom:20px
}
.account-top {
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:15px
}
.account-top .dot {
  margin-left:auto
}
.account-top strong {
  font-size:12px;
  overflow-wrap:anywhere
}
.account-icon {
  display:flex;
  justify-content:center;
  align-items:center;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  width:36px;
  height:36px;
  font-weight:700;
  font-size:19px;
  color:#648579;
  flex-shrink:0
}
.account-form .button-row {
  justify-content:space-between;
  margin-top:8px
}
.checkbox-label {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  font-weight:400
}
.checkbox-label input {
  display:inline-block;
  width:14px;
  height:14px;
  margin:0;
  accent-color:var(--green)
}
.connect-form {
  padding:0 23px 23px
}
.connect-form .button {
  margin-top:12px
}
.outline-icon {
  font-size:32px;
  color:#9dab9f
}
.folder-tree {
  margin:0 23px 13px;
  border:1px solid #e6ebe2;
  border-radius:9px;
  padding:16px;
  background:#fafbf8;
  font-size:11px;
  color:#57725d;
  line-height:2.2;
  overflow-x:auto
}
.tree-level {
  margin-left:17px
}
.tree-level.two {
  margin-left:34px
}
.tree-level.three {
  margin-left:51px
}
.tree-level.four {
  margin-left:68px;
  font-size:10px;
  white-space:nowrap
}
#destination>.small {
  margin:0 23px
}
#destination>form {
  margin:0 23px 20px
}
.access-list {
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:20px 23px
}
.access-list p {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  overflow-wrap:anywhere
}
.access-list small {
  margin-top:3px;
  font-size:9px
}
.avatar {
  display:flex;
  justify-content:center;
  align-items:center;
  width:27px;
  height:27px;
  border-radius:50%;
  color:#587961;
  background:#e8f1e4;
  font-size:10px;
  flex-shrink:0
}
.secondary-avatar {
  background:#eeecf7;
  color:#8a82a1
}
.destination-link {
  display:block;
  margin:0 23px 23px;
  font-size:11px;
  color:var(--green)
}
.settings-form {
  display:grid;
  grid-template-columns:1.4fr .75fr 1.1fr auto;
  align-items:end;
  gap:14px;
  padding:0 23px 20px
}
.panel-note {
  font-size:10px;
  line-height:1.7;
  color:#8b978d;
  padding:0 23px 22px
}
.page-footer {
  padding:3px 0 26px;
  font-size:10px;
  color:#96a098;
  display:flex;
  justify-content:space-between
}
.notice {
  border:1px solid #cddfce;
  background:#edf5e9;
  color:#416b48;
  padding:13px 17px;
  border-radius:9px;
  font-size:12px;
  line-height:1.7;
  margin-bottom:18px
}
.notice-error {
  background:#fff0ec;
  border-color:#eac6be;
  color:#a24938
}
.notice.neutral {
  background:#fbf6ea;
  border-color:#ece0c4;
  color:#8c703e;
  margin-top:18px
}
.demo-banner {
  background:#edf0e7;
  border-radius:7px;
  padding:9px 13px;
  font-size:10px;
  color:#788467;
  margin-bottom:24px;
  line-height:1.6
}
.demo-banner strong {
  font-size:9px;
  letter-spacing:.8px;
  margin-right:10px;
  color:#527043
}
.field-error {
  font-size:11px;
  color:#a25946;
  margin-bottom:10px
}
.small {
  font-size:11px;
  line-height:1.7
}
.muted {
  color:var(--muted)
}
.empty-line {
  color:#93a096;
  text-align:center;
  padding:35px
}
.login-main {
  max-width:600px;
  margin:6vh auto;
  padding:30px 22px
}
.login-card {
  padding:36px 44px 38px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:19px;
  box-shadow:0 12px 50px #29462e05
}
.login-card .brand {
  margin-bottom:48px
}
.login-card h1 {
  font-size:46px;
  line-height:1.12
}
.lead {
  font-size:15px;
  line-height:1.8;
  color:var(--muted);
  margin:22px 0
}
.login-features {
  margin:26px 0 30px
}
.login-features p {
  padding:11px 0;
  font-size:12px;
  border-bottom:1px solid #f0f2ed
}
.login-features span {
  font-size:10px;
  color:#8eab90;
  padding-right:14px
}
.login-card .small {
  margin-top:20px
}
.back-link {
  font-size:12px;
  color:var(--green);
  display:block;
  margin-bottom:25px
}
.review-panel {
  padding:25px
}
.review-panel h2 {
  margin-bottom:22px
}
.review-panel label {
  margin-bottom:20px
}
.review-panel .small {
  margin-top:-10px;
  margin-bottom:20px
}
.review-actions {
  display:flex;
  gap:18px;
  align-items:center;
  margin-top:28px
}
dl {
  margin:0 0 22px
}
dt {
  font-size:11px;
  color:var(--muted);
  margin:18px 0 6px
}
dd {
  font-size:13px;
  margin:0;
  overflow-wrap:anywhere;
  line-height:1.7
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
@media(min-width:1600px) {
  .main {
    margin-right:auto
  }
}
@media(max-width:1150px) {
  .sidebar {
    width:195px;
    padding:30px 14px
  }
  .main {
    margin-left:195px;
    padding:30px 25px 0
  }
  .settings-form {
    grid-template-columns:1fr 1fr
  }
  .two-column {
    gap:16px
  }
  .stat-card {
    padding:18px
  }
  .page-header h1 {
    font-size:31px
  }
  th,td {
    padding:14px 16px
  }
}
@media(max-width:820px) {
  .sidebar {
    position:static;
    width:auto;
    padding:17px 22px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    border-right:none;
    border-bottom:1px solid var(--line)
  }
  .brand {
    font-size:23px
  }
  .brand-sub,.nav-label,.sidebar-bottom {
    display:none
  }
  .sidebar nav {
    display:flex;
    gap:4px
  }
  .nav-link {
    padding:9px;
    font-size:0
  }
  .nav-link span {
    font-size:20px;
    margin:0
  }
  .main {
    margin-left:0;
    padding:26px 20px 0
  }
  .two-column {
    grid-template-columns:1fr
  }
  .stats {
    gap:10px
  }
  .stat-card p {
    font-size:9px
  }
  .stat-card strong {
    font-size:29px
  }
  .stat-label {
    font-size:10px
  }
  .page-header {
    align-items:flex-start
  }
  .page-header h1 {
    font-size:29px
  }
  .page-header>.button {
    padding:9px;
    font-size:10px
  }
  .collection-bar {
    padding:16px
  }
  .collection-state strong {
    font-size:12px
  }
  .collection-state span:not(.status-light) {
    font-size:9px
  }
  .button {
    font-size:11px;
    padding:10px 12px
  }
}
@media(max-width:500px) {
  .sidebar {
    flex-wrap:wrap;
    gap:10px 16px
  }
  .page-header {
    flex-direction:column;
    gap:16px
  }
  .stats {
    grid-template-columns:1fr;
    gap:8px
  }
  .stat-card {
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    padding:15px 17px
  }
  .stat-card strong {
    grid-column:2;
    grid-row:1/3;
    margin:0 0 0 15px
  }
  .stat-label span {
    display:none
  }
  .stat-card p {
    margin-top:7px;
    font-size:10px
  }
  .collection-bar {
    flex-wrap:wrap
  }
  .collection-bar>.button-row {
    width:100%;
    justify-content:flex-end
  }
  .settings-form {
    grid-template-columns:1fr
  }
  .page-footer {
    gap:20px;
    font-size:9px
  }
  .login-card {
    padding:28px
  }
  .login-card h1 {
    font-size:39px
  }
  .review-actions {
    flex-direction:column;
    align-items:stretch
  }
  .table-footer {
    flex-direction:column
  }
  .main {
    padding:20px 14px 0
  }
}
