/*
  FRANNAN INSURANCE AGENCY IMS
  Professional Blue + Yellow Design System
  Optimized for InfinityFree, PHP/MySQL, 1366x768 office screens and mobile.
*/
:root{
  --blue-950:#061733;
  --blue-900:#092350;
  --blue-800:#0b326d;
  --blue-700:#104a96;
  --blue-600:#1764c8;
  --gold-500:#f2bd2d;
  --gold-600:#d99b12;
  --gold-100:#fff7df;
  --ink:#101827;
  --muted:#64748b;
  --muted-2:#94a3b8;
  --line:#e2e8f0;
  --line-soft:#edf2f7;
  --bg:#f5f8fc;
  --surface:#ffffff;
  --success:#0f8a55;
  --success-bg:#e8f8ef;
  --warning:#b7791f;
  --warning-bg:#fff7df;
  --danger:#c24132;
  --danger-bg:#fff1f0;
  --info-bg:#eef6ff;
  --shadow-sm:0 8px 18px rgba(15,23,42,.06);
  --shadow-md:0 18px 45px rgba(8,35,80,.10);
  --shadow-lg:0 28px 80px rgba(8,35,80,.16);
  --radius-xs:8px;
  --radius-sm:12px;
  --radius:16px;
  --radius-lg:22px;
  --sidebar:274px;
  --topbar:76px;
  --font:Inter,Manrope,"Plus Jakarta Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}.public-body{background:#fff;overflow-x:hidden}.app-body{background:var(--bg);overflow-x:hidden}
.app-shell,.main-area,.page-content{min-width:0;max-width:100%}.page-content>*{min-width:0}.table-wrap{max-width:100%}
body.menu-open{overflow:hidden}
/* Brand */
.brand,.ims-brand{display:inline-flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.02em;color:var(--blue-950)}
.brand-logo-img{width:auto;height:54px;object-fit:contain;border-radius:12px}.ims-logo-img{width:48px;height:48px;border-radius:14px;object-fit:cover;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.ims-brand{padding:16px 16px 10px;color:#fff}.ims-brand span{display:flex;flex-direction:column;line-height:1.1}.ims-brand strong{font-size:14px}.ims-brand small{font-size:10px;color:#bfd3ef;font-weight:700;letter-spacing:.02em;margin-top:4px}.footer-brand .brand-logo-img{height:60px;background:#fff}
/* Buttons */
.btn,.action-btn,.logout{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;min-height:38px;padding:10px 16px;font-weight:850;letter-spacing:.01em;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease;white-space:nowrap}.btn:hover,.action-btn:hover,.logout:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--blue-800),var(--blue-600));color:#fff;box-shadow:0 12px 28px rgba(23,100,200,.20)}.btn-primary:hover{box-shadow:0 16px 38px rgba(23,100,200,.26)}.btn-gold{background:linear-gradient(135deg,var(--gold-500),var(--gold-600));color:#192033;box-shadow:0 12px 28px rgba(217,155,18,.18)}.btn-outline{background:#fff;color:var(--blue-800);border-color:#cbd5e1}.btn-outline:hover{border-color:var(--blue-600);box-shadow:var(--shadow-sm)}.btn-light{background:rgba(255,255,255,.94);color:var(--blue-900);border-color:rgba(255,255,255,.45)}.danger,.btn-danger{background:var(--danger-bg)!important;color:var(--danger)!important;border-color:#fecaca!important}.link-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:#fff;color:var(--blue-800);font-weight:800}
/* Public header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,232,240,.9)}.nav-wrap{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.main-nav{display:flex;align-items:center;gap:3px;background:#f8fafc;border:1px solid var(--line-soft);padding:6px;border-radius:999px}.main-nav a{padding:9px 13px;border-radius:999px;color:#42526b;font-weight:780;font-size:12px}.main-nav a:hover,.main-nav a.active{background:#fff;color:var(--blue-800);box-shadow:var(--shadow-sm)}.nav-actions{display:flex;align-items:center;gap:9px}.mobile-menu{display:none;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--blue-900);font-size:0;position:relative}.mobile-menu:before,.mobile-menu:after,.mobile-menu span{content:"";position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:5px}.mobile-menu:before{top:14px}.mobile-menu span{top:20px}.mobile-menu:after{top:26px}
/* Public landing */
.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 78% 12%,rgba(242,189,45,.30),transparent 30%),linear-gradient(135deg,#061733 0%,#0b326d 55%,#0f5bb2 100%);color:#fff;padding:78px 0 72px}.hero:after{content:"";position:absolute;inset:auto -10% -26% -10%;height:220px;background:#fff;border-radius:50% 50% 0 0}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.88fr);gap:44px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(242,189,45,.14);border:1px solid rgba(242,189,45,.34);color:#fff2c4;font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.12em}.public-body .section .eyebrow,.quote-section .eyebrow{color:var(--gold-600);background:var(--gold-100);border-color:#f4d274}.hero h1{margin:18px 0 18px;font-size:clamp(38px,5vw,68px);line-height:.95;letter-spacing:-.055em;max-width:820px}.hero p{font-size:17px;line-height:1.75;color:#d9e7ff;max-width:680px;margin:0}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.trust-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.trust-row span{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);color:#edf6ff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:750}.photo-collage{position:relative;min-height:470px}.photo-main{width:100%;height:420px;object-fit:cover;border-radius:32px;border:1px solid rgba(255,255,255,.22);box-shadow:var(--shadow-lg)}.photo-card{position:absolute;background:#fff;color:var(--ink);border-radius:22px;padding:10px;width:185px;box-shadow:0 22px 58px rgba(5,20,48,.24);border:1px solid rgba(255,255,255,.55)}.photo-card img{height:94px;width:100%;object-fit:cover;border-radius:16px}.photo-card strong{display:block;margin:9px 3px 1px;font-size:13px}.photo-card small{display:block;color:var(--muted);margin:0 3px 3px;font-size:11px}.photo-card-one{left:-22px;bottom:28px}.photo-card-two{right:-10px;bottom:-6px}.floating-proof{position:absolute;right:28px;top:24px;background:rgba(255,255,255,.94);color:var(--blue-950);border-radius:22px;padding:16px 18px;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.62)}.floating-proof b{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:14px;background:var(--gold-100);color:var(--gold-600);font-weight:950}.floating-proof strong,.floating-proof small{display:block}.floating-proof strong{margin-top:8px}.floating-proof small{color:var(--muted)}
.section{padding:76px 0}.section-soft,.underwriter-section{background:linear-gradient(180deg,#f8fbff,#fff)}.section-heading{text-align:center;max-width:760px;margin:0 auto 34px}.section-heading h2,.section-title-left{font-size:clamp(28px,3.3vw,46px);line-height:1.06;letter-spacing:-.04em;margin:12px 0 10px;color:var(--blue-950)}.section-lead{font-size:15px;color:var(--muted);line-height:1.75}.two-col-section,.story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:38px;align-items:start}.mini-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.mini-proof-grid div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-sm)}.mini-proof-grid strong{display:block;color:var(--blue-900);font-size:24px;line-height:1}.mini-proof-grid span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.quote-section{background:#fff;position:relative;z-index:1}.quote-card,.premium-form{background:#fff;border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:var(--shadow-md)}.product-grid-xl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.product-card,.portal-card-pro,.step-card,.matrix-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.product-card:hover,.portal-card-pro:hover,.step-card:hover,.matrix-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#c8d7ee}.product-card .icon,.step-card .icon,.portal-card-pro .icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--info-bg);color:var(--blue-700);font-weight:950;margin-bottom:12px}.product-card h3{margin:0 0 8px;color:var(--blue-950)}.product-card p,.portal-card-pro p,.step-card p,.matrix-card p{margin:0;color:var(--muted);line-height:1.65}.products-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.product-category{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow-sm)}.product-category h3{margin:0 0 10px;color:var(--blue-950)}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list span,.portal-tags span,.underwriter-cloud span{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:#344154;font-size:12px;font-weight:750;padding:7px 10px}.underwriter-cloud{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.process-grid,.portal-section,.matrix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.step-num{width:38px;height:38px;border-radius:14px;background:var(--blue-900);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:950;margin-bottom:12px}.image-story,.story-image{border-radius:28px;overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--line)}.image-story img,.story-image img{height:420px;width:100%;object-fit:cover}.footer{background:var(--blue-950);color:#dbeafe;padding:56px 0 20px}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:36px}.footer h4{margin:0 0 12px;color:#fff}.footer p{color:#bdd2ed;max-width:480px}.footer a{display:block;color:#dbeafe;padding:5px 0}.footer-contact{display:flex;flex-direction:column;gap:7px;color:#cbdcf2}.disclaimer{margin-top:30px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;color:#a8bdd9;font-size:12px}
/* Auth */
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,rgba(242,189,45,.25),transparent 25%),linear-gradient(135deg,#061733,#0a3678 62%,#1764c8);padding:22px}.auth-card{width:min(980px,100%);display:grid;grid-template-columns:1fr 420px;background:#fff;border-radius:30px;overflow:hidden;box-shadow:0 35px 90px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.16)}.auth-panel{padding:42px;background:radial-gradient(circle at 80% 22%,rgba(242,189,45,.25),transparent 27%),linear-gradient(150deg,var(--blue-950),var(--blue-800));color:#fff}.auth-panel h1{font-size:44px;line-height:1;letter-spacing:-.045em;margin:36px 0 16px}.auth-panel p{color:#d8e6fb;font-size:15px;line-height:1.75}.auth-form{padding:42px}.auth-form h2{font-size:30px;letter-spacing:-.035em;color:var(--blue-950);margin:0 0 6px}.form-note{color:var(--muted);font-size:12px;line-height:1.6}.form-note a{color:var(--blue-700);font-weight:850}
/* App shell */
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--blue-950),#082957 62%,#061733);color:#fff;overflow-y:auto;border-right:1px solid rgba(255,255,255,.07);z-index:60}.side-nav{padding:8px 12px 16px;display:flex;flex-direction:column;gap:3px}.side-nav a{display:flex;align-items:center;gap:10px;border-radius:14px;padding:10px 12px;color:#d9e7ff;font-weight:780;font-size:12.5px;transition:background .2s ease,color .2s ease,transform .2s ease}.side-nav a:hover,.side-nav a.active{background:rgba(255,255,255,.11);color:#fff;transform:translateX(2px)}.side-nav a.active{box-shadow:inset 3px 0 0 var(--gold-500)}.side-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,.09);color:#fff;font-size:10px;font-weight:950;letter-spacing:.02em}.sidebar-card{margin:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:18px;padding:14px}.sidebar-card strong{display:block;font-size:12px}.sidebar-card p{color:#bdd2ed;font-size:11px;line-height:1.55;margin:6px 0 0}.main-area{min-width:0}.topbar{height:var(--topbar);position:sticky;top:0;z-index:40;background:rgba(245,248,252,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,232,240,.9);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px}.topbar h1{font-size:22px;letter-spacing:-.035em;margin:0;color:var(--blue-950)}.topbar p{margin:1px 0 0;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.12em}.searchbar{height:40px;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 13px;min-width:min(360px,32vw);box-shadow:var(--shadow-sm)}.searchbar span{font-size:11px;font-weight:950;color:var(--blue-800)}.searchbar input{border:0;outline:0;background:transparent;width:100%;font-size:12.5px}.top-actions{display:flex;align-items:center;gap:9px}.top-icon{width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);font-weight:900;color:var(--blue-800);position:relative}.top-icon em{position:absolute;right:-3px;top:-5px;min-width:18px;height:18px;border-radius:999px;background:var(--gold-500);color:#111827;font-size:10px;font-style:normal;display:flex;align-items:center;justify-content:center;border:2px solid #fff}.profile{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 5px;box-shadow:var(--shadow-sm)}.avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue-800),var(--blue-600));color:#fff;font-size:12px;font-weight:950}.profile strong{display:block;font-size:12px;line-height:1.05}.profile small{display:block;color:var(--muted);font-size:10px}.logout{min-height:36px;background:#fff;border-color:var(--line);color:var(--blue-800);font-size:12px}.page-content{padding:18px 20px 30px;max-width:1600px;margin:0 auto}.welcome-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-radius:24px;background:linear-gradient(135deg,#fff,#f7fbff);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:16px}.welcome-card h2{margin:0;color:var(--blue-950);letter-spacing:-.035em;font-size:25px}.welcome-card p{margin:4px 0 0;color:var(--muted)}.welcome-metrics{display:flex;gap:8px;flex-wrap:wrap}.welcome-metrics span{background:var(--blue-950);color:#fff;border-radius:999px;padding:8px 12px;font-weight:800;font-size:12px}
/* App components */
.panel,.print-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);padding:18px;margin-bottom:16px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-header h2{margin:0;color:var(--blue-950);font-size:17px;letter-spacing:-.02em}.panel-header p{margin:2px 0 0;color:var(--muted);font-size:12px}.module-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px;align-items:start}.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.right-panel{min-width:0}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:var(--shadow-sm);min-height:128px;display:flex;flex-direction:column;justify-content:space-between}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.kpi-card h3{margin:0;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.kpi-card strong{display:block;color:var(--blue-950);font-size:23px;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.kpi-card small{display:block;color:var(--muted);font-size:11px}.icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:15px;background:var(--info-bg);color:var(--blue-700);font-weight:950}.icon.green{background:var(--success-bg);color:var(--success)}.icon.gold{background:var(--gold-100);color:var(--gold-600)}.icon.red{background:var(--danger-bg);color:var(--danger)}.quick-actions,.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.action-btn{background:#f8fafc;border-color:var(--line);color:var(--blue-900);border-radius:15px;font-size:12px;justify-content:flex-start;padding:11px 12px}.action-card{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-sm)}.action-card span{width:42px;height:42px;border-radius:15px;background:var(--info-bg);color:var(--blue-800);display:flex;align-items:center;justify-content:center;font-weight:950;margin-bottom:10px}.action-card strong{display:block;color:var(--blue-950)}.action-card small{display:block;color:var(--muted);margin-top:4px}.pipeline{display:flex;flex-direction:column;gap:12px}.pipeline-row{display:grid;grid-template-columns:128px minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:12px}.track{height:9px;background:#edf2f7;border-radius:999px;overflow:hidden}.track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue-700),var(--gold-500))}.ageing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.age-card{border:1px solid var(--line);border-radius:18px;background:#f8fafc;padding:14px}.age-card small{display:block;color:var(--muted);font-weight:800}.age-card strong{display:block;color:var(--blue-950);font-size:18px;font-variant-numeric:tabular-nums}.chart-bars{height:220px;display:flex;align-items:flex-end;gap:7px;padding-top:10px}.chart-bar{flex:1;min-height:14%;border-radius:12px 12px 5px 5px;background:linear-gradient(180deg,var(--blue-600),var(--blue-900));position:relative}.chart-bar span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);font-weight:800}.stat-list{display:flex;flex-direction:column;gap:8px}.stat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line-soft);background:#f8fafc;border-radius:15px}.stat-row span{color:#334155;font-weight:750}.stat-row small{color:var(--muted);font-weight:650}.stat-row strong{color:var(--blue-950);font-variant-numeric:tabular-nums;text-align:right}.mini-list{display:flex;flex-direction:column;gap:9px}.mini-item{display:flex;gap:10px;border:1px solid var(--line-soft);border-radius:16px;background:#f8fafc;padding:11px}.mini-date{width:44px;min-width:44px;height:44px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--blue-800);font-weight:950;font-size:11px;line-height:1.05}.mini-item strong{display:block;color:var(--blue-950);font-size:12px}.mini-item small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:3px}
/* Forms */
.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:#334155;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.field input,.field select,.field textarea{width:100%;border:1px solid #dbe4ef;background:#fff;border-radius:14px;min-height:40px;padding:10px 12px;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.field textarea{min-height:94px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-600);box-shadow:0 0 0 4px rgba(23,100,200,.10)}.check-line{display:flex!important;align-items:flex-start;gap:9px;text-transform:none!important;letter-spacing:0!important;color:#334155!important;font-size:12px!important;font-weight:700!important}.check-line input{width:auto;min-height:auto;margin-top:3px}.mini-form{display:flex;gap:8px;align-items:center}.mini-form input,.mini-form select{min-height:36px;border:1px solid var(--line);border-radius:12px;padding:8px 10px}.alert{border-radius:16px;padding:12px 14px;margin-bottom:14px;font-weight:750;border:1px solid}.alert-success{background:var(--success-bg);border-color:#bbf7d0;color:#166534}.alert-error{background:var(--danger-bg);border-color:#fecaca;color:#991b1b}.empty-state{padding:22px;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc;color:var(--muted);text-align:center;font-weight:750}
/* Tables */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}.data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:820px;font-size:12px}.data-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475569;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-weight:950}.data-table td{padding:11px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top;color:#263447}.data-table tbody tr:hover{background:#fbfdff}.data-table tbody tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:900;white-space:nowrap;border:1px solid}.badge-success{background:var(--success-bg);color:var(--success);border-color:#bcebd0}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:#f4d274}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:#ffc9c2}.badge-neutral{background:#f1f5f9;color:#475569;border-color:#dbe4ef}.action-row{display:flex;gap:7px;flex-wrap:wrap}.action-row a,.action-row button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 9px;color:var(--blue-800);font-weight:850;font-size:11px}
/* Role matrix */
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.role-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:16px;box-shadow:var(--shadow-sm)}.role-card h3{margin:0;color:var(--blue-950)}.role-card p{color:var(--muted);margin:3px 0 12px}
/* Print */
.print-card{background:#fff}.print-header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:2px solid var(--blue-900);padding-bottom:16px;margin-bottom:18px}.print-logo{height:60px;width:auto}.print-title{font-size:24px;margin:0;color:var(--blue-950)}.print-meta{color:var(--muted);font-size:12px}.print-total{font-size:28px;font-weight:950;color:var(--blue-950)}
@media print{body{background:#fff!important;color:#111!important}.sidebar,.topbar,.site-header,.footer,.btn,.nav-actions,.mobile-menu,.no-print{display:none!important}.app-shell{display:block}.page-content{padding:0!important}.panel,.print-card{box-shadow:none!important;border:0!important;border-radius:0!important;margin:0 0 12px!important;padding:0!important}.table-wrap{border:1px solid #111!important;border-radius:0!important}.data-table{min-width:0;font-size:11px}.data-table th{background:#eee!important;color:#111!important}.data-table td,.data-table th{border-color:#999!important}.print-card{display:block!important}}
/* Responsive */
@media (max-width:1280px){:root{--sidebar:248px}.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.right-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quick-actions{grid-template-columns:repeat(3,1fr)}.product-grid-xl{grid-template-columns:repeat(3,1fr)}}
@media (max-width:1024px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:transform .24s ease;width:282px;box-shadow:var(--shadow-lg)}body.menu-open .sidebar{transform:translateX(0)}.topbar{padding-left:64px}.topbar:before{content:"";position:absolute;left:18px;width:38px;height:38px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.topbar:after{content:"Menu";position:absolute;left:26px;font-size:9px;font-weight:950;color:var(--blue-900);text-transform:uppercase}.searchbar{display:none}.profile span:not(.avatar),.logout{display:none}.hero-grid,.two-col-section,.story-grid{grid-template-columns:1fr}.products-matrix,.process-grid,.portal-section,.matrix-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.auth-card{grid-template-columns:1fr}.auth-panel{display:none}}
@media (max-width:760px){body{font-size:12.5px}.container{width:min(100% - 28px,1180px)}.nav-wrap{height:auto;padding:12px 0}.main-nav,.nav-actions{display:none}.mobile-menu{display:block}.hero{padding:54px 0 62px}.hero h1{font-size:38px}.photo-collage{min-height:auto}.photo-main{height:280px}.photo-card,.floating-proof{position:static;margin-top:12px;width:100%}.section{padding:48px 0}.product-grid-xl,.products-matrix,.process-grid,.portal-section,.matrix-grid,.footer-grid,.module-hero,.split-grid,.right-panel{grid-template-columns:1fr}.quote-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr}.quick-actions,.action-grid,.ageing-grid{grid-template-columns:1fr}.welcome-card,.panel-header{flex-direction:column;align-items:flex-start}.topbar{height:66px}.topbar h1{font-size:18px}.page-content{padding:14px}.auth-form{padding:28px}.auth-card{border-radius:22px}.role-grid{grid-template-columns:1fr}.mini-proof-grid{grid-template-columns:1fr}.data-table{min-width:760px}.brand-logo-img{height:46px}}

/* Official Frannan company details upgrade */
.office-strip{margin-top:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px 16px;color:#e6f1ff;line-height:1.65;font-size:13px}.contact-mini-card,.contact-detail-card{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow-sm)}.contact-mini-card h3,.contact-detail-card h3{margin:0 0 8px;color:var(--blue-950)}.contact-mini-card p,.contact-detail-card p{color:var(--muted);line-height:1.65}.product-cta{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:12px;color:var(--blue-800);font-size:12px;font-weight:850}.contact-section{background:linear-gradient(180deg,#fff,#f8fbff)}.footer-whatsapp{display:inline-flex!important;margin-top:16px;color:var(--blue-950)!important}.whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:80;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#16a34a;color:#fff!important;padding:13px 16px;font-weight:950;box-shadow:0 18px 40px rgba(22,163,74,.3);border:1px solid rgba(255,255,255,.5)}.checkbox-line{display:flex;gap:10px;align-items:flex-start;line-height:1.55;color:#334155}.checkbox-line input{margin-top:3px;width:auto}.official-document-header{display:flex;justify-content:space-between;gap:18px;border-bottom:3px solid var(--blue-900);padding-bottom:16px;margin-bottom:18px}.official-doc-brand{display:flex;gap:14px;align-items:flex-start}.official-doc-brand h2{margin:0;color:var(--blue-950);font-size:20px;letter-spacing:-.02em;text-transform:uppercase}.official-doc-brand p{margin:3px 0;color:var(--blue-800);font-weight:850}.official-doc-brand small{display:block;color:var(--muted);line-height:1.55}.official-doc-meta{text-align:right;color:var(--muted);min-width:190px}.official-doc-meta strong{display:block;color:var(--blue-950);font-size:22px;margin-bottom:5px}.official-doc-meta span{display:block;line-height:1.55;font-size:12px}.claims-tags{margin-top:18px}.agent-hero{background:radial-gradient(circle at 80% 20%,rgba(212,175,55,.22),transparent 28%),linear-gradient(135deg,var(--blue-950),#0c3470 58%,var(--blue-700));color:#fff}.agent-hero .quote-card{color:#111827}.agent-hero .quote-card p{color:var(--muted)}
@media (max-width:760px){.official-document-header{flex-direction:column}.official-doc-meta{text-align:left}.whatsapp-float{right:14px;bottom:14px;padding:11px 13px;font-size:12px}.office-strip{font-size:12px}}

/* Buttons keep a stable footprint while pressed throughout the system. */
.btn:active,
.action-btn:active,
.logout:active,
button:active,
[role="button"]:active{
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
@media print{.whatsapp-float{display:none!important}.official-document-header{border-bottom:2px solid #111!important}.official-doc-brand h2,.official-doc-meta strong{color:#111!important}}
.form-section-title {
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(7, 26, 51, 0.10);
}

.form-section-title span {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: #EAF4FF;
    color: #1D4ED8;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 8px;
}

.form-section-title h3 {
    margin: 0;
    color: #071A33;
    font-size: 18px;
}

.field label em {
    color: #DC2626;
    font-style: normal;
}

.empty-state {
    padding: 28px;
    border: 1px solid rgba(7, 26, 51, 0.10);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(7, 26, 51, 0.08);
    text-align: center;
}

.empty-state.compact {
    padding: 18px;
}

.product-cta a {
    color: #1D4ED8;
    font-weight: 800;
    text-decoration: none;
}

.product-cta a:hover {
    text-decoration: underline;
}

.contact-detail-card a {
    color: #1D4ED8;
    font-weight: 800;
    text-decoration: none;
}

.contact-detail-card a:hover {
    text-decoration: underline;
}
/* Claims Follow-Up module */
.claims-module-hero{align-items:start}
.claims-summary-panel{position:sticky;top:calc(var(--topbar) + 16px)}
.claims-summary-link{transition:border-color .2s ease,background .2s ease,transform .2s ease}
.claims-summary-link:hover{border-color:#bfd1eb;background:#fff;transform:translateY(-1px)}
.field-hint{display:block;margin-top:1px;color:var(--muted);font-size:10.5px;line-height:1.4}
.claims-filter-bar{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(140px,.75fr)) auto;gap:10px;align-items:end;margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}
.claims-filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.claims-filter-field label{font-size:10.5px;color:#475569;font-weight:900;text-transform:uppercase;letter-spacing:.055em}
.claims-filter-field input,.claims-filter-field select{width:100%;min-height:40px;border:1px solid #dbe4ef;border-radius:13px;background:#fff;padding:9px 11px;color:var(--ink);outline:none}
.claims-filter-field input:focus,.claims-filter-field select:focus{border-color:var(--blue-600);box-shadow:0 0 0 4px rgba(23,100,200,.10)}
.claims-filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.claims-table{min-width:1040px}
.claims-notes-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.claims-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 2px}
.claims-page-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--blue-800);font-size:11.5px;font-weight:850;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.claims-page-link:hover{border-color:var(--blue-600);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.claims-page-link.is-disabled{opacity:.42;pointer-events:none}
.claims-page-current{color:var(--muted);font-size:11.5px;font-weight:800}
@media (max-width:1280px){.claims-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.claims-filter-actions{grid-column:1/-1}.claims-summary-panel{position:static}}
@media (max-width:760px){.claims-filter-bar{grid-template-columns:1fr}.claims-filter-actions{grid-column:auto}.claims-pagination{align-items:stretch}.claims-page-link{flex:1}.claims-page-current{display:flex;align-items:center;text-align:center}}

/* --------------------------------------------------------------------------
   Global page transitions
   -------------------------------------------------------------------------- */
@keyframes frannan-page-enter {
    from {
        opacity: 0;
        transform: translateY(7px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes frannan-progress-slide {
    0% {
        transform: translateX(-105%);
    }
    65% {
        transform: translateX(-18%);
    }
    100% {
        transform: translateX(105%);
    }
}

body > .app-shell,
body > .public-header,
body > main,
body > .public-footer,
body.auth-page > .auth-card {
    animation: frannan-page-enter 320ms cubic-bezier(.22, 1, .36, 1) both;
    transform-origin: center top;
}

body.page-is-leaving {
    cursor: progress;
}

body.page-is-leaving::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    width: 42%;
    height: 3px;
    border-radius: 0 999px 999px 0;
    background: linear-gradient(90deg, #1d4ed8, #f2bd2d, #1764c8);
    box-shadow: 0 2px 12px rgba(29, 78, 216, .30);
    animation: frannan-progress-slide 560ms ease-in-out infinite;
    pointer-events: none;
}

body.page-is-leaving > .app-shell,
body.page-is-leaving > .public-header,
body.page-is-leaving > main,
body.page-is-leaving > .public-footer,
body.auth-page.page-is-leaving > .auth-card {
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 160ms ease, transform 180ms ease;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    body > .app-shell,
    body > .public-header,
    body > main,
    body > .public-footer,
    body.auth-page > .auth-card {
        animation: none !important;
    }

    body.page-is-leaving::before {
        display: none;
    }

    body.page-is-leaving > .app-shell,
    body.page-is-leaving > .public-header,
    body.page-is-leaving > main,
    body.page-is-leaving > .public-footer,
    body.auth-page.page-is-leaving > .auth-card {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media print {
    body > .app-shell,
    body > .public-header,
    body > main,
    body > .public-footer,
    body.auth-page > .auth-card {
        animation: none !important;
    }

    body.page-is-leaving::before {
        display: none !important;
    }
}

/* Agent registration and approval workflow */
.agent-applications-hero{align-items:start}
.agent-application-summary{position:sticky;top:84px}
.agent-summary-link{text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.agent-summary-link:hover{transform:translateY(-1px);border-color:#bfd0e6;box-shadow:0 8px 22px rgba(10,42,102,.08)}
.agent-application-filter{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(180px,.7fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}
.agent-application-filter-actions{display:flex;gap:8px;align-items:center}
.agent-application-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.agent-application-details>div{border:1px solid var(--line-soft);border-radius:16px;background:#f8fafc;padding:12px;min-width:0}
.agent-application-details span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.agent-application-details strong{display:block;color:var(--blue-950);font-size:12px;overflow-wrap:anywhere}
.agent-review-panel{scroll-margin-top:90px;border-color:#c9d8eb}
.agent-review-form{border-top:1px solid var(--line-soft);padding-top:16px;margin-top:14px}
.agent-document-row{margin:10px 0 4px}
.agent-applications-table small{color:var(--muted);line-height:1.45}
.agent-applications-table{min-width:1120px}

@media (max-width:1100px){
  .agent-application-filter{grid-template-columns:1fr 1fr}
  .agent-application-filter-actions{grid-column:1/-1}
  .agent-application-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .agent-application-summary{position:static}
}
@media (max-width:760px){
  .agent-application-filter{grid-template-columns:1fr}
  .agent-application-filter-actions{grid-column:auto;flex-wrap:wrap}
  .agent-application-details{grid-template-columns:1fr}
}

/* Administrative fallback warning */
.alert-warning,
.fallback-mode-alert {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    margin: 0 0 18px;
    padding: 14px 48px 14px 16px;
    border: 1px solid #e7b84b;
    border-left: 4px solid #c58b0b;
    border-radius: 14px;
    background: #fff8df;
    color: #4f3500;
    box-shadow: 0 10px 28px rgba(92, 62, 0, .08);
    transition: opacity 180ms ease, transform 180ms ease;
}

.fallback-mode-alert::before {
    content: '!';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #9a6700;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.fallback-mode-alert strong {
    display: block;
    margin-bottom: 3px;
    color: #3d2900;
    font-size: 12px;
    line-height: 1.35;
}

.fallback-mode-alert p,
.fallback-mode-alert span {
    margin: 0;
    color: #684900;
    font-size: 11px;
    line-height: 1.55;
}

.alert-dismiss {
    position: absolute;
    top: 9px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid rgba(104, 73, 0, .24);
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
    color: #4f3500;
    font: inherit;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.alert-dismiss:hover,
.alert-dismiss:focus-visible {
    border-color: #9a6700;
    background: #fff;
    transform: translateY(-1px);
    outline: none;
}

[data-dismissible-alert].is-dismissing {
    opacity: 0;
    transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
    .alert-warning,
    .fallback-mode-alert,
    .alert-dismiss {
        transition: none;
    }
}

/* ==========================================================================
   FRANNAN LEAN PORTAL — PROFESSIONAL APPLICATION LAYOUT
   Keeps the public website intact while replacing the internal portal UI.
   ========================================================================== */

:root {
  --portal-navy-950: #061427;
  --portal-navy-900: #071a33;
  --portal-navy-800: #0b294f;
  --portal-blue-700: #1959b8;
  --portal-blue-600: #1d4ed8;
  --portal-blue-100: #eaf2ff;
  --portal-gold-500: #d4af37;
  --portal-gold-100: #fff9e8;
  --portal-bg: #f4f7fb;
  --portal-surface: #ffffff;
  --portal-ink: #12233d;
  --portal-muted: #68778d;
  --portal-line: #dce4ef;
  --portal-line-soft: #edf1f6;
  --portal-success: #0f8a55;
  --portal-success-bg: #eaf8f1;
  --portal-warning: #a4670c;
  --portal-warning-bg: #fff7e6;
  --portal-danger: #bd3d35;
  --portal-danger-bg: #fff0ef;
  --portal-info-bg: #edf5ff;
  --portal-shadow-xs: 0 1px 2px rgba(7, 26, 51, .04);
  --portal-shadow-sm: 0 8px 24px rgba(7, 26, 51, .065);
  --portal-shadow-md: 0 18px 48px rgba(7, 26, 51, .11);
  --portal-radius-sm: 10px;
  --portal-radius: 15px;
  --portal-radius-lg: 20px;
  --portal-sidebar: 260px;
  --portal-sidebar-collapsed: 84px;
  --portal-topbar: 76px;
}

.ui-icon {
  width: 20px;
  height: 20px;
  display: inline-block;
  flex: 0 0 auto;
}

body.app-body {
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 92% 0%, rgba(29, 78, 216, .06), transparent 26%),
    var(--portal-bg);
  color: var(--portal-ink);
  font-size: 13px;
  overflow-x: hidden;
}

body.app-body a,
body.app-body button,
body.app-body input,
body.app-body select,
body.app-body textarea {
  -webkit-tap-highlight-color: transparent;
}

body.app-body .skip-link {
  position: fixed;
  left: 16px;
  top: 10px;
  z-index: 9999;
  transform: translateY(-160%);
  padding: 10px 14px;
  border-radius: 9px;
  background: #fff;
  color: var(--portal-navy-900);
  box-shadow: var(--portal-shadow-md);
  font-weight: 800;
}
body.app-body .skip-link:focus { transform: translateY(0); }

.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--portal-sidebar) minmax(0, 1fr);
  transition: grid-template-columns .22s ease;
}

.app-shell.sidebar-is-collapsed {
  grid-template-columns: var(--portal-sidebar-collapsed) minmax(0, 1fr);
}

.sidebar {
  position: sticky;
  inset: 0 auto auto 0;
  z-index: 80;
  height: 100vh;
  width: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #eef5ff;
  background:
    radial-gradient(circle at 50% -8%, rgba(29, 78, 216, .38), transparent 30%),
    linear-gradient(180deg, var(--portal-navy-900), var(--portal-navy-950));
  border-right: 1px solid rgba(255,255,255,.07);
  box-shadow: 12px 0 36px rgba(6, 20, 39, .08);
}

.sidebar-head {
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.ims-brand {
  min-width: 0;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0;
  color: #fff;
}

.brand-mark {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .20);
}

.ims-logo-img {
  width: 100%;
  height: 100%;
  padding: 3px;
  object-fit: contain;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.brand-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  overflow: hidden;
}
.brand-copy strong {
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -.01em;
}
.brand-copy small {
  margin-top: 4px;
  color: #9db3d2;
  font-size: 9.5px;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}

.sidebar-collapse {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 10px;
  color: #c7d8ef;
  background: rgba(255,255,255,.06);
  transition: background .18s ease, transform .2s ease;
}
.sidebar-collapse:hover { background: rgba(255,255,255,.12); }
.sidebar-collapse .ui-icon { width: 16px; height: 16px; transform: rotate(180deg); }

.side-nav {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  display: block;
  padding: 16px 12px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.18) transparent;
}

.side-group + .side-group { margin-top: 22px; }
.side-group-title {
  display: block;
  margin: 0 10px 8px;
  color: #7088aa;
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.side-link {
  position: relative;
  min-height: 45px;
  display: flex !important;
  align-items: center;
  gap: 11px !important;
  margin: 3px 0;
  padding: 8px 10px !important;
  border: 1px solid transparent;
  border-radius: 12px !important;
  color: #c6d5e9 !important;
  background: transparent;
  font-size: 12.5px !important;
  font-weight: 720 !important;
  transition: color .17s ease, background .17s ease, border-color .17s ease, transform .17s ease !important;
}
.side-link:hover {
  color: #fff !important;
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.06);
  transform: translateX(1px) !important;
}
.side-link.active {
  color: #fff !important;
  background: linear-gradient(135deg, rgba(29,78,216,.95), rgba(25,89,184,.92)) !important;
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 9px 22px rgba(4, 17, 40, .25), inset 0 1px 0 rgba(255,255,255,.12) !important;
  transform: none !important;
}
.side-link.active::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 11px;
  bottom: 11px;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: var(--portal-gold-500);
}
.side-icon {
  width: 30px !important;
  height: 30px !important;
  flex: 0 0 30px;
  display: grid !important;
  place-items: center !important;
  border-radius: 9px !important;
  color: currentColor !important;
  background: rgba(255,255,255,.06) !important;
}
.side-icon .ui-icon { width: 17px; height: 17px; }
.side-link.active .side-icon { background: rgba(255,255,255,.12) !important; }
.side-label { min-width: 0; flex: 1; white-space: nowrap; }
.side-badge {
  min-width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--portal-gold-500);
  color: #182033;
  font-size: 9px;
  font-weight: 900;
}

.sidebar-footer {
  padding: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.08);
}
.sidebar-user {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.055);
}
.avatar {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg, var(--portal-blue-600), #3583e9);
  box-shadow: 0 7px 18px rgba(29,78,216,.22);
  font-size: 11px;
  font-weight: 900;
}
.sidebar-user-copy {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.sidebar-user-copy strong,
.sidebar-user-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar-user-copy strong { color: #fff; font-size: 11.5px; }
.sidebar-user-copy small { margin-top: 2px; color: #93aaca; font-size: 9.5px; }
.sidebar-logout {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 8px;
  padding: 7px 10px;
  border-radius: 10px;
  color: #b9cbe2;
  font-size: 11.5px;
  font-weight: 750;
}
.sidebar-logout:hover { color: #fff; background: rgba(255,255,255,.07); }
.sidebar-logout .ui-icon { width: 16px; height: 16px; }
.sidebar-system-name {
  display: block;
  margin: 8px 8px 0;
  color: #5f7696;
  font-size: 8.5px;
  line-height: 1.4;
}

.app-shell.sidebar-is-collapsed .brand-copy,
.app-shell.sidebar-is-collapsed .side-group-title,
.app-shell.sidebar-is-collapsed .side-label,
.app-shell.sidebar-is-collapsed .side-badge,
.app-shell.sidebar-is-collapsed .sidebar-user-copy,
.app-shell.sidebar-is-collapsed .sidebar-logout span,
.app-shell.sidebar-is-collapsed .sidebar-system-name {
  display: none;
}
.app-shell.sidebar-is-collapsed .sidebar-head { padding-inline: 18px; }
.app-shell.sidebar-is-collapsed .ims-brand { flex: none; }
.app-shell.sidebar-is-collapsed .brand-mark { width: 42px; height: 42px; flex-basis: 42px; }
.app-shell.sidebar-is-collapsed .sidebar-collapse {
  position: absolute;
  right: -14px;
  top: 25px;
  color: var(--portal-navy-900);
  background: #fff;
  border-color: var(--portal-line);
  box-shadow: var(--portal-shadow-sm);
}
.app-shell.sidebar-is-collapsed .sidebar-collapse .ui-icon { transform: none; }
.app-shell.sidebar-is-collapsed .side-nav { padding-inline: 14px; }
.app-shell.sidebar-is-collapsed .side-link { justify-content: center; padding-inline: 8px !important; }
.app-shell.sidebar-is-collapsed .side-link.active::before { left: -14px; }
.app-shell.sidebar-is-collapsed .sidebar-user { justify-content: center; padding-inline: 0; background: transparent; }
.app-shell.sidebar-is-collapsed .sidebar-logout { justify-content: center; }

.sidebar-overlay { display: none; }

.main-area {
  min-width: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.topbar {
  height: var(--portal-topbar);
  position: sticky;
  inset: 0 0 auto 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 26px;
  background: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(220,228,239,.9);
  box-shadow: 0 1px 0 rgba(7,26,51,.02);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.topbar::before,
.topbar::after { display: none !important; content: none !important; }
.topbar-left,
.topbar-actions { display: flex; align-items: center; gap: 13px; min-width: 0; }
.mobile-nav-button { display: none; }
.topbar-title { min-width: 0; }
.topbar-title > span {
  display: block;
  margin-bottom: 1px;
  color: var(--portal-blue-600);
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.topbar-title h1 {
  margin: 0;
  color: var(--portal-navy-900);
  font-size: 22px;
  font-weight: 780;
  letter-spacing: -.035em;
  line-height: 1.2;
}
.topbar-date {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--portal-muted);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.topbar-date .ui-icon { width: 16px; height: 16px; color: var(--portal-blue-600); }
.top-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  color: var(--portal-navy-800);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
  position: relative;
}
.top-icon:hover { color: var(--portal-blue-600); border-color: #bdd0ed; box-shadow: var(--portal-shadow-sm); }
.top-icon .ui-icon { width: 18px; height: 18px; }
.top-icon em {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: #e34f47;
  font-size: 8.5px;
  font-style: normal;
  font-weight: 900;
}

.profile-menu { position: relative; }
.profile-trigger {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 4px 8px 4px 5px;
  border: 1px solid var(--portal-line);
  border-radius: 13px;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
}
.profile-trigger:hover { border-color: #c8d7ea; }
.profile-trigger-copy {
  min-width: 96px;
  max-width: 150px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.profile-trigger-copy strong,
.profile-trigger-copy small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-trigger-copy strong { color: var(--portal-navy-900); font-size: 11.5px; }
.profile-trigger-copy small { color: var(--portal-muted); font-size: 9.5px; }
.profile-chevron .ui-icon { width: 14px; height: 14px; transform: rotate(90deg); color: #8795a9; }
.profile-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  z-index: 100;
  width: 210px;
  padding: 7px;
  border: 1px solid var(--portal-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--portal-shadow-md);
}
.profile-dropdown[hidden] { display: none; }
.profile-dropdown a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 10px;
  border-radius: 9px;
  color: #34445b;
  font-size: 11.5px;
  font-weight: 720;
}
.profile-dropdown a:hover { color: var(--portal-blue-600); background: var(--portal-blue-100); }
.profile-dropdown .ui-icon { width: 17px; height: 17px; }
.dropdown-divider { display: block; height: 1px; margin: 5px 4px; background: var(--portal-line-soft); }
.profile-dropdown a.danger-link { color: var(--portal-danger); }
.profile-dropdown a.danger-link:hover { background: var(--portal-danger-bg); }

.page-content {
  width: 100%;
  max-width: 1680px;
  flex: 1;
  margin: 0 auto;
  padding: 24px 26px 34px;
}

.app-footer {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 26px;
  border-top: 1px solid var(--portal-line);
  color: #8693a6;
  background: rgba(255,255,255,.65);
  font-size: 10.5px;
}

/* Page compositions */
.page-hero,
.welcome-card {
  position: relative;
  overflow: hidden;
  min-height: 124px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 18px;
  padding: 24px 26px;
  border: 1px solid rgba(29,78,216,.13);
  border-radius: var(--portal-radius-lg);
  background:
    radial-gradient(circle at 88% 20%, rgba(212,175,55,.20), transparent 27%),
    linear-gradient(135deg, #fff, #f4f8ff);
  box-shadow: var(--portal-shadow-sm);
}
.page-hero::after,
.welcome-card::after {
  content: "";
  position: absolute;
  right: -46px;
  bottom: -72px;
  width: 190px;
  height: 190px;
  border: 30px solid rgba(29,78,216,.055);
  border-radius: 50%;
  pointer-events: none;
}
.page-hero-copy,
.welcome-card > div:first-child { position: relative; z-index: 1; min-width: 0; }
.page-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
  color: var(--portal-blue-600);
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.page-eyebrow .ui-icon { width: 15px; height: 15px; }
.page-hero h2,
.welcome-card h2 {
  margin: 0;
  color: var(--portal-navy-900);
  font-size: clamp(22px, 2vw, 29px);
  font-weight: 780;
  letter-spacing: -.04em;
}
.page-hero p,
.welcome-card p {
  max-width: 750px;
  margin: 6px 0 0;
  color: var(--portal-muted);
  font-size: 12.5px;
  line-height: 1.65;
}
.page-hero-actions,
.welcome-metrics {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}
.welcome-metrics span {
  padding: 9px 13px;
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  color: var(--portal-navy-800);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
  font-size: 10.5px;
  font-weight: 800;
}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.kpi-card {
  min-width: 0;
  min-height: 138px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 17px;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.kpi-card:hover { transform: translateY(-2px); border-color: #c4d5eb; box-shadow: var(--portal-shadow-sm); }
.kpi-card .kpi-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.kpi-card h3 {
  margin: 0;
  color: var(--portal-muted);
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.kpi-card .icon,
.kpi-card .icon-wrapper {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--portal-blue-600);
  background: var(--portal-blue-100);
}
.kpi-card .icon .ui-icon,
.kpi-card .icon-wrapper .ui-icon { width: 18px; height: 18px; }
.kpi-card .icon.green { color: var(--portal-success); background: var(--portal-success-bg); }
.kpi-card .icon.gold { color: var(--portal-warning); background: var(--portal-warning-bg); }
.kpi-card .icon.red { color: var(--portal-danger); background: var(--portal-danger-bg); }
.kpi-card > strong,
.kpi-value {
  display: block;
  margin-top: 14px;
  overflow: hidden;
  color: var(--portal-navy-900);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 790;
  letter-spacing: -.045em;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.kpi-card small { color: var(--portal-muted); font-size: 10.5px; }

.panel,
.print-card {
  min-width: 0;
  margin-bottom: 18px;
  padding: 20px;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius-lg);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
}
.panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--portal-line-soft);
}
.panel-header h2 {
  margin: 0;
  color: var(--portal-navy-900);
  font-size: 16px;
  font-weight: 780;
  letter-spacing: -.025em;
}
.panel-header p {
  margin: 4px 0 0;
  color: var(--portal-muted);
  font-size: 11.5px;
  line-height: 1.55;
}
.panel-header .action-row { justify-content: flex-end; }
.module-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(270px, .65fr); gap: 18px; align-items: start; }
.split-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.three-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .55fr); gap: 18px; align-items: start; }

/* Buttons */
.btn,
.action-btn,
.logout {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease, color .15s ease;
}
.btn:hover,
.action-btn:hover { transform: translateY(-1px); }
.btn .ui-icon,
.action-btn .ui-icon { width: 16px; height: 16px; }
.btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--portal-blue-600), var(--portal-blue-700));
  box-shadow: 0 9px 22px rgba(29,78,216,.18);
}
.btn-primary:hover { box-shadow: 0 12px 28px rgba(29,78,216,.25); }
.btn-secondary,
.btn-outline,
.btn-light {
  color: var(--portal-navy-800);
  background: #fff;
  border-color: var(--portal-line);
  box-shadow: var(--portal-shadow-xs);
}
.btn-secondary:hover,
.btn-outline:hover,
.btn-light:hover { color: var(--portal-blue-600); border-color: #b9cdec; box-shadow: var(--portal-shadow-sm); }
.btn-gold { color: #1d2432; background: linear-gradient(135deg, #e8c64c, var(--portal-gold-500)); }
.btn-danger,
.btn.danger { color: var(--portal-danger); background: var(--portal-danger-bg) !important; border-color: #f3c5c2 !important; }
.btn-sm { min-height: 32px; padding: 6px 10px; font-size: 10.5px; }
.btn-icon { width: 38px; padding: 0; }

/* Forms */
.quote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.form-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label {
  color: #47566d;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.field label em { color: var(--portal-danger); font-style: normal; }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #d5deea;
  border-radius: 10px;
  outline: none;
  color: var(--portal-ink);
  background: #fff;
  font-size: 12px;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.field textarea { min-height: 98px; resize: vertical; }
.field input:hover,
.field select:hover,
.field textarea:hover { border-color: #c1cee0; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--portal-blue-600);
  box-shadow: 0 0 0 3px rgba(29,78,216,.10);
}
.field input[readonly],
.field input:disabled,
.field select:disabled { color: #718096; background: #f5f7fa; cursor: not-allowed; }
.field-hint,
.form-note { display: block; color: var(--portal-muted); font-size: 10.5px; line-height: 1.5; }
.form-note a { color: var(--portal-blue-600); font-weight: 800; }
.check-line,
.checkbox-line {
  display: flex !important;
  align-items: flex-start;
  gap: 9px;
  color: #3e4e64 !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.45;
  text-transform: none !important;
}
.check-line input,
.checkbox-line input { width: 16px; min-height: 16px; margin-top: 1px; accent-color: var(--portal-blue-600); }
.form-section-title {
  grid-column: 1 / -1;
  margin: 4px 0 0;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--portal-line-soft);
}
.form-section-title span {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--portal-blue-600);
  background: var(--portal-blue-100);
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.form-section-title h3 { margin: 7px 0 0; color: var(--portal-navy-900); font-size: 14px; }
.filter-bar,
.agent-application-filter,
.claims-filter-bar {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, .7fr)) auto;
  gap: 11px;
  align-items: end;
  margin-bottom: 16px;
  padding: 14px;
  border: 1px solid var(--portal-line-soft);
  border-radius: 13px;
  background: #f8fafc;
}
.filter-actions,
.agent-application-filter-actions,
.claims-filter-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mini-form { display: flex; align-items: center; gap: 7px; }
.mini-form select,
.mini-form input { min-height: 34px; padding: 6px 8px; border: 1px solid var(--portal-line); border-radius: 8px; font-size: 10.5px; }

/* Tables */
.table-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--portal-line);
  border-radius: 13px;
  background: #fff;
  scrollbar-width: thin;
  scrollbar-color: #c6d1e0 transparent;
}
.data-table {
  width: 100%;
  min-width: 840px;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--portal-ink);
  background: #fff;
  font-size: 11.5px;
}
.data-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 11px 12px;
  border-bottom: 1px solid var(--portal-line);
  color: #56657a;
  background: #f6f8fb;
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: .065em;
  line-height: 1.25;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
.data-table td {
  padding: 12px;
  border-bottom: 1px solid var(--portal-line-soft);
  color: #33445b;
  vertical-align: middle;
  line-height: 1.45;
}
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover td { background: #fbfcfe; }
.data-table td strong { color: var(--portal-navy-900); }
.data-table td small { color: var(--portal-muted); font-size: 9.8px; }
.table-primary { color: var(--portal-navy-900); font-weight: 800; }
.table-muted { color: var(--portal-muted); }
.table-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.table-empty { padding: 28px !important; text-align: center; color: var(--portal-muted) !important; }

.badge {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border: 1px solid;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}
.badge-success { color: var(--portal-success); background: var(--portal-success-bg); border-color: #b9e6cf; }
.badge-warning { color: var(--portal-warning); background: var(--portal-warning-bg); border-color: #efd69d; }
.badge-danger { color: var(--portal-danger); background: var(--portal-danger-bg); border-color: #f1c5c2; }
.badge-neutral { color: #5b6a7f; background: #f3f6f9; border-color: #dbe3ec; }

/* Lists, actions and cards */
.stat-list { display: flex; flex-direction: column; gap: 8px; }
.stat-row {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 12px;
  border: 1px solid var(--portal-line-soft);
  border-radius: 10px;
  background: #f9fafc;
}
.stat-row:hover { border-color: #d6e0ec; background: #fff; }
.stat-row span { min-width: 0; color: #425269; font-size: 11.5px; font-weight: 720; }
.stat-row small { color: var(--portal-muted); font-size: 9.7px; font-weight: 600; }
.stat-row strong { color: var(--portal-navy-900); font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; }

.action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}
.action-card {
  min-height: 142px;
  display: flex;
  flex-direction: column;
  padding: 16px;
  border: 1px solid var(--portal-line);
  border-radius: 14px;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: var(--portal-shadow-xs);
  transition: transform .17s ease, border-color .17s ease, box-shadow .17s ease;
}
.action-card:hover { transform: translateY(-2px); border-color: #bfd1e9; box-shadow: var(--portal-shadow-sm); }
.action-card > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  border-radius: 11px;
  color: var(--portal-blue-600);
  background: var(--portal-blue-100);
}
.action-card > span .ui-icon { width: 18px; height: 18px; }
.action-card strong { color: var(--portal-navy-900); font-size: 12.5px; }
.action-card small { margin-top: 5px; color: var(--portal-muted); font-size: 10.5px; line-height: 1.5; }
.action-card .action-arrow { margin-top: auto; padding-top: 12px; color: var(--portal-blue-600); font-weight: 800; }
.quick-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.action-btn { justify-content: flex-start; border-color: var(--portal-line); color: var(--portal-navy-800); background: #fff; }
.action-btn:hover { color: var(--portal-blue-600); border-color: #bfd0e9; box-shadow: var(--portal-shadow-sm); }

.mini-list { display: flex; flex-direction: column; gap: 8px; }
.mini-item {
  display: flex;
  gap: 11px;
  padding: 11px;
  border: 1px solid var(--portal-line-soft);
  border-radius: 11px;
  background: #f9fafc;
}
.mini-date {
  width: 45px;
  height: 45px;
  flex: 0 0 45px;
  display: grid;
  place-items: center;
  border: 1px solid var(--portal-line);
  border-radius: 10px;
  color: var(--portal-blue-600);
  background: #fff;
  font-size: 9.5px;
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
}
.mini-item strong { display: block; color: var(--portal-navy-900); font-size: 11.5px; }
.mini-item small { display: block; margin-top: 3px; color: var(--portal-muted); font-size: 9.8px; line-height: 1.45; }

.empty-state {
  padding: 25px;
  border: 1px dashed #c9d4e2;
  border-radius: 13px;
  color: var(--portal-muted);
  background: #f9fafc;
  text-align: center;
  font-size: 11.5px;
  font-weight: 700;
}
.empty-state.compact { padding: 16px; }
.alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid;
  border-radius: 12px;
  font-size: 11.5px;
  font-weight: 720;
  line-height: 1.5;
}
.alert-icon { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 20px; }
.alert-icon .ui-icon { width: 16px; height: 16px; }
.alert-success { color: #14643e; background: var(--portal-success-bg); border-color: #bbe6d0; }
.alert-error { color: #8c312b; background: var(--portal-danger-bg); border-color: #efc3c0; }
.alert-warning { color: #81540d; background: var(--portal-warning-bg); border-color: #efd9aa; }

/* Role and agent application layouts */
.role-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.role-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--portal-line);
  border-radius: 14px;
  background: #fff;
}
.role-card h3 { margin: 0; color: var(--portal-navy-900); font-size: 14px; }
.role-card > p { margin: 4px 0 13px; color: var(--portal-muted); font-size: 10.5px; }
.role-card .check-line { padding: 7px 0; border-top: 1px solid var(--portal-line-soft); }
.agent-application-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.agent-application-details > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--portal-line-soft);
  border-radius: 10px;
  background: #f9fafc;
}
.agent-application-details span { display: block; color: var(--portal-muted); font-size: 8.5px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.agent-application-details strong { display: block; margin-top: 5px; overflow-wrap: anywhere; color: var(--portal-navy-900); font-size: 11px; }
.agent-review-form { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--portal-line-soft); }
.agent-document-row { margin-top: 13px; }
.agent-summary-link { text-decoration: none; }

/* Reports */
.report-bars { display: flex; flex-direction: column; gap: 12px; }
.report-bar-row { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(160px, 2fr) auto; align-items: center; gap: 12px; }
.report-bar-label { min-width: 0; color: #3e4d63; font-size: 10.5px; font-weight: 750; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-track { height: 9px; overflow: hidden; border-radius: 999px; background: #edf1f6; }
.report-track span { display: block; height: 100%; min-width: 4px; border-radius: inherit; background: linear-gradient(90deg, var(--portal-blue-600), #4d8ee5); }
.report-bar-value { color: var(--portal-navy-900); font-size: 10.5px; font-weight: 800; white-space: nowrap; }

/* Settings */
.settings-tabs { display: flex; align-items: center; gap: 7px; margin-bottom: 16px; padding: 5px; border: 1px solid var(--portal-line); border-radius: 12px; background: #f6f8fb; overflow-x: auto; }
.settings-tabs a { flex: 0 0 auto; padding: 8px 11px; border-radius: 8px; color: #637188; font-size: 10.5px; font-weight: 800; }
.settings-tabs a:hover,
.settings-tabs a.active { color: var(--portal-blue-600); background: #fff; box-shadow: var(--portal-shadow-xs); }
.catalog-grid { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr); gap: 18px; align-items: start; }
.catalog-list { display: flex; flex-direction: column; gap: 8px; max-height: 520px; overflow: auto; padding-right: 4px; }
.catalog-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid var(--portal-line-soft); border-radius: 10px; background: #f9fafc; }
.catalog-item strong { color: var(--portal-navy-900); font-size: 11px; }
.catalog-item small { display: block; margin-top: 2px; color: var(--portal-muted); font-size: 9.3px; }

/* Profile */
.profile-layout { display: grid; grid-template-columns: minmax(250px, .55fr) minmax(0, 1.45fr); gap: 18px; align-items: start; }
.profile-summary { text-align: center; }
.profile-avatar-large {
  width: 86px;
  height: 86px;
  display: grid;
  place-items: center;
  margin: 6px auto 14px;
  border-radius: 24px;
  color: #fff;
  background: linear-gradient(135deg, var(--portal-blue-600), #2d7ddd);
  box-shadow: 0 18px 36px rgba(29,78,216,.23);
  font-size: 26px;
  font-weight: 900;
}
.profile-summary h2 { margin: 0; color: var(--portal-navy-900); font-size: 18px; }
.profile-summary p { margin: 4px 0 14px; color: var(--portal-muted); font-size: 11px; }
.profile-meta { display: flex; flex-direction: column; gap: 8px; text-align: left; }
.profile-meta div { padding: 10px; border: 1px solid var(--portal-line-soft); border-radius: 9px; background: #f9fafc; }
.profile-meta span { display: block; color: var(--portal-muted); font-size: 8.5px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.profile-meta strong { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--portal-navy-900); font-size: 10.8px; }

/* Authentication refresh */
.auth-page {
  min-width: 320px;
  min-height: 100vh;
  padding: 24px;
  background:
    radial-gradient(circle at 80% 12%, rgba(212,175,55,.24), transparent 28%),
    radial-gradient(circle at 10% 90%, rgba(29,78,216,.34), transparent 32%),
    linear-gradient(135deg, #051225, #082b57 58%, #0d4385);
}
.auth-card {
  width: min(960px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(370px, .85fr);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 36px 90px rgba(0,0,0,.28);
}
.auth-panel {
  position: relative;
  overflow: hidden;
  padding: 44px;
  color: #fff;
  background:
    radial-gradient(circle at 75% 20%, rgba(212,175,55,.22), transparent 27%),
    linear-gradient(150deg, var(--portal-navy-950), #0c3973);
}
.auth-panel::after { content: ""; position: absolute; right: -80px; bottom: -110px; width: 280px; height: 280px; border: 42px solid rgba(255,255,255,.05); border-radius: 50%; }
.auth-panel .brand-logo-img { height: 58px; padding: 4px; border-radius: 10px; background: #fff; }
.auth-panel h1 { max-width: 500px; margin: 50px 0 15px; font-size: clamp(32px, 4vw, 45px); line-height: 1.02; letter-spacing: -.05em; }
.auth-panel p { max-width: 520px; color: #cfdef1; font-size: 13.5px; line-height: 1.75; }
.auth-form { padding: 44px; }
.auth-form h2 { margin: 0 0 7px; color: var(--portal-navy-900); font-size: 27px; font-weight: 790; letter-spacing: -.04em; }
.auth-form > p { color: var(--portal-muted) !important; font-size: 11.5px; }
.auth-form .field label { color: #4d5d73; }
.auth-form .field input { min-height: 45px; }

/* Pagination */
.claims-pagination,
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 15px; }
.claims-page-link,
.page-link { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 7px 11px; border: 1px solid var(--portal-line); border-radius: 9px; color: var(--portal-blue-600); background: #fff; font-size: 10.5px; font-weight: 800; }
.claims-page-link:hover,
.page-link:hover { border-color: #bdd0ec; box-shadow: var(--portal-shadow-sm); }
.claims-page-link.is-disabled,
.page-link.is-disabled { opacity: .45; pointer-events: none; }
.claims-page-current,
.page-current { color: var(--portal-muted); font-size: 10.5px; font-weight: 750; }

@media (max-width: 1280px) {
  .kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quick-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .agent-application-details { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-bar,
  .agent-application-filter,
  .claims-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-actions,
  .agent-application-filter-actions,
  .claims-filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 1040px) {
  .app-shell,
  .app-shell.sidebar-is-collapsed { grid-template-columns: 1fr; }
  .sidebar {
    position: fixed;
    width: min(290px, calc(100vw - 44px));
    transform: translateX(-105%);
    transition: transform .22s ease;
    box-shadow: 24px 0 54px rgba(6,20,39,.28);
  }
  body.sidebar-open { overflow: hidden; }
  body.sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-collapse { display: none; }
  .sidebar-overlay {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: block;
    visibility: hidden;
    opacity: 0;
    border: 0;
    background: rgba(6,20,39,.48);
    backdrop-filter: blur(2px);
    transition: opacity .2s ease, visibility .2s ease;
  }
  body.sidebar-open .sidebar-overlay { visibility: visible; opacity: 1; }
  .mobile-nav-button {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid var(--portal-line);
    border-radius: 11px;
    color: var(--portal-navy-800);
    background: #fff;
  }
  .mobile-nav-button .ui-icon { width: 19px; height: 19px; }
  .dashboard-grid,
  .profile-layout,
  .catalog-grid { grid-template-columns: 1fr; }
  .topbar { padding-inline: 18px; }
  .page-content { padding-inline: 18px; }
  .app-footer { padding-inline: 18px; }
}

@media (max-width: 800px) {
  .topbar-date { display: none; }
  .profile-trigger-copy { display: none; }
  .profile-trigger { padding-right: 5px; }
  .profile-chevron { display: none; }
  .page-hero,
  .welcome-card { align-items: flex-start; flex-direction: column; padding: 20px; }
  .page-hero-actions,
  .welcome-metrics { justify-content: flex-start; }
  .module-hero,
  .split-grid,
  .three-grid { grid-template-columns: 1fr; }
  .action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-grid { grid-template-columns: 1fr; }
  .agent-application-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  body.app-body { font-size: 12.5px; }
  .topbar { height: 66px; padding-inline: 13px; }
  .topbar-title > span { display: none; }
  .topbar-title h1 { font-size: 18px; }
  .topbar-actions { gap: 7px; }
  .top-icon { width: 38px; height: 38px; }
  .profile-trigger .avatar { width: 34px; height: 34px; flex-basis: 34px; }
  .page-content { padding: 14px 13px 26px; }
  .app-footer { flex-direction: column; align-items: flex-start; gap: 3px; padding-inline: 13px; }
  .panel,
  .print-card { padding: 15px; border-radius: 15px; }
  .panel-header { flex-direction: column; align-items: stretch; }
  .panel-header .action-row { justify-content: flex-start; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kpi-card { min-height: 125px; padding: 14px; }
  .kpi-card > strong,
  .kpi-value { font-size: 20px; }
  .quote-grid,
  .form-grid-3,
  .filter-bar,
  .agent-application-filter,
  .claims-filter-bar { grid-template-columns: 1fr; }
  .filter-actions,
  .agent-application-filter-actions,
  .claims-filter-actions { grid-column: auto; }
  .action-grid,
  .quick-actions { grid-template-columns: 1fr; }
  .agent-application-details { grid-template-columns: 1fr; }
  .report-bar-row { grid-template-columns: minmax(95px, .75fr) minmax(100px, 1.5fr); }
  .report-bar-value { grid-column: 2; }
  .auth-page { padding: 13px; }
  .auth-card { grid-template-columns: 1fr; border-radius: 18px; }
  .auth-panel { display: none; }
  .auth-form { padding: 28px 22px; }
  .data-table { min-width: 760px; }
  .claims-pagination,
  .pagination { align-items: stretch; }
  .claims-page-link,
  .page-link { flex: 1; }
  .claims-page-current,
  .page-current { display: flex; align-items: center; justify-content: center; text-align: center; }
}

@media print {
  body.app-body { background: #fff !important; }
  .sidebar,
  .sidebar-overlay,
  .topbar,
  .app-footer,
  .btn,
  .no-print { display: none !important; }
  .app-shell,
  .app-shell.sidebar-is-collapsed { display: block !important; }
  .page-content { max-width: none; padding: 0 !important; }
  .page-hero,
  .welcome-card,
  .panel,
  .print-card { border-color: #aaa !important; border-radius: 0 !important; box-shadow: none !important; }
  .data-table { min-width: 0; font-size: 10px; }
  .data-table th { position: static; color: #111; background: #eee !important; }
}
