/* =========================================================
   TOKENS
   ========================================================= */
:root{
  --bg0:#020617;
  --bg1:#06122b;
  --panel:rgba(6, 18, 43, .62);
  --panel-strong:rgba(6, 18, 43, .78);
  --border:rgba(148,163,184,.16);
  --text:#e5e7eb;
  --muted:rgba(226,232,240,.72);
  --muted-soft:rgba(226,232,240,.6);
  --control-bg:rgba(2,6,23,.4);
  --control-text:rgba(226,232,240,.9);
  --cyan:#22d3ee;
  --blue:#3b82f6;
  --violet:#8b5cf6;
  --shadow:rgba(34,211,238,.18);
  --success:#34d399;
  --warning:#f59e0b;
}

/* =========================================================
   BASE
   ========================================================= */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 800px at 15% 20%, rgba(34,211,238,.14), transparent 55%),
    radial-gradient(900px 600px at 85% 30%, rgba(139,92,246,.12), transparent 55%),
    radial-gradient(1100px 700px at 50% 90%, rgba(59,130,246,.10), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  background-attachment: fixed;
  overflow-x:hidden;
}

a{color:var(--cyan);text-decoration:none}
a:hover{text-decoration:underline;color:#67e8f9}

/* subtle animated glow */
.aurora{
  position:fixed; inset:-30%;
  background:
    radial-gradient(closest-side, rgba(34,211,238,.10), transparent 70%),
    radial-gradient(closest-side, rgba(59,130,246,.10), transparent 70%),
    radial-gradient(closest-side, rgba(139,92,246,.08), transparent 70%);
  filter: blur(40px);
  animation: drift 14s ease-in-out infinite alternate;
  pointer-events:none;
  opacity:.75;
  z-index:0;
}
@keyframes drift{
  from{transform: translate(-2%, -1%) rotate(-2deg) scale(1.02)}
  to{transform: translate(2%, 1%) rotate(2deg) scale(1.06)}
}

/* grid overlay */
.grid{
  position:fixed; inset:0;
  background-image:
    linear-gradient(to right, rgba(148,163,184,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(148,163,184,.06) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(circle at 50% 40%, black 0%, transparent 70%);
  pointer-events:none;
  z-index:0;
}

/* =========================================================
   GRID SYSTEM
   ========================================================= */
.layout-grid,
.form-grid,
.filters,
.filters-row{
  display:grid;
  gap:var(--grid-gap, 16px);
  grid-template-columns:var(--grid-template, 1fr);
}

.grid-2-up{--grid-template:repeat(2, minmax(0,1fr));}
.grid-3-up{--grid-template:repeat(3, minmax(0,1fr));}
.grid-4-up{--grid-template:repeat(4, minmax(0,1fr));}
.grid-split-main{--grid-template:minmax(0, 1.1fr) minmax(0, .9fr);}
.grid-split-sidebar{--grid-template:minmax(0, 1.4fr) minmax(280px, .8fr);}
.grid-footer{--grid-template:1.2fr .8fr .8fr;}
.grid-form-3{--grid-template:repeat(3, minmax(0,1fr)); --grid-gap:12px;}
.grid-filter-4{--grid-template:repeat(4, minmax(0,1fr)); --grid-gap:12px;}
.grid-auto-fill-340{--grid-template:repeat(auto-fill, minmax(340px, 1fr));}
.grid-auto-fit-170{--grid-template:repeat(auto-fit, minmax(170px, 1fr));}
.grid-auto-fit-180{--grid-template:repeat(auto-fit, minmax(180px, 1fr));}
.grid-auto-fit-190{--grid-template:repeat(auto-fit, minmax(190px, 1fr));}
.grid-auto-fit-240{--grid-template:repeat(auto-fit, minmax(240px, 1fr));}
.grid-vat-filter{
  --grid-template:minmax(220px, 1.5fr) minmax(150px, .9fr) minmax(150px, .9fr) minmax(140px, .8fr) auto;
}
.grid-date-filter{
  --grid-template:minmax(0, 1fr) minmax(0, 1fr) auto;
}

@media (max-width: 1100px){
  .grid-4-up{--grid-template:repeat(2, minmax(0,1fr));}
  .grid-split-sidebar{--grid-template:1fr;}
  .dashboard-grid{--grid-template:1fr;}
}

@media (max-width: 980px){
  .grid-3-up{--grid-template:repeat(2, minmax(0,1fr));}
  .grid-footer{--grid-template:1fr 1fr;}
  .grid-vat-filter{--grid-template:1fr 1fr;}
  .grid-form-3{--grid-template:repeat(2, minmax(0,1fr));}
  .hero-grid{--grid-template:1fr;}
  .readiness-grid{--grid-template:1fr;}
  .login-grid{--grid-template:1fr;}
  .register-grid{--grid-template:1fr;}
  .agent-connection-form{--grid-template:repeat(2, minmax(0, 1fr));}
}

@media (max-width: 900px){
  .grid-date-filter{--grid-template:1fr;}
  .grid-2-up{--grid-template:1fr;}
}

@media (max-width: 720px){
  .grid-vat-filter{--grid-template:1fr;}
}

@media (max-width: 700px){
  .grid-3-up,
  .grid-4-up,
  .grid-split-main,
  .grid-footer,
  .grid-form-3{
    --grid-template:1fr;
  }
  .payslip-filter-form,
  .agent-connection-form{
    --grid-template:1fr;
  }
}

/* =========================================================
   SHARED PRIMITIVES
   ========================================================= */
/* shared elements */
.dot{
  width:10px;height:10px;border-radius:50%;
  background: var(--cyan);
  box-shadow: 0 0 14px rgba(34,211,238,.75), 0 0 30px rgba(34,211,238,.30);
  animation:pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{transform:scale(.9); opacity:.85}
  50%{transform:scale(1.15); opacity:1}
}

.glow{
  background: linear-gradient(90deg, rgba(226,232,240,.95), rgba(34,211,238,.95), rgba(139,92,246,.95));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter: drop-shadow(0 0 14px rgba(34,211,238,.20))
          drop-shadow(0 0 24px rgba(139,92,246,.12));
}

p{
  margin:0;
  color: var(--muted);
  font-size: 16px;
  line-height:1.65;
  max-width: 68ch;
  position:relative;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 11px 14px;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.18);
  background: rgba(2,6,23,.38);
  color: rgba(226,232,240,.92);
  text-decoration:none;
  font-size: 14px;
  letter-spacing:.01em;
  user-select:none;
}

.btn.btn-sm,
.btn.btn-mini{
  gap:8px;
  padding:6px 10px;
  border-radius:10px;
  font-size:12px;
}

.btn.primary{
  border-color: rgba(34,211,238,.26);
  box-shadow: 0 0 0 1px rgba(34,211,238,.10) inset, 0 0 30px rgba(34,211,238,.10);
}

.btn.btn-secondary{
  background: rgba(2,6,23,.26);
  border-color: rgba(148,163,184,.14);
}

.btn.danger{
  background:rgba(239,68,68,.18);
  color:#f87171;
  border-color:rgba(239,68,68,.35);
}

.btn.danger:hover{
  background:rgba(239,68,68,.32);
}

.btn:hover{
  border-color: rgba(34,211,238,.32);
  transform: translateY(-1px);
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
  box-shadow: 0 0 0 1px rgba(34,211,238,.12) inset, 0 0 40px rgba(34,211,238,.12);
}

.btn:disabled{
  opacity:.4;
  cursor:not-allowed;
  box-shadow:none;
  border-color: rgba(148,163,184,.14);
}

.btn.btn-mini.active{
  border-color: rgba(34,211,238,.4);
  box-shadow: 0 0 0 1px rgba(34,211,238,.18) inset;
}

.actions{
  margin-top: 18px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  position:relative;
}

.mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}
.k{color: rgba(34,211,238,.9)}
.v{color: rgba(226,232,240,.75)}

@media (prefers-reduced-motion: reduce){
  .aurora,.dot{animation:none}
  .btn:hover{transform:none}
  .trip-route-chip{transition:none}
}

/* =========================================================
   STATUS / ERROR PAGES
   ========================================================= */
/* status/error pages */
.status-wrap{
  position:relative;
  height:100%;
  display:grid;
  place-items:center;
  padding:24px;
}

.status-card{
  width:min(920px, 100%);
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 28px 28px 22px;
  box-shadow:
    0 20px 70px rgba(0,0,0,.55),
    0 0 0 1px rgba(2,6,23,.4) inset;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position:relative;
  overflow:hidden;
}

.status-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(700px 220px at 30% 0%, rgba(34,211,238,.18), transparent 55%),
              radial-gradient(600px 200px at 80% 10%, rgba(139,92,246,.16), transparent 55%);
  pointer-events:none;
}

.status-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  position:relative;
}

.status-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 8px;
  border-radius: 999px;
  border: 1px solid rgba(34,211,238,.24);
  background: rgba(2,6,23,.35);
  box-shadow: 0 0 30px rgba(34,211,238,.10);
  font-size: 9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: rgba(226,232,240,.85);
  white-space:nowrap;
}

h1{
  margin: 18px 0 8px;
  font-size: clamp(32px, 5vw, 54px);
  line-height:1.05;
  letter-spacing:-.03em;
  position:relative;
  text-shadow:
    0 0 18px rgba(34,211,238,.20),
    0 0 42px rgba(59,130,246,.14);
}

.status-foot{
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid rgba(148,163,184,.12);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  position:relative;
  color: rgba(226,232,240,.55);
  font-size: 12px;
}

/* =========================================================
   LANDING
   ========================================================= */
/* landing page styles */
.page{
  position:relative;
  z-index:1;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.container{
  width:min(1120px, 100%);
  margin:0px auto;
  padding:0 12px;
}

.container-wide{
  width:min(1480px, 100%);
}

.container-full{
  width:100%;
  max-width:none;
  padding:0 20px;
}

.nav{
  position:sticky;
  top:0;
  z-index:10;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: linear-gradient(180deg, rgba(2,6,23,.78), rgba(2,6,23,.38));
  border-bottom:1px solid rgba(148,163,184,.12);
}

.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:9px 0;
  padding-left:max(24px, env(safe-area-inset-left));
  padding-right:max(24px, env(safe-area-inset-right));
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  font-weight:600;
  letter-spacing:.02em;
}

.logo{
  width:36px;height:36px;border-radius:12px;
  display:grid;place-items:center;
  background: radial-gradient(circle at 40% 40%, rgba(34,211,238,.8), rgba(59,130,246,.15) 60%),
              linear-gradient(135deg, rgba(2,6,23,.9), rgba(139,92,246,.45));
  box-shadow: 0 0 0 1px rgba(34,211,238,.2) inset, 0 10px 30px rgba(34,211,238,.18);
  font-size:16px;
}

.nav-links{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  gap:4px;
  flex-wrap:nowrap;
  font-size:12px;
  padding:4px 8px 2px 8px;
  border-radius:8px;
  border:1px solid rgba(56,189,248,.18);
  background:
    linear-gradient(140deg, rgba(15,23,42,.9), rgba(2,6,23,.72)),
    radial-gradient(120% 180% at 0% 0%, rgba(34,211,238,.14), transparent 62%);
  box-shadow:
    inset 0 1px 0 rgba(148,163,184,.18),
    0 10px 34px rgba(2,6,23,.45);
}

.nav-links a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 8px;
  border-radius:6px;
  border:1px solid transparent;
  color:rgba(226,232,240,.84);
  background:rgba(15,23,42,.24);
  text-decoration:none;
  font-weight:500;
  letter-spacing:.01em;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.nav-links a:hover{
  color:rgba(248,250,252,.96);
  background:rgba(30,41,59,.62);
  border-color:rgba(56,189,248,.32);
  transform:translateY(-1px);
}

.nav-links a:focus-visible{
  outline:none;
  color:rgba(248,250,252,.96);
  border-color:rgba(56,189,248,.65);
  box-shadow:0 0 0 3px rgba(34,211,238,.18);
}

.nav-links a.is-active{
  color:rgba(248,250,252,.98);
  border-color:rgba(56,189,248,.45);
  background:
    linear-gradient(135deg, rgba(8,145,178,.34), rgba(30,41,59,.72)),
    rgba(15,23,42,.84);
  box-shadow:
    inset 0 1px 0 rgba(125,211,252,.28),
    0 8px 24px rgba(8,145,178,.22);
}

.nav-menu{
  position:relative;
}

.nav-menu-trigger{
  list-style:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:4px 8px;
  border-radius:6px;
  border:1px solid transparent;
  color:rgba(226,232,240,.84);
  background:rgba(15,23,42,.24);
  text-decoration:none;
  font-weight:500;
  letter-spacing:.01em;
  cursor:pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.nav-menu-trigger::-webkit-details-marker{
  display:none;
}

.nav-menu-trigger:hover{
  color:rgba(248,250,252,.96);
  background:rgba(30,41,59,.62);
  border-color:rgba(56,189,248,.32);
}

.nav-menu[open] .nav-menu-trigger,
.nav-menu.is-active .nav-menu-trigger{
  color:rgba(248,250,252,.98);
  border-color:rgba(56,189,248,.45);
  background:
    linear-gradient(135deg, rgba(8,145,178,.34), rgba(30,41,59,.72)),
    rgba(15,23,42,.84);
  box-shadow:
    inset 0 1px 0 rgba(125,211,252,.28),
    0 8px 24px rgba(8,145,178,.22);
}

.nav-menu-trigger i{
  font-size:11px;
  opacity:.85;
  transition: transform .2s ease;
}

.nav-menu[open] .nav-menu-trigger i{
  transform: rotate(180deg);
}

.nav-menu-list{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:180px;
  display:grid;
  gap:6px;
  padding:8px;
  border-radius:8px;
  border:1px solid rgba(56,189,248,.26);
  background:
    linear-gradient(165deg, rgba(15,23,42,.97), rgba(2,6,23,.94)),
    radial-gradient(130% 140% at 100% 0%, rgba(34,211,238,.12), transparent 60%);
  box-shadow:
    inset 0 1px 0 rgba(148,163,184,.18),
    0 14px 34px rgba(2,6,23,.6);
  z-index:20;
}

.nav-menu:not([open]) .nav-menu-list{
  display:none;
}

.nav-menu-list a{
  justify-content:flex-start;
  width:100%;
}

.nav-actions{
  display:flex;
  flex-shrink:0;
  gap:10px;
  align-items:center;
}

.nav-notification-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.nav-notification-link.has-unread{
  border-color: rgba(251,191,36,.4);
  color:#f8fafc;
  box-shadow: inset 0 0 0 1px rgba(251,191,36,.08);
}

.nav-search-form{
  display:flex;
  align-items:center;
}

.nav-search-input{
  width:180px;
  padding:8px 12px;
  font-size:13px;
  font-family:inherit;
  color:var(--text);
  background:rgba(6,18,43,.72);
  border:1px solid rgba(148,163,184,.22);
  border-radius:8px;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, width .25s ease;
  -webkit-appearance:none;
}

.nav-search-input::placeholder{
  color:rgba(226,232,240,.42);
}

.nav-search-input:focus{
  border-color:rgba(34,211,238,.55);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
  width:220px;
}

/* Search results page */
.search-results-form{
  margin-bottom:20px;
}

.search-results-input-row{
  display:flex;
  gap:10px;
  align-items:center;
}

.search-results-input{
  flex:1;
  max-width:540px;
  padding:10px 14px;
  font-size:15px;
  font-family:inherit;
  color:var(--text);
  background:rgba(6,18,43,.72);
  border:1px solid rgba(148,163,184,.22);
  border-radius:8px;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
  -webkit-appearance:none;
}

.search-results-input::placeholder{
  color:rgba(226,232,240,.42);
}

.search-results-input:focus{
  border-color:rgba(34,211,238,.55);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}

.search-results-hint{
  margin-top:8px;
  font-size:12px;
  color:rgba(226,232,240,.52);
}

.search-results-summary{
  margin:16px 0 8px;
  font-size:14px;
  color:var(--muted);
}

.search-group{
  margin-top:24px;
}

.search-group-title{
  font-size:15px;
  font-weight:600;
  color:var(--cyan);
  margin:0 0 10px;
  display:flex;
  align-items:center;
  gap:6px;
}

.search-group-count{
  font-size:12px;
  font-weight:400;
  color:var(--muted);
}

.search-group-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.search-group-item a{
  display:flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:6px;
  font-size:14px;
  color:var(--text);
  background:rgba(30,41,59,.38);
  border:1px solid rgba(148,163,184,.10);
  transition:background .15s ease, border-color .15s ease;
}

.search-group-item a:hover{
  background:rgba(30,41,59,.72);
  border-color:rgba(56,189,248,.28);
  text-decoration:none;
}

.search-no-results{
  margin-top:20px;
  padding:16px;
  border-radius:8px;
  background:rgba(30,41,59,.38);
  border:1px solid rgba(148,163,184,.12);
  color:var(--muted);
  font-size:14px;
  display:flex;
  align-items:center;
  gap:10px;
}

.muted-sm{
  font-size:12px;
  color:rgba(226,232,240,.52);
  margin-top:6px;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(34,211,238,.26);
  background: rgba(2,6,23,.42);
  color:rgba(226,232,240,.9);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.hero{
  padding:56px 0 24px;
}

.hero-card{
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 32px;
  box-shadow:
    0 20px 70px rgba(0,0,0,.55),
    0 0 0 1px rgba(2,6,23,.4) inset;
  position:relative;
  overflow:hidden;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(700px 260px at 30% 0%, rgba(34,211,238,.18), transparent 55%),
              radial-gradient(600px 240px at 80% 10%, rgba(139,92,246,.16), transparent 55%);
  pointer-events:none;
}

.hero-grid{
  --grid-gap:32px;
  align-items:center;
  position:relative;
}

.hero-metrics{
  display:grid;
  gap:12px;
}

.metric{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.45);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:14px;
}

.metric strong{color:rgba(226,232,240,.95)}
.metric span{color:rgba(226,232,240,.6)}

.section{
  padding:36px 0 8px;
}

.section h2{
  margin:0 0 14px;
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing:-.02em;
}

.feature-card{
  position:relative;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 18px 18px 16px;
  min-height:170px;
  overflow:hidden;
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
}

.feature-card::before{
  content:"";
  position:absolute; inset:-20% 40% auto auto;
  height:140px; width:140px;
  background: radial-gradient(circle, rgba(34,211,238,.18), transparent 60%);
  pointer-events:none;
}

.feature-card h3{
  margin:0 0 8px;
  font-size:18px;
}

.feature-card p{
  font-size:14px;
}

.feature-card .tag{
  display:inline-block;
  margin-top:12px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.85);
  border:1px solid rgba(148,163,184,.18);
  background: rgba(2,6,23,.4);
}

.readiness-grid{
  margin-top:16px;
}

.readiness-card{
  position:relative;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 20px 18px;
  box-shadow: 0 12px 44px rgba(0,0,0,.35);
  overflow:hidden;
}

.readiness-card::before{
  content:"";
  position:absolute; inset:-20% auto auto 50%;
  height:160px; width:160px;
  background: radial-gradient(circle, rgba(34,211,238,.15), transparent 60%);
  pointer-events:none;
}

.readiness-card-featured{
  border-color: rgba(34,211,238,.35);
  box-shadow: 0 0 0 1px rgba(34,211,238,.12) inset, 0 20px 60px rgba(34,211,238,.18);
}

.readiness-card h3{
  margin:8px 0 10px;
  font-size:20px;
  letter-spacing:-.02em;
}

.tagline{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(34,211,238,.26);
  background: rgba(2,6,23,.42);
  color:rgba(226,232,240,.88);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.pipeline-list{
  list-style:none;
  padding:0;
  margin:18px 0 0;
  display:grid;
  gap:12px;
}

.pipeline-item{
  display:grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap:14px;
  align-items:flex-start;
  padding:15px 16px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.45);
  box-shadow: 0 10px 34px rgba(0,0,0,.24);
}

.pipeline-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  border-radius:12px;
  background: linear-gradient(135deg, rgba(34,211,238,.18), rgba(139,92,246,.18));
  border:1px solid rgba(34,211,238,.2);
  color:rgba(226,232,240,.95);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.pipeline-item strong{
  display:block;
  margin-bottom:4px;
  color:rgba(226,232,240,.96);
}

.pipeline-item span:last-child{
  color:rgba(226,232,240,.68);
  font-size:14px;
}

.pricing{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:16px;
  margin-top:14px;
}

.price-card{
  position:relative;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 20px 18px;
  box-shadow: 0 12px 44px rgba(0,0,0,.35);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.price-card.featured{
  border-color: rgba(34,211,238,.35);
  box-shadow: 0 0 0 1px rgba(34,211,238,.12) inset, 0 20px 60px rgba(34,211,238,.18);
  transform: translateY(-4px);
}

.price-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.price{
  font-size:30px;
  letter-spacing:-.02em;
}

.price small{
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.price-list{
  display:grid;
  gap:6px;
  font-size:14px;
  color:rgba(226,232,240,.78);
}

.price-list span{
  display:flex;
  align-items:center;
  gap:6px;
}

.price-list i{
  font-style:normal;
  color:var(--success);
}

.footer{
  margin-top:36px;
  padding:28px 0 40px;
  border-top:1px solid rgba(148,163,184,.12);
  color: rgba(226,232,240,.6);
  background: rgba(2,6,23,.72);
}

.footer h4{
  margin:0 0 10px;
  font-size:14px;
  color:rgba(226,232,240,.85);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.footer a{color:rgba(226,232,240,.6); text-decoration:none; font-size:14px;}

.nav-favorite-form{
  display:inline-flex;
  margin:0;
}

.favorite-toggle{
  min-width:42px;
}

.favorite-toggle.is-active{
  color:#facc15;
  border-color:rgba(250,204,21,.35);
  box-shadow:
    0 0 0 1px rgba(250,204,21,.16) inset,
    0 10px 28px rgba(250,204,21,.14);
}

.favorite-toggle-switch{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--muted-soft);
}

.favorite-toggle-switch input{
  accent-color:var(--cyan);
}

.favorite-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.favorite-actions form{
  margin:0;
}

@media (max-width: 980px){
  .pricing{grid-template-columns: 1fr;}
  .price-card.featured{transform:none}
}

@media (max-width: 700px){
  .nav-inner{flex-direction:column; align-items:flex-start;}
  .pipeline-item{grid-template-columns: 48px minmax(0,1fr);}
}

@media (max-width: 600px){
  .container{padding:0 16px;}
  .nav-inner{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }
  .nav-links{gap:6px; width:100%; padding:7px;}
  .nav-links a{padding:7px 11px; font-size:12px;}
  .nav-menu-trigger{padding:7px 11px; font-size:12px;}
  .nav-menu-list{left:0; right:auto; min-width:160px;}
  .nav-actions{width:100%; justify-content:flex-start;}
  .pill{font-size:11px; padding:7px 10px;}
  .btn{padding:10px 12px; font-size:13px;}
  h1{font-size: clamp(28px, 8vw, 40px);}
  .hero-card{padding:22px;}
  .status-card{padding:22px;}
  .section{padding:28px 0 6px;}
  .table-wrap{padding:14px;}
  .table-scroll{-webkit-overflow-scrolling: touch;}
  .table-head,.table-footer{gap:10px;}
  .price{font-size:26px;}
}

@media (max-height: 500px) and (orientation: landscape){
  .container{
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
  }
}

@media print{
  .chrome-no-print{
    display:none !important;
  }
}

/* report page */
.report{
  padding:40px 0 18px;
}

.report-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.report-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
}

.payslip-filter-form{
  margin-top:0;
  --grid-template:140px 70px auto;
  align-items:end;
}

.payslip-filter-form .btn{
  align-self:end;
  min-height:44px;
}

.filters{
  margin-top:24px;
  padding:18px;
  border-radius:18px;
  background: rgba(2,6,23,.55);
  border:1px solid rgba(148,163,184,.16);
  --grid-gap:12px;
}

.filters-row{
  --grid-template:repeat(4, minmax(0,1fr));
  --grid-gap:12px;
}

.filters-actions{
  grid-template-columns: auto auto 1fr;
  align-items:center;
}

.filters-meta{
  justify-self:end;
  font-size:13px;
}

#import-partner .import-partner-warning{
  grid-column:1 / -1;
  width:100%;
  white-space:normal;
  text-transform:none;
  letter-spacing:.04em;
  line-height:1.35;
}

#import-partner .import-partner-run-form{
  grid-column:1 / -1;
  width:100%;
}

.task-overview{
  margin-top:20px;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap:12px;
}

.task-stat{
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.45);
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
}

.task-stat-label{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.62);
}

.task-stat-value{
  margin-top:8px;
  font-size:28px;
  line-height:1;
  color:rgba(226,232,240,.95);
}

.task-board{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}

.task-column{
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background: rgba(2,6,23,.42);
  min-width:0;
}

.task-column-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid rgba(148,163,184,.12);
}

.task-column-head h3{
  margin:0;
  font-size:14px;
  letter-spacing:.02em;
}

.task-dropzone{
  min-height:150px;
  padding:10px;
  display:grid;
  gap:10px;
  transition:background .15s ease;
  border-radius:0 0 14px 14px;
}

.task-dropzone.drag-over{
  background: rgba(34,211,238,.08);
}

.task-empty{
  margin:0;
  display:none;
  color:rgba(226,232,240,.5);
  font-size:12px;
  border:1px dashed rgba(148,163,184,.22);
  border-radius:10px;
  padding:12px;
  text-align:center;
}

.task-dropzone.is-empty .task-empty{
  display:block;
}

.task-card{
  padding:10px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(15,23,42,.65);
  display:grid;
  gap:10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.24);
}

.task-card-private{
  border-color: rgba(245,158,11,.4);
}

.task-card-readonly{
  opacity:.78;
}

.task-card.dragging{
  opacity:.6;
}

.task-card.task-card-saving{
  opacity:.6;
}

.task-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:6px;
}

.task-card-title{
  color:rgba(226,232,240,.95);
  font-weight:600;
  line-height:1.35;
  text-decoration:none;
}

.task-card-title:hover{
  color:#67e8f9;
}

.task-card-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}

.task-card-owner{
  font-size:12px;
  color:rgba(226,232,240,.62);
}

.task-card-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.task-card-visibility{
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.field{
  display:grid;
  gap:6px;
  min-width:0;
  overflow:hidden;
}

.field label,
.form-grid .field span,
.meta-label,
.kpi-title,
.region-name,
.nested-table thead th{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted-soft);
}

.field input,
.field select,
.field textarea,
.form-grid input,
.form-grid select,
.form-grid textarea{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background: var(--control-bg);
  color:var(--control-text);
  font-size:14px;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

.field select,
.form-grid select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  padding-right:28px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.field input[type="date"],
.form-grid input[type="date"]{
  padding-right:8px;
}

.field input[type="date"]::-webkit-calendar-picker-indicator,
.field input[type="time"]::-webkit-calendar-picker-indicator,
.field input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.field input[type="month"]::-webkit-calendar-picker-indicator,
.field input[type="week"]::-webkit-calendar-picker-indicator,
.form-grid input[type="date"]::-webkit-calendar-picker-indicator,
.form-grid input[type="time"]::-webkit-calendar-picker-indicator,
.form-grid input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.form-grid input[type="month"]::-webkit-calendar-picker-indicator,
.form-grid input[type="week"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(1.2);
  opacity: .95;
  cursor: pointer;
}


.currency-fetch-form{
  display:flex;
  align-items:flex-end;
  gap:12px;
}

.currency-fetch-card{
  margin-bottom:18px;
  padding:14px 18px;
  border-color:rgba(34,211,238,.24);
  background:
    radial-gradient(450px 120px at 15% 0%, rgba(34,211,238,.14), transparent 60%),
    rgba(2,6,23,.6);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.08) inset,
    0 18px 42px rgba(0,0,0,.35);
}

.currency-fetch-date{
  display:grid;
  gap:6px;
  min-width:0;
  flex:1 1 220px;
}

.currency-fetch-date label{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.72);
}

.currency-fetch-date input[type="date"]{
  height:42px;
  width:100%;
  min-width:0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(34,211,238,.28);
  background:
    linear-gradient(180deg, rgba(2,6,23,.82), rgba(2,6,23,.58));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.08) inset,
    0 0 22px rgba(34,211,238,.08);
  color:rgba(226,232,240,.94);
  font-size:14px;
}

.currency-fetch-date input[type="date"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(1.2);
  opacity:.95;
  cursor:pointer;
}

.currency-fetch-date input[type="date"]:focus-visible{
  outline:none;
  border-color:rgba(34,211,238,.55);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.2) inset,
    0 0 0 3px rgba(34,211,238,.18),
    0 0 26px rgba(34,211,238,.2);
}

.currency-fetch-form .btn{
  height:42px;
  white-space:nowrap;
}

.table-wrap{
  margin-top:24px;
  display:grid;
  gap:12px;
}

.table-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.trip-map-subtitle{
  margin-top:6px;
  max-width:62ch;
  font-size:13px;
}

.trip-map-card{
  overflow:hidden;
}

.trip-map-tools{
  align-items:center;
  flex-wrap:wrap;
}

.trip-map-shell{
  display:grid;
  gap:14px;
}

.trip-map-stage{
  position:relative;
  min-height:360px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.14);
  background:
    radial-gradient(900px 340px at 18% 18%, rgba(34,211,238,.12), transparent 58%),
    radial-gradient(720px 300px at 82% 18%, rgba(139,92,246,.12), transparent 56%),
    linear-gradient(180deg, rgba(2,6,23,.92), rgba(6,18,43,.92));
}

.trip-map-stage::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right, rgba(148,163,184,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(148,163,184,.05) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image: radial-gradient(circle at 50% 45%, black 0%, transparent 84%);
  pointer-events:none;
}

.trip-map-canvas{
  position:relative;
  min-height:360px;
}

.trip-map-canvas svg{
  display:block;
  width:100%;
  height:auto;
}

.trip-map-tooltip{
  position:absolute;
  z-index:3;
  max-width:240px;
  display:grid;
  gap:4px;
  padding:12px 13px;
  border-radius:12px;
  border:1px solid rgba(34,211,238,.2);
  background:rgba(2,6,23,.9);
  color:rgba(226,232,240,.94);
  box-shadow:
    0 12px 32px rgba(0,0,0,.38),
    0 0 0 1px rgba(34,211,238,.08) inset;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  pointer-events:none;
}

.trip-map-tooltip strong{
  font-size:13px;
  color:#f8fafc;
}

.trip-map-tooltip span{
  display:block;
  font-size:11px;
  line-height:1.35;
  color:rgba(226,232,240,.72);
}

.trip-map-status{
  position:absolute;
  left:16px;
  bottom:14px;
  z-index:2;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(148,163,184,.12);
  background:rgba(2,6,23,.55);
  color:rgba(226,232,240,.68);
  font-size:11px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.trip-map-legend{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  max-width:min(100%, 420px);
}

.trip-map-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.12);
  background:rgba(2,6,23,.55);
  color:rgba(226,232,240,.72);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.trip-map-swatch{
  width:18px;
  height:10px;
  border-radius:999px;
  display:inline-block;
}

.trip-map-swatch-route{
  background:linear-gradient(90deg, rgba(34,211,238,.95), rgba(59,130,246,.88));
  box-shadow:0 0 14px rgba(34,211,238,.35);
}

.trip-map-swatch-country{
  width:10px;
  height:10px;
  background:rgba(226,232,240,.94);
  box-shadow:0 0 12px rgba(34,211,238,.28);
}

.trip-map-swatch-local{
  width:12px;
  height:12px;
  border:2px solid rgba(139,92,246,.82);
  background:transparent;
}

.trip-route-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.trip-route-chip{
  min-width:220px;
  max-width:100%;
  display:inline-flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,23,.44);
  color:rgba(226,232,240,.88);
  text-align:left;
  font:inherit;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  transition:
    transform .14s ease,
    border-color .14s ease,
    box-shadow .14s ease,
    opacity .14s ease;
}

.trip-route-chip:hover,
.trip-route-chip:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(34,211,238,.34);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.12) inset,
    0 0 24px rgba(34,211,238,.10);
  outline:none;
}

.trip-route-chip.is-inactive{
  opacity:.72;
}

.trip-route-chip.is-active{
  border-color:rgba(34,211,238,.44);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.18) inset,
    0 0 32px rgba(34,211,238,.14);
}

.trip-route-chip.is-dimmed{
  opacity:.42;
}

.trip-route-chip-seq{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(34,211,238,.28), rgba(59,130,246,.16));
  color:#f8fafc;
  font-size:12px;
  font-weight:700;
  box-shadow:0 0 18px rgba(34,211,238,.18);
}

.trip-route-chip-body{
  min-width:0;
  display:grid;
  gap:4px;
}

.trip-route-chip-body strong{
  display:block;
  color:#f8fafc;
  font-size:13px;
  line-height:1.3;
}

.trip-route-chip-body span{
  display:block;
  color:rgba(226,232,240,.68);
  font-size:11px;
  line-height:1.35;
}

.trip-map-sphere{
  fill:rgba(2,6,23,.42);
  stroke:rgba(34,211,238,.16);
  stroke-width:1.1;
}

.trip-map-graticule{
  fill:none;
  stroke:rgba(148,163,184,.08);
  stroke-width:.7;
}

.trip-map-land{
  fill:rgba(148,163,184,.08);
}

.trip-map-borders{
  fill:none;
  stroke:rgba(148,163,184,.12);
  stroke-width:.75;
}

.trip-map-route{
  transition:opacity .16s ease, filter .16s ease;
}

.trip-map-route.is-dimmed{
  opacity:.18;
}

.trip-map-route.is-active{
  filter:drop-shadow(0 0 12px rgba(34,211,238,.28)) drop-shadow(0 0 20px rgba(139,92,246,.18));
}

.trip-map-arc{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.trip-map-arc-glow{
  stroke-width:7;
}

.trip-map-arc-line{
  stroke-width:2.3;
}

.trip-map-node{
  fill:rgba(226,232,240,.94);
  stroke:rgba(2,6,23,.86);
  stroke-width:1.8;
}

.trip-map-node-destination{
  fill:rgba(34,211,238,.95);
}

.trip-map-node-local{
  fill:rgba(139,92,246,.34);
  stroke:rgba(139,92,246,.9);
  stroke-width:2.2;
}

.trip-map-seq circle{
  fill:rgba(2,6,23,.92);
  stroke:rgba(34,211,238,.32);
  stroke-width:1.4;
}

.trip-map-seq text{
  fill:#f8fafc;
  font-size:10px;
  font-weight:700;
}

@media (max-width: 760px){
  .trip-map-stage,
  .trip-map-canvas{
    min-height:300px;
  }

  .trip-map-legend{
    position:static;
    padding:14px 14px 0;
    justify-content:flex-start;
    max-width:none;
  }

  .trip-map-status{
    position:static;
    margin:0 14px 14px;
  }

  .trip-route-chip{
    width:100%;
    min-width:0;
  }
}

.table-tools{
  display:flex;
  gap:10px;
}

.entity-structure-date-form{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.entity-structure-date-form .field{
  min-width: 210px;
}

.entity-structure-date-form .field label{
  color:rgba(226,232,240,.66);
}

.entity-structure-date-form .field input[type="date"]{
  height:44px;
  padding-right:12px;
  border-color:rgba(34,211,238,.24);
  background:
    linear-gradient(180deg, rgba(2,6,23,.82), rgba(2,6,23,.58));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.08) inset,
    0 0 22px rgba(34,211,238,.08);
  color:rgba(226,232,240,.94);
}

.entity-structure-date-form .field input[type="date"]:focus-visible{
  outline:none;
  border-color:rgba(34,211,238,.55);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.16) inset,
    0 0 0 3px rgba(34,211,238,.12),
    0 0 26px rgba(34,211,238,.16);
}

.entity-structure-date-form .field input[type="date"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(1.2);
  opacity:.95;
  cursor:pointer;
}

.bulk-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  padding:8px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:12px;
  background: rgba(2,6,23,.42);
}

.bulk-toolbar .field-inline{
  display:flex;
  align-items:center;
  gap:6px;
}

.bulk-toolbar [data-bulk-field]{
  display:none;
}

.bulk-toolbar label{
  color:rgba(226,232,240,.72);
  font-size:12px;
}

.bulk-toolbar input[type="text"],
.bulk-toolbar input[type="date"],
.bulk-toolbar select{
  height:30px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.2);
  background:rgba(2,6,23,.55);
  color:var(--text);
  padding:4px 8px;
  font-size:12px;
}

.bulk-toolbar .bulk-counter{
  font-size:12px;
  color:rgba(226,232,240,.72);
  margin-right:6px;
}

.bulk-toolbar .btn{
  height:30px;
  padding:6px 10px;
  border-radius:8px;
  font-size:12px;
}

.bulk-cell{
  width:36px;
  text-align:center !important;
}

.bulk-cell input[type="checkbox"],
.field input[type="checkbox"],
.checkbox input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:16px;
  height:16px;
  margin:0;
  padding:0;
  min-width:16px;
  max-width:16px;
  flex:0 0 16px;
  border-radius:5px;
  border:1px solid rgba(34,211,238,.45);
  background: linear-gradient(180deg, rgba(2,6,23,.85), rgba(2,6,23,.55));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.08) inset,
    0 0 10px rgba(34,211,238,.12);
  cursor:pointer;
  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    transform .12s ease,
    background .15s ease;
}

.bulk-cell input[type="checkbox"]:hover,
.field input[type="checkbox"]:hover,
.checkbox input[type="checkbox"]:hover{
  border-color: rgba(34,211,238,.72);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.18) inset,
    0 0 16px rgba(34,211,238,.22);
}

.bulk-cell input[type="checkbox"]:focus-visible,
.field input[type="checkbox"]:focus-visible,
.checkbox input[type="checkbox"]:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 2px rgba(2,6,23,.95),
    0 0 0 4px rgba(34,211,238,.45),
    0 0 20px rgba(34,211,238,.25);
}

.bulk-cell input[type="checkbox"]:checked,
.field input[type="checkbox"]:checked,
.checkbox input[type="checkbox"]:checked{
  border-color: rgba(34,211,238,.95);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23020617' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.3l3 3.1 6.6-7'/%3E%3C/svg%3E") center/12px 12px no-repeat,
    linear-gradient(135deg, rgba(34,211,238,.95), rgba(59,130,246,.85));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.35) inset,
    0 0 18px rgba(34,211,238,.35),
    0 0 28px rgba(139,92,246,.18);
}

.bulk-cell input[type="checkbox"]:active,
.field input[type="checkbox"]:active,
.checkbox input[type="checkbox"]:active{
  transform: scale(.95);
}

.field:has(> input[type="checkbox"]),
.field:has(> div > input[type="checkbox"]){
  display:flex;
  align-items:center;
  gap:10px;
}

.field:has(> input[type="checkbox"]) > label,
.field:has(> div > input[type="checkbox"]) > label{
  order:2;
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.field:has(> input[type="checkbox"]) > input[type="checkbox"],
.field:has(> div > input[type="checkbox"]) > div{
  order:1;
}

.field:has(> div > input[type="checkbox"]) > div{
  display:flex;
  align-items:center;
  padding-top:0 !important;
}

/* Inline edit */
.inline-edit-input{
  width:100%;
  min-width:60px;
  max-width:120px;
  padding:2px 6px;
  font-size:13px;
  font-family:inherit;
  background:rgba(15,23,42,.85);
  color:#e2e8f0;
  border:1px solid rgba(56,189,248,.5);
  border-radius:6px;
  outline:none;
  text-align:right;
  box-shadow:0 0 6px rgba(56,189,248,.25);
}
.inline-edit-input:focus{
  border-color:rgba(56,189,248,.8);
  box-shadow:0 0 10px rgba(56,189,248,.4);
}
[data-inline-edit]{
  transition:background .3s ease;
}
[data-inline-edit]:hover{
  background:rgba(56,189,248,.06);
}
.inline-edit-saving{
  opacity:.5;
}
.inline-edit-success{
  background:rgba(34,197,94,.12) !important;
}
.inline-edit-error{
  background:rgba(239,68,68,.12) !important;
}

.table-scroll{
  overflow:auto;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.12);
}

.report-table{
  width:100%;
  border-collapse:collapse;
  min-width:960px;
  font-size:13px;
}

.report-table th,
.report-table td{
  padding:12px 10px;
  border-bottom:1px solid rgba(148,163,184,.08);
  text-align:left;
  white-space:nowrap;
}

.report-table th{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.6);
  background: rgba(2,6,23,.6);
  position:sticky;
  top:0;
}

.report-table tbody tr:hover{
  background: rgba(34,211,238,.06);
}

.report-table.table-condensed{
  min-width:0;
}

.report-table.table-condensed th,
.report-table.table-condensed td{
  padding:4px 8px;
  font-size:12px;
  line-height:1.2;
}

.report-table.country-pivot-table th + th,
.report-table.country-pivot-table td + td{
  border-left:1px solid rgba(148,163,184,.14);
}

.report-table.report-table-tight{
  min-width:0;
  table-layout:fixed;
  font-size:12px;
}

.report-table.report-table-wide{
  min-width:1480px;
}

.report-table.report-table-tight th,
.report-table.report-table-tight td{
  padding:9px 8px;
}

.report-table.report-table-tight th{
  white-space:normal;
}

.report-table.report-table-tight td{
  white-space:normal;
  overflow-wrap:anywhere;
}

.invoice-lines-table{
  min-width:1080px;
}

.invoice-lines-table .invoice-lines-col-description{
  width:32%;
}

.invoice-lines-table .invoice-lines-description{
  display:block;
  max-width:min(32vw, 320px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

th.sortable{
  cursor:pointer;
  user-select:none;
  transition:color .15s;
}
th.sortable a,
th.sortable a:visited{
  color:inherit;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:2px 0;
}
th.sortable:hover{
  color:rgba(226,232,240,.95);
}
th.sortable.sorted{
  color:var(--cyan);
}
.sort-arrow{
  font-size:9px;
  opacity:.85;
}

.table-condensed .status-chip{
  padding:2px 6px;
  font-size:10px;
}

.table-condensed .btn{
  padding:3px 8px;
  font-size:11px;
  border-radius:8px;
  gap:4px;
}

.table-condensed td:last-child,
.table-condensed th:last-child{
  text-align:right;
  width:100px;
}

.table-condensed .row-actions{
  line-height:0;
  display:inline-flex;
  flex-direction:row-reverse;
  align-items:center;
}

.table-condensed .row-actions .icon-btn{
  width:24px;
  height:20px;
  border-radius:6px;
  font-size:11px;
  padding:0;
  margin:0;
  line-height:1;
}

.table-condensed .row-menu{
  position:static;
  display:flex;
  align-items:center;
  padding:0;
  gap:4px;
  margin-right:4px;
  border:none;
  background:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.table-condensed .row-item{
  width:24px;
  height:20px;
  border-radius:6px;
  font-size:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.progress{
  position:relative;
  height:8px;
  border-radius:999px;
  background: rgba(148,163,184,.18);
  overflow:hidden;
}

.progress span{
  display:block;
  height:100%;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(34,211,238,.75), rgba(59,130,246,.35));
  box-shadow: 0 0 12px rgba(34,211,238,.35);
}

.progress.is-indeterminate span{
  width:38%;
  animation:progress-indeterminate 1.2s ease-in-out infinite;
}

@keyframes progress-indeterminate{
  0%{transform:translateX(-120%)}
  100%{transform:translateX(300%)}
}

.progress-label{
  margin-top:6px;
  font-size:11px;
  color:rgba(226,232,240,.6);
}

.journal-import-progress{
  margin-top:18px;
  padding:16px 18px;
  border:1px solid rgba(34,211,238,.14);
  border-radius:8px;
  background:rgba(15,23,42,.42);
}

.journal-import-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
  font-size:13px;
}

.status-chip{
  display:inline-flex;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid rgba(148,163,184,.2);
}

.status-chip.compact{
  padding:2px 6px;
  font-size:10px;
  letter-spacing:.05em;
}

.status-chip.active{color:var(--success); border-color: rgba(52,211,153,.3);}
.status-chip.inactive{color:rgba(148,163,184,.7); border-color: rgba(148,163,184,.2);}
.status-chip.warning{color:var(--warning); border-color: rgba(245,158,11,.3);}
.status-chip.pending{color:var(--warning); border-color: rgba(245,158,11,.3);}
.status-chip.completed{color:rgba(226,232,240,.8); border-color: rgba(148,163,184,.3);}
[data-inline-toggle]{transition:background .3s ease;}
[data-inline-toggle]:hover{background:rgba(56,189,248,.06);}
[data-inline-toggle] .status-chip{cursor:pointer;}

.row-actions{
  position:relative;
  display:inline-block;
}

.row-actions summary{
  list-style:none;
}

.row-actions summary::-webkit-details-marker{
  display:none;
}

.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:30px;
  border-radius:10px;
  border:1px solid rgba(148,163,184,.2);
  background: rgba(2,6,23,.4);
  color:rgba(226,232,240,.9);
  cursor:pointer;
}

.row-actions[open] .icon-btn{
  border-color: rgba(34,211,238,.4);
  box-shadow: 0 0 0 1px rgba(34,211,238,.18) inset;
}

.row-menu{
  position:absolute;
  right:0;
  top:36px;
  display:flex;
  gap:6px;
  padding:8px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.8);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index:5;
}

.row-item{
  width:34px;
  height:30px;
  border-radius:10px;
  border:1px solid rgba(148,163,184,.2);
  background: rgba(2,6,23,.4);
  color:rgba(226,232,240,.9);
  cursor:pointer;
}

.row-item:hover{
  border-color: rgba(34,211,238,.4);
  box-shadow: 0 0 0 1px rgba(34,211,238,.18) inset;
}

.btn i.fa-solid{ margin-right:5px; }
.row-item i.fa-solid{ font-size:.85rem; }

.table-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.paginator{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  margin-top:18px;
}
.page-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:34px;
  padding:0 10px;
  border-radius:8px;
  font-size:13px;
  font-weight:500;
  color:var(--text-secondary,#b0b8c8);
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  text-decoration:none;
  cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.page-btn:hover{
  background:rgba(255,255,255,0.10);
  color:#fff;
  border-color:rgba(255,255,255,0.18);
}
.page-btn.active{
  background:rgba(0,224,255,0.15);
  color:#00e0ff;
  border-color:rgba(0,224,255,0.35);
  cursor:default;
}
.page-btn.disabled{
  opacity:0.35;
  cursor:default;
  pointer-events:none;
}
.page-btn.dots{
  border-color:transparent;
  background:transparent;
  cursor:default;
  min-width:24px;
  padding:0 4px;
}
.paginator-info{
  text-align:center;
  margin-top:8px;
  font-size:12px;
  color:var(--text-secondary,#b0b8c8);
  opacity:0.7;
}
.paginator-info-bar{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  text-align:left;
  opacity:1;
}
.paginator-size-form{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.45);
  box-shadow:0 0 0 1px rgba(34,211,238,.08) inset;
}
.paginator-size-label{
  color:rgba(226,232,240,.8);
  font-size:12px;
  letter-spacing:.02em;
}
.paginator-size-form select{
  min-width:96px;
  height:34px;
  padding:6px 10px;
  border-radius:9px;
  border:1px solid rgba(148,163,184,.24);
  background:rgba(2,6,23,.6);
  color:rgba(226,232,240,.95);
}
.paginator-size-form select:focus{
  outline:none;
  border-color:rgba(34,211,238,.55);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}

@media (max-width: 980px){
  .filters-row{--grid-template:repeat(2, minmax(0,1fr));}
  .filters-actions{grid-template-columns: 1fr; justify-items:start;}
  .filters-meta{justify-self:start;}
  .task-board{grid-template-columns: 1fr;}
  .paginator-info-bar{justify-content:flex-start;}
  .journal-entry-layout{grid-template-columns:1fr;}
  .journal-entry-summary{position:static;}
}

@media (max-width: 700px){
  .filters-row{--grid-template:1fr;}
  .report-head{align-items:flex-start;}
  .task-overview{grid-template-columns: 1fr;}
  .accounting-form-head{flex-direction:column; align-items:flex-start;}
  .journal-entry-balance{align-items:flex-start;}
}

@media (max-width: 600px){
  .currency-fetch-form{
    gap:10px;
  }

  .currency-fetch-date{
    flex-basis:0;
  }

  .currency-fetch-form .btn{
    padding-left:12px;
    padding-right:12px;
  }
}

/* autocomplete lookup */
.field:has(.autocomplete-list){
  overflow:visible;
}
.autocomplete-list{
  position:absolute; top:100%; left:0; right:0; z-index:50;
  background:rgba(15,15,30,.95); border:1px solid rgba(100,200,255,.2);
  border-radius:6px; max-height:360px; overflow-y:auto;
  backdrop-filter:blur(12px);
  box-shadow:0 8px 32px rgba(0,0,0,.45);
}
.autocomplete-item{
  padding:10px 14px; cursor:pointer; font-size:.9rem;
  color:rgba(255,255,255,.8);
}
.autocomplete-item:hover{ background:rgba(100,200,255,.12); }
.autocomplete-clear{ color:rgba(245,158,11,.8); font-size:.8rem; }

/* dashboard page */
.dashboard{
  padding:40px 0 24px;
}

.dashboard-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.dashboard-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.kpi-grid{
  margin-top:24px;
}

.kpi-card{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  position:relative;
  overflow:hidden;
  min-height:190px;
  box-shadow: 0 16px 44px rgba(0,0,0,.35);
}

.kpi-value{
  font-size:32px;
  font-weight:600;
  margin:10px 0 6px;
}

.kpi-meta span{color:var(--success); font-weight:600;}

.kpi-spark{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:6px;
  align-items:end;
  height:60px;
  margin-top:14px;
}

.spark-bar{
  height:var(--h);
  border-radius:8px 8px 6px 6px;
  background: linear-gradient(180deg, rgba(34,211,238,.6), rgba(59,130,246,.2));
}

.kpi-ring{
  margin-top:10px;
  position:relative;
  width:120px; height:120px;
}

.ring-track,
.ring-fill{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:10px solid rgba(148,163,184,.16);
}

.ring-fill{
  border-color: rgba(34,211,238,.8);
  clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%, 0 0);
  transform: rotate(var(--deg));
  filter: drop-shadow(0 0 10px rgba(34,211,238,.35));
}

.ring-center{
  position:absolute;
  inset:18px;
  border-radius:50%;
  background: rgba(2,6,23,.7);
  display:grid;
  place-items:center;
  font-weight:600;
}

.dashboard-grid{
  margin-top:24px;
}

.dashboard-favorites-card{
  margin-top:20px;
}

.dashboard-favorites-list{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.dashboard-favorite-chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(34,211,238,.16);
  background:rgba(2,6,23,.42);
  color:var(--text);
  text-decoration:none;
}

.dashboard-favorite-chip:hover{
  text-decoration:none;
  border-color:rgba(34,211,238,.3);
  background:rgba(6,18,43,.72);
}

.dashboard-favorite-icon{
  color:#facc15;
}

.table-wrap,
.card,
.panel,
.currency-fetch-card{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
}

.card,
.panel,
.currency-fetch-card{
  box-shadow: 0 12px 40px rgba(0,0,0,.32);
}

.panel{
  box-shadow: 0 16px 44px rgba(0,0,0,.35);
  min-height:240px;
  display:grid;
  gap:16px;
}

.panel.wide{
  grid-column: span 2;
}

.panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.table-title,
.panel-title{
  font-weight:600;
}

.table-count,
.kpi-meta,
.panel-sub{
  font-size:13px;
  color:var(--muted-soft);
}

.panel-legend{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.legend-dot{
  width:10px; height:10px; border-radius:50%;
  display:inline-block;
  margin-right:6px;
}

.legend-dot.primary{background: var(--cyan);}
.legend-dot.muted{background: rgba(148,163,184,.4);}

.chart-area{
  display:grid;
  grid-template-columns: repeat(8, 1fr);
  gap:10px;
  align-items:end;
  height:180px;
}

.chart-bar{
  height:var(--h);
  border-radius:10px 10px 6px 6px;
  background: linear-gradient(180deg, rgba(34,211,238,.7), rgba(59,130,246,.2));
  position:relative;
}

.chart-bar span{
  position:absolute;
  bottom:-20px;
  font-size:11px;
  color:rgba(226,232,240,.5);
}

.line-chart{
  position:relative;
  height:180px;
}

.line-chart svg{
  width:100%; height:100%;
  fill:none;
  stroke: var(--cyan);
  stroke-width:3;
  filter: drop-shadow(0 0 10px rgba(34,211,238,.35));
}

.line-chart svg .muted{
  stroke: rgba(148,163,184,.6);
  stroke-width:2;
}

.line-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, rgba(148,163,184,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(148,163,184,.08) 1px, transparent 1px);
  background-size: 52px 52px;
  pointer-events:none;
}

.gauge-row{
  --grid-gap:14px;
}

.gauge{
  position:relative;
  height:140px;
  background: rgba(2,6,23,.45);
  border-radius:18px;
  border:1px solid rgba(148,163,184,.14);
  display:grid;
  place-items:center;
}

.gauge-track,
.gauge-fill{
  position:absolute;
  width:110px; height:110px;
  border-radius:50%;
  border:8px solid rgba(148,163,184,.18);
}

.gauge-fill{
  border-color: rgba(139,92,246,.7);
  clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%, 0 0);
  transform: rotate(var(--value));
}

.gauge-label{
  font-weight:600;
  font-size:18px;
}

.gauge-name{
  position:absolute;
  bottom:16px;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.region-grid{
  --grid-gap:14px;
}

.region-card{
  background: rgba(2,6,23,.45);
  border-radius:16px;
  border:1px solid rgba(148,163,184,.14);
  padding:14px;
  display:grid;
  gap:10px;
}

.region-value{
  font-size:18px;
  font-weight:600;
}

.region-bar{
  height:8px;
  border-radius:999px;
  background: rgba(148,163,184,.18);
  overflow:hidden;
}

.region-bar span{
  display:block;
  height:100%;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(59,130,246,.3), rgba(34,211,238,.7));
}

.panel-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

@media (max-width: 1100px){
  .panel.wide{grid-column: span 1;}
}

/* =========================================================
   FORMS
   ========================================================= */
.form-grid{
  margin-top:16px;
  --grid-template:repeat(3, minmax(0,1fr));
  --grid-gap:12px;
}

.form-grid input[type="color"]{
  padding:4px;
  height:44px;
}

.form-actions{
  margin-top:14px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
/* =========================================================
   BADGES / ALERTS
   ========================================================= */
.badge,
.label{
  --badge-color: rgba(226,232,240,.8);
  --badge-border: rgba(148,163,184,.22);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 8px;
  border-radius:999px;
  font-size:8px;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid var(--badge-border);
  background: rgba(2,6,23,.45);
  color:var(--badge-color);
}

.label{
  border-radius:10px;
  font-size:12px;
  text-transform:none;
  letter-spacing:.02em;
}

.badge.default,
.label.default{--badge-color:rgba(226,232,240,.8);}
.badge.success,
.label.success{--badge-color:#34d399; --badge-border:rgba(52,211,153,.35);}
.badge.danger,
.label.danger{--badge-color:#f87171; --badge-border:rgba(248,113,113,.35);}
.badge.critical,
.label.critical{--badge-color:#fb7185; --badge-border:rgba(251,113,133,.35);}
.badge.warning,
.label.warning{--badge-color:#fbbf24; --badge-border:rgba(251,191,36,.35);}
.badge.error,
.label.error{--badge-color:#f97316; --badge-border:rgba(249,115,22,.35);}
.badge.dimmed,
.label.dimmed{--badge-color:rgba(226,232,240,.45); --badge-border:rgba(148,163,184,.2);}
.badge.highlighted,
.label.highlighted{
  --badge-color:#22d3ee;
  --badge-border:rgba(34,211,238,.4);
  box-shadow: 0 0 0 1px rgba(34,211,238,.12) inset;
}

.flash-messages{
  margin-top:16px;
  display:grid;
  gap:12px;
  overflow:hidden;
  max-height: 800px;
  transition: max-height .35s ease, margin .35s ease, opacity .35s ease;
}

.flash-message{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.6);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transition: opacity .35s ease, transform .35s ease;
}

.flash-icon{
  width:28px;
  height:28px;
  border-radius:10px;
  display:grid;
  place-items:center;
  font-weight:600;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(2,6,23,.6);
}

.flash-message.success{border-color: rgba(52,211,153,.35);}
.flash-message.success .flash-icon{color:#34d399; border-color: rgba(52,211,153,.35);}
.flash-message.warning{border-color: rgba(251,191,36,.35);}
.flash-message.warning .flash-icon{color:#fbbf24; border-color: rgba(251,191,36,.35);}
.flash-message.error{border-color: rgba(248,113,113,.35);}
.flash-message.error .flash-icon{color:#f87171; border-color: rgba(248,113,113,.35);}
.flash-message.info{border-color: rgba(34,211,238,.35);}
.flash-message.info .flash-icon{color:#22d3ee; border-color: rgba(34,211,238,.35);}

.notification-body{
  white-space:pre-wrap;
}

.flash-hide{
  opacity:0;
  transform: translateY(-6px);
  pointer-events:none;
}

.flash-messages.flash-collapsed{
  max-height:0;
  margin-top:0;
  opacity:0;
}

.accounting-tree-drilldown{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.4rem;
  height:1.4rem;
  margin-left:.35rem;
  border:1px solid rgba(148,163,184,.24);
  border-radius:999px;
  color:rgba(191,219,254,.88);
  font-size:.7rem;
  text-decoration:none;
  vertical-align:middle;
}

.accounting-tree-drilldown:hover{
  border-color:rgba(34,211,238,.4);
  color:#67e8f9;
  background:rgba(15,23,42,.55);
}

.accounting-report-summary-grid{
  gap:14px;
}

.accounting-report-summary-value{
  font-size:1.05rem;
  font-weight:700;
  line-height:1.3;
}

.accounting-drilldown-table td{
  vertical-align:top;
}

.accounting-source-links{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.accounting-source-item{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:inherit;
  text-decoration:none;
}

.accounting-source-item i{
  margin-top:.2rem;
  color:rgba(103,232,249,.9);
}

.accounting-source-item span{
  display:block;
}

.accounting-source-item small{
  display:block;
  opacity:.68;
}

.agent-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.agent-summary-grid{
  --grid-gap:14px;
}

.agent-summary-grid > div{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px 14px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:14px;
  background:rgba(15,23,42,.3);
}

.agent-summary-label{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(148,163,184,.8);
}

.agent-action-grid{
  --grid-gap:16px;
}

.agent-connection-form{
  --grid-template:repeat(12, minmax(0, 1fr));
  --grid-gap:16px;
}

.agent-connection-span-3{grid-column: span 3;}
.agent-connection-span-4{grid-column: span 4;}
.agent-connection-span-5{grid-column: span 5;}
.agent-connection-span-12{grid-column: 1 / -1;}

.agent-connection-panel{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:16px;
  background:rgba(15,23,42,.28);
}

.agent-connection-panel h3{
  margin:0;
}

.agent-check-grid{
  --grid-gap:12px;
  align-items:start;
}

.agent-connection-panel-workflows .agent-check-grid{
  --grid-template:repeat(auto-fit, minmax(240px, 1fr));
}

.agent-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  min-width:0;
  padding:12px 14px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:14px;
  background:rgba(2,6,23,.4);
}

.agent-check input{
  flex:0 0 auto;
  margin-top:3px;
}

.agent-check span{
  display:grid;
  gap:4px;
  flex:1 1 auto;
  min-width:0;
  line-height:1.4;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.agent-check strong{
  display:block;
  color:rgba(226,232,240,.96);
}

.agent-json{
  margin:0;
  padding:14px;
  overflow:auto;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.72);
  color:#dbeafe;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New",monospace;
  font-size:12px;
  line-height:1.55;
}

.agent-status.requires-confirmation,
.agent-status.running,
.agent-status.queued{
  background:rgba(34,211,238,.16);
  border-color:rgba(34,211,238,.35);
  color:#67e8f9;
}

.agent-status.completed,
.agent-status.approved,
.agent-status.success{
  background:rgba(52,211,153,.16);
  border-color:rgba(52,211,153,.35);
  color:#6ee7b7;
}

.agent-status.failed,
.agent-status.rejected,
.agent-status.error,
.agent-status.warning{
  background:rgba(251,191,36,.16);
  border-color:rgba(251,191,36,.35);
  color:#fcd34d;
}

@media (max-width: 980px){
  .agent-connection-span-3,
  .agent-connection-span-4,
  .agent-connection-span-5,
  .agent-connection-span-12{
    grid-column: span 1;
  }
}

/* login page */
.login{
  padding:48px 0 24px;
}

.login-grid{
  --grid-gap:24px;
  align-items:start;
}

.login-panel{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:22px;
  padding:28px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.login-panel h1{margin-top:14px;}

.login-stats{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}

.login-stat{
  background: rgba(2,6,23,.45);
  border-radius:8px;
  border:1px solid rgba(148,163,184,.14);
  padding:12px;
}

.login-highlight{
  margin-top:18px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(34,211,238,.25);
  background: rgba(2,6,23,.5);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.login-highlight span{
  display:block;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.login-card{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:22px;
  padding:24px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.login-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.login-form{
  margin-top:16px;
  display:grid;
  gap:12px;
}

.login-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  color:rgba(226,232,240,.7);
}

.checkbox{
  display:flex;
  align-items:center;
  gap:6px;
}

.login-divider{
  margin:18px 0 12px;
  text-align:center;
  font-size:12px;
  color:rgba(226,232,240,.5);
  position:relative;
}

.login-divider::before,
.login-divider::after{
  content:"";
  position:absolute;
  top:50%;
  width:40%;
  height:1px;
  background: rgba(148,163,184,.14);
}

.login-divider::before{left:0;}
.login-divider::after{right:0;}

.login-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}

@media (max-width: 980px){
  .login-stats{grid-template-columns: 1fr;}
}

/* register page */
.register{
  padding:40px 0 24px;
}

.register-grid{
  --grid-gap:24px;
  margin-top:18px;
}

.register-panel{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:22px;
  padding:24px;
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
}

.register-panel h1{margin-top:14px;}

.register-steps{
  margin-top:18px;
  display:grid;
  gap:12px;
}

.step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.45);
}

.step-index{
  width:40px;
  height:40px;
  border-radius:12px;
  display:grid;
  place-items:center;
  border:1px solid rgba(34,211,238,.35);
  color:rgba(226,232,240,.9);
  font-weight:600;
}

.register-highlight{
  margin-top:18px;
  padding:14px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.16);
  background: rgba(2,6,23,.5);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.register-highlight span{
  display:block;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.register-card{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:22px;
  padding:22px;
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
}

.register-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.register-form{
  margin-top:16px;
  display:grid;
  gap:12px;
}

.register-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:14px;
  color:rgba(226,232,240,.75);
}

.register-divider{
  margin:18px 0 12px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  color:rgba(226,232,240,.6);
}

.register-divider::before,
.register-divider::after{
  content:"";
  flex:1;
  height:1px;
  background: rgba(148,163,184,.16);
}

.register-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

/* ── Entity detail ── */
.detail-grid{
  --grid-gap:20px;
  margin-bottom:24px;
}

.detail-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  padding:22px 24px;
}

.detail-card-wide{
  grid-column:1 / -1;
}

.detail-card-scroll{
  max-height:340px;
  display:flex;
  flex-direction:column;
}

.detail-card-title{
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--cyan);
  margin:0 0 14px;
}

.notification-recipients-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:10px;
}

.notification-recipient-option{
  display:grid;
  gap:4px;
  padding:12px 14px;
  border:1px solid rgba(148,163,184,.2);
  border-radius:12px;
  background:rgba(15,23,42,.45);
}

.notification-recipient-option input{
  width:auto;
  margin:0;
}

.notification-recipient-option small{
  color:rgba(148,163,184,.78);
}

.rp-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.rp-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.45);
  color:var(--text);
  text-decoration:none;
}

.rp-tab:hover{
  border-color:rgba(34,211,238,.32);
}

.rp-tab.active{
  border-color:rgba(34,211,238,.45);
  background:rgba(8,47,73,.55);
  color:var(--cyan);
}

.rp-filter-meta{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.rp-notes-card{
  display:grid;
  gap:10px;
}

.rp-layer-copy{
  margin:0;
  max-width:72ch;
}

.rp-note-list{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:6px;
}

.rp-side-card{
  display:grid;
  gap:18px;
}

.rp-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

.rp-inline-note{
  margin:-6px 0 0;
}

.rp-summary-grid{
  --grid-gap:14px;
}

.rp-summary-grid-compact{
  margin-bottom:18px;
}

.rp-summary-card{
  padding:16px 18px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,23,.42);
  display:grid;
  gap:6px;
}

.rp-summary-label{
  font-size:.76rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(148,163,184,.82);
}

.rp-summary-value{
  font-size:1.2rem;
  font-weight:700;
}

.rp-aging-wrap{
  padding:0;
}

.rp-aging-table th,
.rp-aging-table td{
  min-width:90px;
}

.rp-counterparty-stack{
  display:grid;
  gap:14px;
}

.rp-counterparty-card{
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  background:rgba(2,6,23,.42);
  overflow:hidden;
}

.rp-counterparty-summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:18px 20px;
}

.rp-counterparty-summary::-webkit-details-marker{
  display:none;
}

.rp-counterparty-name{
  font-size:1rem;
  font-weight:700;
}

.rp-counterparty-metrics{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:12px;
  color:rgba(226,232,240,.82);
  font-size:.92rem;
}

.rp-counterparty-body{
  padding:0 18px 18px;
}

.rp-history-list{
  margin:0;
  padding-left:16px;
  display:grid;
  gap:4px;
}

@media (max-width: 860px){
  .rp-counterparty-summary{
    flex-direction:column;
  }

  .rp-counterparty-metrics{
    justify-content:flex-start;
  }
}

.accounting-form-layout{
  align-items:start;
}

.accounting-form-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.accounting-form-copy{
  max-width:56ch;
}

.accounting-form{
  display:grid;
  gap:18px;
}

.accounting-form-grid{
  --grid-gap:16px;
}

.accounting-form-span-2{
  grid-column:1 / -1;
}

.accounting-switch-grid{
  --grid-gap:14px;
}

.accounting-switch{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.16);
  background:rgba(2,6,23,.42);
  box-shadow:0 10px 28px rgba(0,0,0,.2);
}

.accounting-switch span{
  display:grid;
  gap:4px;
}

.accounting-switch strong{
  color:rgba(226,232,240,.94);
  font-size:14px;
}

.accounting-switch small{
  color:rgba(226,232,240,.58);
  font-size:12px;
  line-height:1.45;
}

.accounting-form-note{
  margin-top:16px;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(34,211,238,.18);
  background:linear-gradient(180deg, rgba(34,211,238,.08), rgba(2,6,23,.18));
  color:rgba(226,232,240,.74);
  font-size:13px;
  line-height:1.6;
}

.danger-panel{
  border-color:rgba(248,113,113,.28);
  background:
    radial-gradient(460px 180px at 0% 0%, rgba(248,113,113,.08), transparent 60%),
    rgba(6,18,43,.62);
  box-shadow:0 0 0 1px rgba(248,113,113,.08) inset, 0 16px 34px rgba(0,0,0,.24);
}

.danger-panel-title{
  color:#f87171;
}

.danger-panel-copy{
  margin-bottom:16px;
  font-size:14px;
  color:rgba(254,226,226,.74);
  max-width:62ch;
}

.danger-panel-btn{
  background:rgba(239,68,68,.14);
  border-color:rgba(248,113,113,.34);
  color:#fca5a5;
}

.danger-panel-btn:hover{
  border-color:rgba(248,113,113,.46);
  box-shadow:0 0 0 1px rgba(248,113,113,.12) inset, 0 0 30px rgba(248,113,113,.12);
}

.accounting-import-grid{
  --grid-gap:16px;
  margin-bottom:18px;
}

.accounting-import-panel{
  padding:16px 18px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.16);
  background:
    linear-gradient(180deg, rgba(2,6,23,.5), rgba(2,6,23,.36));
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}

.accounting-import-heading{
  margin:0 0 8px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.62);
}

.accounting-import-heading + .accounting-import-heading{
  margin-top:14px;
}

.accounting-import-code,
.accounting-import-pre{
  display:block;
  margin:0;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,23,.52);
  color:rgba(226,232,240,.86);
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:12px;
  line-height:1.55;
  white-space:pre-wrap;
  word-break:break-word;
}

.accounting-import-list{
  margin:0;
  padding-left:18px;
  color:rgba(226,232,240,.74);
  font-size:13px;
  line-height:1.6;
}

.accounting-import-textarea{
  width:100%;
  min-height:320px;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.58);
  color:rgba(226,232,240,.92);
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:12px;
  line-height:1.55;
  resize:vertical;
  box-shadow:0 0 0 1px rgba(2,6,23,.18) inset;
}

.accounting-import-textarea:focus{
  outline:none;
  border-color:rgba(34,211,238,.45);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}

.accounting-import-textarea::placeholder{
  color:rgba(226,232,240,.38);
}

.accounting-import-stats{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.journal-entry-lines{
  display:grid;
  gap:14px;
  padding:18px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.16);
  background:rgba(2,6,23,.34);
}

.journal-entry-table{
  margin-top:0;
  min-width:0;
  table-layout:fixed;
}

.journal-entry-input{
  width:100%;
  min-width:0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.16);
  background:rgba(2,6,23,.56);
  color:rgba(226,232,240,.92);
  font-size:13px;
  line-height:1.35;
  box-shadow:0 0 0 1px rgba(2,6,23,.18) inset;
}

.journal-entry-input::placeholder{
  color:rgba(226,232,240,.42);
}

.journal-entry-input:focus{
  outline:none;
  border-color:rgba(34,211,238,.45);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}

.journal-entry-table select.journal-entry-input{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  padding-right:30px;
}

.journal-entry-amount{
  text-align:right;
}

.journal-entry-table th,
.journal-entry-table td{
  white-space:normal;
  vertical-align:middle;
}

.journal-entry-table .journal-entry-col-account{
  width:32%;
}

.journal-entry-table .journal-entry-col-description{
  width:28%;
}

.journal-entry-table .journal-entry-col-amount{
  width:16%;
}

.journal-entry-table th:last-child,
.journal-entry-table td:last-child{
  width:56px;
  text-align:center;
}

.journal-entry-detail-scroll{
  border-radius:16px;
}

.journal-entry-detail-table{
  width:100%;
  min-width:0;
  table-layout:auto;
}

.journal-entry-detail-table .journal-entry-detail-col-line{
  width:56px;
  min-width:56px;
  white-space:nowrap;
}

.journal-entry-detail-table .journal-entry-col-account{
  width:auto;
}

.journal-entry-detail-table .journal-entry-col-description{
  width:auto;
}

.journal-entry-detail-table .journal-entry-col-amount{
  width:15ch;
  min-width:15ch;
  max-width:15ch;
}

.journal-entry-detail-table th:last-child,
.journal-entry-detail-table td:last-child{
  width:auto;
  text-align:right;
}

.journal-entry-detail-table td.cell-num,
.journal-entry-detail-table th.cell-num{
  white-space:nowrap;
}

.journal-entry-line-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(34,211,238,.16);
  background:rgba(34,211,238,.08);
  color:rgba(226,232,240,.82);
  font-size:11px;
  font-weight:600;
}

.journal-entry-detail-account{
  min-width:0;
}

.journal-entry-account-link{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  color:inherit;
  text-decoration:none;
}

.journal-entry-account-link:hover{
  text-decoration:none;
}

.journal-entry-account-code{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(34,211,238,.18);
  background:rgba(34,211,238,.08);
  color:var(--cyan);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
}

.journal-entry-account-name{
  flex:1 1 auto;
  color:rgba(226,232,240,.86);
  font-weight:500;
  overflow-wrap:anywhere;
}

.journal-entry-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:24px 16px;
  border-radius:8px;
  border:1px dashed rgba(34,211,238,.24);
  background:rgba(34,211,238,.06);
  color:rgba(226,232,240,.68);
  text-align:center;
}

.journal-entry-balance{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 14px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.16);
  background:rgba(2,6,23,.46);
  color:rgba(226,232,240,.82);
}

.journal-entry-balance span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.journal-entry-balance.is-balanced{
  border-color:rgba(52,211,153,.28);
  background:rgba(52,211,153,.08);
  color:rgba(167,243,208,.95);
}

.journal-entry-balance.is-unbalanced{
  border-color:rgba(245,158,11,.28);
  background:rgba(245,158,11,.08);
  color:rgba(253,230,138,.94);
}

.journal-entry-summary{
  margin-top:0;
}

.detail-list{
  margin:0;
  padding:0;
}

.detail-list-two-col{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:24px;
}

.detail-list-scroll{
  min-height:0;
  overflow:auto;
  padding-right:4px;
}

.detail-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:7px 0;
  border-bottom:1px solid var(--border);
}

.detail-row:last-child{
  border-bottom:none;
}

.detail-row dt{
  font-size:.82rem;
  color:var(--muted);
  white-space:nowrap;
  min-width:110px;
}

.detail-row dd{
  margin:0;
  font-size:.85rem;
  text-align:right;
  word-break:break-word;
}

.detail-list-two-col .detail-row:last-child{
  border-bottom:1px solid var(--border);
}

@media (max-width: 900px){
  .detail-list-two-col{
    grid-template-columns:1fr;
  }

  .detail-list-two-col .detail-row:last-child{
    border-bottom:none;
  }
}

.detail-text-grid{
  display:grid;
  gap:14px;
}

.detail-text-item{
  display:grid;
  gap:6px;
}

.detail-text-item label{
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.detail-textarea{
  width:100%;
  min-height:120px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.2);
  background:rgba(2,6,23,.35);
  color:rgba(226,232,240,.94);
  font-size:.9rem;
  line-height:1.5;
  resize:vertical;
}

.detail-actions{
  margin-bottom:32px;
}

.file-section{
  margin-bottom:24px;
}

.file-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.discussion-panel{
  display:grid;
  gap:18px;
}

.discussion-new-thread > summary,
.discussion-inline-form > summary{
  list-style:none;
}

.discussion-new-thread > summary::-webkit-details-marker,
.discussion-inline-form > summary::-webkit-details-marker{
  display:none;
}

.discussion-thread-list{
  display:grid;
  gap:18px;
}

.discussion-thread{
  padding:18px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:14px;
  background:rgba(2,6,23,.34);
  box-shadow:0 12px 24px rgba(0,0,0,.16);
}

.discussion-thread-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}

.discussion-thread-title-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.discussion-thread-title-row h4{
  margin:0;
  font-size:1rem;
  color:rgba(226,232,240,.94);
}

.discussion-thread-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.discussion-editor{
  margin-top:12px;
  display:grid;
  gap:12px;
}

.discussion-editor label{
  display:block;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  margin-bottom:6px;
}

.discussion-editor input[type="text"],
.discussion-editor textarea{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.56);
  color:rgba(226,232,240,.92);
  box-shadow:0 0 0 1px rgba(2,6,23,.18) inset;
}

.discussion-editor textarea{
  resize:vertical;
  min-height:108px;
}

.discussion-editor input[type="text"]:focus,
.discussion-editor textarea:focus{
  outline:none;
  border-color:rgba(34,211,238,.45);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}

.discussion-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

.discussion-message-list{
  display:grid;
  gap:14px;
}

.discussion-message{
  padding:14px 16px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.16);
  background:rgba(6,18,43,.42);
}

.discussion-message.is-deleted{
  border-style:dashed;
  background:rgba(15,23,42,.34);
}

.discussion-message-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.discussion-message-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:.8rem;
  color:rgba(226,232,240,.68);
}

.discussion-message-actions{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.discussion-message-body{
  color:rgba(226,232,240,.9);
  line-height:1.65;
}

.discussion-message-body p{
  margin:0 0 10px;
}

.discussion-message-body p:last-child{
  margin-bottom:0;
}

.discussion-message-body a{
  color:var(--cyan);
}

.discussion-deleted-placeholder{
  margin:0;
  color:rgba(226,232,240,.58);
  font-style:italic;
}

.discussion-children{
  margin-top:14px;
  margin-left:18px;
  padding-left:14px;
  border-left:1px solid rgba(34,211,238,.18);
  display:grid;
  gap:12px;
}

.discussion-thread-closed-note{
  margin:14px 0 0;
}

@media (max-width: 900px){
  .discussion-thread-head,
  .discussion-message-head{
    flex-direction:column;
  }

  .discussion-thread-actions,
  .discussion-message-actions,
  .discussion-form-actions{
    justify-content:flex-start;
  }

  .discussion-children{
    margin-left:10px;
    padding-left:10px;
  }
}

.file-dropzone{
  border:1px dashed rgba(34,211,238,.35);
  border-radius:8px;
  padding:16px;
  background:rgba(2,6,23,.45);
  margin-bottom:16px;
}

.file-dropzone.drag-over{
  border-color:rgba(34,211,238,.65);
  box-shadow:0 0 0 1px rgba(34,211,238,.35) inset, 0 0 35px rgba(34,211,238,.18);
}

.file-dropzone.is-uploading{
  opacity:.72;
}

.file-dropzone input[type="file"]{
  display:none;
}

.file-dropzone-body{
  min-height:140px;
  border:1px dashed rgba(148,163,184,.22);
  border-radius:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:16px;
  cursor:pointer;
}

.file-dropzone-icon{
  font-size:28px;
  color:var(--cyan);
  margin-bottom:8px;
}

.file-dropzone-title{
  margin-bottom:8px;
  color:rgba(226,232,240,.92);
  font-weight:600;
}

.file-dropzone-help{
  font-size:13px;
  max-width:none;
}

.file-dropzone-actions{
  margin-top:12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.bank-statement-panel{
  padding:20px;
}

.bank-statement-panel-head{
  margin-bottom:14px;
}

.bank-statement-dropzone{
  margin-bottom:0;
}

.bank-statement-status{
  margin-top:10px;
}

.bank-statement-status.is-error{
  color:#fca5a5;
}

.file-table td:last-child{
  min-width:220px;
}

.file-action-form{
  display:inline-block;
}

/* --- Numeric cell alignment (auto-applied by utilities.js) --- */
.report-table td.cell-num,
.report-table th.cell-num{
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* --- Help Center --- */
.help-toc-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:6px;
}
.help-toc-item{
  display:block;
}
.help-toc-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(2,6,23,.38);
  color:var(--text);
  text-decoration:none;
  font-size:14px;
  transition:border-color .12s ease,background .12s ease;
}
.help-toc-link:hover{
  border-color:rgba(34,211,238,.32);
  background:rgba(34,211,238,.06);
  color:var(--cyan);
  text-decoration:none;
}
.help-toc-link i{
  color:var(--cyan);
  font-size:15px;
  flex-shrink:0;
}
.help-empty{
  color:var(--muted);
  font-size:14px;
  padding:8px 0;
}
.help-article-wrap{
  margin-top:24px;
  padding:28px 32px;
  border-radius:18px;
  background:rgba(2,6,23,.55);
  border:1px solid rgba(148,163,184,.16);
}

/* --- Markdown body rendering --- */
.markdown-body{
  color:var(--text);
  font-size:15px;
  line-height:1.7;
  max-width:80ch;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6{
  color:rgba(226,232,240,.96);
  line-height:1.25;
  letter-spacing:-.02em;
  margin:1.4em 0 .5em;
}
.markdown-body h1{ font-size:1.8rem; }
.markdown-body h2{ font-size:1.4rem; border-bottom:1px solid var(--border); padding-bottom:.3em; }
.markdown-body h3{ font-size:1.15rem; }
.markdown-body h4{ font-size:1rem; }
.markdown-body p{
  margin:0 0 1em;
  color:var(--muted);
  font-size:15px;
}
.markdown-body a{
  color:var(--cyan);
  text-decoration:underline;
  text-underline-offset:2px;
}
.markdown-body a:hover{ color:#67e8f9; }
.markdown-body ul,
.markdown-body ol{
  margin:0 0 1em 1.4em;
  padding:0;
  color:var(--muted);
  font-size:15px;
}
.markdown-body li{ margin-bottom:.35em; }
.markdown-body code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New",monospace;
  font-size:.85em;
  padding:.15em .38em;
  border-radius:6px;
  background:rgba(34,211,238,.10);
  color:rgba(34,211,238,.92);
  border:1px solid rgba(34,211,238,.18);
}
.markdown-body pre{
  background:rgba(2,6,23,.72);
  border:1px solid rgba(148,163,184,.16);
  border-radius:12px;
  padding:16px 20px;
  overflow-x:auto;
  margin:0 0 1.2em;
}
.markdown-body pre code{
  background:none;
  border:none;
  padding:0;
  font-size:.88em;
  color:rgba(226,232,240,.88);
}
.markdown-body blockquote{
  margin:0 0 1em;
  padding:.6em 1em;
  border-left:3px solid rgba(34,211,238,.5);
  background:rgba(34,211,238,.06);
  border-radius:0 10px 10px 0;
  color:rgba(226,232,240,.8);
  font-style:italic;
}
.markdown-body table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 1.2em;
  font-size:14px;
}
.markdown-body th{
  background:rgba(2,6,23,.55);
  color:rgba(226,232,240,.7);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  padding:10px 14px;
  text-align:left;
  border:1px solid var(--border);
}
.markdown-body td{
  padding:9px 14px;
  border:1px solid var(--border);
  color:var(--muted);
  vertical-align:top;
}
.markdown-body tr:nth-child(even) td{
  background:rgba(2,6,23,.28);
}
.markdown-body img{
  max-width:100%;
  height:auto;
  border-radius:10px;
  border:1px solid var(--border);
  margin:.4em 0 1em;
}
.markdown-body hr{
  border:none;
  border-top:1px solid var(--border);
  margin:1.8em 0;
}

.email-tip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:rgba(34,211,238,.95);
  cursor:default;
  outline:none;
}
.email-tip-box{
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  transform:translate(-50%, 4px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  white-space:nowrap;
  background:rgba(2,6,23,.96);
  color:rgba(226,232,240,.95);
  border:1px solid rgba(34,211,238,.35);
  border-radius:8px;
  padding:6px 9px;
  font-size:12px;
  line-height:1.2;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  z-index:30;
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.email-tip:hover .email-tip-box,
.email-tip:focus .email-tip-box,
.email-tip:focus-within .email-tip-box{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
}

/* =========================================================
   Document Ingestion Pipeline
   ========================================================= */

.doc-ingest-section{
  background:rgba(2,6,23,.55);
  border:1px solid rgba(34,211,238,.18);
  border-radius:16px;
  padding:20px 24px 20px;
  margin-bottom:28px;
}

.doc-ingest-header{
  margin-bottom:14px;
}

.ingest-dropzone{
  cursor:pointer;
}

/* Progress bar wrapper */
.ingest-progress-area{
  padding:16px 0 4px;
}

.ingest-progress-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

.ingest-spinner{
  color:var(--cyan);
  font-size:18px;
}

.ingest-progress-filename{
  font-size:13px;
  color:rgba(226,232,240,.85);
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:320px;
}

.ingest-progress-bar-wrap{
  height:6px;
  background:rgba(148,163,184,.15);
  border-radius:99px;
  overflow:hidden;
  margin-bottom:10px;
}

.ingest-progress-bar{
  height:100%;
  background:linear-gradient(90deg, var(--cyan), var(--violet));
  border-radius:99px;
  transition:width .4s ease;
}

.ingest-progress-msg{
  font-size:13px;
  color:rgba(148,163,184,.75);
  margin:0;
}

/* Error area */
.ingest-error-area{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.22);
  border-radius:10px;
  color:rgba(252,165,165,.9);
  font-size:13px;
  margin-top:12px;
}

.ingest-error-area .btn{
  margin-left:auto;
  flex-shrink:0;
}

/* ---- Pipeline review page ---- */

.pipeline-file-banner{
  display:flex;
  align-items:center;
  gap:14px;
  background:rgba(34,211,238,.06);
  border:1px solid rgba(34,211,238,.18);
  border-radius:12px;
  padding:14px 18px;
  margin-bottom:22px;
}

.pipeline-file-icon{
  font-size:24px;
  color:var(--cyan);
  flex-shrink:0;
}

.pipeline-file-meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.pipeline-file-meta strong{
  font-size:14px;
  color:rgba(226,232,240,.92);
  word-break:break-all;
}

.pipeline-file-meta span{
  font-size:12px;
  color:rgba(148,163,184,.7);
}

.pipeline-confidence{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
}

.pipeline-confidence-label{
  font-size:12px;
  color:rgba(148,163,184,.7);
  white-space:nowrap;
}

.pipeline-confidence-bar{
  width:80px;
  height:6px;
  background:rgba(148,163,184,.15);
  border-radius:99px;
  overflow:hidden;
}

.pipeline-confidence-fill{
  height:100%;
  background:linear-gradient(90deg, var(--cyan), var(--violet));
  border-radius:99px;
}

.pipeline-confidence-pct{
  font-size:12px;
  font-weight:700;
  color:var(--cyan);
  min-width:34px;
  text-align:right;
}

/* Two-column review layout */
.pipeline-review-layout{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
}

@media (max-width: 900px){
  .pipeline-review-layout{
    grid-template-columns:1fr;
  }
  .pipeline-extracted-col{
    order:-1;
  }
}

.pipeline-extracted-col{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.pipeline-aside-card{
  margin:0;
}

.pipeline-optional-label{
  font-size:11px;
  font-weight:400;
  color:rgba(148,163,184,.6);
  margin-left:6px;
}

.pipeline-extracted-hint{
  font-size:12px;
  color:rgba(148,163,184,.65);
  margin:6px 0 0;
}

.pipeline-extracted-hint i{
  margin-right:4px;
  color:var(--violet);
}

.pipeline-raw-details summary{
  list-style:none;
}

.pipeline-raw-details summary::-webkit-details-marker{
  display:none;
}

.pipeline-raw-json{
  font-size:11px;
  line-height:1.5;
  color:rgba(148,163,184,.8);
  overflow-x:auto;
  padding:10px 0 0;
  margin:0;
  white-space:pre;
}

.form-actions-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding-top:4px;
}

/* Entity search autocomplete in pipeline review */
.entity-search-wrap{
  position:relative;
}

.entity-search-dropdown{
  position:absolute;
  z-index:200;
  background:rgba(2,6,23,.97);
  border:1px solid rgba(34,211,238,.22);
  border-radius:8px;
  list-style:none;
  margin:2px 0 0;
  padding:4px 0;
  width:100%;
  max-height:200px;
  overflow-y:auto;
  box-shadow:0 8px 32px rgba(0,0,0,.45);
}

.entity-search-dropdown li{
  padding:8px 14px;
  cursor:pointer;
  font-size:13px;
  color:rgba(226,232,240,.88);
}

.entity-search-dropdown li:hover{
  background:rgba(34,211,238,.08);
  color:#fff;
}

.entity-selected-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
  background:rgba(34,211,238,.1);
  border:1px solid rgba(34,211,238,.25);
  border-radius:6px;
  padding:4px 10px;
  font-size:12px;
  color:rgba(226,232,240,.9);
}

.btn-chip-clear{
  background:none;
  border:none;
  color:rgba(148,163,184,.7);
  cursor:pointer;
  padding:0 2px;
  font-size:11px;
  line-height:1;
}

/* =========================================================
   Accounting Module
   ========================================================= */

.accounting-layout {
  display: flex;
  gap: 0;
  min-height: 100vh;
}

.accounting-sidebar {
  width: 220px;
  flex-shrink: 0;
  background: rgba(2, 6, 23, .7);
  border-right: 1px solid rgba(34,211,238,.12);
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 120px);
}

.accounting-sidebar-header {
  padding: 0 16px 16px;
  border-bottom: 1px solid rgba(34,211,238,.1);
  margin-bottom: 8px;
}

.accounting-sidebar-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.accounting-sidebar-meta[x-cloak] {
  display:none !important;
}

.accounting-sidebar-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid rgba(34,211,238,.18);
  background:rgba(2,6,23,.48);
  color:rgba(226,232,240,.82);
  cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease, color .15s ease, transform .15s ease;
}

.accounting-sidebar-toggle:hover {
  color:rgba(248,250,252,.98);
  border-color:rgba(34,211,238,.38);
  box-shadow:0 0 0 1px rgba(34,211,238,.12) inset, 0 0 20px rgba(34,211,238,.12);
  transform:translateY(-1px);
}

.accounting-book-name {
  font-size: .85rem;
  font-weight: 600;
  color: rgba(226,232,240,.9);
  margin-top: 6px;
  word-break: break-word;
}

.accounting-sidebar-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.accounting-sidebar-links li {
  margin: 0;
}

.accounting-sidebar-group {
  padding: 12px 16px 4px;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .5;
  color: rgba(226,232,240,.8);
}

.accounting-sidebar-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  color: rgba(226,232,240,.75);
  text-decoration: none;
  font-size: .82rem;
  transition: background .15s, color .15s;
  border-left: 3px solid transparent;
}

.accounting-sidebar-link i {
  width:18px;
  text-align:center;
  flex:0 0 18px;
}

.accounting-sidebar-text {
  white-space:nowrap;
}

.accounting-sidebar-link:hover {
  background: rgba(34,211,238,.07);
  color: rgba(226,232,240,1);
}

.accounting-sidebar-link.active {
  background: rgba(34,211,238,.1);
  color: #22d3ee;
  border-left-color: #22d3ee;
}

.accounting-content {
  flex: 1;
  padding: 0 0 0 24px;
  min-width: 0;
}

.accounting-sidebar.is-collapsed {
  width: 78px;
}

.accounting-sidebar.is-collapsed .accounting-sidebar-header {
  padding-left:12px;
  padding-right:12px;
}

.accounting-sidebar.is-collapsed .accounting-sidebar-top {
  justify-content:center;
}

.accounting-sidebar.is-collapsed .pill {
  display:none;
}

.accounting-sidebar.is-collapsed .accounting-sidebar-group {
  padding-left:0;
  padding-right:0;
  display:flex;
  justify-content:center;
}

.accounting-sidebar.is-collapsed .accounting-sidebar-link {
  justify-content:center;
  padding-left:12px;
  padding-right:12px;
}

.accounting-sidebar.is-collapsed .accounting-sidebar-text {
  display:none;
}

/* Statement Sections */
.accounting-statement-section {
  margin-bottom: 8px;
}

.accounting-section-title {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(148,163,184,.7);
  padding: 8px 0 4px;
  border-bottom: 1px solid rgba(34,211,238,.1);
  margin-bottom: 4px;
}

.accounting-section-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  background: rgba(34,211,238,.05);
  border-radius: 4px;
  font-size: .85rem;
  margin-top: 4px;
}

.accounting-section-total > :first-child {
  flex: 1;
  min-width: 0;
}

.accounting-section-total > :not(:first-child) {
  width: 120px;
  flex-shrink: 0;
  text-align: right;
}

.accounting-grand-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: rgba(34,211,238,.1);
  border-radius: 6px;
  font-size: .9rem;
  font-weight: 600;
  margin-top: 12px;
  border: 1px solid rgba(34,211,238,.2);
}

.accounting-grand-total > :first-child {
  flex: 1;
  min-width: 0;
}

.accounting-grand-total > :not(:first-child) {
  width: 120px;
  flex-shrink: 0;
  text-align: right;
}

.accounting-grand-total.profit {
  background: rgba(34,197,94,.08);
  border-color: rgba(34,197,94,.2);
  color: #4ade80;
}

.accounting-grand-total.loss {
  background: rgba(244,63,94,.08);
  border-color: rgba(244,63,94,.2);
  color: #f87171;
}

.trial-balance-report{
  margin-top:16px;
  display:grid;
  gap:16px;
}

.trial-balance-meta{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.trial-balance-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(140px, 1fr));
  gap:12px;
  flex:1 1 460px;
}

.trial-balance-stat{
  display:grid;
  gap:6px;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,23,.38);
}

.trial-balance-label{
  margin:0;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.6);
}

.trial-balance-period{
  margin:6px 0 0;
  font-size:15px;
  font-weight:600;
}

.trial-balance-balance{
  font-size:13px;
  font-weight:600;
}

.trial-balance-balance.balanced{
  color:#4ade80;
}

.trial-balance-balance.unbalanced{
  color:#f87171;
}

.trial-balance-table-wrap{
  margin-top:0;
  padding:0;
  border:none;
  background:none;
}

.trial-balance-table .trial-balance-col-code{
  width:10%;
}

.trial-balance-table .trial-balance-col-name{
  width:28%;
}

.trial-balance-table .trial-balance-col-type{
  width:14%;
}

.trial-balance-table .trial-balance-col-money{
  width:14%;
}

.trial-balance-table .trial-balance-col-side{
  width:6%;
}

.trial-balance-table td.cell-num,
.trial-balance-table th.cell-num{
  white-space:nowrap;
}

.trial-balance-table th:nth-child(2),
.trial-balance-table td:nth-child(2),
.trial-balance-table th:nth-child(2).cell-num,
.trial-balance-table td:nth-child(2).cell-num{
  text-align:left;
}

.fixed-assets-register-table .fixed-assets-col-code{
  width:7%;
}

.fixed-assets-register-table .fixed-assets-col-description{
  width:13%;
}

.fixed-assets-register-table .fixed-assets-col-year{
  width:6%;
}

.fixed-assets-register-table .fixed-assets-col-rate{
  width:5%;
}

.fixed-assets-register-table .fixed-assets-col-money{
  width:6.9%;
}

.fixed-assets-register-table th{
  font-size:10px;
  letter-spacing:.05em;
  line-height:1.15;
  overflow-wrap:anywhere;
  word-break:normal;
}

.fixed-assets-register-table td{
  line-height:1.25;
}

.fixed-assets-register-table td.cell-num,
.fixed-assets-register-table th.cell-num{
  white-space:nowrap;
}

.fixed-assets-register-table td.cell-num{
  overflow-wrap:normal;
}

.trial-balance-account{
  font-weight:500;
}

.trial-balance-empty{
  color:rgba(226,232,240,.38);
}

.trial-balance-empty-row{
  text-align:center;
  opacity:.6;
}

.capital-statement-table{
  min-width:0;
  table-layout:fixed;
}

.capital-statement-table .capital-statement-col-label{
  width:68%;
}

.capital-statement-table .capital-statement-col-value{
  width:32%;
}

.capital-statement-table .capital-statement-col-compare{
  width:16%;
}

.capital-statement-table td{
  vertical-align:middle;
}

.capital-statement-table tfoot td{
  border-top:1px solid rgba(34,211,238,.2);
}

.capital-statement-label{
  font-weight:500;
  color:rgba(226,232,240,.9);
}

.capital-statement-total-row td{
  padding-top:12px;
  padding-bottom:12px;
  background:rgba(34,211,238,.1);
  border-bottom:0;
  font-size:.9rem;
}

.capital-statement-total-row td:first-child{
  border-top-left-radius:6px;
  border-bottom-left-radius:6px;
}

.capital-statement-total-row td:last-child{
  border-top-right-radius:6px;
  border-bottom-right-radius:6px;
}

.capital-statement-table td.cell-num{
  white-space:nowrap;
}

.vat-analysis-filter-card{
  margin-top:24px;
}

.accounting-vat-filter-grid{
  align-items:end;
}

.vat-analysis-report{
  margin-top:16px;
}

.vat-analysis-table{
  min-width:960px;
}

.vat-analysis-table th.cell-num,
.vat-analysis-table td.cell-num,
.vat-analysis-summary-table th.cell-num,
.vat-analysis-summary-table td.cell-num{
  white-space:nowrap;
}

.vat-analysis-section-row td{
  background:rgba(34,211,238,.12);
  color:rgba(226,232,240,.92);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  border-top:1px solid rgba(34,211,238,.18);
}

.vat-analysis-to-pay-row td{
  background:rgba(245,158,11,.1);
  border-top:1px solid rgba(245,158,11,.24);
  font-size:13px;
}

.vat-analysis-summary-card{
  margin-top:16px;
}

.vat-analysis-summary-table{
  min-width:860px;
}

.vat-analysis-summary-highlight td{
  background:rgba(34,197,94,.12);
  border-top:1px solid rgba(34,197,94,.22);
  border-bottom:1px solid rgba(34,197,94,.22);
  font-weight:700;
}

@media (max-width: 980px){
  .trial-balance-summary{
    grid-template-columns:1fr;
    flex-basis:100%;
  }

  .trial-balance-table .trial-balance-col-code{
    width:12%;
  }

  .trial-balance-table .trial-balance-col-name{
    width:24%;
  }

  .trial-balance-table .trial-balance-col-type{
    width:12%;
  }

  .trial-balance-table .trial-balance-col-money{
    width:16%;
  }

  .trial-balance-table .trial-balance-col-side{
    width:8%;
  }

  .capital-statement-table .capital-statement-col-label{
    width:52%;
  }

  .capital-statement-table .capital-statement-col-value{
    width:24%;
  }

  .capital-statement-table .capital-statement-col-compare{
    width:12%;
  }

  .accounting-vat-filter-grid{
    --grid-template:1fr 1fr;
  }
}

@media (max-width: 720px){
  .trial-balance-report{
    padding:18px;
  }

  .report-table.report-table-tight th,
  .report-table.report-table-tight td{
    padding:8px 6px;
    font-size:11px;
  }

  .accounting-vat-filter-grid{
    --grid-template:1fr;
  }
}

/* Account Tree */
.accounting-tree-table {
  font-size: .82rem;
}

.accounting-tree-header {
  display: flex;
  gap: 8px;
  padding: 4px 8px;
  border-bottom: 1px solid rgba(34,211,238,.15);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  opacity: .6;
  color: rgba(226,232,240,.8);
}

.accounting-tree-row {
  display: flex;
  gap: 8px;
  padding: 4px 8px;
  align-items: center;
  border-bottom: 1px solid rgba(34,211,238,.05);
  transition: background .1s;
}

.accounting-tree-row:hover {
  background: rgba(34,211,238,.04);
}

.accounting-inactive {
  opacity: .5;
}

.accounting-tree-code {
  width: 60px;
  flex-shrink: 0;
  font-family: monospace;
  color: rgba(148,163,184,.7);
  font-size: .8rem;
}

.accounting-tree-name {
  flex: 1;
  min-width: 0;
}

.accounting-tree-balance {
  width: 120px;
  flex-shrink: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

html[data-accounting-report-compare="false"] .accounting-tree-balance-compare,
html[data-accounting-report-compare="false"] .capital-statement-col-compare {
  display: none;
}

html[data-accounting-report-compare="false"] .accounting-section-total > .accounting-tree-balance-compare,
html[data-accounting-report-compare="false"] .accounting-grand-total > .accounting-tree-balance-compare {
  display: none;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
}

.accounting-tree-balance.warning {
  color: var(--warning);
}

.accounting-tree-actions {
  width: 42px;
  flex-shrink: 0;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  align-items: center;
}

.accounting-tree-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(226,232,240,.72);
  cursor: pointer;
  line-height: 1;
  text-decoration: none;
  transition: color .12s ease, opacity .12s ease;
}

.accounting-tree-action:hover,
.accounting-tree-action:focus-visible {
  color: rgba(34,211,238,.95);
}

.accounting-tree-action:focus-visible {
  outline: none;
}

.accounting-tree-action i {
  font-size: .88rem;
}

/* Date filter */
.accounting-date-filter-card{
  margin-top:24px;
  padding:16px 18px;
  border-color:rgba(34,211,238,.2);
  background:
    radial-gradient(420px 120px at 12% 0%, rgba(34,211,238,.12), transparent 60%),
    rgba(2,6,23,.58);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.07) inset,
    0 16px 34px rgba(0,0,0,.24);
}

.accounting-date-filter-grid{
  align-items:end;
}

.accounting-date-field input[type="date"]{
  height:44px;
  padding-right:12px;
  border-color:rgba(34,211,238,.24);
  background:
    linear-gradient(180deg, rgba(2,6,23,.82), rgba(2,6,23,.58));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.08) inset,
    0 0 22px rgba(34,211,238,.08);
  color:rgba(226,232,240,.94);
}

.accounting-date-field input[type="date"]:focus-visible{
  outline:none;
  border-color:rgba(34,211,238,.55);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.16) inset,
    0 0 0 3px rgba(34,211,238,.12),
    0 0 26px rgba(34,211,238,.16);
}

.accounting-date-field input[type="date"]::-webkit-calendar-picker-indicator{
  filter: invert(1) brightness(1.2);
  opacity:.95;
  cursor:pointer;
}

@media (max-width: 720px){
  .accounting-tree-code{
    width:52px;
  }

  .accounting-tree-header,
  .accounting-tree-row,
  .accounting-section-total,
  .accounting-grand-total{
    gap:6px;
  }

  .accounting-tree-balance,
  .accounting-section-total > :not(:first-child),
  .accounting-grand-total > :not(:first-child){
    width:92px;
    font-size:.74rem;
  }
}

.accounting-date-filter-actions{
  display:flex;
  align-items:center;
  gap:10px;
  justify-self:end;
}

.accounting-date-filter-years{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
  flex-wrap:wrap;
}

.accounting-status-filter{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px;
  border-radius:999px;
  border:1px solid rgba(34,211,238,.16);
  background:
    linear-gradient(180deg, rgba(2,6,23,.72), rgba(2,6,23,.5));
  box-shadow:
    0 0 0 1px rgba(34,211,238,.06) inset,
    0 12px 28px rgba(0,0,0,.22);
}

.accounting-status-filter-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:74px;
  padding:9px 14px;
  border-radius:999px;
  color:rgba(226,232,240,.72);
  text-decoration:none;
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:
    color .15s ease,
    background .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.accounting-status-filter-link:hover{
  color:rgba(248,250,252,.96);
  background:rgba(34,211,238,.08);
}

.accounting-status-filter-link.active{
  color:#03131b;
  background:linear-gradient(135deg, rgba(103,232,249,.98), rgba(34,211,238,.92));
  box-shadow:
    0 0 0 1px rgba(125,211,252,.3) inset,
    0 0 20px rgba(34,211,238,.24);
}

@media (max-width: 900px){
  .accounting-date-filter-grid{
    --grid-template:1fr;
  }

  .accounting-date-filter-actions{
    justify-self:start;
  }

  .accounting-status-filter{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

/* =========================================================
   ACCOUNTING / PROJECTS
   ========================================================= */
/* Flash messages (accounting-specific) */
.accounting-flash {
  padding: 12px 16px;
  border-radius: 6px;
  margin-bottom: 16px;
  font-size: .85rem;
}

.accounting-flash-warning {
  background: rgba(251,191,36,.1);
  border: 1px solid rgba(251,191,36,.25);
  color: #fbbf24;
}

/* Projects module */
.project-gantt-panel{
  margin-top:24px;
  overflow:hidden;
}

.project-gantt-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.project-gantt-legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:12px;
  color:rgba(226,232,240,.72);
}

.project-gantt-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.project-gantt-legend-swatch{
  width:18px;
  height:10px;
  border-radius:999px;
  display:inline-block;
}

.project-gantt-legend-swatch.planned{background:#3b82f6;}
.project-gantt-legend-swatch.actual{background:#34d399;}
.project-gantt-legend-swatch.delay{background:#ef4444;}

.project-gantt-legend-star{
  color:#facc15;
  font-size:16px;
  line-height:1;
}

.project-gantt-legend-line{
  width:18px;
  height:0;
  border-top:2px solid #3b82f6;
  position:relative;
}

.project-gantt-legend-line::after{
  content:"";
  position:absolute;
  right:-1px;
  top:-5px;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
  border-left:6px solid #3b82f6;
}

.project-gantt-scroll{
  overflow:auto;
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  background:rgba(2,6,23,.32);
}

.project-gantt-table{
  min-width:max-content;
}

.project-gantt-header,
.project-gantt-row{
  display:grid;
  grid-template-columns: var(--gantt-label-width) auto;
  min-width:max-content;
}

.project-gantt-sticky{
  position:sticky;
  left:0;
  z-index:4;
  background:
    linear-gradient(180deg, rgba(6,18,43,.96), rgba(6,18,43,.92)),
    rgba(2,6,23,.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-right:1px solid rgba(148,163,184,.14);
}

.project-gantt-header-label{
  padding:14px 16px;
  min-height:52px;
  display:flex;
  align-items:flex-end;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,.62);
}

.project-gantt-header-track{
  position:relative;
  height:52px;
  background:rgba(2,6,23,.45);
  border-bottom:1px solid rgba(148,163,184,.14);
}

.project-gantt-column{
  position:absolute;
  top:0;
  bottom:0;
  border-left:1px solid rgba(148,163,184,.08);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-bottom:8px;
  font-size:10px;
  letter-spacing:.04em;
  color:rgba(226,232,240,.52);
}

.project-gantt-column.weekend,
.project-gantt-day.weekend{
  background:rgba(148,163,184,.06);
}

.project-gantt-body{
  position:relative;
}

.project-gantt-arrow-layer{
  position:absolute;
  left:var(--gantt-label-width);
  top:0;
  bottom:0;
  pointer-events:none;
  z-index:1;
}

.project-gantt-arrows{
  position:absolute;
  top:0;
  left:0;
}

.project-gantt-row{
  border-bottom:1px solid rgba(148,163,184,.10);
}

.project-gantt-row:last-child{
  border-bottom:0;
}

.project-gantt-row-label{
  padding:12px 16px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:8px;
}

.project-gantt-row-title{
  font-size:14px;
  font-weight:600;
  color:rgba(248,250,252,.96);
}

.project-gantt-row-meta,
.project-gantt-row-stats{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:11px;
  color:rgba(226,232,240,.62);
}

.project-gantt-row-track{
  position:relative;
}

.project-gantt-day{
  position:absolute;
  top:0;
  bottom:0;
  border-left:1px solid rgba(148,163,184,.08);
}

.project-gantt-today-line{
  position:absolute;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg, rgba(251,191,36,.9), rgba(245,158,11,.45));
  box-shadow:0 0 12px rgba(245,158,11,.35);
  z-index:2;
}

.project-gantt-task-lane{
  position:absolute;
  left:0;
  right:0;
  height:26px;
}

.project-gantt-bar{
  position:absolute;
  top:10px;
  height:12px;
  border-radius:999px;
  box-shadow:0 4px 10px rgba(2,6,23,.35);
  opacity:.92;
  z-index:3;
}

.project-gantt-bar.planned{
  background:linear-gradient(135deg, rgba(59,130,246,.96), rgba(37,99,235,.88));
}

.project-gantt-bar.actual{
  background:linear-gradient(135deg, rgba(52,211,153,.96), rgba(5,150,105,.88));
}

.project-gantt-bar.delay{
  background:linear-gradient(135deg, rgba(248,113,113,.96), rgba(220,38,38,.88));
}

.project-gantt-task-caption{
  position:absolute;
  top:-2px;
  font-size:11px;
  color:rgba(226,232,240,.78);
  pointer-events:none;
}

.project-gantt-milestone{
  position:absolute;
  font-size:18px;
  line-height:1;
  text-shadow:0 0 14px currentColor;
  z-index:4;
}

.project-gantt-empty{
  padding:24px 8px 8px;
  color:rgba(226,232,240,.66);
  font-size:14px;
}

@media (max-width: 900px){
  .project-gantt-head{
    flex-direction:column;
  }

  .project-gantt-table{
    --gantt-label-width: 220px;
  }
}

@media (max-width: 640px){
  .accounting-layout { flex-direction: column; }
  .accounting-sidebar { width: 100%; min-height: auto; }
  .accounting-sidebar.is-collapsed { width: 100%; }
  .accounting-sidebar.is-collapsed .pill { display:inline-flex; }
  .accounting-sidebar.is-collapsed .accounting-sidebar-group { justify-content:flex-start; padding-left:16px; padding-right:16px; }
  .accounting-sidebar.is-collapsed .accounting-sidebar-link { justify-content:flex-start; padding-left:16px; padding-right:16px; }
  .accounting-sidebar.is-collapsed .accounting-sidebar-text { display:inline; }
  .accounting-content { padding: 16px 0 0; }
}

@media (max-width: 900px){
  .agent-summary-grid,
  .agent-action-grid,
  .agent-check-grid{
    --grid-template:1fr;
  }
}

.invoice-lines-editor{
  margin-top:18px;
  padding:20px;
  border-radius:22px;
  border:1px solid rgba(34,211,238,.16);
  background:
    radial-gradient(780px 220px at 10% 0%, rgba(34,211,238,.12), transparent 58%),
    radial-gradient(640px 260px at 100% 0%, rgba(139,92,246,.12), transparent 54%),
    linear-gradient(180deg, rgba(7,15,36,.92), rgba(2,6,23,.82));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 18px 40px rgba(2,6,23,.26);
}

.invoice-lines-help{
  margin:0;
  max-width:72ch;
  color:rgba(226,232,240,.7);
}

.invoice-lines-title-wrap{
  display:grid;
  gap:6px;
}

.invoice-lines-editor .table-title{
  font-size:18px;
  letter-spacing:.01em;
  color:rgba(248,250,252,.98);
}

.invoice-lines-editor .table-head{
  align-items:flex-start;
  padding-bottom:4px;
}

.invoice-lines-editor .table-tools{
  display:flex;
  align-items:center;
  gap:10px;
}

.invoice-lines-editor .table-tools .btn{
  border-color:rgba(34,211,238,.24);
  background:rgba(8,20,44,.62);
  box-shadow:0 10px 24px rgba(2,6,23,.18);
}

.invoice-lines-editor .report-table select,
.invoice-lines-editor .report-table input{
  min-width:100%;
  height:38px;
  padding:8px 10px;
  border-radius:10px;
  border-color:rgba(148,163,184,.12);
  background:rgba(2,6,23,.56);
  color:rgba(226,232,240,.94);
  font-size:13px;
  box-sizing:border-box;
  -webkit-text-fill-color:rgba(226,232,240,.94);
  caret-color:rgba(34,211,238,.95);
}

.invoice-lines-editor .report-table input::placeholder{
  color:rgba(148,163,184,.72);
}

.invoice-lines-editor .report-table select option{
  color:rgba(226,232,240,.94);
  background:rgba(8,20,44,.98);
}

.invoice-lines-editor .report-table select:focus-visible,
.invoice-lines-editor .report-table input:focus-visible{
  outline:none;
  border-color:rgba(34,211,238,.42);
  box-shadow:
    0 0 0 1px rgba(34,211,238,.16) inset,
    0 0 0 3px rgba(34,211,238,.12),
    0 0 20px rgba(34,211,238,.12);
}

.invoice-lines-editor .report-table td{
  vertical-align:top;
}

.invoice-lines-editor .table-scroll{
  border-radius:16px;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(2,6,23,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}

.invoice-lines-editor .report-table{
  min-width:1280px;
}

.invoice-lines-editor .report-table th{
  background:rgba(6,15,34,.94);
  color:rgba(226,232,240,.74);
  border-bottom-color:rgba(148,163,184,.12);
}

.invoice-lines-editor .report-table td{
  padding:8px;
  border-bottom-color:rgba(148,163,184,.08);
}

.invoice-lines-editor .report-table tbody tr:nth-child(odd){
  background:rgba(255,255,255,.012);
}

.invoice-lines-editor .report-table tbody tr:hover{
  background:rgba(34,211,238,.075);
}

.invoice-lines-editor .report-table tfoot td{
  background:rgba(8,20,44,.82);
  border-top:1px solid rgba(34,211,238,.12);
  border-bottom:0;
  color:rgba(248,250,252,.96);
}

.invoice-lines-editor .report-table tfoot strong{
  letter-spacing:.02em;
}

.invoice-lines-editor .cell-num{
  font-variant-numeric:tabular-nums;
  color:rgba(248,250,252,.92);
}

.invoice-lines-editor [data-line-amount],
.invoice-lines-editor [data-line-vat-amount],
.invoice-lines-editor [data-line-total]{
  display:inline-flex;
  min-height:38px;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  padding:0 4px;
}

.invoice-lines-editor .btn.danger{
  min-width:auto;
  padding:8px 10px;
  border-color:rgba(239,68,68,.24);
  background:rgba(69,10,10,.32);
}

.invoice-form-textarea-span{
  grid-column:span 2;
}

@media (max-width: 900px){
  .invoice-lines-editor{
    padding:16px;
  }

  .invoice-lines-editor .table-title{
    font-size:16px;
  }

  .invoice-form-textarea-span{
    grid-column:span 1;
  }
}

.project-profitability-panel{
  margin-top:24px;
}

.project-profitability-copy{
  margin:8px 0 0;
  max-width:920px;
  color:rgba(226,232,240,.72);
  line-height:1.55;
}

.project-profitability-grid{
  --grid-gap:14px;
  margin-top:18px;
}

.project-profitability-metric{
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.14);
  background:linear-gradient(180deg, rgba(15,23,42,.88), rgba(8,15,30,.74));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.project-profitability-label{
  display:block;
  margin-bottom:8px;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(34,211,238,.8);
}

.project-profitability-metric strong{
  display:block;
  font-size:1.35rem;
  line-height:1.2;
  color:rgba(248,250,252,.98);
}

.project-profitability-metric small{
  display:block;
  margin-top:8px;
  color:rgba(226,232,240,.62);
}

.project-profitability-empty{
  padding:18px;
  border-radius:16px;
  border:1px dashed rgba(148,163,184,.18);
  color:rgba(226,232,240,.65);
  background:rgba(15,23,42,.32);
}
