/* NEXORA V7.3: premium navy & electric-blue adaptive interface.
   Existing views, document handlers and database contracts remain untouched. */
:root {
  --nx-navy:#030d28; --nx-night:#06143a; --nx-panel:#0a1b49;
  --nx-electric:#087dff; --nx-cyan:#20caff; --nx-violet:#254de4;
  --nx-line:#2b5698; --nx-soft:#a9c7f7; --nx-white:#f8fbff;
  color-scheme:dark;
}
html {background:#030d28;scroll-behavior:smooth}
body {color:var(--nx-white);min-height:100vh;
 background: radial-gradient(ellipse 100% 40% at 87% 2%,#114ca8aa 0%,transparent 74%),
 radial-gradient(ellipse 80% 50% at 4% 74%,#073a96aa 0%,transparent 74%),
 linear-gradient(152deg,#05112f 0%,#04102e 49%,#061a4a 100%);}
body::before {content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.32;
 background:linear-gradient(125deg,transparent 26%,#108df91c 38%,transparent 48%,#008bff19 71%,transparent 82%);}
header {background:linear-gradient(127deg,#04122f 3%,#08235e 47%,#0c3c94 80%,#041b50 100%);
 color:#fff;border-bottom:1px solid #267dda70;box-shadow:0 11px 32px #010b25a8;position:relative;overflow:hidden}
header::after{content:"";position:absolute;pointer-events:none;left:32%;right:-10%;bottom:-104px;height:156px;
 border-radius:50%;border-top:2px solid #27c7ff98;box-shadow:0 -16px 40px #139eff6b;transform:rotate(-3deg)}
header .shell{position:relative;z-index:1;max-width:1440px}
header h1{color:white;letter-spacing:.4px;font-weight:850;text-shadow:0 2px 20px #0fc3ff6d}
.brandLogo{filter:drop-shadow(0 0 15px #20cbff76)}
.flag{color:#b8d9ff;font-size:12px;letter-spacing:2px}.tagline{color:#d8ebff}
.userbar{color:#bed9ff}.userbar button{box-shadow:inset 0 1px #ffffff3a}
.tabs{position:relative;z-index:2;margin-top:19px}
.tabs button{background:#071e52de;border:1px solid #4e8cdd;color:#e6f4ff;box-shadow:inset 0 1px #6ad2fa39}
.tabs button.on,.tabs button:focus-visible{background:linear-gradient(130deg,#1cc9fd,#1864e7);color:white;border-color:#81e6ff;
 box-shadow:0 3px 18px #139dff70}
main.shell {max-width:1440px;padding-top:26px;padding-bottom:100px}
.view{color:#f0f7ff}
.panel,.stat,.menuNode,.record,.previewFile,.detailFacts>div,.noteDetails{color:#f0f7ff;
 background:linear-gradient(145deg,#0d2558e8,#071639f5);border:1px solid #2f5c9b;
 box-shadow:inset 0 1px 0 #6ebaff1a,0 10px 29px #000a21a0;}
.panel h2,.panel h3,.record strong,.stat b,.detailFacts strong {color:#f9fcff}
.panel h2{font-weight:800;letter-spacing:.1px}
.muted,.hint,.copyhelp,.loading,.stat span,.record p,.detailFacts span,.menuCard span {color:#b4caee}
.flag,.pill,.folderPill{background:#0c448d;color:#cff4ff}
.stat{border-radius:16px}.stat b{color:#5cceff}.stat span{color:#b4cffa}
button,.captureBtn,.menuCard{transition:background .18s ease,box-shadow .18s ease,transform .16s ease}
button:not(:disabled):active{transform:translateY(1px)}
.btn.primary,.primary{background:linear-gradient(125deg,#087afa,#1552dc);color:#fff;border:1px solid #2e9aff;
 box-shadow:0 4px 16px #005cef63}
.btn.secondary,.secondary{background:linear-gradient(135deg,#183f86,#0a285f);color:#eaf7ff;border:1px solid #4475c3}
.btn.danger{color:#ffe7e4;border:1px solid #894651;background:#632b3e}
.btn:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #65d8ff;outline-offset:2px}
input,select,textarea{background:#07193e;color:#fff;border:1px solid #3a66a8}
input::placeholder,textarea::placeholder{color:#91abd8;opacity:1}
input:focus,select:focus,textarea:focus{border-color:#42c2ff;box-shadow:0 0 0 2px #38bdf83a}
option{color:#edf6ff;background:#081b43}
a{color:#70d4ff}.record p,.detailFacts span{color:#b8cbed}.record .sum,.sum{color:#4dd4ff}
.menuCard{background:linear-gradient(125deg,#092960,#081942);color:#ebf8ff;border:1px solid #396db9}
.menuCard:hover,.folderChip:hover{background:#154a92}
.folderChip{background:#0d2d65;border:1px solid #306cbe;color:#e9f7ff}
.folderChip.active{background:linear-gradient(120deg,#0c9eff,#174ee6);border-color:#58d3ff;color:#fff}
.menuNode,.menuChildren,.menuStatusNote{color:#deefff}
.menuNode{background:#071d47}.menuChildren{border-color:#1853a3}
.menuNavLine{padding-block:6px}
.empty{border-color:#2963af;color:#bad2f5;background:#06193e}
.fileitem{background:#0b2758;border:1px solid #345b9a;color:#e4f4ff}
.detailFacts>div,.previewFile,.noteDetails{background:#09204a}
#toast{background:#034a93;border:1px solid #4acbff;color:#fff;box-shadow:0 12px 35px #00122ba8}
.notice{background:#473313;border-left-color:#ffcc64;color:#ffe9ae}
.error{background:#451e35;color:#ffc2c4}
.ocrPanel{background:#081f4a!important;border-color:#356bb8!important}
.quickCapture{background:linear-gradient(136deg,#092c67,#0b1e4d 67%,#0d3674);border-color:#3279cc}
.captureBtn{background:linear-gradient(144deg,#0d3982,#081e51);color:#fff;border-color:#3a77c5;
 box-shadow:inset 0 1px #7cd9ff44,0 8px 19px #000c29a0}
.captureBtn:hover{background:linear-gradient(135deg,#1157ac,#082b6f);box-shadow:0 0 23px #057cff45}
.captureBtn small{color:#b9d9ff}.captureIcon{color:#7adfff}
.actionDialog{background:#071e48;color:#eaf7ff;border:1px solid #3d81d3}
.actionDialog h2{color:#fff}.actionDialog::backdrop{background:#01091bd9}
.scanThumb{background:#0a2551;border-color:#3c6db3}
.scanThumb>div{color:#d9edff}
#auth{color:#fff}.authWrap h2{color:#fff}.authWrap p{color:#b6d0f1}

/* Distinctive dashboard, based on user's selected dark-navy concept. */
.nxDashboard{margin:0 0 22px;position:relative;isolation:isolate}
.nxDashboardHero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;
 min-height:155px;padding:25px 29px 27px;background:linear-gradient(118deg,#07173f 10%,#0c3691 62%,#051845);
 border:1px solid #3173c4;border-radius:21px;box-shadow:inset 0 1px #a0eaff35,0 15px 35px #000b2b8f}
.nxDashboardHero::before{content:"";position:absolute;left:7%;width:105%;bottom:-58px;height:105px;
 border-radius:50%;border-top:2px solid #21d9ff;transform:rotate(-5deg);
 box-shadow:0 -12px 31px #07a4ff9e;opacity:.88;z-index:-1}
.nxDashboardHero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-2;
 background:radial-gradient(ellipse at 65% 96%,#076bfaac,transparent 63%)}
.nxHeroEyebrow{color:#81d9ff;font-size:11px;letter-spacing:2.1px;text-transform:uppercase;font-weight:750}
.nxDashboardHero h2{font-size:clamp(31px,4.2vw,49px);color:#fff;letter-spacing:1.2px;margin:2px 0;line-height:1.12}
.nxDashboardHero p{color:#d3eaff;margin:0;font-size:15px}
.nxHeroArt{opacity:.8;max-width:190px;width:26%;filter:drop-shadow(0 0 19px #35bfff77)}
.nxCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:18px}
.nxTile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-height:139px;
 padding:18px 9px;border-radius:18px;color:#fff;font-size:18px;font-weight:770;
 border:1px solid #2aa5fa;cursor:pointer;text-align:center;
 background:radial-gradient(ellipse at 50% -25%,#20d2ff91 0%,transparent 62%),
 linear-gradient(154deg,#0757b9 1%,#06449c 40%,#081c55 93%);
 box-shadow:inset 0 1px #91e5ff75, inset 0 -1px #1b86ff7d,0 8px 24px #000c35af}
.nxTile:hover,.nxTile:focus-visible{transform:translateY(-3px);border-color:#74edff;
 background:radial-gradient(ellipse at 50% -25%,#5de9ffad,transparent 62%),linear-gradient(154deg,#1077dd,#053887 95%);
 box-shadow:0 0 30px #009cff6b,inset 0 1px #dbfaffbb}
.nxTileIcon{width:43px;height:43px;stroke:#f5fcff;stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round;
 filter:drop-shadow(0 0 10px #3bcaff7c)}
.nxTileText{line-height:1.16}
.nxDashboardFoot{padding:12px 5px 0;color:#9ebce7;font-size:12px;text-align:center}
.nxInfoNotice{padding:10px 13px;border:1px solid #3983be;border-radius:9px;background:#0a326a;color:#f0f9ff;font-size:13px;margin-bottom:12px}
.nxSidebar{display:none}
.nxBottomNav{display:none}

@media(min-width:1120px){
  body:has(#workspace:not(.hide)) header{margin-left:236px}
  body:has(#workspace:not(.hide)) main.shell{margin-left:236px;max-width:none;padding:23px clamp(22px,3vw,60px) 90px}
  body:has(#workspace:not(.hide)) header .shell{max-width:none;padding-inline:clamp(22px,3vw,60px)}
  #workspace:not(.hide) .nxSidebar{display:flex;position:fixed;inset:0 auto 0 0;z-index:20;width:236px;
   flex-direction:column;gap:10px;padding:25px 16px 16px;overflow-y:auto;
   background:linear-gradient(180deg,#020b23,#051639 58%,#061b46);border-right:1px solid #265397;box-shadow:12px 0 44px #000b25b8}
  .nxSideBrand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:900;color:#fff;letter-spacing:.6px;
   padding:4px 9px 22px;border-bottom:1px solid #25529e}
  .nxSideBrand img{width:38px;height:38px;object-fit:contain}
  .nxSideLabel{padding:15px 12px 0;font-size:11px;letter-spacing:1.5px;color:#8babdb;text-transform:uppercase}
  .nxSideItem{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:11px;
   display:flex;align-items:center;gap:10px;color:#d9eaff;padding:11px 12px;font-size:14px;font-weight:640}
  .nxSideItem svg{width:19px;height:19px;flex:none;stroke:#cee5ff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .nxSideItem:hover,.nxSideItem.nxSelected{background:linear-gradient(105deg,#0975f0,#164aca);border-color:#4bbcf6;color:#fff;box-shadow:0 3px 16px #0072ff61}
  .nxSideDivider{height:1px;background:#254b8e;margin:6px 10px}
  .nxSidebarFooter{margin-top:auto;border-top:1px solid #254b8e;padding:17px 10px 2px;color:#97bfe8;font-size:11px}
  header .tabs{display:none!important}
  .nxDashboardHero{min-height:170px}
  .nxTile{min-height:152px}
}
@media(max-width:760px){
  header{padding-top:7px}
  header .shell{padding-inline:13px}
  header .top{align-items:flex-start;gap:7px}
  header h1{font-size:26px;white-space:nowrap}
  .flag{font-size:10px;letter-spacing:1.4px}
  .tagline{font-size:13px}
  header .userbar{max-width:150px;font-size:11px}
  header .userbar button{font-size:11px;padding:7px}
  .tabs{margin-top:14px;gap:6px;padding-bottom:11px}
  .tabs button{font-size:12px;padding:8px 10px}
  main.shell{padding:13px 12px 118px}
  .nxDashboardHero{min-height:133px;padding:19px 18px;border-radius:17px}
  .nxDashboardHero h2{font-size:32px}
  .nxDashboardHero p{font-size:12px}
  .nxHeroArt{width:21%}
  .nxCards{gap:8px;margin-top:11px}
  .nxTile{min-height:116px;border-radius:12px;gap:8px;padding:10px 4px;font-size:13px}
  .nxTileIcon{height:34px;width:34px}
  .nxDashboardFoot{padding:12px 10px;font-size:11px}
  #workspace:not(.hide) .nxBottomNav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
   position:fixed;left:0;right:0;bottom:0;z-index:10;background:#031334ed;
   border-top:1px solid #286cbd;box-shadow:0 -7px 25px #000a24;
   padding:8px 5px max(9px,env(safe-area-inset-bottom));backdrop-filter:blur(15px)}
  .nxBottomItem{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:5px 0;
   color:#b4d1f5;background:transparent;border:0;border-radius:10px;font-size:10px;font-weight:650}
  .nxBottomItem svg{height:23px;width:23px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .nxBottomItem.nxSelected{background:#0d56bc;color:white}
  .captureActions{gap:8px}.captureBtn{min-height:102px}.captureBtn small{font-size:10px}
  .panel{border-radius:14px;padding:14px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Brand logo always stays the compact app symbol, never a full-size illustration. */
header .brandTitle{display:flex;align-items:center;gap:12px;margin:4px 0 2px;line-height:1.05}
header .brandLogo{display:block;width:49px;height:49px;max-width:49px;object-fit:contain;flex:none;margin:0;border-radius:12px}
@media(max-width:760px){header .brandTitle{font-size:26px;gap:8px}header .brandLogo{width:37px;height:37px;max-width:37px;border-radius:10px}}

/* Share only an already authenticated private original; dialog remains inside app. */
.nxShareDialog{max-width:min(620px,94vw)}
.nxSharePickList{display:grid;gap:9px;margin:14px 0}
.nxShareChoice{text-align:left;white-space:normal;overflow-wrap:anywhere}
#nxShareStatus{min-height:35px;margin:12px 0;overflow-wrap:anywhere}

/* Compact language picker, visible both before and after sign-in. */
.nxLanguageWrap{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:#d9efff;font-size:12px;white-space:nowrap}
.nxLanguageWrap select{min-width:94px;padding:7px 9px;border:1px solid #438acf;border-radius:10px;background:#09245a;color:#f7fbff}
@media(max-width:760px){
  header .top{flex-wrap:wrap}
  .nxLanguageWrap{order:2;margin-bottom:3px}
  header .userbar{order:3}
  .nxLanguageWrap label{font-size:11px}
  .nxLanguageWrap select{min-width:87px;font-size:12px;padding:6px}
}

/* Opt-in reminder controls. No proprietary Android notification permission on load. */
.nxReminderControls{margin:8px 0;gap:8px}
.nxReminderLine{display:flex;align-items:center;gap:11px;padding:11px 12px;margin:8px 0;
  border:1px solid #bdd5f0;border-radius:12px;background:#f5faff;color:#153e73;overflow-wrap:anywhere}
.nxReminderLine input[type=checkbox]{width:19px;height:19px;flex:none;accent-color:#1554c2}
.nxReminderLine span{display:block;min-width:0}
.nxReminderLine small{display:block;margin-top:3px;color:#426891;font-size:12px}
.nxPaymentRow{justify-content:space-between;gap:12px}
.nxPaymentRow .btn{flex:none}
.nxPaymentList{margin-top:16px}
.nxReminderOptIn{width:max-content;max-width:100%}
@media(max-width:560px){.nxPaymentRow{flex-wrap:wrap}.nxPaymentRow .btn{margin-left:auto}}

/* Samsung/Android: the bottom bar is the sole navigation at phone widths.
   Keep legacy #tabs buttons in the DOM for programmatic view routing. */
@media (max-width:760px) {
  header #tabs { display:none!important; }
}
