/* ===========================================================================
   SEDF Enterprise Grant Portal — Theme  ·  "Refined Institutional"
   UNIDO-PAIDAR & SEDF · deep forest green + slate · serif display headings.
   App-shell left sidebar + vertical step rail. Layers on Bootstrap 3.
   =========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&display=swap');

:root {
    --brand:      #234b38;   /* forest green (done states, brand) */
    --brand-d:    #1a3a2b;
    --brand-dd:   #21382b;   /* dark header + stats card */
    --brand-soft: #e9f0ec;
    --brand-soft2:#d3e2d9;

    --accent:     #c25e2a;   /* warm terracotta — primary actions, current step */
    --accent-d:   #a94e20;
    --accent-soft:#f6e3d6;

    --gold:       #caa04a;   /* amber — highlighted figures */
    --gold-soft:  #f4ecd6;

    --blue:#2563eb; --blue-soft:#e9f0fe;
    --purple:#6d49c4; --purple-soft:#efeafc;
    --orange:#c2691b; --orange-soft:#fbeedd;

    --ink:    #22281e;
    --ink-2:  #3b4234;
    --ink-3:  #5e6557;
    --muted:  #8c9183;
    --line:   #e7e2d4;
    --line-2: #d9d3c3;
    --bg:     #f6f3ea;
    --surface:#ffffff;
    --soft:   #f1eee3;

    --ok:#0f7a4a; --warn:#b5791a; --danger:#b4392b;

    --r-sm:9px; --r-md:14px; --r-lg:18px;
    --shadow-sm: 0 1px 2px rgba(20,45,32,.03), 0 6px 16px rgba(20,45,32,.045);
    --shadow-md: 0 12px 32px rgba(20,45,32,.08);
    --shadow-lg: 0 26px 60px rgba(20,45,32,.14);

    --font: 'Inter','Segoe UI',system-ui,sans-serif;
    --font-head: 'Source Serif 4', Georgia, 'Times New Roman', serif;
    --sidebar-w: 248px;
    --header-h: 60px;
    --maxw: 1680px;
}

* { box-sizing:border-box; }
html,body { background:var(--bg); color:var(--ink); font-family:var(--font); font-size:14px; line-height:1.55; margin:0; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5 { font-family:var(--font-head); color:var(--ink); margin-top:0; letter-spacing:-.01em; }
a { color:var(--brand-d); text-decoration:none; }
a:hover { color:var(--brand); }
.serif { font-family:var(--font-head); }

/* ---------------- Buttons ---------------- */
.btn_theme,.btn-sedf { display:inline-flex; align-items:center; gap:8px; justify-content:center; background:var(--accent); color:#fff; border:1px solid var(--accent); border-radius:var(--r-sm); padding:10px 21px; font-weight:600; font-size:13.5px; cursor:pointer; transition:all .16s ease; box-shadow:0 1px 2px rgba(169,78,32,.18); }
.btn_theme:hover,.btn-sedf:hover { background:var(--accent-d); border-color:var(--accent-d); color:#fff; box-shadow:0 6px 16px rgba(169,78,32,.26); transform:translateY(-1px); }
.btn_theme:active,.btn-sedf:active { transform:translateY(0); box-shadow:0 1px 2px rgba(169,78,32,.2); }
.btn-ghost { display:inline-flex; align-items:center; gap:7px; justify-content:center; background:#fff; color:var(--brand-d); border:1px solid var(--line-2); border-radius:var(--r-sm); padding:9px 19px; font-weight:600; font-size:13.5px; cursor:pointer; transition:all .16s ease; }
.btn-ghost:hover { border-color:var(--accent); color:var(--accent-d); background:var(--accent-soft); }
.btn-lg { padding:12px 26px; font-size:15px; }
.btn-sm { padding:7px 14px; font-size:12.5px; }
.btn-block-sm { width:100%; }

/* ---------------- Forms ---------------- */
.form-group { margin-bottom:14px; }
.control-label { display:block; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:var(--ink-3); margin-bottom:6px; }
.req::after,.required_field::after { content:" *"; color:var(--accent); }
.form-control { display:block; width:100%; height:42px; padding:10px 14px; font-size:13.5px; color:var(--ink); background:#f5f3ec; border:1px solid #e6e1d3; border-radius:10px; transition:border-color .15s, box-shadow .15s, background .15s; }
textarea.form-control { height:auto; min-height:90px; line-height:1.55; }
.form-control:hover { background:#f2f0e8; border-color:#dad4c5; }
.form-control:focus { outline:none; border-color:var(--accent); background:#fff; box-shadow:0 0 0 3px rgba(194,94,42,.12); }
.form-control::placeholder { color:#b1ab9a; }
/* keep the cream field fill on browser autofill (no blue tint) */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--ink);
    -webkit-box-shadow: 0 0 0 40px #f5f3ec inset;
    box-shadow: 0 0 0 40px #f5f3ec inset;
    caret-color: var(--ink);
}
select.form-control { -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238c9183' d='M6 8L0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:34px; }
.field-hint { font-size:11.5px; color:var(--muted); margin-top:5px; }
.field-error { font-size:11.5px; color:var(--danger); margin-top:5px; display:none; }
.has-error .form-control { border-color:var(--danger); }
.has-error .field-error { display:block; }

.radio-pills { display:flex; gap:10px; flex-wrap:wrap; }
.radio-pills label { display:inline-flex; align-items:center; gap:8px; padding:8px 15px; border:1px solid var(--line-2); border-radius:999px; cursor:pointer; font-weight:600; font-size:12.5px; color:var(--ink-2); user-select:none; margin:0; transition:all .15s; }
.radio-pills input { accent-color:var(--accent); }
.radio-pills label:hover { border-color:var(--accent); color:var(--accent-d); background:var(--accent-soft); }

/* ---------------- Cards ---------------- */
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); padding:18px; margin-bottom:16px; }
.card-pad-lg { padding:24px; }
.card-head { display:flex; align-items:center; gap:11px; margin:-18px -18px 16px; padding:14px 18px; border-bottom:1px solid var(--line); }
.card-head h4 { margin:0; font-size:15px; font-weight:700; letter-spacing:-.01em; }
.card-head .ico { width:30px; height:30px; border-radius:8px; background:var(--brand-soft); color:var(--brand-d); display:flex; align-items:center; justify-content:center; font-size:13px; }

.page-header { font-family:var(--font-head); border-bottom:1px solid var(--line); padding-bottom:12px; margin:0 0 18px; font-size:21px; font-weight:700; }
.page-header small { display:block; font-family:var(--font); font-size:13px; color:var(--ink-3); font-weight:400; margin-top:5px; line-height:1.45; }
.page-header .program { font-family:var(--font); font-size:11.5px; color:var(--gold); font-weight:700; background:var(--gold-soft); padding:3px 11px; border-radius:999px; vertical-align:middle; letter-spacing:.3px; }

/* ---------------- Badges / notices ---------------- */
.badge-req { background:#fbeae7; color:var(--danger); border:1px solid #f0cbc4; padding:2px 9px; border-radius:999px; font-size:10.5px; font-weight:700; }
.badge-cond { background:var(--gold-soft); color:var(--gold); border:1px solid #ecd9a8; padding:2px 9px; border-radius:999px; font-size:10.5px; font-weight:700; }
.badge-ok { background:var(--brand-soft); color:var(--brand-d); border:1px solid var(--brand-soft2); padding:2px 9px; border-radius:999px; font-size:10.5px; font-weight:700; }
.notice { border-radius:var(--r-md); padding:14px 17px; font-size:13px; margin-bottom:20px; border:1px solid; display:flex; gap:11px; line-height:1.5; }
.notice i { margin-top:2px; }
.notice-info { background:var(--brand-soft); border-color:var(--brand-soft2); color:var(--brand-dd); }
.notice-warn { background:var(--gold-soft); border-color:#ecd9a8; color:#7a5510; }
.notice-gold { background:var(--gold-soft); border-color:#ecd9a8; color:#7a5510; }

/* ===========================================================================
   PUBLIC LANDING
   =========================================================================== */
.top-strip { background:#fff; border-bottom:1px solid var(--line); }
.top-strip .inner { display:flex; align-items:center; gap:16px; padding:11px 0; }
.top-strip .logos { display:flex; align-items:center; gap:15px; }
.top-strip .logos img { height:44px; }
.top-strip .prog-name { line-height:1.18; padding-left:15px; border-left:1px solid var(--line); }
.top-strip .prog-name .t1 { font-family:var(--font-head); font-weight:700; font-size:15.5px; color:var(--brand-dd); }
.top-strip .prog-name .t2 { font-size:11.5px; color:var(--ink-3); }
.top-strip .spacer { flex:1; }
.top-strip .util { display:flex; align-items:center; gap:20px; font-size:13px; }
.top-strip .util a { color:var(--ink-2); font-weight:500; }

.hero2 { position:relative; color:#fff; padding:68px 0 96px; background:linear-gradient(115deg, rgba(4,38,25,.96) 0%, rgba(9,72,46,.92) 50%, rgba(15,90,57,.80) 100%), url("../images/hero.svg"); background-size:cover; background-position:center; }
.hero2 h1 { color:#fff; font-size:40px; line-height:1.16; max-width:600px; font-weight:700; }
.hero2 p.lead { font-size:16.5px; color:#d6e7de; max-width:540px; margin-top:16px; line-height:1.6; }
.hero2 .hero-badges { display:flex; gap:24px; margin-top:26px; flex-wrap:wrap; }
.hero2 .hero-badges div { font-size:13px; color:#e9f5ee; }
.hero2 .hero-badges i { color:var(--gold); margin-right:7px; }

.login-card { background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:28px; color:var(--ink); }
.login-card h4 { font-size:20px; margin-bottom:4px; }
.login-card .sub { color:var(--ink-3); font-size:12.5px; margin-bottom:20px; }
.login-card .row-between { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; font-size:12.5px; }

.feature-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:-60px; position:relative; z-index:3; }
.feature-strip .f { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-md); padding:20px; }
.feature-strip .f .ico { width:44px; height:44px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:12px; }
.feature-strip .f h5 { font-size:15px; margin:0 0 5px; }
.feature-strip .f p { font-size:12.5px; color:var(--ink-3); margin:0; line-height:1.5; }
@media (max-width:900px){ .feature-strip { grid-template-columns:1fr 1fr; } .hero2 h1 { font-size:30px; } }

.ico-green { background:var(--brand-soft); color:var(--brand-d); }
.ico-blue { background:var(--blue-soft); color:var(--blue); }
.ico-purple { background:var(--purple-soft); color:var(--purple); }
.ico-orange { background:var(--orange-soft); color:var(--orange); }
.ico-gold { background:var(--gold-soft); color:var(--gold); }
.ico-red { background:#fbeaea; color:var(--danger); }

.section { padding:56px 0; }
.section.alt { background:var(--soft); }
.section h2 { font-size:28px; font-weight:700; }
.section .lead-sub { color:var(--ink-3); margin-bottom:8px; }

.focus-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
@media (max-width:700px){ .focus-grid { grid-template-columns:1fr; } }
.focus { display:flex; gap:15px; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:20px; transition:box-shadow .15s; }
.focus:hover { box-shadow:var(--shadow-md); }
.focus .ico { width:48px; height:48px; flex-shrink:0; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; }
.focus h5 { margin:0 0 5px; font-size:16px; }
.focus p { margin:0; font-size:12.5px; color:var(--ink-3); line-height:1.5; }

.ann-card { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; }
.ann-card .h { padding:15px 19px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.ann-card .h h5 { margin:0; font-size:16px; }
.ann-item { display:flex; gap:13px; padding:15px 19px; border-bottom:1px solid var(--line); }
.ann-item:last-child { border-bottom:none; }
.ann-item .d { flex-shrink:0; width:48px; text-align:center; background:var(--brand-soft); color:var(--brand-d); border-radius:var(--r-sm); padding:7px 0; font-weight:700; line-height:1.1; font-family:var(--font-head); }
.ann-item .d small { display:block; font-size:9.5px; font-weight:600; font-family:var(--font); }
.ann-item .t { font-size:13px; font-weight:600; }
.ann-item .s { font-size:11.5px; color:var(--muted); }

/* partner logo bar (public top) */
.logo-bar { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:20px 10px; flex-wrap:wrap; }
.logo-bar img { width:auto; object-fit:contain; }
@media (max-width:700px){ .logo-bar { justify-content:center; gap:24px; } }

/* login landing */
.login-page { padding:34px 0 46px; }
.login-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center; }
@media (max-width:900px){ .login-grid { grid-template-columns:1fr; gap:28px; } }
.welcome-head { font-family:var(--font-head); font-size:40px; line-height:1.12; color:var(--ink); font-weight:700; margin:0 0 26px; }
@media (max-width:900px){ .welcome-head { font-size:30px; } }
.welcome-box { background:linear-gradient(160deg,#2c6044 0%,#21382b 100%); color:#fff; border-radius:18px; padding:30px 32px; box-shadow:var(--shadow-md); }
.welcome-box p { font-size:15px; line-height:1.66; color:rgba(255,255,255,.9); margin:0 0 16px; }
.wb-fact { display:flex; align-items:center; gap:11px; font-size:15px; padding:9px 0; border-top:1px solid rgba(255,255,255,.13); color:#fff; }
.wb-fact i { color:var(--gold); font-size:17px; }
.wb-fact strong { color:var(--gold); font-weight:700; }

/* white footer with tagline + PAIDAR */
.public-footer { background:#fff; border-top:1px solid var(--line); padding:16px 0; }
.public-footer .foot-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.public-footer .foot-tag { font-family:var(--font-head); font-weight:700; font-size:16px; color:var(--brand-d); line-height:1.25; }
.public-footer .foot-paidar { height:54px; }

/* ===========================================================================
   AUTH'D APP SHELL — header + left sidebar
   =========================================================================== */
.app-header { height:var(--header-h); background:var(--brand-dd); border-bottom:1px solid rgba(0,0,0,.12); position:sticky; top:0; z-index:50; color:#fff; }
.app-header-inner { max-width:var(--maxw); height:100%; margin:0 auto; display:flex; align-items:center; gap:12px; padding:0 30px; }
.app-header .brand { display:flex; align-items:center; gap:13px; }
.app-header .brand .logo-plaque { background:#fff; border-radius:8px; padding:5px 11px; display:flex; align-items:center; box-shadow:var(--shadow-sm); }
.app-header .brand .brand-logo { height:32px; display:block; }
.app-header .brand .brand-tag { color:rgba(255,255,255,.82); font-size:12.5px; font-weight:500; padding-left:13px; border-left:1px solid rgba(255,255,255,.25); }
/* legacy fallbacks (unused once logo is in place) */
.app-header .brand .mark { width:36px; height:36px; border-radius:9px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:18px; }
.app-header .spacer { flex:1; }
.app-header .hicon { width:38px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.85); position:relative; font-size:16px; }
.app-header .hicon:hover { background:rgba(255,255,255,.1); }
.app-header .hicon .dot { position:absolute; top:9px; right:10px; width:8px; height:8px; background:var(--accent); border-radius:50%; border:2px solid var(--brand-dd); }
/* (header icon styles consolidated above; user menu styled below) */

/* header user dropdown */
.user-menu { position:relative; }
.user-menu .user { display:flex; align-items:center; gap:10px; background:none; border:none; cursor:pointer; padding:4px 8px 4px 4px; border-radius:30px; }
.user-menu .user:hover { background:rgba(255,255,255,.1); }
.user-menu .user .av { width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-family:var(--font-head); font-size:13px; }
.user-menu .user .nm { font-size:13px; font-weight:600; color:#fff; }
.user-dropdown { position:absolute; right:0; top:calc(100% + 8px); background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-md); min-width:210px; padding:6px; list-style:none; margin:0; display:none; z-index:60; }
.user-menu.open .user-dropdown { display:block; }
.user-dropdown .nm-head { padding:9px 12px 6px; }
.user-dropdown .nm-head .n { font-weight:700; font-size:13.5px; }
.user-dropdown .nm-head .e { font-size:11.5px; color:var(--muted); }
.user-dropdown .div { height:1px; background:var(--line); margin:5px 6px; }
.user-dropdown a { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:var(--r-sm); color:var(--ink-2); font-weight:500; font-size:13.5px; }
.user-dropdown a:hover { background:var(--soft); }
.user-dropdown a i { width:16px; text-align:center; color:var(--ink-3); }

.app-body { display:flex; min-height:calc(100vh - var(--header-h)); }
.app-sidebar { width:var(--sidebar-w); flex-shrink:0; background:#fff; border-right:1px solid var(--line); padding:18px 14px; display:flex; flex-direction:column; }
.nav-list { list-style:none; margin:0; padding:0; flex:1; }
.nav-list .nav-cap { font-size:10.5px; text-transform:uppercase; letter-spacing:.7px; color:var(--muted); font-weight:700; padding:8px 14px; }
.nav-list li a { display:flex; align-items:center; gap:13px; padding:11px 14px; border-radius:var(--r-sm); color:var(--ink-2); font-weight:500; font-size:14px; margin-bottom:3px; position:relative; }
.nav-list li a i { width:18px; text-align:center; color:var(--ink-3); font-size:15px; }
.nav-list li a:hover { background:var(--soft); }
.nav-list li.active a { background:var(--brand-soft); color:var(--brand-d); font-weight:600; }
.nav-list li.active a::before { content:''; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:3px; background:var(--brand); }
.nav-list li.active a i { color:var(--brand-d); }
.nav-list .sep { height:1px; background:var(--line); margin:12px 6px; }
.help-box { background:var(--brand-soft); border-radius:var(--r-md); padding:15px; font-size:12px; color:var(--brand-dd); }
.help-box .t { font-weight:700; margin-bottom:7px; font-family:var(--font-head); font-size:14px; }
.help-box div { margin-bottom:4px; }

.app-content { width:100%; max-width:var(--maxw); margin:0 auto; padding:18px 30px 22px; }
.welcome-h { font-family:var(--font-head); font-size:22px; font-weight:700; margin:0 0 3px; }
.welcome-s { color:var(--ink-3); margin:0 0 18px; font-size:13.5px; }

/* breadcrumb / context strip */
.crumb { font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:14px; }
.crumb a { color:var(--muted); } .crumb a:hover { color:var(--brand-d); }
.crumb .sep { margin:0 7px; color:var(--line-2); }
.crumb .here { color:var(--brand-d); font-weight:700; }

/* app footer */
.app-footer { border-top:1px solid var(--line); background:#fff; padding:13px 24px; }
.app-footer .inner { max-width:var(--maxw); margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:11.5px; color:var(--ink-3); }
.app-footer a { color:var(--brand-d); margin-left:16px; }
.app-footer .foot-paidar-app { height:40px; margin-left:auto; align-self:center; }

/* ===========================================================================
   DASHBOARD (workspace style) — cream canvas, dark stats card, horizontal stepper
   =========================================================================== */
.mono { font-family: ui-monospace, 'Consolas', 'Courier New', monospace; letter-spacing:.2px; }
.dash-title { font-family:var(--font-head); font-size:26px; font-weight:700; line-height:1.1; margin:2px 0 4px; }
.dash-subtitle { color:var(--ink-3); font-size:13.5px; margin:0 0 16px; }
@media (max-width:760px){ .dash-title { font-size:22px; } }

.gstats { display:grid; grid-template-columns:repeat(3,1fr); background:linear-gradient(135deg, #284733 0%, #1d3527 100%); color:#fff; border-radius:16px; padding:20px 8px; margin-bottom:18px; box-shadow:0 14px 34px rgba(20,45,32,.14); position:relative; overflow:hidden; }
.gstats::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--accent), var(--gold)); opacity:.85; }
.gstat { padding:4px 26px; border-left:1px solid rgba(255,255,255,.1); }
.gstat:first-child { border-left:none; }
.gstat .l { font-size:12px; color:rgba(255,255,255,.6); margin-bottom:7px; }
.gstat .v { font-family:var(--font-head); font-size:25px; font-weight:700; color:var(--gold); line-height:1; margin-bottom:6px; }
.gstat .v.white { color:#fff; }
.gstat .v.timer { font-size:22px; letter-spacing:.5px; }
.gstat .v.v-status { font-size:19px; }
.gstat .v.timer .u { font-size:13px; color:rgba(255,255,255,.45); font-weight:500; margin:0 4px 0 1px; }
.gstat .s { font-size:12px; color:rgba(255,255,255,.55); }
@media (max-width:760px){ .gstats { grid-template-columns:1fr; } .gstat { border-left:none; border-top:1px solid rgba(255,255,255,.13); padding:13px 20px; } .gstat:first-child { border-top:none; } }

.steps-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; }
.steps-head h3 { font-family:var(--font-head); font-size:18px; font-weight:700; margin:0; }
.steps-head .cnt { color:var(--ink-3); font-size:13px; }
.hstep { display:flex; margin-bottom:18px; }
.hnode { flex:1; text-align:center; position:relative; padding:0 2px; }
.hnode:not(:last-child)::after { content:''; position:absolute; top:20px; left:50%; width:100%; height:2px; background:var(--line-2); z-index:0; }
.hnode.done:not(:last-child)::after { background:linear-gradient(90deg, var(--brand), var(--accent)); }
.hcircle { position:relative; z-index:1; width:40px; height:40px; border-radius:50%; margin:0 auto 9px; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:14px; background:#eae5d7; color:var(--muted); border:2px solid var(--bg); box-shadow:0 1px 2px rgba(20,45,32,.06); transition:transform .15s, box-shadow .15s; }
.hnode.done .hcircle { background:var(--brand); color:#fff; box-shadow:0 2px 7px rgba(35,75,56,.26); }
.hnode.current .hcircle { background:var(--accent); color:#fff; box-shadow:0 0 0 4px var(--accent-soft), 0 4px 10px rgba(194,94,42,.3); }
.hnode:hover .hcircle { transform:translateY(-2px); }
.hlabel { font-size:11.5px; font-weight:600; color:var(--ink-2); line-height:1.2; }
.hnode.todo .hlabel { color:var(--muted); }
.hnode.current .hlabel { color:var(--accent-d); }
@media (max-width:760px){ .hstep { overflow-x:auto; } .hnode { min-width:84px; } }

.resume { display:flex; align-items:center; gap:15px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; box-shadow:var(--shadow-sm); transition:box-shadow .16s, transform .16s; }
.resume:hover { box-shadow:var(--shadow-md); transform:translateY(-1px); }
.resume .ic { width:44px; height:44px; border-radius:12px; background:var(--accent-soft); color:var(--accent-d); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.resume .main { flex:1; min-width:0; }
.resume .t { font-family:var(--font-head); font-size:16px; font-weight:700; }
.resume .s { color:var(--ink-3); font-size:12.5px; margin-top:2px; }

/* dashboard: compact summary bar */
.appbar { display:flex; align-items:center; gap:18px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--brand); border-radius:var(--r-md); box-shadow:var(--shadow-sm); padding:14px 20px; margin-bottom:16px; flex-wrap:wrap; }
.ab-prog { display:flex; align-items:center; gap:15px; }
.ring.ring-xs { width:62px; height:62px; }
.ring.ring-xs .hole { inset:7px; }
.ring.ring-xs .pct { font-size:16px; }
.ring.ring-xs .pl { display:none; }
.ab-title { font-family:var(--font-head); font-weight:700; font-size:17px; line-height:1.15; }
.ab-sub { font-size:12.5px; color:var(--ink-3); margin-top:4px; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.ab-spacer { flex:1; }
.ab-deadline { text-align:right; }
.ab-lbl { font-size:9.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); margin-bottom:3px; }
.ab-cd { font-family:var(--font-head); font-weight:700; font-size:16px; color:var(--brand-d); }
.ab-cd .u { color:var(--muted); font-weight:500; font-size:11px; margin-left:1px; }
.status-pill { padding:3px 11px; font-size:11px; }

/* sections as a card grid */
.dash-main { display:grid; grid-template-columns:1fr 332px; gap:18px; align-items:start; }
@media (max-width:980px){ .dash-main { grid-template-columns:1fr; } }
.block-head { display:flex; justify-content:space-between; align-items:center; margin:2px 2px 12px; }
.block-head h4 { margin:0; font-size:16px; font-family:var(--font-head); }
.sec-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:12px; }
.sec-card { display:flex; gap:12px; align-items:center; padding:14px 15px; border:1px solid var(--line); border-radius:var(--r-md); background:#fff; box-shadow:var(--shadow-sm); color:var(--ink-2); }
.sec-card:hover { box-shadow:var(--shadow-md); border-color:var(--brand-soft2); }
.sec-card.current { border-color:var(--gold); background:var(--gold-soft); }
.sec-card .sec-ico { width:38px; height:38px; border-radius:10px; }
.sec-card.current .sec-ico { background:#fff; color:var(--gold); }
.sec-card.todo .sec-ico { background:var(--soft); color:var(--muted); }
.sec-card .sec-badge { margin-left:auto; }

/* stage tracker — compact */
.stage-track { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); padding:15px 12px 12px; margin-bottom:14px; display:flex; overflow-x:auto; }
.stage { flex:1 0 0; min-width:104px; text-align:center; position:relative; padding:0 4px; }
.stage:not(:last-child)::after { content:''; position:absolute; top:19px; left:50%; width:100%; height:2px; background:var(--line); z-index:0; }
.stage.done:not(:last-child)::after { background:var(--brand-soft2); }
.stage .st-ico { position:relative; z-index:1; width:38px; height:38px; border-radius:50%; background:#fff; border:2px solid var(--line-2); color:var(--muted); display:flex; align-items:center; justify-content:center; font-size:15px; margin:0 auto 7px; }
.stage.done .st-ico { background:var(--brand); border-color:var(--brand); color:#fff; }
.stage.current .st-ico { background:var(--gold-soft); border-color:var(--gold); color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.stage .st-lbl { font-weight:700; font-size:12px; }
.stage.current .st-lbl { color:var(--gold); }
.stage .st-sub { font-size:10px; color:var(--muted); margin-top:1px; }

/* dashboard columns */
.dash-cols { display:grid; grid-template-columns:1.7fr 1fr; gap:14px; }
@media (max-width:1000px){ .dash-cols { grid-template-columns:1fr; } }

/* section list — compact rows */
.sec-head { display:flex; justify-content:space-between; align-items:center; }
.pill-step { background:var(--brand); color:#fff; font-size:10.5px; font-weight:700; padding:4px 11px; border-radius:999px; letter-spacing:.3px; }
.sec-row { display:flex; align-items:center; gap:12px; padding:9px 8px; border-bottom:1px solid var(--line); color:var(--ink-2); }
.sec-row:last-child { border-bottom:none; }
.sec-row:hover { background:var(--soft); }
.sec-row.current { background:var(--gold-soft); border-radius:var(--r-sm); border-bottom-color:transparent; }
.sec-ico { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; background:var(--brand-soft); color:var(--brand-d); }
.sec-row.current .sec-ico { background:#fff; color:var(--gold); }
.sec-row.todo .sec-ico { background:var(--soft); color:var(--muted); }
.sec-main { flex:1; min-width:0; }
.sec-title { font-weight:600; font-size:13.5px; color:var(--ink); }
.sec-sub { font-size:11px; color:var(--muted); margin-top:1px; }
.sec-badge { font-size:9.5px; font-weight:700; padding:3px 9px; border-radius:999px; text-transform:uppercase; letter-spacing:.3px; }
.sec-badge.done { background:var(--brand-soft); color:var(--brand-d); }
.sec-badge.cur { background:var(--gold); color:#fff; }
.sec-badge.step { background:#eef1ef; color:var(--ink-3); }
.sec-chev { color:var(--line-2); font-size:14px; }

/* notices — compact */
.notices { list-style:none; margin:0; padding:0; }
.notices li { position:relative; padding:9px 0 9px 18px; border-bottom:1px solid var(--line); font-size:12px; color:var(--ink-2); line-height:1.45; }
.notices li:last-child { border-bottom:none; }
.notices li::before { content:''; position:absolute; left:2px; top:14px; width:6px; height:6px; border-radius:50%; background:var(--gold); }

/* dashboard: application progress */
.progress-panel { display:grid; grid-template-columns:210px 1fr; gap:32px; align-items:center; }
@media (max-width:760px){ .progress-panel { grid-template-columns:1fr; justify-items:center; text-align:center; } }
.ring { position:relative; width:170px; height:170px; border-radius:50%; background:conic-gradient(var(--brand) calc(var(--p) * 3.6deg), var(--line) 0); margin:0 auto; }
.ring .hole { position:absolute; inset:14px; background:#fff; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ring .pct { font-family:var(--font-head); font-size:38px; font-weight:700; color:var(--brand-d); line-height:1; }
.ring .pl { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; margin-top:5px; }
.progress-meta h3 { font-size:19px; margin:0 0 4px; }
.progress-meta p { color:var(--ink-3); margin:0 0 14px; font-size:13.5px; }

.checklist { list-style:none; margin:14px 0 0; padding:0; }
.checklist li { display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.checklist li:last-child { border-bottom:none; }
.checklist .ck-ico { width:25px; height:25px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0; font-weight:700; }
.checklist .ck-lbl { font-weight:600; }
.checklist .ck-status { margin-left:auto; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; }
.ck-done .ck-ico { background:var(--brand); color:#fff; }
.ck-done .ck-status { color:var(--brand-d); }
.ck-current .ck-ico { background:var(--gold-soft); color:var(--gold); border:1.5px solid var(--gold); }
.ck-current .ck-status { color:var(--gold); }
.ck-current .ck-lbl { color:var(--ink); }
.ck-todo .ck-ico { background:#fff; border:1.5px solid var(--line-2); color:var(--muted); }
.ck-todo .ck-lbl, .ck-todo .ck-status { color:var(--muted); }

/* stat cards */
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:24px; }
@media (max-width:760px){ .stat-grid { grid-template-columns:1fr; } }
.stat { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:18px 20px; display:flex; gap:15px; align-items:center; box-shadow:var(--shadow-sm); }
.stat .ico { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:19px; flex-shrink:0; }
.stat .lab { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; font-weight:600; }
.stat .val { font-family:var(--font-head); font-size:21px; font-weight:700; line-height:1.2; }
.stat .val small { font-family:var(--font); font-size:12px; color:var(--ink-3); font-weight:500; }

/* action cards */
.action-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:28px; }
@media (max-width:900px){ .action-grid { grid-template-columns:1fr; } }
.action-card { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); padding:24px; display:flex; flex-direction:column; transition:box-shadow .15s, transform .15s; }
.action-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.action-card .ico { width:52px; height:52px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:16px; }
.action-card h4 { font-size:17px; margin:0 0 6px; }
.action-card p { font-size:12.5px; color:var(--ink-3); margin:0 0 18px; flex:1; line-height:1.5; }

.form-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }

.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px 18px; }
.span-2 { grid-column:span 2; }
@media (max-width:900px){ .grid-2,.grid-3 { grid-template-columns:1fr; } .span-2 { grid-column:auto; } }

/* ===========================================================================
   APPLICATION — two-column: vertical step rail + form
   =========================================================================== */
.app-cols { display:grid; grid-template-columns:268px 1fr; gap:30px; align-items:start; }
@media (max-width:1000px){ .app-cols { grid-template-columns:1fr; } .step-rail { position:static !important; } }
.step-rail { position:sticky; top:88px; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:12px; box-shadow:var(--shadow-sm); }
.rail-title { font-size:10.5px; text-transform:uppercase; letter-spacing:.7px; color:var(--muted); padding:8px 12px 10px; font-weight:700; }
.rail-item { display:flex; gap:13px; align-items:flex-start; padding:11px 12px; border-radius:8px; color:var(--ink-2); position:relative; }
.rail-item:hover { background:var(--soft); }
.rail-item:not(:last-child)::before { content:''; position:absolute; left:25px; top:36px; height:calc(100% - 18px); width:2px; background:var(--line); }
.rail-item .marker { width:27px; height:27px; border-radius:50%; border:1.5px solid var(--line-2); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:var(--ink-3); background:#fff; flex-shrink:0; position:relative; z-index:1; }
.rail-item .lbl { font-size:13.5px; font-weight:600; padding-top:4px; line-height:1.25; }
.rail-item .lbl small { display:block; font-weight:500; color:var(--muted); font-size:11px; margin-top:1px; }
.rail-item.active { background:var(--brand-soft); }
.rail-item.active .marker { background:var(--brand); border-color:var(--brand); color:#fff; }
.rail-item.active .lbl { color:var(--brand-d); }
.rail-item.done .marker { background:var(--ok); border-color:var(--ok); color:#fff; }
.rail-item.done:not(:last-child)::before { background:var(--brand-soft2); }
.app-form { min-width:0; }
.proposed-cols { display:grid; grid-template-columns:1fr 300px; gap:22px; align-items:start; }
@media (max-width:1200px){ .proposed-cols { grid-template-columns:1fr; } }

/* co-financing panel */
.cofin-panel { background:linear-gradient(165deg,var(--brand) 0%,var(--brand-dd) 100%); color:#e9f5ee; border-radius:var(--r-md); padding:22px; position:sticky; top:88px; }
.cofin-panel h5 { color:#fff; font-size:13px; margin:0 0 16px; text-transform:uppercase; letter-spacing:.6px; font-family:var(--font); font-weight:700; }
.cofin-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.13); font-size:13px; }
.cofin-row .lbl { color:#bcdcca; } .cofin-row .val { font-weight:700; color:#fff; }
.cofin-bar { height:12px; border-radius:999px; background:rgba(255,255,255,.16); overflow:hidden; display:flex; margin:16px 0 7px; }
.cofin-bar .seg-unido { background:#8fd3b2; } .cofin-bar .seg-sedf { background:var(--gold); } .cofin-bar .seg-self { background:#e9f5ee; }
.cofin-legend { display:flex; gap:14px; font-size:11px; color:#c9e3d4; flex-wrap:wrap; }
.cofin-legend i { width:10px; height:10px; border-radius:2px; display:inline-block; margin-right:5px; }
.cofin-flag { margin-top:14px; padding:10px 12px; border-radius:var(--r-sm); font-size:12px; font-weight:600; display:none; line-height:1.45; }
.cofin-flag.bad { display:block; background:#f7ddd8; color:#7e2018; }
.cofin-flag.good { display:block; background:rgba(255,255,255,.16); color:#e9f5ee; }

/* tables */
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl th { background:var(--soft); text-align:left; padding:12px 11px; font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--ink-2); border-bottom:1.5px solid var(--line); font-weight:700; }
.tbl td { padding:11px; border-bottom:1px solid var(--line); vertical-align:middle; }
.tbl tfoot td,.tbl .total-row td { font-weight:800; background:var(--brand-soft); color:var(--brand-d); }
.tbl .form-control { height:36px; font-size:12.5px; padding:6px 9px; }
.tbl .num { text-align:right; }
.row-del { color:var(--danger); cursor:pointer; background:none; border:none; font-size:15px; }

/* document checklist */
.doc-list { margin-top:2px; }
.doc-row { display:flex; align-items:center; gap:15px; padding:15px 2px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.doc-no { width:28px; height:28px; border-radius:50%; background:var(--brand-soft); color:var(--brand-d); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; flex-shrink:0; font-family:var(--font-head); }
.doc-main { flex:1; min-width:200px; }
.doc-title { font-weight:600; font-size:13.5px; color:var(--ink); }
.doc-sub { font-size:11.5px; color:var(--muted); margin-top:2px; line-height:1.4; }
.doc-file { flex-shrink:0; }

/* file picker */
.file-picker { position:relative; display:inline-block; min-width:200px; }
.file-picker input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.file-picker .fake { border:1.5px dashed var(--line-2); border-radius:var(--r-sm); padding:8px 12px; font-size:12px; color:var(--ink-3); display:flex; align-items:center; gap:8px; }
.file-picker.has-file .fake { border-style:solid; border-color:var(--ok); color:var(--ok); background:var(--brand-soft); }

/* resources */
.resources { display:flex; gap:12px; flex-wrap:wrap; }
.resources a { display:flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); padding:12px 17px; font-weight:600; font-size:13px; color:var(--ink-2); transition:all .15s; }
.resources a i { color:var(--brand-d); }
.resources a:hover { border-color:var(--brand); color:var(--brand-d); box-shadow:var(--shadow-sm); }
.resources .dropdown { position:relative; }
.resources .dropdown-toggle { cursor:pointer; }
.resources .dropdown-menu { min-width:290px; padding:6px 0; }
.resources .dropdown-menu > li > a { display:flex; align-items:center; gap:9px; border:none; background:none; box-shadow:none; border-radius:0; padding:9px 16px; font-weight:600; font-size:13px; color:var(--ink-2); }
.resources .dropdown-menu > li > a:hover { background:var(--brand-soft); color:var(--brand-d); border:none; box-shadow:none; }
.resources .dropdown-menu > li > a i { color:var(--brand-d); }

/* progress + kv + review */
.prog-wrap { background:var(--line); border-radius:999px; height:9px; overflow:hidden; }
.prog-wrap .bar { height:100%; background:linear-gradient(90deg,var(--brand),var(--brand-d)); border-radius:999px; }
.kv { display:grid; grid-template-columns:240px 1fr; gap:10px 20px; font-size:13.5px; }
.kv .k { color:var(--ink-3); } .kv .v { color:var(--ink); font-weight:600; }
.review-block .rb-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.review-block .rb-head h4 { margin:0; font-size:16px; }

/* notifications */
.notif { display:flex; gap:15px; padding:18px; border:1px solid var(--line); border-radius:var(--r-md); margin-bottom:13px; background:#fff; }
.notif.unread { border-left:3px solid var(--brand); background:var(--brand-soft); }
.notif .ic { width:40px; height:40px; flex-shrink:0; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:16px; }
.notif .t { font-weight:700; }
.notif .m { font-size:13px; color:var(--ink-3); line-height:1.5; }
.notif .when { font-size:11.5px; color:var(--muted); margin-top:4px; }

.status-pill { display:inline-flex; align-items:center; gap:7px; padding:6px 15px; border-radius:999px; font-weight:600; font-size:12.5px; }
.status-pill.submitted { background:var(--brand-soft); color:var(--brand-d); }
.status-pill.screening { background:var(--gold-soft); color:var(--gold); }
.status-pill.draft { background:#eef1ef; color:var(--ink-3); }

.text-green { color:var(--brand-d); } .text-gold { color:var(--gold); } .muted { color:var(--muted); }
.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-1{margin-top:8px}.mb-1{margin-bottom:8px}.mt-2{margin-top:16px}.mb-2{margin-bottom:16px}.text-center{text-align:center}.text-left{text-align:left}

/* ===========================================================================
   Phase-1 application classes (data-wired pages) — extends the prototype theme
   =========================================================================== */

/* Inline-style replacements */
.register-wrap{max-width:620px;margin:0 auto;padding:40px 15px}
.login-narrow{max-width:460px;margin:0 auto;padding:50px 15px}
.register-logo{height:46px}
.register-terms{margin:6px 0 16px}
.row-between{display:flex;justify-content:space-between;align-items:center}
.table-scroll{overflow-x:auto}

/* Error notice variant (theme already defines .notice/.notice-info/.notice-warn/.notice-gold) */
.notice-error{background:#fbeaea;border-color:#e7b9b3;color:var(--danger)}

/* Dashboard: applications list */
.dash-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.app-list{display:flex;flex-direction:column;gap:12px}
.app-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px}
.app-row-main{flex:1;min-width:0}
.app-row-title{font-weight:700;color:var(--ink);font-size:1.05rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.app-row-sub{color:var(--muted);font-size:.85rem;margin:3px 0 8px}
.app-progress{display:flex;align-items:center;gap:10px;max-width:420px}
.app-progress-bar{flex:1;height:8px;border-radius:6px;background:var(--soft);overflow:hidden}
.app-progress-bar>span{display:block;height:100%;background:var(--brand);border-radius:6px}
.app-progress-pct{font-size:.78rem;color:var(--ink-3);white-space:nowrap}
.app-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.status-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:20px}
.badge-draft{background:#eef1ef;color:var(--ink-3)}
.badge-submitted{background:var(--brand-soft);color:var(--brand-d)}
.badge-info{background:var(--blue-soft);color:var(--blue)}
.btn-danger-ghost{color:var(--danger);border-color:#e7b9b3}
.empty-state .empty-ico{font-size:42px;color:var(--brand-soft2);margin-bottom:6px}

/* Co-financing legend swatches (replaces inline backgrounds) */
.cofin-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:middle}
.cofin-legend .lg-unido{background:#8fd3b2}
.cofin-legend .lg-sedf{background:#a9791f}
.cofin-legend .lg-self{background:#e9f5ee;border:1px solid var(--line-2)}

/* Financial table column widths */
.tbl-fin .col-sr{width:34px}
.tbl-fin .col-desc{min-width:220px}
.tbl-fin .col-unit{width:110px}
.tbl-fin .col-qty{width:80px}
.tbl-fin .col-cost{width:130px}
.tbl-fin .col-share{width:145px}
.tbl-fin .col-del{width:36px}

/* Documents checklist */
.doc-uploaded{display:flex;align-items:center;gap:8px;color:var(--ok);font-size:.85rem;margin-bottom:6px}
.doc-uploaded .doc-filename{color:var(--ink-2);font-weight:600}
.doc-uploaded .doc-remove{color:var(--danger);margin-left:auto}
.waive-opt{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.82rem;color:var(--ink-3)}

/* Review recap lines */
.kv-lines{display:flex;flex-direction:column;gap:6px}
.rev-line{display:flex;gap:12px;font-size:.9rem}
.rev-line .rk{flex:0 0 200px;color:var(--muted)}
.rev-line .rv{color:var(--ink-2);font-weight:600;min-width:0;overflow-wrap:anywhere;word-break:break-word}
/* Inline fill-in-the-blank inside declaration text (Statement of Confirmation name) */
.decl-name-inline{display:inline-block;width:280px;max-width:100%;border:0;border-bottom:1.5px dashed var(--ink-3);background:transparent;padding:1px 8px;font:inherit;font-weight:700;color:var(--brand-d);text-align:center;outline:none}
.decl-name-inline:focus{border-bottom-color:var(--brand);border-bottom-style:solid}
.decl-name-inline:disabled{border-bottom-style:solid;color:var(--ink-2)}
.rev-line.muted .rk,.rev-line.muted .rv{color:var(--muted);font-weight:400}

/* Misc helpers */
.is-hidden{display:none}
.logo-bar .lb-unido{height:56px}
.logo-bar .lb-sedf{height:54px}
.logo-bar .lb-eu{height:58px}
.pf-avatar{width:84px;height:84px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;margin:6px auto 12px;font-family:var(--font-head)}
.pf-name{margin:0}
.pf-email{margin:2px 0 10px}
/* Financial line whose shares don't add up to Qty x Unit Cost */
.tbl-fin tr.row-mismatch td{background:#fdf0ee}
.tbl-fin tr.row-mismatch .f-total{color:var(--danger);font-weight:700}
.tbl-fin tr.row-mismatch input.f-appl,.tbl-fin tr.row-mismatch input.f-sedf{border-color:var(--danger)}
.doc-fmt{font-size:11px;color:var(--muted);margin-top:3px}
.doc-fmt i{margin-right:4px}
/* Document preview popup */
.doc-modal .modal-dialog.modal-lg{width:92%;max-width:1040px}
.doc-modal .modal-body.doc-modal-body{padding:0;background:#525659}
.doc-modal #docModalFrame{width:100%;height:72vh;border:0;display:block}
.doc-modal .modal-title i{color:var(--brand-d)}

/* ===========================================================================
   Staff / evaluation console
   =========================================================================== */
.staff-header{background:var(--brand-dd)}
.staff-user{display:flex;align-items:center;gap:12px}
.staff-name{color:#fff;font-size:.9rem}
.staff-role{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:10px;background:rgba(255,255,255,.15);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}
.btn-sm{padding:5px 12px;font-size:.82rem}
.staff-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.staff-tab{padding:8px 16px;border-radius:20px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-size:.85rem;font-weight:600}
.staff-tab.active{background:var(--brand);border-color:var(--brand);color:#fff}
.staff-queue td,.staff-queue th{vertical-align:middle}
.staff-queue .q-sub{color:var(--muted);font-size:.78rem}
.badge-eval{background:var(--gold-soft);color:var(--gold)}
.badge-reject{background:#fbeaea;color:var(--danger)}
.staff-appbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.tbl-score .crit-cat{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:10px}
.tbl-score .cat-technical{background:var(--brand-soft);color:var(--brand-d)}
.tbl-score .cat-financial{background:var(--gold-soft);color:var(--gold)}
.tbl-score .crit-name{font-weight:600;color:var(--ink)}
.tbl-score .crit-desc{color:var(--muted);font-size:.78rem}
.tbl-score .pts-input{max-width:90px}
.score-summary{display:flex;gap:24px;flex-wrap:wrap;align-items:center;padding:14px 0;border-top:1px solid var(--line);margin-top:10px;font-size:.95rem}
.score-summary .score-total{font-size:1.1rem}
.reco{font-weight:700}
.reco-ok{color:var(--ok)}
.reco-no{color:var(--danger)}

/* Submission confirmation */
.submit-success{max-width:680px;margin:30px auto}
.submit-success .success-ico{font-size:54px;color:var(--ok)}
.ref-box{display:inline-block;background:var(--soft);padding:16px 30px;margin:14px 0;border-radius:var(--r-md)}
.ref-box .ref-no{font-size:24px;font-weight:800;letter-spacing:1px}
.submit-next{max-width:520px;margin:16px auto 0}

/* Staff dashboard: reporting overview + queue filters */
.ov-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:4px 0 16px}
.ov-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:14px 16px;border-top:3px solid var(--brand);transition:all .15s ease}
.ov-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.ov-card .l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);margin-bottom:6px}
.ov-card .v{font-family:var(--font-head);font-size:26px;font-weight:700;color:var(--ink);line-height:1}
.ov-card.oc-blue{border-top-color:var(--blue)}.ov-card.oc-blue .v{color:var(--blue)}
.ov-card.oc-gold{border-top-color:var(--gold)}.ov-card.oc-gold .v{color:var(--gold)}
.ov-card.oc-green{border-top-color:var(--ok)}.ov-card.oc-green .v{color:var(--ok)}
.ov-card.oc-red{border-top-color:var(--danger)}.ov-card.oc-red .v{color:var(--danger)}
.ov-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ov-grid .card{margin-bottom:0}
@media (max-width:900px){.ov-grid{grid-template-columns:1fr}}
.ov-chart{position:relative;height:250px;margin-top:4px}
.ov-note{font-size:12px;color:var(--muted);margin-top:8px;display:none}
.ov-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.ov-filter .ovf-search{max-width:320px;height:38px}
.ov-filter .ovf-district{max-width:220px;width:auto;height:38px}
