*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;background:#090b0f;color:#f5f7fa}a{color:inherit}.app-shell{min-height:100vh}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid #30343c;background:#101319;position:sticky;top:0;z-index:20}.brand{font-size:1.35rem;font-weight:800;letter-spacing:.08em;text-decoration:none}.brand span{color:#e41f26}.topbar-right{display:flex;align-items:center;gap:14px}.version,.muted{color:#9fa7b5}.user-chip{background:#242a33;border:1px solid #363d48;padding:8px 12px;border-radius:999px;font-size:.9rem}.sidebar{position:fixed;top:72px;bottom:0;left:0;width:220px;border-right:1px solid #30343c;background:#101319;padding:18px 12px;overflow:auto}.sidebar nav{display:grid;gap:5px}.sidebar a{padding:12px 14px;border-radius:9px;text-decoration:none;color:#b9c0cc}.sidebar a:hover,.sidebar a.active{background:#252b34;color:#fff}.sidebar a.active{box-shadow:inset 3px 0 #e41f26}.content-shell{width:min(1180px,calc(100% - 32px));margin:auto}.has-sidebar .content-shell{margin-left:220px;width:calc(100% - 220px);padding:0 28px}.card{background:#15181e;border:1px solid #30343c;border-radius:16px;padding:26px;box-shadow:0 18px 60px rgba(0,0,0,.25)}.auth-wrap{width:min(520px,calc(100% - 32px));margin:70px auto}label{display:block;margin:16px 0 6px;color:#9fa7b5}input,select,textarea{width:100%;padding:12px;border-radius:9px;border:1px solid #30343c;background:#0b0d11;color:#fff}textarea{min-height:100px;resize:vertical}button,.button{display:inline-block;border:0;border-radius:9px;padding:11px 16px;background:#e41f26;color:#fff;font-weight:700;text-decoration:none;cursor:pointer}.button.secondary,.secondary-button{background:#48505d}.danger-button{background:#8e1b22}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.notice{border-left:4px solid #f4be4f;background:#211b0d;padding:14px 16px;border-radius:8px;margin:12px 0}.success{border-left-color:#55d187;background:#0d2117}.error{border-left-color:#e41f26;background:#250d10}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.stat{padding:20px;background:#1b1f26;border:1px solid #30343c;border-radius:12px}.stat strong{display:block;font-size:1.7rem;margin-top:8px}.stat small{display:block;color:#9fa7b5;margin-top:5px}main{padding:30px 0 70px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-head h1,.card h1{margin-top:0}.health-row{display:flex;gap:10px;flex-wrap:wrap}.health{padding:8px 11px;border-radius:999px;background:#15251c;border:1px solid #2f6242;color:#83e1a8;font-size:.85rem}.health.pending{background:#29210f;border-color:#665323;color:#f4cf77}.panel-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:18px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #30343c;vertical-align:top}th{color:#9fa7b5;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.section-heading h1{margin-bottom:4px}.compact-grid{margin:20px 0}.compact-grid .stat{padding:16px}.compact-grid .stat strong{font-size:1.35rem}.filter-bar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto;gap:12px;align-items:end;margin:22px 0}.filter-bar label{margin-top:0}.filter-action{display:flex;gap:8px;padding-bottom:1px}.table-wrap{overflow-x:auto}.inline-actions{display:flex;gap:6px;flex-wrap:wrap}.inline-actions button,.inline-actions .button{padding:7px 9px;font-size:.82rem}.badge{display:inline-block;padding:5px 8px;border:1px solid #3a414c;border-radius:999px;background:#20242b;font-size:.76rem;font-weight:700}.badge.green{border-color:#326447;color:#86dda8;background:#14241b}.badge.amber{border-color:#695827;color:#f2ce75;background:#27210f}.badge.red{border-color:#713039;color:#f19098;background:#281116}.empty{padding:28px;text-align:center;color:#9fa7b5}.key{font-family:Consolas,monospace;font-size:.83rem;white-space:nowrap}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.list{margin:0;padding:0;list-style:none}.list li{padding:12px 0;border-bottom:1px solid #30343c}.list li:last-child{border-bottom:0}.kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#9fa7b5}.danger-zone{border-color:#713039}.nowrap{white-space:nowrap}@media(max-width:900px){.sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid #30343c}.sidebar nav{display:flex;overflow:auto}.sidebar a{white-space:nowrap}.has-sidebar .content-shell{margin-left:0;width:100%;padding:0 16px}.panel-grid,.two-col{grid-template-columns:1fr}.topbar{padding:0 16px}.version{display:none}}@media(max-width:680px){.filter-bar{grid-template-columns:1fr}.card{padding:18px}.content-shell{width:min(100% - 20px,1180px)}th,td{white-space:nowrap}.page-head{display:block}.health-row{margin-top:12px}}

.project-layout{grid-template-columns:minmax(280px,.75fr) minmax(0,1.75fr)}.project-list-card{min-width:0}.project-cards{display:grid;gap:12px}.project-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid #30343c;background:#1b1f26;border-radius:12px}.project-card h3{margin:8px 0 5px}.project-card p{margin:5px 0 10px}.project-card form{margin:0}.vehicle-assign{display:flex;gap:8px;align-items:center}.vehicle-assign select{min-width:190px}.no-margin{margin-top:0}@media(max-width:900px){.project-layout{grid-template-columns:1fr}.project-card{grid-template-columns:1fr}.vehicle-assign{align-items:stretch;flex-direction:column}.vehicle-assign select{min-width:0}}

/* Build 005 public landing page and customer portal */
.top-link{color:#c5cad3;text-decoration:none;font-size:.92rem}.top-link:hover{color:#fff}.top-button{padding:8px 12px}.landing-page{padding-top:0}.hero{min-height:650px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:56px;align-items:center;padding:72px 0 82px}.eyebrow{color:#e41f26;font-size:.78rem;font-weight:800;letter-spacing:.18em;margin-bottom:14px}.hero h1{font-size:clamp(3.6rem,8vw,7.2rem);line-height:.86;letter-spacing:-.055em;margin:0;text-transform:uppercase}.hero h1 span{color:#e41f26}.hero-text{max-width:670px;color:#b5bcc7;font-size:1.16rem;line-height:1.65;margin:28px 0 0}.button-large{padding:14px 21px;font-size:1rem}.hero-actions{margin-top:34px}.hero-panel{background:linear-gradient(145deg,#181c23,#0d0f14);border:1px solid #343a45;border-radius:20px;padding:22px 28px 30px;box-shadow:0 32px 100px rgba(0,0,0,.48);transform:perspective(1000px) rotateY(-3deg)}.hero-panel-top{display:flex;gap:7px;padding-bottom:24px;border-bottom:1px solid #2c313a;margin-bottom:28px}.hero-panel-top span{width:8px;height:8px;border-radius:50%;background:#444b57}.hero-panel-top span:first-child{background:#e41f26}.workflow-step{display:flex;gap:18px;align-items:center}.workflow-step b{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid #4a515e;color:#e41f26;font-size:.9rem}.workflow-step div{display:grid;gap:4px}.workflow-step strong{font-size:1.25rem}.workflow-step small{color:#929aa7;font-size:.9rem}.workflow-line{height:38px;border-left:1px solid #3b414c;margin:5px 0 5px 26px}.landing-section{padding:76px 0;border-top:1px solid #242932}.section-intro{max-width:720px;margin-bottom:35px}.section-intro h2,.compact-callout h2{font-size:clamp(2rem,4vw,3.3rem);line-height:1.05;margin:0 0 18px}.section-intro p{font-size:1.05rem;line-height:1.65;color:#aeb5c0}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.feature-card{min-height:230px;padding:24px;background:#14171d;border:1px solid #2e343e;border-radius:15px}.feature-card span{color:#e41f26;font-family:Consolas,monospace;font-size:.78rem}.feature-card h3{margin:54px 0 10px;font-size:1.25rem}.feature-card p{color:#9fa7b5;line-height:1.55;margin:0}.compact-callout{display:flex;align-items:center;justify-content:space-between;gap:40px}.compact-callout h2{max-width:760px;margin-bottom:0}.public-footer{max-width:1180px;width:calc(100% - 32px);margin:0 auto;padding:25px 0 35px;border-top:1px solid #242932;display:flex;justify-content:space-between;color:#89919d}.public-footer span{font-weight:800;letter-spacing:.08em;color:#fff}.public-footer b{color:#e41f26}.portal-page{max-width:1050px;margin:0 auto}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:38px}.portal-hero h1{font-size:2.35rem;margin-bottom:10px}.portal-hero p{max-width:650px;line-height:1.6}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}.portal-card{display:flex;flex-direction:column;align-items:flex-start;min-height:300px}.portal-card h2{margin:18px 0 8px}.portal-card p{line-height:1.55;flex:1}.portal-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#241417;border:1px solid #6a262c;color:#ef666b;font-weight:800;font-size:.78rem;letter-spacing:.05em}.account-list{width:100%;margin:15px 0 0}.account-list div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #30343c}.account-list dt{color:#969eaa}.account-list dd{margin:0;text-align:right}.portal-footer-actions{text-align:center;padding:28px}.portal-footer-actions a{color:#9fa7b5}
@media(max-width:950px){.hero{grid-template-columns:1fr;padding-top:50px}.hero-panel{transform:none;max-width:620px}.feature-grid{grid-template-columns:repeat(2,1fr)}.portal-grid{grid-template-columns:1fr 1fr}.compact-callout{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.hero{min-height:0;gap:35px;padding:48px 0}.hero h1{font-size:3.35rem}.hero-panel{padding:20px}.feature-grid,.portal-grid{grid-template-columns:1fr}.feature-card{min-height:190px}.feature-card h3{margin-top:35px}.compact-callout{padding:55px 0}.public-footer{display:grid;gap:8px}.topbar-right .top-link{display:none}.portal-hero{display:block;padding:25px}.portal-hero .button{margin-top:20px}}

/* Build 006 portal additions */
.public-nav{position:absolute;left:50%;display:flex;align-items:center;justify-content:center;gap:30px;margin:0;transform:translateX(-50%)}.public-nav .top-link{padding:10px 2px;font-size:18px;font-weight:650;letter-spacing:.025em;text-decoration:none;white-space:nowrap}.public-nav .active{color:#fff;background:transparent;box-shadow:inset 0 -2px #e41f26}
.site-footer{display:flex;justify-content:space-between;gap:20px;padding:18px 32px;border-top:1px solid rgba(255,255,255,.08);color:#8f97a4;font-size:13px;background:#0b0d11}.site-footer a{color:#aeb6c3}
.public-page{max-width:1180px;margin:0 auto;padding:58px 28px 72px}.narrow-page{max-width:900px}.page-hero{text-align:center;margin:12px auto 48px;max-width:850px}.page-hero h1{font-size:clamp(36px,5vw,62px);line-height:1.05;margin:10px 0 18px}.lead{font-size:19px;line-height:1.7;color:#aeb6c3}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.feature-grid .card{min-height:180px}.feature-grid h2{font-size:21px}.feature-grid p{color:#aeb6c3;line-height:1.7}.center-cta{text-align:center;margin-top:34px}.centered{justify-content:center}.pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:900px;margin:0 auto}.pricing-grid.single-plan{grid-template-columns:minmax(0,560px);justify-content:center}.pricing-card{padding:34px}.pricing-card.featured{border-color:rgba(215,45,45,.75);box-shadow:0 0 0 1px rgba(215,45,45,.12),0 28px 70px rgba(0,0,0,.32)}.pricing-card ul{padding-left:20px;line-height:2;color:#c6ccd5}.price{font-size:24px;font-weight:700;color:#fff;min-height:58px}.small-note{text-align:center;color:#858e9b;margin-top:24px}.faq-list{display:grid;gap:14px}.faq-list details{padding:0}.faq-list summary{cursor:pointer;font-size:18px;font-weight:700;padding:22px 24px}.faq-list details p{padding:0 24px 24px;margin:0;color:#aeb6c3;line-height:1.7}.contact-card{max-width:720px;margin:0 auto}.contact-card textarea{resize:vertical;min-height:160px}.form-help{text-align:center;margin:16px 0 0}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form button{margin-top:18px}
@media(max-width:980px){.public-nav{display:none}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:1fr}}
@media(max-width:680px){.feature-grid,.pricing-grid{grid-template-columns:1fr}.site-footer{flex-direction:column;text-align:center}.public-page{padding:38px 18px 56px}.page-hero h1{font-size:38px}}


/* Dually Studio brand, training video, and Community galleries */
.brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 1;
}

.forum-admin-alert {
  margin-top: 22px;
  margin-bottom: 18px;
  border-color: rgba(255, 184, 49, 0.72);
  background: linear-gradient(135deg, rgba(255, 184, 49, 0.13), rgba(18, 21, 27, 0.98));
  box-shadow: 0 0 28px rgba(255, 184, 49, 0.1);
}

.forum-admin-alert-actions,
.forum-notification-form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.forum-admin-alert-actions form {
  margin: 0;
}

.forum-admin-alert-preview {
  margin-top: 6px;
  color: #dfe5ed;
  line-height: 1.45;
}

.forum-notification-preference {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-top: 22px;
  margin-bottom: 18px;
}

.forum-admin-alert + .forum-notification-preference {
  margin-top: 0;
}

.forum-notification-form label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #f4f6f9;
  font-weight: 700;
}

.forum-notification-form input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: #23c55e;
}

@media (max-width: 760px) {
  .forum-notification-preference {
    align-items: flex-start;
    flex-direction: column;
  }
}
.brand-logo {
  display: block;
  width: clamp(220px, 27vw, 340px);
  height: 66px;
  object-fit: cover;
  object-position: center 48%;
  border-radius: 8px;
}
.training-video-card {
  display: grid;
  gap: 18px;
  margin-bottom: 22px;
  overflow: hidden;
}
.training-video-card video {
  display: block;
  width: 100%;
  max-height: 680px;
  border: 1px solid #3a3f47;
  border-radius: 12px;
  background: #000;
}
.community-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}
.community-section {
  scroll-margin-top: 90px;
  margin-top: 32px;
}
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.community-grid,
.community-wallpaper-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.community-card,
.community-wallpaper-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.community-card form {
  margin-top: auto;
}
.community-card select,
.community-card button {
  width: 100%;
  min-height: 44px;
}
.community-byline {
  color: #f5b942;
  font-weight: 750;
}
.community-wallpaper-card {
  overflow: hidden;
  padding: 0;
}
.community-wallpaper-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 1420 / 720;
  object-fit: cover;
  background: #050608;
  border-bottom: 1px solid #333a42;
}
.community-wallpaper-body {
  display: grid;
  gap: 10px;
  padding: 16px;
}
.community-wallpaper-body form,
.community-wallpaper-body .button {
  margin: 0;
  width: 100%;
}
.community-upload-card {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(320px, 1.2fr);
  gap: 28px;
  align-items: start;
}
.community-upload-form {
  display: grid;
  gap: 10px;
}
.community-upload-form input,
.community-upload-form textarea,
.community-upload-form button {
  width: 100%;
}
@media (max-width: 1050px) {
  .community-grid,
  .community-wallpaper-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .brand-logo {
    width: 240px;
  }
}
.maintenance-control{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 18px;border-color:#2f6242;background:linear-gradient(135deg,#101f17,#15181e)}
.maintenance-control h2{margin:5px 0 6px;color:#71e69e}.maintenance-control p{margin:0;max-width:720px}
.maintenance-control.maintenance-active{border-color:#a72b35;background:linear-gradient(135deg,#2b1014,#15181e);box-shadow:0 0 24px rgba(228,31,38,.14)}
.maintenance-control.maintenance-active h2{color:#ff6a72}.maintenance-toggle{min-width:220px;background:#a51f29;border:1px solid #e3424c}.maintenance-off-button{background:#159447;border-color:#35d46d}
@media(max-width:700px){.maintenance-control{align-items:stretch;flex-direction:column}.maintenance-toggle{width:100%}}

@media (max-width: 760px) {
  .brand-logo {
    width: 180px;
    height: 54px;
  }
  .community-grid,
  .community-wallpaper-grid,
  .community-upload-card {
    grid-template-columns: 1fr;
  }
  .section-heading {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Dually Studio 1.9.1: compact Community media thumbnails and hardware profiles. */
.community-wallpaper-grid,
.community-artwork-grid {
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 14px;
}
.community-wallpaper-card,
.community-artwork-card {
  min-width: 0;
}
.community-media-thumbnail {
  display: grid;
  place-items: center;
  margin: 14px auto 0;
  padding: 0;
  overflow: hidden;
  color: inherit;
  background: #07090d;
  border: 1px solid #3a414b;
  border-radius: 9px;
  box-shadow: none;
  cursor: zoom-in;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.community-media-thumbnail:hover,
.community-media-thumbnail:focus-visible {
  background: #07090d;
  border-color: #49d977;
  box-shadow: 0 0 0 3px rgba(73, 217, 119, .14);
  transform: translateY(-1px);
}
.community-wallpaper-thumbnail {
  width: 160px;
  max-width: calc(100% - 28px);
  aspect-ratio: 1420 / 720;
}
.community-wallpaper-thumbnail img,
.community-artwork-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
}
.community-wallpaper-thumbnail img {
  object-fit: cover;
}
.community-artwork-thumbnail {
  width: 132px;
  max-width: calc(100% - 28px);
  aspect-ratio: 4 / 3;
  padding: 8px;
  border-bottom: 1px solid #3a414b;
}
.community-artwork-thumbnail img {
  object-fit: contain;
}
.community-wallpaper-body,
.community-artwork-body {
  gap: 8px;
  padding: 13px;
}
.community-wallpaper-body h3,
.community-artwork-body h3 {
  margin: 0;
  font-size: 1rem;
}
.community-wallpaper-body p,
.community-artwork-body p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font-size: .88rem;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.community-media-preview-open {
  overflow: hidden;
}
.community-media-dialog {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(0, 0, 0, .88);
}
.community-media-dialog[hidden] {
  display: none;
}
.community-media-dialog-panel {
  width: min(1120px, 96vw);
  max-height: 94vh;
  padding: 18px;
  overflow: auto;
  background: #11151b;
  border: 1px solid #414956;
  border-radius: 15px;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .7);
}
.community-media-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.community-media-dialog-head h2 {
  margin: 4px 0 0;
}
.community-media-dialog-image-wrap {
  display: grid;
  min-height: 240px;
  max-height: calc(94vh - 110px);
  place-items: center;
  padding: 14px;
  overflow: hidden;
  background-color: #050608;
  background-image:
    linear-gradient(45deg, #111720 25%, transparent 25%),
    linear-gradient(-45deg, #111720 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #111720 75%),
    linear-gradient(-45deg, transparent 75%, #111720 75%);
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  background-size: 24px 24px;
  border-radius: 10px;
}
.community-media-dialog-image-wrap img {
  display: block;
  max-width: 100%;
  max-height: calc(94vh - 140px);
  object-fit: contain;
}
.compatibility-target-notice {
  max-width: 760px;
  margin: 24px auto 0;
  padding: 14px 18px;
  color: #f4d486;
  line-height: 1.55;
  background: #211b0d;
  border: 1px solid #695827;
  border-radius: 10px;
}
.hardware-profile-section {
  max-width: 900px;
  margin: 0 auto 38px;
}
.hardware-profile-intro {
  margin: 0 auto 20px;
  text-align: center;
}
.hardware-profile-intro h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}
.hardware-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.hardware-profile-card h3 {
  margin: 18px 0 10px;
}
.hardware-profile-card p {
  margin: 0;
  color: #aeb6c3;
  line-height: 1.65;
}
@media (max-width: 680px) {
  .community-wallpaper-grid,
  .community-artwork-grid,
  .hardware-profile-grid {
    grid-template-columns: 1fr;
  }
  .community-media-dialog {
    padding: 8px;
  }
  .community-media-dialog-panel {
    width: 100%;
    padding: 11px;
  }
  .community-media-dialog-head {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Dually Studio 1.8.2: Community dashboard thumbnails and expanded previews. */
.community-dashboard-preview {
  position: relative;
  display: block;
  width: 160px;
  max-width: calc(100% - 28px);
  margin: 14px auto 4px;
  padding: 0;
  overflow: hidden;
  color: #fff;
  background: #050608;
  border: 1px solid #3a414b;
  border-radius: 10px;
  box-shadow: none;
  cursor: zoom-in;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.community-dashboard-preview:hover,
.community-dashboard-preview:focus-visible {
  background: #050608;
  border-color: #49d977;
  box-shadow: 0 0 0 2px rgba(73, 217, 119, .16);
  transform: translateY(-1px);
}
.community-dashboard-preview canvas {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1420 / 720;
  background: #050608;
}
.community-dashboard-preview span {
  position: absolute;
  right: 5px;
  bottom: 5px;
  padding: 3px 5px;
  color: #f4f6f8;
  background: rgba(4, 6, 9, .82);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 6px;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.community-dashboard-actions {
  display: grid;
  gap: 10px;
  margin-top: auto;
}
.community-card .community-dashboard-actions form {
  display: grid;
  gap: 8px;
  margin: 0;
}
.community-dashboard-dialog {
  width: min(96vw, 1480px);
  max-width: none;
  max-height: 94vh;
  padding: 18px;
  overflow: auto;
  color: #f4f6f8;
  background: #17191d;
  border: 1px solid #454b54;
  border-radius: 14px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .72);
}
.community-dashboard-dialog::backdrop {
  background: rgba(0, 0, 0, .82);
  backdrop-filter: blur(3px);
}
.community-dashboard-dialog-head {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}
.community-dashboard-dialog-head h2 {
  margin: 2px 0 0;
}
.community-dashboard-dialog-close {
  width: auto;
  min-width: 96px;
  flex: 0 0 auto;
}
.community-dashboard-dialog-canvas-wrap {
  overflow: hidden;
  background: #050608;
  border: 1px solid #3a414b;
  border-radius: 10px;
}
.community-dashboard-dialog canvas {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1420 / 720;
  background: #050608;
}
.community-dashboard-dialog > .muted {
  margin: 12px 2px 0;
}

/* Dually Studio 1.9.0: Community Image-widget artwork library. */
.community-artwork-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.community-artwork-card {
  display: flex;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  flex-direction: column;
}
.community-artwork-thumbnail {
  display: grid;
  width: 100%;
  aspect-ratio: 4 / 3;
  place-items: center;
  padding: 16px;
  background-color: #0a0d12;
  background-image:
    linear-gradient(45deg, #151a21 25%, transparent 25%),
    linear-gradient(-45deg, #151a21 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #151a21 75%),
    linear-gradient(-45deg, transparent 75%, #151a21 75%);
  background-position: 0 0, 0 10px, 10px -10px, -10px 0;
  background-size: 20px 20px;
  border-bottom: 1px solid #333a42;
}
.community-artwork-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .7));
}
.community-artwork-body {
  display: grid;
  gap: 10px;
  padding: 16px;
  flex: 1;
}
.community-artwork-body h3,
.community-artwork-body p,
.community-artwork-body form,
.community-artwork-body .button {
  margin: 0;
}
.community-artwork-body p {
  color: #b6bec9;
}
.community-artwork-body form,
.community-artwork-body .button {
  width: 100%;
}
.community-artwork-body .button:first-of-type {
  margin-top: auto;
}
@media (max-width: 1050px) {
  .community-artwork-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .community-dashboard-dialog {
    width: 98vw;
    padding: 10px;
  }
  .community-dashboard-dialog-head {
    align-items: stretch;
    flex-direction: column;
  }
  .community-dashboard-dialog-close {
    width: 100%;
  }
  .community-artwork-grid {
    grid-template-columns: 1fr;
  }
}

/* Dually Studio 1.6.2: show the complete supplied logo, including its tagline. */
.topbar {
  height: 100px;
}
.sidebar {
  top: 100px;
}
.brand {
  position: relative;
  display: block;
  flex: 0 0 220px;
  width: 220px;
  height: 94px;
  overflow: hidden;
  border-radius: 8px;
}
.brand-logo {
  position: absolute;
  top: -32px;
  left: 0;
  display: block;
  width: 220px;
  height: auto;
  max-width: none;
  border-radius: 0;
}
@media (max-width: 760px) {
  .topbar {
    height: 86px;
  }
  .sidebar {
    top: 86px;
  }
  .brand {
    flex-basis: 180px;
    width: 180px;
    height: 80px;
  }
  .brand-logo {
    top: -25px;
    width: 180px;
    height: auto;
  }
}

/* Keep the 1.9.1 compact artwork rules after earlier gallery declarations. */
.community-artwork-grid {
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 14px;
}
.community-artwork-thumbnail {
  width: 132px;
  max-width: calc(100% - 28px);
  aspect-ratio: 4 / 3;
  margin: 14px auto 0;
  padding: 8px;
  border: 1px solid #3a414b;
}
.community-artwork-body {
  gap: 8px;
  padding: 13px;
}
@media (max-width: 680px) {
  .community-artwork-grid {
    grid-template-columns: 1fr;
  }
}

/* Dually Studio 1.10.4: responsive foundation for every public/account page. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

.content-shell,
.public-page,
.portal-page,
main,
.card,
.panel-grid,
.two-col,
.grid,
.project-layout,
.project-card,
.section-heading,
.page-head,
.inline-actions {
  min-width: 0;
  max-width: 100%;
}

.panel-grid > *,
.two-col > *,
.grid > *,
.project-layout > *,
.project-card > *,
.section-heading > *,
.page-head > *,
.inline-actions > * {
  min-width: 0;
}

input,
select,
textarea,
button,
.button {
  min-width: 0;
  max-width: 100%;
}

h1,
h2,
h3,
p,
td,
th,
label,
small {
  overflow-wrap: anywhere;
}

.topbar-right {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: thin;
}

.user-chip {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1200px) {
  .panel-grid.project-layout {
    grid-template-columns: 1fr;
  }

  .portal-grid,
  .account-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  }
}

@media (max-width: 900px) {
  .content-shell,
  .has-sidebar .content-shell {
    width: 100%;
    max-width: 100%;
  }

  .page-head,
  .section-heading,
  .compact-callout {
    align-items: stretch;
    flex-direction: column;
  }

  .page-head > .button,
  .section-heading > .button {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 680px) {
  .actions,
  .inline-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .actions > *,
  .inline-actions > *,
  .actions button,
  .inline-actions button,
  .actions .button,
  .inline-actions .button {
    width: 100%;
  }
}


/* Companion release notice */
.companion-release-banner{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:0 0 24px;padding:22px 26px;border:1px solid rgba(255,156,39,.48);border-radius:15px;background:linear-gradient(135deg,rgba(228,111,11,.16),rgba(20,23,29,.94));box-shadow:0 18px 44px rgba(0,0,0,.22)}
.companion-release-banner .eyebrow{margin-bottom:8px;color:#ffad4b}
.companion-release-banner strong{display:block;font-size:1.08rem;color:#fff}
.companion-release-banner p{margin:7px 0 0;color:#b9c0ca;line-height:1.5}
.companion-release-banner .button{flex:0 0 auto;white-space:nowrap}
.companion-release-summary{display:grid;gap:4px;width:100%;margin:2px 0 12px;padding:12px 14px;border:1px solid rgba(255,156,39,.42);border-radius:9px;background:rgba(228,111,11,.10)}
.companion-release-summary strong{color:#ffb45b}
.companion-release-summary span{color:#fff;font-size:.9rem}
.companion-release-summary small{color:#aeb6c3;line-height:1.45}
@media(max-width:680px){.companion-release-banner{align-items:flex-start;flex-direction:column}.companion-release-banner .button{width:100%;text-align:center}}


/* Responsive primary navigation: stack before public and account links collide. */
@media (max-width: 1400px) {
  .topbar {
    height: 150px;
    flex-wrap: wrap;
    align-content: center;
    gap: 0 18px;
    padding-top: 4px;
    padding-bottom: 4px;
  }

  .brand {
    order: 1;
  }

  .topbar-right {
    order: 2;
    flex: 1 1 auto;
    justify-content: flex-end;
    max-width: calc(100% - 238px);
    margin-left: auto;
  }

  .public-nav {
    position: static;
    left: auto;
    order: 3;
    display: flex;
    flex: 0 0 100%;
    width: 100%;
    justify-content: center;
    gap: clamp(16px, 3vw, 30px);
    padding: 6px 0 8px;
    overflow-x: auto;
    transform: none;
    scrollbar-width: thin;
  }

  .sidebar {
    top: 150px;
  }
}

@media (max-width: 760px) {
  .topbar {
    height: 136px;
    padding-right: 14px;
    padding-left: 14px;
  }

  .topbar-right {
    max-width: calc(100% - 194px);
    gap: 8px;
  }

  .topbar-right .top-link {
    display: none;
  }

  .topbar-right a[href$="/garage.php"],
  .topbar-right a[href$="/portal.php"] {
    display: inline-flex;
  }

  .topbar-right .user-chip {
    display: none;
  }

  .public-nav {
    padding-bottom: 6px;
  }

  .public-nav .top-link {
    font-size: 16px;
  }

  .sidebar {
    top: 136px;
  }
}

@media (max-width: 520px) {
  .public-nav {
    justify-content: flex-start;
  }
}

/* BEGIN DUALLY NAVIGATION 113 */
/* Keep public navigation separate from the signed-in account links. */
@media (min-width: 761px) {
 .topbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 118px 50px;
  height: 176px;
  padding-top: 4px;
  padding-bottom: 4px;
  gap: 0 24px;
  align-items: center;
 }
 .topbar > .brand { grid-column: 1; grid-row: 1; order: initial; }
 .topbar > .topbar-right {
  grid-column: 2; grid-row: 1; order: initial;
  display: flex; flex-wrap: wrap; justify-content: flex-end;
  width: 100%; max-width: none; min-width: 0; margin-left: 0;
  gap: 8px 14px;
 }
 .topbar > .public-nav {
  grid-column: 1 / -1; grid-row: 2; order: initial;
  position: static; left: auto; transform: none;
  display: flex; width: 100%; min-width: 0;
  justify-content: center; gap: clamp(14px, 2vw, 30px);
  padding: 4px 0; margin: 0; overflow-x: auto;
 }
 .topbar .top-link { white-space: nowrap; }
 .sidebar { top: 176px; }
}

/* END DUALLY NAVIGATION 113 */
