/* Shared visual language for the customer and administrator portals only. */
html:has(body.digitronix-portal){color-scheme:light}
body.digitronix-portal{
  --app-bg:#f5f8fc;--app-panel:#fff;--app-panel-2:#f0f5fc;
  --app-text:#0c1d49;--app-muted:#526079;--app-cyan:#075df2;
  --app-blue:#0846b5;--app-green:#167342;--app-warn:#8c5900;
  --app-danger:#b42335;--app-line:#dce5f0;
  --app-shadow:0 12px 36px #16386610;
  color-scheme:light;background:#f5f8fc;color:var(--app-text);
  -webkit-font-smoothing:antialiased;
}
.digitronix-portal .app-shell{grid-template-columns:248px minmax(0,1fr)}
.digitronix-portal .app-side{background:#fff;padding:28px 18px;border-color:var(--app-line)}
.digitronix-portal .app-brand{font-size:1.05rem;letter-spacing:.01em;margin-bottom:36px}
.digitronix-portal .app-nav{gap:8px}
.digitronix-portal .app-nav a{position:relative;min-height:46px;padding:12px 14px;border:1px solid transparent;border-radius:9px;color:var(--app-muted)}
.digitronix-portal .app-nav a:hover{color:var(--app-cyan);background:#f5f8ff}
.digitronix-portal .app-nav a.active{color:var(--app-cyan);background:#edf4ff;border-color:#dce8ff;font-weight:800}
.digitronix-portal .app-nav a.active::before{content:'';position:absolute;left:-19px;top:12px;bottom:12px;width:3px;border-radius:0 4px 4px 0;background:var(--app-cyan)}
.digitronix-portal .app-side-bottom>.app-button{width:100%}
.digitronix-portal .app-main{width:100%;max-width:1600px;margin:0 auto;padding:32px clamp(20px,3vw,44px);background-image:none}
.digitronix-portal .app-top{gap:20px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--app-line)}
.digitronix-portal .app-title h1{font-size:clamp(1.9rem,3vw,2.5rem);font-weight:800;letter-spacing:-.045em}
.digitronix-portal .app-title p{margin-top:8px;font-size:.94rem}
.digitronix-portal .app-button{min-height:44px;border:1px solid var(--app-cyan);border-radius:8px;background:var(--app-cyan);color:#fff;font-weight:700;box-shadow:0 4px 12px #075df214}
.digitronix-portal .app-button:hover{background:#0846b5;border-color:#0846b5}
.digitronix-portal .app-button[aria-disabled=true]{opacity:.55;cursor:default;pointer-events:none}
.digitronix-portal .app-button:disabled:hover{background:var(--app-cyan);border-color:var(--app-cyan)}
.digitronix-portal .app-button.secondary{background:#fff;color:var(--app-text);border-color:#cbd8e9;box-shadow:none}
.digitronix-portal .app-button.secondary:hover{background:#edf4ff;border-color:var(--app-cyan);color:var(--app-cyan)}
.digitronix-portal .app-button.danger{background:#fff1f2;color:#a71930;border-color:#f0c2ca;box-shadow:none}
.digitronix-portal :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #075df2;outline-offset:3px}
.digitronix-portal .app-grid{gap:20px}
.digitronix-portal .app-card{padding:24px;border-radius:16px;box-shadow:0 4px 20px #16386605;background:#fff}
.digitronix-portal .app-card h2{font-size:1.2rem;letter-spacing:-.025em}
.digitronix-portal .app-card strong.metric{color:var(--app-cyan)}
.digitronix-portal .app-field label{color:#354666;font-weight:700}
.digitronix-portal .app-field :is(input,select,textarea){background:#fff;color:var(--app-text);border-color:#c9d6e7;min-height:44px;border-radius:8px}
.digitronix-portal .app-field :is(input,textarea)::placeholder{color:#687890;opacity:1}
.digitronix-portal .app-field :is(input,select,textarea):focus{border-color:var(--app-cyan);box-shadow:0 0 0 3px #075df212}
.digitronix-portal input[type=checkbox],.digitronix-portal input[type=radio]{accent-color:var(--app-cyan)}
.digitronix-portal input[type=file]::file-selector-button{margin-right:10px;padding:7px 10px;border:0;border-radius:5px;background:#eaf2ff;color:#0846b5;font:inherit;cursor:pointer}
.digitronix-portal .app-note,.digitronix-portal .profile-editor-guide{background:#edf4ff;color:#354f78;border-color:#cee0ff}
.digitronix-portal .app-help,.digitronix-portal .app-empty,.digitronix-portal .app-note{line-height:1.6}
.digitronix-portal .app-help{color:var(--app-muted)}
.digitronix-portal .app-table th{background:#f4f7fc;color:#526079}
.digitronix-portal .app-table td{color:var(--app-text)}
.digitronix-portal .app-table tbody tr:hover{background:#f7faff}
.digitronix-portal .app-table :is(input,select){background:#fff!important;color:var(--app-text)!important;border:1px solid #c9d6e7}
.digitronix-portal .status{background:#eaf7ef;color:#12683a}
.digitronix-portal .status.warn{background:#fff4db;color:#805000}
.digitronix-portal .status.danger{background:#ffedf0;color:#ac2337}
.digitronix-portal :is(.doc-modal-box,.app-dialog,.toast){background:#fff;color:var(--app-text);border-color:var(--app-line);box-shadow:var(--app-shadow)}
.digitronix-portal :is(.doc-modal,.app-modal){background:#10234480}
.digitronix-portal .doc-badge{border-color:var(--app-line);background:#f0f5fc;color:#354f78}
.digitronix-portal :is(.document-expiry-date,.document-expiry-status).is-expired{color:#a91f32}
.digitronix-portal :is(.document-expiry-date,.document-expiry-status).is-expiring{color:#805000}
.digitronix-portal .profile-editor-guide{border-left-color:var(--app-cyan)}
.digitronix-portal :is(.profile-avatar-frame,.profile-cover-frame,.photo-editor-frame){background:#eaf1fb}
.digitronix-portal .demo-banner{color:#805000;background:#fff4db}
.digitronix-portal .operation-status{margin:4px 0;font-size:.88rem;line-height:1.6;overflow-wrap:anywhere}
.digitronix-portal .operation-status:empty{display:none}
.digitronix-portal .operation-status[data-state=busy]{color:#0846b5}
.digitronix-portal .operation-status[data-state=success]{color:#12683a}
.digitronix-portal .operation-status[data-state=error]{color:#a91f32}
.digitronix-portal #linkedCards{overflow-wrap:anywhere}
.digitronix-portal #passkeySection p{color:var(--app-muted)!important}
.digitronix-portal #passkeyList{color:var(--app-cyan)!important}
.digitronix-portal .app-field input[type=checkbox],.digitronix-portal .app-field input[type=radio]{min-height:0}
@media(max-width:620px){
  .digitronix-portal .app-field :is(input,select,textarea){font-size:16px}
  .digitronix-portal #documents .app-table{min-width:0;display:block}
  .digitronix-portal #documents .app-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .digitronix-portal #documents .app-table tbody{display:grid;gap:14px}
  .digitronix-portal #documents .app-table tr{display:block;border:1px solid var(--app-line);border-radius:12px;padding:12px;background:#fff}
  .digitronix-portal #documents .app-table td{display:block;border:0;padding:6px;overflow-wrap:anywhere;font-size:.86rem}
  .digitronix-portal #documents .app-table td[data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--app-muted);font-size:.73rem;font-weight:700}
  .digitronix-portal .doc-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .digitronix-portal .doc-actions button{min-height:44px;font-size:.82rem;white-space:normal}
  .digitronix-portal .toast{left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));max-width:none}
}
.digitronix-portal #client-summary{padding:0;border:0;background:transparent;box-shadow:none}
.digitronix-portal .client-welcome{position:relative;overflow:hidden;padding:30px 32px;margin:0 0 22px;border:1px solid #d9e8fc;border-radius:18px;background:radial-gradient(ellipse at 100% 0%,#cee5ff 0%,transparent 65%),linear-gradient(110deg,#fff,#edf5ff)}
.digitronix-portal .client-eyebrow{color:var(--app-cyan);opacity:1;font-size:.69rem;letter-spacing:.15em}
.digitronix-portal .client-welcome h2{max-width:28ch;font-size:clamp(1.7rem,3.1vw,2.45rem);line-height:1.15;letter-spacing:-.045em;margin:10px 0 12px}
.digitronix-portal .client-welcome p{max-width:60ch;opacity:1;color:var(--app-muted);line-height:1.6}
.digitronix-portal .client-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.digitronix-portal .client-quick-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #bfd2ed;border-radius:8px;background:#fff;color:var(--app-text);font-size:.86rem;font-weight:700}
.digitronix-portal .client-quick-actions a:first-child{background:var(--app-cyan);border-color:var(--app-cyan);color:#fff}
.digitronix-portal .client-quick-actions a:hover{box-shadow:0 4px 16px #075df21a}
.digitronix-portal .client-summary-grid{gap:16px}
.digitronix-portal .client-summary-item{position:relative;padding:22px;border:1px solid var(--app-line);border-radius:14px;background:#fff;gap:9px}
.digitronix-portal .client-summary-item::before{content:'';width:26px;height:3px;margin-bottom:4px;border-radius:3px;background:#075df2}
.digitronix-portal .client-summary-item small{color:#526079;opacity:1;font-size:.68rem;letter-spacing:.08em}
.digitronix-portal .client-summary-item strong{font-size:1.05rem;line-height:1.5}
.digitronix-portal .client-summary-item span{color:var(--app-muted);opacity:1;font-size:.84rem}
.digitronix-portal .client-status-dot.is-active{background:#19804a;box-shadow:none}
.digitronix-portal .client-profile-list{margin-top:28px;gap:14px}
.digitronix-portal .client-profile-list h3{font-size:1.18rem;letter-spacing:-.025em}
.digitronix-portal .client-profile-list>p{opacity:1;color:var(--app-muted)}
.digitronix-portal .client-profile-help{max-width:75ch;font-size:.9rem}
.digitronix-portal .client-profile-row{grid-template-columns:minmax(160px,1fr) minmax(130px,.8fr);padding:22px;border:1px solid var(--app-line);border-radius:14px;background:#fff;gap:16px 24px}
.digitronix-portal .client-profile-info strong{font-size:1rem}
.digitronix-portal .client-profile-info span,.digitronix-portal .client-profile-card-code{color:var(--app-muted);opacity:1;font-size:.8rem}
.digitronix-portal .client-profile-info .client-profile-detail{opacity:1;color:var(--app-muted)}
.digitronix-portal .client-profile-actions{grid-column:1/-1;padding-top:14px;border-top:1px solid #e8eef7;gap:8px}
.digitronix-portal .client-profile-actions a{border-color:#cbd8e9;color:#263e63;background:#fff;border-radius:8px;padding:10px 14px}
.digitronix-portal .client-profile-actions .client-edit-profile{background:var(--app-cyan);border-color:var(--app-cyan);color:#fff}
.digitronix-portal .client-profile-actions a[data-open-profile-documents]{border-color:#cbd8e9}
.digitronix-portal .client-profile-actions a:hover{background:#edf4ff;border-color:var(--app-cyan);color:var(--app-cyan)}
.digitronix-portal .client-profile-actions .client-edit-profile:hover{background:#0846b5;color:#fff;border-color:#0846b5}
/* Administrator lists, actions and the existing MFA gate. */
.digitronix-portal #clients .client-search{min-height:44px;background:#fff;color:var(--app-text);border-color:#c9d6e7}
.digitronix-portal #clients .owner-group{background:#fff;border-color:var(--app-line)}
.digitronix-portal #clients .owner-group>summary small,.digitronix-portal #clients .owner-overview,.digitronix-portal #clients .car-meta{color:var(--app-muted)}
.digitronix-portal #clients .owner-group>summary::after,.digitronix-portal #clients .clients-stats strong,.digitronix-portal #clients .car-plate{color:var(--app-cyan)}
.digitronix-portal #clients .clients-stats span{background:#edf4ff;border-color:#d5e4fa}
.digitronix-portal #clients .owner-car{background:#f8faff;border-color:var(--app-line)}
.digitronix-portal #clients .card-line select{min-height:44px;background:#fff;color:var(--app-text);border-color:#c9d6e7}
.digitronix-portal #cleanup .registry-panel{background:#f8faff;border-color:var(--app-line)}
.digitronix-portal #cleanup .registry-panel p,.digitronix-portal #cleanup .registry-result small{color:var(--app-muted)}
.digitronix-portal #cleanup .registry-panel :is(select,input){background:#fff;color:var(--app-text);border-color:#c9d6e7}
.digitronix-portal #cleanup .registry-danger{color:#a91f32;border-color:#efbcc5}
.digitronix-portal .nfc-action{min-height:38px;border-color:#cbd8e9;background:#fff;color:#263e63}
.digitronix-portal .nfc-action:hover{background:#edf4ff;border-color:var(--app-cyan)}
.digitronix-portal .nfc-action.danger{color:#a91f32;border-color:#efbcc5}
.digitronix-portal .nfc-action.warning{color:#805000;border-color:#e5c784}
.digitronix-portal .nfc-action.success{color:#12683a;border-color:#a2d4b6}
body.digitronix-portal #adminMfaGate{background:#f0f5fc}
.digitronix-portal .admin-mfa-card{background:#fff;border-color:var(--app-line);box-shadow:var(--app-shadow)}
.digitronix-portal .admin-mfa-card p{color:var(--app-muted)}
.digitronix-portal .admin-mfa-secret{background:#edf4ff;color:#0846b5}
.digitronix-portal .admin-mfa-form input{background:#fff;color:var(--app-text);border-color:#c9d6e7}
.digitronix-portal .admin-mfa-error{color:#a91f32!important}
@media(min-width:1500px){.digitronix-portal .client-profile-row{grid-template-columns:minmax(160px,1fr) minmax(160px,.8fr) minmax(240px,auto)}.digitronix-portal .client-profile-actions{grid-column:auto;border-top:0;padding-top:0}}
@media(max-width:1100px){.digitronix-portal .client-summary-grid{grid-template-columns:1fr}}
@media(max-width:980px){.digitronix-portal .app-shell{grid-template-columns:minmax(0,1fr)}.digitronix-portal .app-side{padding:16px 20px}.digitronix-portal .app-brand{margin:0}.digitronix-portal .app-nav{gap:6px}.digitronix-portal .app-nav a{min-height:44px;padding:10px 12px}.digitronix-portal .app-nav a.active::before{display:none}.digitronix-portal .app-side-bottom>.app-button{width:auto}.digitronix-portal .app-main{padding:24px 20px}}
@media(max-width:620px){.digitronix-portal .app-side{padding:14px}.digitronix-portal .app-main{padding:22px 14px}.digitronix-portal .app-top{padding-bottom:20px;margin-bottom:20px}.digitronix-portal .app-card{padding:18px}.digitronix-portal .client-welcome{padding:24px 20px}.digitronix-portal .client-quick-actions{display:grid;grid-template-columns:1fr;width:100%}.digitronix-portal .client-summary-item{padding:18px}.digitronix-portal .client-profile-row{grid-template-columns:minmax(0,1fr);padding:18px}.digitronix-portal .client-profile-actions a{flex:1 1 140px}.digitronix-portal .app-title p{font-size:.88rem}}
