/* Shared visual theme for authenticated pages. */
body.dashboard-modern{
 --ink:#f7f5ff;--muted:#aaa4c0;--line:rgba(255,255,255,.10);--paper:#171429;
 --bg:#090914;--green:#7441f3;--green-dark:#5e31d2;--lime:#5ce1bb;--danger:#c75568;
 --shadow:0 22px 65px rgba(0,0,0,.30);
 min-height:100vh;color:var(--ink)!important;
 background:radial-gradient(circle at 7% 3%,rgba(107,52,224,.27),transparent 34rem),radial-gradient(circle at 94% 90%,rgba(22,154,146,.2),transparent 32rem),linear-gradient(145deg,#0b0918,#0b0c19 54%,#07171a)!important;
 background-attachment:fixed!important
}
.dashboard-modern .page{max-width:1240px;padding:24px 28px 105px}
.dashboard-modern .topbar{position:relative;min-height:76px;margin:0 0 24px;padding:13px 18px;border:1px solid rgba(255,255,255,.11);border-radius:21px;background:rgba(19,16,36,.88);box-shadow:0 18px 55px rgba(0,0,0,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.dashboard-modern .brand{color:#fff!important;font-size:20px}.dashboard-modern .brand-mark{background:linear-gradient(145deg,#8a56ff,#6030e9)!important;color:#fff!important;box-shadow:0 9px 24px rgba(111,59,239,.34)}
.dashboard-modern h1,.dashboard-modern h2,.dashboard-modern h3,.dashboard-modern strong,.dashboard-modern b{color:#fff}.dashboard-modern .lead,.dashboard-modern small,.dashboard-modern .legal-note{color:var(--muted)}
.dashboard-modern a{color:#bda8ff}.dashboard-modern .panel,.dashboard-modern .box.wide{border-color:rgba(255,255,255,.10)!important;background:linear-gradient(155deg,rgba(27,23,47,.96),rgba(16,16,31,.97))!important;box-shadow:var(--shadow)!important}
.dashboard-modern .panel{border-radius:21px}.dashboard-modern .section-head{padding-bottom:3px}
.dashboard-modern .badge{background:rgba(92,225,187,.11);color:#78e7c6;border:1px solid rgba(92,225,187,.14)}
.dashboard-modern input,.dashboard-modern select,.dashboard-modern textarea{border-color:rgba(255,255,255,.14)!important;background:#100e20!important;color:#fff!important}.dashboard-modern input::placeholder,.dashboard-modern textarea::placeholder{color:#777087}.dashboard-modern input:focus,.dashboard-modern select:focus,.dashboard-modern textarea:focus{outline:3px solid rgba(126,79,245,.18)!important;border-color:#8659f4!important}.dashboard-modern option{background:#171329;color:#fff}
.dashboard-modern button,.dashboard-modern .button{background:linear-gradient(135deg,#7140ef,#8956ff)!important;color:#fff!important;box-shadow:0 8px 20px rgba(112,62,238,.2)}.dashboard-modern .button.secondary,.dashboard-modern button.secondary{border:1px solid rgba(151,116,245,.24);background:rgba(126,79,245,.13)!important;color:#d5c7ff!important;box-shadow:none}.dashboard-modern .danger,.dashboard-modern button.danger{background:rgba(199,85,104,.18)!important;color:#ffabb6!important;border:1px solid rgba(236,112,130,.2)}
.dashboard-modern .table-wrap{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.02)}.dashboard-modern table{background:transparent;color:#eeeaf7}.dashboard-modern th{background:rgba(126,79,245,.12);color:#c6b8e2}.dashboard-modern td,.dashboard-modern th{border-color:rgba(255,255,255,.08)}.dashboard-modern tbody tr:hover{background:rgba(126,79,245,.06)}
.dashboard-modern code{background:rgba(255,255,255,.07);color:#d8cdf3}.dashboard-modern .empty{border-color:rgba(255,255,255,.16);color:#9f98b2;background:rgba(255,255,255,.02)}
.dashboard-modern .total-card,.dashboard-modern .last-call,.dashboard-modern .reminder,.dashboard-modern .road-total,.dashboard-modern .contract-card,.dashboard-modern .contract-origin,.dashboard-modern .photo-editor,.dashboard-modern .passkey-item,.dashboard-modern .reapproval-box{border:1px solid rgba(255,255,255,.09)!important;background:rgba(255,255,255,.035)!important;color:#eeeaf7}
.dashboard-modern .total-card b{color:#72e6c3}.dashboard-modern .reminder.overdue,.dashboard-modern .road-numbers .balance.due{background:rgba(199,85,104,.12)!important;color:#ffabb6}.dashboard-modern .road-numbers span{background:rgba(255,255,255,.045);color:#aaa4bc}.dashboard-modern .road-numbers b{color:#fff}.dashboard-modern .road-numbers .paid{background:rgba(92,225,187,.09)}
.dashboard-modern .location-card{overflow:hidden}.dashboard-modern .location-card iframe,.dashboard-modern .map-missing,.dashboard-modern .image-preview,.dashboard-modern .photo-crop-wrap,.dashboard-modern .project-preview{background:#11101e!important;border-color:rgba(255,255,255,.1)!important}.dashboard-modern .location-address{color:#e5dff0}.dashboard-modern .location-edit,.dashboard-modern .contact-card details,.dashboard-modern .timeline-item,.dashboard-modern .task,.dashboard-modern .material,.dashboard-modern .profile-hero,.dashboard-modern .passkey-security{border-color:rgba(255,255,255,.09)}
.dashboard-modern .photo-grid figure{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.dashboard-modern .contract-status{background:rgba(235,180,70,.12);color:#ffd184}.dashboard-modern .contract-status.customer_accepted{background:rgba(79,148,228,.13);color:#9bcaff}.dashboard-modern .contract-status.approved{background:rgba(92,225,187,.12);color:#72e6c3}
.dashboard-modern .profile-placeholder,.dashboard-modern .passkey-shield,.dashboard-modern .menu-icon{background:rgba(126,79,245,.15)!important;color:#cfbdff!important}.dashboard-modern .profile-photo{border-color:rgba(255,255,255,.13);box-shadow:0 10px 30px rgba(0,0,0,.28)}
.dashboard-modern .mobile-nav{border-color:rgba(255,255,255,.12)!important;background:rgba(20,17,37,.92)!important;box-shadow:0 18px 45px rgba(0,0,0,.35)!important;backdrop-filter:blur(14px)}.dashboard-modern .mobile-nav a,.dashboard-modern .mobile-nav button{color:#bdb6ce!important;box-shadow:none}.dashboard-modern .mobile-nav .active{background:linear-gradient(135deg,#6938e8,#8551f5)!important;color:#fff!important}.dashboard-modern .mobile-nav a:hover,.dashboard-modern .mobile-nav button:hover{background:rgba(126,79,245,.14)!important;color:#fff!important}
.dashboard-modern .mobile-menu{background:linear-gradient(180deg,#171329,#0e0d1c)!important;border-left:1px solid rgba(255,255,255,.1);color:#fff;box-shadow:-20px 0 55px rgba(0,0,0,.45)!important}.dashboard-modern .mobile-menu-head b{color:#fff}.dashboard-modern .mobile-menu-close{background:rgba(126,79,245,.17)!important;color:#cfbdff!important;box-shadow:none}.dashboard-modern .mobile-menu>a:not(.logout-link):not(.menu-profile){border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)!important;color:#e7e1f1!important}.dashboard-modern .mobile-menu>a.active{background:linear-gradient(135deg,#6938e8,#8551f5)!important;color:#fff!important}.dashboard-modern .menu-profile{border-color:rgba(255,255,255,.09)!important;background:rgba(255,255,255,.04)!important}.dashboard-modern .menu-profile b{color:#fff}.dashboard-modern .menu-section-label{color:#8e86a3}.dashboard-modern .app-tools button{background:rgba(126,79,245,.13)!important;color:#d5c7ff!important;box-shadow:none}
.dashboard-modern .flash{border-color:rgba(238,188,81,.23);background:#312712;color:#ffdc8a}
@media(min-width:1000px){.dashboard-modern .mobile-nav{top:35px!important;right:max(28px,calc((100vw - 1184px)/2 + 94px))!important}.dashboard-modern .dashboard-language-picker{margin-right:62px!important}}
@media(max-width:999px){.dashboard-modern .page{padding-top:14px}.dashboard-modern .topbar{min-height:66px}.dashboard-modern .dashboard-language-picker{margin-left:auto!important;margin-right:56px!important}}
@media(max-width:760px){
 body.dashboard-modern{background:radial-gradient(circle at 20% 0%,rgba(108,52,224,.28),transparent 25rem),linear-gradient(160deg,#0b0918,#0a1018)!important}
 .dashboard-modern .page,.dashboard-modern .box.wide{padding:10px 10px calc(82px + env(safe-area-inset-bottom));max-width:none}
 .dashboard-modern .topbar{position:sticky;top:7px;z-index:90;margin:0 0 12px;padding:10px 12px;border-radius:17px;background:rgba(19,16,36,.96);backdrop-filter:none;-webkit-backdrop-filter:none}
 .dashboard-modern .brand{font-size:17px;max-width:calc(100% - 110px)}.dashboard-modern .brand-mark{width:36px;height:36px}
 .dashboard-modern .dashboard-language-picker{position:absolute!important;right:58px!important;top:13px!important;margin:0!important}
 .dashboard-modern .panel{padding:16px;border-radius:17px}.dashboard-modern h1{font-size:25px}.dashboard-modern h2{font-size:18px}
 .dashboard-modern .table-wrap{border:0}.dashboard-modern table,.dashboard-modern thead,.dashboard-modern tbody,.dashboard-modern tr,.dashboard-modern th,.dashboard-modern td{display:block}.dashboard-modern thead{display:none}.dashboard-modern tr{margin-bottom:10px;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.025)}.dashboard-modern td{padding:6px 0;border:0}
 .dashboard-modern .mobile-menu-shade.open{background:rgba(3,2,10,.7);backdrop-filter:blur(4px)}
 .dashboard-modern .topbar{flex-direction:row!important;align-items:center!important;min-height:64px!important;height:64px!important}
 .dashboard-modern .topbar .youth-profile{position:absolute!important;right:12px!important;top:12px!important;margin:0!important}
}
@media print{body.dashboard-modern{background:#fff!important;color:#111!important}.dashboard-modern .panel{background:#fff!important;color:#111!important}}

/* Final contrast pass for pages that contain their own legacy component styles. */
.dashboard-modern p,.dashboard-modern li,.dashboard-modern dt,.dashboard-modern dd{color:#d2ccdc}
.dashboard-modern hr{border-color:rgba(255,255,255,.10)}
.dashboard-modern details>summary{color:#e9e4f2}
.dashboard-modern .invoice-step,.dashboard-modern .album-card,.dashboard-modern .album-form,
.dashboard-modern .object-photo,.dashboard-modern .receipt-days,.dashboard-modern .receipt-item,
.dashboard-modern .project-share,.dashboard-modern .project-upload,.dashboard-modern .share-create,
.dashboard-modern .health-item,.dashboard-modern .metric,.dashboard-modern .server-meta,
.dashboard-modern .journal-hero,.dashboard-modern .journal-stats>div,.dashboard-modern .timeline-event,
.dashboard-modern .role-preview,.dashboard-modern .access-denied-box{
 border-color:rgba(255,255,255,.10)!important;background:rgba(255,255,255,.035)!important;color:#eeeaf7!important
}
.dashboard-modern .invoice-action.link,.dashboard-modern .copy-invoice-link,
.dashboard-modern .copy-share,.dashboard-modern .share-link-row{
 border-color:rgba(151,116,245,.25)!important;background:rgba(126,79,245,.14)!important;color:#d6c8ff!important
}
.dashboard-modern .invoice-action.danger,.dashboard-modern .compact-danger,
.dashboard-modern .event-delete,.dashboard-modern .access-lock,.dashboard-modern .access-score{
 border-color:rgba(236,112,130,.20)!important;background:rgba(199,85,104,.14)!important;color:#ffb0bb!important
}
.dashboard-modern .album-count,.dashboard-modern .status-pill,.dashboard-modern .journal-now,
.dashboard-modern .presence-status.online,.dashboard-modern .status.ok,.dashboard-modern .notice.success{
 border-color:rgba(92,225,187,.18)!important;background:rgba(92,225,187,.11)!important;color:#79e7c7!important
}
.dashboard-modern .photo-date,.dashboard-modern .photo-note,.dashboard-modern .receipt-note,
.dashboard-modern .receipt-day small,.dashboard-modern .invoice-help,.dashboard-modern .metric-detail,
.dashboard-modern .meta-item,.dashboard-modern .timeline-main p,.dashboard-modern .user-activity,
.dashboard-modern .user-ip,.dashboard-modern .access-help{color:#aaa4c0!important}
.dashboard-modern .object-photo>a{background:#0d0c19!important}
.dashboard-modern .object-photo img{background:#0d0c19}.dashboard-modern .object-photo figcaption{color:#eeeaf7}
.dashboard-modern .receipt-day,.dashboard-modern .receipt-item,.dashboard-modern .album-head,
.dashboard-modern .journal-stats,.dashboard-modern .timeline-event,.dashboard-modern .server-actions{
 border-color:rgba(255,255,255,.09)!important
}
.dashboard-modern .receipt-summary b,.dashboard-modern .journal-stats strong,
.dashboard-modern .metric-value{color:#fff!important}
.dashboard-modern .journal-avatar,.dashboard-modern .timeline-icon{
 background:linear-gradient(145deg,#8551f5,#6231dd)!important;color:#fff!important
}
.dashboard-modern .meter{background:rgba(255,255,255,.08)!important}.dashboard-modern .meter>span{background:linear-gradient(90deg,#6540e8,#5ce1bb)!important}
.dashboard-modern .status.warn,.dashboard-modern .notice.warn{background:rgba(235,180,70,.12)!important;color:#ffd184!important}
.dashboard-modern .status.error,.dashboard-modern .notice.error{background:rgba(199,85,104,.14)!important;color:#ffabb6!important}
.dashboard-modern .visit-table,.dashboard-modern .share-visits{border-color:rgba(255,255,255,.10)!important;background:transparent!important}
.dashboard-modern .provider-card,.dashboard-modern .provider-error{border-color:rgba(255,255,255,.10)!important;background:rgba(255,255,255,.035)!important;color:#d8d2e2!important}
.dashboard-modern .provider-error{border-color:rgba(236,112,130,.20)!important;background:rgba(199,85,104,.12)!important;color:#ffb0bb!important}
.dashboard-modern .meta-item{
 border:1px solid rgba(255,255,255,.08)!important;background:rgba(255,255,255,.035)!important;color:#f5f1fb!important
}
.dashboard-modern .meta-item small{color:#aaa4c0!important}.dashboard-modern .meta-item b{color:#fff!important}
.dashboard-modern .vpn-card{
 border-color:rgba(255,255,255,.10)!important;background:linear-gradient(155deg,rgba(27,23,47,.96),rgba(16,16,31,.97))!important;color:#eeeaf7!important;box-shadow:var(--shadow)!important
}
.dashboard-modern .vpn-head,.dashboard-modern .vpn-list,.dashboard-modern .vpn-client{border-color:rgba(255,255,255,.09)!important}
.dashboard-modern .vpn-head p,.dashboard-modern .vpn-meta,.dashboard-modern .vpn-resources>p{color:#aaa4c0!important}
.dashboard-modern .vpn-resources,.dashboard-modern .vpn-live-status,.dashboard-modern .vpn-speed-options{
 border-color:rgba(255,255,255,.09)!important;background:rgba(255,255,255,.025)!important;color:#eeeaf7!important
}
.dashboard-modern .vpn-resources>div,.dashboard-modern .vpn-live>span{
 border:1px solid rgba(255,255,255,.09)!important;background:rgba(255,255,255,.04)!important;color:#d7d0e1!important
}
.dashboard-modern .vpn-resources small,.dashboard-modern .vpn-live small{color:#aaa4c0!important}
.dashboard-modern .vpn-resources strong,.dashboard-modern .vpn-transfer,.dashboard-modern .vpn-connected{color:#78e7c6!important}
.dashboard-modern .vpn-live-status strong{color:#78e7c6!important}.dashboard-modern .vpn-live-status span{color:#aaa4c0!important}
.dashboard-modern .vpn-client-online{background:linear-gradient(90deg,rgba(92,225,187,.055),rgba(126,79,245,.04))!important}
.dashboard-modern .vpn-dot{background:#777183}.dashboard-modern .vpn-dot.online{background:#5ce1bb;box-shadow:0 0 0 4px rgba(92,225,187,.12)}
.dashboard-modern .vpn-state{background:rgba(199,85,104,.14)!important;color:#ffabb6!important}.dashboard-modern .vpn-state.online{background:rgba(92,225,187,.12)!important;color:#78e7c6!important}
.dashboard-modern .project-share summary{background:rgba(126,79,245,.14)!important;color:#d6c8ff!important}
.dashboard-modern .share-content{border-color:rgba(255,255,255,.10)!important;background:#121020!important;color:#eeeaf7!important}
.dashboard-modern .share-content p{color:#aaa4c0!important}
.dashboard-modern dialog{color:#f6f2ff}.dashboard-modern .vpn-modal{background:#18142a!important;color:#f6f2ff!important}
.dashboard-modern .vpn-modal p{color:#aaa4c0!important}
.dashboard-modern .speed-results>div,.dashboard-modern .speed-route{border-color:rgba(255,255,255,.10)!important;background:rgba(255,255,255,.04)!important}
.dashboard-modern .speed-results span,.dashboard-modern .speed-route small,.dashboard-modern .speed-route em{color:#aaa4c0!important}
.dashboard-modern .speed-results strong,.dashboard-modern .speed-route strong{color:#fff!important}
.dashboard-modern .speed-gauge:after{background:#18142a!important}.dashboard-modern .speed-gauge-core strong{color:#fff!important}.dashboard-modern .speed-gauge-core span,.dashboard-modern .speed-gauge-core small,.dashboard-modern .gauge-scale{color:#aaa4c0!important}
.dashboard-modern .speed-modal>.speed-actions{background:#18142a!important}
.dashboard-modern .map-missing b,.dashboard-modern .role-preview{color:#d8cdf3!important}
.dashboard-modern .role-preview small{color:#aaa4c0!important}

@media(max-width:760px){
 .dashboard-modern .invoice-actions{min-width:0!important}.dashboard-modern .invoice-action{min-height:42px}
 .dashboard-modern .album-head,.dashboard-modern .journal-hero,.dashboard-modern .metric-head{align-items:flex-start;gap:10px}
 .dashboard-modern .object-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .dashboard-modern .server-grid,.dashboard-modern .health-grid,.dashboard-modern .journal-stats{grid-template-columns:1fr!important}
 .dashboard-modern .share-link-row,.dashboard-modern .receipt-actions{align-items:stretch}
 .dashboard-modern .share-link-row>*{min-width:0;max-width:100%}
}
@media(max-width:430px){
 .dashboard-modern .object-photo-grid{grid-template-columns:1fr!important}
 .dashboard-modern .invoice-item{grid-template-columns:1fr!important}.dashboard-modern .invoice-item input:first-child{grid-column:auto!important}
}

/* Keep the branded background behind short pages and native upload controls. */
html.dashboard-modern,
html:has(body.dashboard-modern) {
  min-height: 100%;
  background: #090b1a;
}
body.dashboard-modern {
  min-height: 100vh;
}
.dashboard-modern input[type="file"] {
  color: var(--dm-text);
}
.dashboard-modern input[type="file"]::file-selector-button {
  margin: -12px 12px -12px -13px;
  padding: 12px 14px;
  border: 0;
  border-right: 1px solid var(--dm-line);
  background: rgba(255,255,255,.08);
  color: var(--dm-text);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.dashboard-modern input[type="file"]::file-selector-button:hover {
  background: rgba(124,72,255,.28);
}

/* Keep the sign-out action visible at the top of the sections drawer. */
.dashboard-modern .mobile-menu .logout-visible {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  margin: 0 0 14px !important;
  border: 1px solid rgba(255,115,126,.28) !important;
  background: rgba(176,55,70,.16) !important;
  color: #ffb8c0 !important;
  box-shadow: 0 8px 22px rgba(93,20,34,.12);
}
.dashboard-modern .mobile-menu .logout-visible:hover {
  background: rgba(203,65,82,.26) !important;
  color: #fff !important;
}
