/* RoVault V41 — design system, responsive cohesion, inbox/item polish, performance UX */
:root{
  --rv-control-h:42px;
  --rv-control-radius:10px;
  --rv-card-radius:15px;
  --rv-panel-pad:20px;
  --rv-focus:0 0 0 3px color-mix(in srgb,var(--text) 8%,transparent);
  --rv-transition:160ms cubic-bezier(.2,.75,.25,1);
}

/* --- shared design language --- */
.panel{border-radius:var(--rv-card-radius)}
.primary-button,.secondary-button,.primary-small,.secondary-small,.danger-small,.text-button,.icon-button,.profile-button,.balance-button,.nav-link,
select,input,textarea{transition:border-color var(--rv-transition),background var(--rv-transition),color var(--rv-transition),box-shadow var(--rv-transition),transform var(--rv-transition)}
.primary-button,.secondary-button{min-height:var(--rv-control-h);border-radius:var(--rv-control-radius)!important}
.primary-small,.secondary-small,.danger-small{border-radius:9px!important}
.secondary-button{background:var(--surface2);color:var(--text);border-color:var(--line)}
.secondary-button:hover{border-color:var(--line2);background:var(--surface3);transform:translateY(-1px)}
.primary-button:hover,.primary-small:hover{transform:translateY(-1px)}
button:disabled{cursor:not-allowed;transform:none!important}
input:not([type="checkbox"]):not([type="radio"]),textarea,select{
  border:1px solid var(--line)!important;
  border-radius:var(--rv-control-radius)!important;
  background:var(--surface2)!important;
  color:var(--text)!important;
  outline:0!important;
}
input:not([type="checkbox"]):not([type="radio"]):focus,textarea:focus,select:focus{border-color:var(--line2)!important;box-shadow:var(--rv-focus)!important}
input::placeholder,textarea::placeholder{color:var(--muted2)!important;opacity:1}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid color-mix(in srgb,var(--text) 62%,transparent)!important;outline-offset:2px!important}

/* --- cleaner desktop navigation --- */
.topbar{grid-template-columns:minmax(60px,1fr) auto minmax(300px,1fr);gap:14px}
.main-nav{align-items:center}
.v41-more-wrap{position:relative;display:flex;align-items:center}
.v41-more-button{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;font-size:12px;font-weight:700}
.v41-more-button:hover,.v41-more-button.active,.v41-more-wrap.open .v41-more-button{background:var(--surface2);color:var(--text)}
.v41-more-button i{font-style:normal;font-size:9px;transition:transform var(--rv-transition)}
.v41-more-wrap.open .v41-more-button i{transform:rotate(180deg)}
.v41-more-menu{position:absolute;z-index:95;top:calc(100% + 10px);left:50%;width:210px;padding:7px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translate(-50%,-5px);transition:opacity var(--rv-transition),transform var(--rv-transition)}
.v41-more-wrap.open .v41-more-menu{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.v41-more-menu .nav-link{width:100%;display:flex!important;align-items:center;justify-content:space-between;text-align:left;padding:10px 11px;border-radius:8px}
.v41-more-menu .nav-link.active{background:var(--surface2)}
.v41-more-menu .v34-inbox-badge{margin-left:auto}

/* --- mobile navigation --- */
.v41-mobile-nav{display:none}
.v41-mobile-sheet{display:none}
@media(max-width:820px){
  body:not(.landing-active){padding-bottom:68px}
  .topbar{height:60px!important;min-height:60px!important;grid-template-columns:1fr auto!important;padding:0 12px!important}
  .main-nav{display:none!important}
  .top-actions{gap:6px}.balance-button{display:none}.profile-button{min-width:42px!important;width:42px!important;padding:5px!important;justify-content:center}.profile-button>span:last-child{display:none!important}
  .icon-button{width:38px;height:38px}
  .v41-mobile-nav{position:fixed;z-index:88;display:grid;grid-template-columns:repeat(5,1fr);left:10px;right:10px;bottom:8px;height:56px;padding:5px;background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(22px) saturate(125%);border:1px solid var(--line);border-radius:15px;box-shadow:0 16px 50px rgba(0,0,0,.30)}
  .v41-mobile-nav button{border:0;background:transparent;color:var(--muted);border-radius:10px;font-size:8px;font-weight:760;display:grid;place-items:center;gap:2px;padding:4px}
  .v41-mobile-nav button span:first-child{font-size:15px;line-height:1}.v41-mobile-nav button.active{background:var(--surface3);color:var(--text)}
  .v41-mobile-sheet{position:fixed;z-index:96;display:block;left:10px;right:10px;bottom:72px;padding:8px;background:color-mix(in srgb,var(--surface) 97%,transparent);backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 80px rgba(0,0,0,.38);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity var(--rv-transition),transform var(--rv-transition)}
  .v41-mobile-sheet.open{opacity:1;pointer-events:auto;transform:none}
  .v41-mobile-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:8px 9px 10px}.v41-mobile-sheet-head strong{font-size:11px}.v41-mobile-sheet-head button{border:0;background:transparent;color:var(--muted);font-size:17px}
  .v41-mobile-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.v41-mobile-sheet-grid button{min-height:46px;border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:10px;text-align:left;padding:10px 12px;font-size:10px;font-weight:750}.v41-mobile-sheet-grid button small{display:block;color:var(--muted);font-size:8px;margin-top:3px;font-weight:600}
  .footer{padding-bottom:80px}
}

/* --- page rhythm / headers --- */
.standard-page{padding-top:30px}
.page-header{margin-bottom:18px}.page-header h1,.profile-head h1{letter-spacing:-.045em}.page-header p{max-width:720px;line-height:1.55}
.panel-head{align-items:center}.panel-head h2{letter-spacing:-.025em}

/* --- inbox: more deliberate messaging workspace --- */
.v34-inbox-page{width:min(1320px,calc(100% - 40px));padding-bottom:48px}
.v34-inbox-page>.page-header{margin-bottom:14px}
.v34-inbox-shell{grid-template-columns:310px minmax(0,1fr)!important;min-height:0!important;height:min(690px,calc(100vh - 190px));border-radius:16px;overflow:hidden;background:var(--surface)}
.v34-thread-pane{background:color-mix(in srgb,var(--surface2) 38%,var(--surface));display:flex;flex-direction:column;min-height:0}
.v34-inbox-tabs{padding:10px;gap:4px}.v34-inbox-tabs button{height:34px;padding:0 11px;font-size:10px;border-radius:8px}.v34-inbox-tabs button.active{background:var(--text);border-color:var(--text);color:var(--bg)}
.v34-thread-list{max-height:none!important;flex:1;overflow:auto;scrollbar-width:thin}
.v34-thread-row{grid-template-columns:38px minmax(0,1fr) auto;gap:10px;padding:13px 12px}.v34-thread-avatar{width:38px;height:38px}.v34-thread-copy strong{font-size:11px}.v34-thread-copy em{font-size:8px}.v34-thread-sub{font-size:8.5px;margin:2px 0 3px}.v34-thread-copy p{font-size:9.5px}.v34-thread-row.active{box-shadow:inset 3px 0 0 var(--text)}
.v34-thread-view{min-height:0!important;height:100%;background:var(--surface)}
.v34-thread-head{grid-template-columns:46px minmax(0,1fr) auto;padding:13px 16px;gap:11px}.v34-thumb{width:46px;height:46px}.v34-thread-head h2{font-size:15px;margin:2px 0}.v34-thread-head p{font-size:9px}.v34-thread-head-actions button{font-size:8px;padding:7px}
.v34-offer-card{padding:11px 16px}.v34-offer-card strong{font-size:17px}.v34-offer-history{padding:9px 16px}.v34-order-link{margin:10px 16px 0;padding:10px 12px}
.v34-messages{flex:1;min-height:0!important;max-height:none!important;padding:18px 18px 10px;scrollbar-width:thin;overscroll-behavior:contain}
.v34-message{max-width:min(72%,620px);margin-bottom:12px}.v34-message small{font-size:8px}.v34-message p{font-size:11px;line-height:1.5;padding:9px 11px;border-radius:12px}.v34-message.own p{background:var(--text);color:var(--bg);border-color:var(--text)}
.v34-system-message span{background:var(--surface2);font-size:8px;border-radius:999px}
.v34-composer{position:relative;flex:0 0 auto;padding:12px 16px!important;background:var(--surface)!important;border-top:1px solid var(--line)!important;align-items:end!important}
.v34-composer textarea{min-height:44px!important;height:44px!important;max-height:112px!important;padding:12px 13px!important;border-radius:10px!important;background:var(--surface2)!important;font-size:11px!important;line-height:19px!important}
.v34-composer button{height:44px!important;min-width:76px!important;border-radius:10px!important}
.v41-inbox-back{display:none;border:1px solid var(--line);background:var(--surface2);color:var(--text);width:34px;height:34px;border-radius:9px;padding:0}
@media(max-width:900px){
  .v34-inbox-page{width:calc(100% - 24px);padding-top:18px}.v34-inbox-page>.page-header{display:none}
  .v34-inbox-shell{display:block!important;height:calc(100vh - 148px);min-height:520px!important}.v34-thread-pane{height:100%;border:0!important}.v34-thread-view{display:none;height:100%}.v34-inbox-shell.v41-thread-open .v34-thread-pane{display:none}.v34-inbox-shell.v41-thread-open .v34-thread-view{display:flex}.v41-inbox-back{display:grid;place-items:center}.v34-thread-head{grid-template-columns:34px 42px minmax(0,1fr);padding:11px 12px}.v34-thread-head .v34-thumb{width:42px;height:42px}.v34-thread-head-actions{grid-column:2/-1;justify-content:flex-start;padding-left:0}.v34-messages{padding:14px 12px 8px}.v34-message{max-width:88%}.v34-composer{padding:9px 10px!important}.v34-composer button{min-width:66px!important}
}

/* --- item page: hierarchy and responsive safety --- */
#page-item .rv28-item-hero{border-radius:17px;padding:26px;gap:26px}
#page-item .rv28-item-copy h1{line-height:1.02;max-width:760px}
#page-item .rv28-item-buy{background:color-mix(in srgb,var(--surface2) 76%,var(--surface));border-radius:14px;padding:18px}
#page-item .rv28-item-metrics{border-radius:14px;margin:12px 0 14px}
#page-item .rv28-item-grid{gap:14px}
#page-item .rv28-offers-panel,#page-item .rv28-sales-panel,#page-item .rv28-market-snapshot,#page-item .rv28-reference-card,#page-item .v29-item-alert,#page-item .v29-price-history,#page-item .v40-market-profile{border-radius:14px}
#page-item .rv28-sales-panel{min-height:150px}.rv28-sales-table>div{min-height:58px}
#page-item .v40-market-profile{order:2}.rv28-item-sidecol .v29-item-alert{order:1}.rv28-item-sidecol .rv28-market-snapshot{order:3}.rv28-item-sidecol .rv28-reference-card{order:4}
#page-item .empty-inline{min-height:86px;display:grid;place-items:center;text-align:center}
@media(max-width:1180px){#page-item .rv28-item-sidecol{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media(max-width:760px){#page-item .rv28-item-hero{padding:16px;gap:16px}#page-item .rv28-item-copy h1{font-size:32px}#page-item .rv28-item-sidecol{grid-template-columns:1fr}#page-item .rv28-item-metrics{grid-template-columns:1fr 1fr}#page-item .rv28-item-metrics>div{padding:13px 14px}}

/* --- empty / loading states --- */
.loading-inline,.loading-panel{position:relative;overflow:hidden;isolation:isolate;border-radius:10px;color:var(--muted);min-height:54px;display:grid;place-items:center;background:color-mix(in srgb,var(--surface2) 62%,transparent)}
.loading-inline::after,.loading-panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 28%,color-mix(in srgb,var(--text) 5%,transparent) 45%,transparent 62%);transform:translateX(-100%);animation:v41Shimmer 1.35s ease-in-out infinite}
@keyframes v41Shimmer{to{transform:translateX(100%)}}
.empty-inline,.orders-empty,.inventory-empty,.v34-list-empty,.v34-chat-empty,.v40-empty{border:1px dashed var(--line)!important;border-radius:12px!important;background:color-mix(in srgb,var(--surface2) 42%,transparent)!important;color:var(--muted)!important}
.empty-inline{padding:26px 18px!important;line-height:1.55}.v34-chat-empty{margin:20px auto;max-width:420px}

/* --- marketplace / cards --- */
.product-card{contain:layout paint style}.product-visual img,.v29-discovery-art img,.v40-snipe-art img{content-visibility:auto}
.v37-quick-button{transition:opacity var(--rv-transition),transform var(--rv-transition),background var(--rv-transition)}
.v40-snipe-card,.v29-watch-panel,.v40-snipe-controls{border-radius:var(--rv-card-radius)}

/* --- light mode parity --- */
html[data-theme="light"] .v41-more-menu,html[data-theme="light"] .v41-mobile-nav,html[data-theme="light"] .v41-mobile-sheet{background:rgba(255,255,255,.96);box-shadow:0 20px 60px rgba(35,42,52,.14)}
html[data-theme="light"] .v34-thread-pane{background:#fafbfc}html[data-theme="light"] .v34-message.own p{background:#15191e;color:#fff;border-color:#15191e}html[data-theme="light"] .v34-composer{background:#fff!important}html[data-theme="light"] .v34-composer textarea{background:#f7f8fa!important;color:#12161b!important}
html[data-theme="light"] .loading-inline,html[data-theme="light"] .loading-panel,html[data-theme="light"] .empty-inline,html[data-theme="light"] .orders-empty,html[data-theme="light"] .inventory-empty,html[data-theme="light"] .v34-list-empty,html[data-theme="light"] .v34-chat-empty,html[data-theme="light"] .v40-empty{background:#fafbfc!important}

/* --- reduced motion --- */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
