/* ============================================================================
   DUMMY CORE TAX — FRS CONSULTING — design system
   Professional, enterprise, accounting/tax oriented. Light theme.
   ========================================================================== */

:root{
  --accent:#0d5c63;
  --accent-600:#0a4a50;
  --accent-050:#e6f1f2;
  --ink:#16232b;
  --muted:#5b6b73;
  --line:#e2e8ea;
  --bg:#f4f7f8;
  --card:#ffffff;
  --ok:#166534; --ok-bg:#dcfce7;
  --bad:#991b1b; --bad-bg:#fee2e2;
  --warn:#92400e; --warn-bg:#fef3c7;
  --info:#1e40af; --info-bg:#dbeafe;
  --radius:12px;
  --shadow:0 1px 3px rgba(16,35,43,.08),0 1px 2px rgba(16,35,43,.06);
  --font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:0 0 .5em}
p{margin:0 0 1em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.small{font-size:.85rem}
.muted{color:var(--muted)}
.center{text-align:center}

/* ---- Disclaimer banner (mandatory, always visible) ---- */
.disclaimer-banner{
  background:#7a1f1f;color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.02em;
  text-align:center;padding:7px 14px;line-height:1.35;
}

/* ---- Header / nav ---- */
.site-header{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:62px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-mark{background:var(--accent);color:#fff;font-weight:800;border-radius:8px;padding:5px 9px;font-size:.9rem;letter-spacing:.03em}
.brand-text{font-size:.98rem}
.nav{display:flex;align-items:center;gap:18px}
.nav a{color:var(--ink);font-size:.94rem}
.nav-user{color:var(--muted);font-size:.82rem}
.nav-toggle,.nav-burger{display:none}

/* ---- Buttons ---- */
.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);
  padding:9px 18px;border-radius:9px;font-weight:600;font-size:.94rem;cursor:pointer;text-align:center}
.btn:hover{background:var(--accent-600);border-color:var(--accent-600);text-decoration:none;color:#fff}
.btn-ghost{background:transparent;color:var(--accent)}
.btn-ghost:hover{background:var(--accent-050);color:var(--accent-600)}
.btn-block{display:block;width:100%}
.btn-lg{padding:12px 26px;font-size:1rem}

/* ---- Cards & grid ---- */
main{padding:26px 0 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:20px}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.stat .label{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.stat .value{font-size:1.5rem;font-weight:700;margin-top:4px}

/* ---- Alerts & badges ---- */
.alert{padding:12px 16px;border-radius:10px;margin:0 0 18px;font-size:.92rem;border:1px solid transparent}
.alert-ok{background:var(--ok-bg);color:var(--ok);border-color:#bbf7d0}
.alert-bad{background:var(--bad-bg);color:var(--bad);border-color:#fecaca}
.alert-info{background:var(--info-bg);color:var(--info);border-color:#bfdbfe}
.alert-warn{background:var(--warn-bg);color:var(--warn);border-color:#fde68a}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.76rem;font-weight:600}
.badge-ok{background:var(--ok-bg);color:var(--ok)}
.badge-bad{background:var(--bad-bg);color:var(--bad)}
.badge-warn{background:var(--warn-bg);color:var(--warn)}
.badge-info{background:var(--info-bg);color:var(--info)}
.badge-muted{background:#eef2f3;color:var(--muted)}

/* ---- Forms ---- */
.form-row{margin-bottom:15px}
label{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],
input[type=date],select,textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-050);border-color:var(--accent)}
.hint{color:var(--muted);font-size:.8rem;margin-top:4px}
.auth-wrap{max-width:460px;margin:10px auto}

/* ---- Tables ---- */
.table-scroll{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:.9rem}
table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
table.data th{background:var(--accent-050);color:var(--accent-600);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
table.data tbody tr:hover,table.data tr:hover{background:#fafcfc}
.num{text-align:right;font-variant-numeric:tabular-nums}

/* ---- Hero / landing ---- */
.hero{background:linear-gradient(135deg,var(--accent),var(--accent-600));color:#fff;border-radius:16px;padding:48px 34px;margin-bottom:26px}
.hero h1{font-size:2.2rem;margin-bottom:.3em}
.hero p{font-size:1.06rem;opacity:.95;max-width:640px}
.hero .btn{background:#fff;color:var(--accent-600);border-color:#fff}
.hero .btn:hover{background:#eafafa}
.hero .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.section-title{font-size:1.4rem;margin:32px 0 14px}
.feature{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.feature h3{font-size:1.02rem;color:var(--accent-600)}
.chip-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chip-list li{background:var(--accent-050);color:var(--accent-600);padding:6px 12px;border-radius:999px;font-size:.86rem;font-weight:600}
.dummy-note{background:var(--warn-bg);color:var(--warn);border:1px dashed #f0c76a;border-radius:10px;padding:10px 14px;font-size:.85rem;margin:14px 0}

/* ---- Responsive ---- */
@media (max-width:820px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .nav-burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:6px}
  .nav-burger span{width:24px;height:2px;background:var(--ink);display:block}
  .nav{display:none;position:absolute;top:62px;right:0;left:0;background:var(--card);
    flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--line);padding:8px 20px}
  .nav a,.nav .btn,.nav-user{padding:10px 0;width:100%}
  .nav-toggle:checked ~ .nav{display:flex}
  .hero h1{font-size:1.7rem}
}

/* ============================================================================
   Coretax-style application shell (independent FRS design)
   ========================================================================== */
:root{--nav-h:60px;--navy:#0f2b46;--navy-2:#16385c}
body.has-appnav{background:#eef2f5}

.appnav{background:#fff;border-bottom:3px solid var(--accent);box-shadow:0 2px 10px rgba(16,35,43,.06);position:sticky;top:0;z-index:60}
.appnav-inner{max-width:1180px;margin:0 auto;padding:0 18px;min-height:var(--nav-h);display:flex;align-items:center;gap:14px}
.appnav-brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:800;white-space:nowrap}
.appnav-brand:hover{text-decoration:none}
.appnav-title{font-size:.98rem;line-height:1}
.appnav-title small{display:block;font-size:.62rem;letter-spacing:.14em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-top:2px}

.appnav-menu{flex:1}
.appnav-menu>ul{list-style:none;display:flex;gap:2px;margin:0;padding:0}
.appnav-menu .has-drop{position:relative}
.appnav-menu .top{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;font-size:.9rem;font-weight:600;color:#33454f;cursor:pointer;white-space:nowrap}
.appnav-menu .mi{font-size:.95rem}
.appnav-menu .caret{font-size:.7rem;opacity:.6;font-weight:400}
.appnav-menu .has-drop:hover>.top{background:var(--accent-050);color:var(--accent-600)}
.appnav-menu .has-drop.active>.top{color:var(--accent-600)}
.appnav-menu .has-drop.active>.top::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--accent);border-radius:3px}
.appnav-menu .drop{list-style:none;margin:0;padding:6px;position:absolute;top:100%;left:0;min-width:210px;background:#fff;
  border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(16,35,43,.16);display:none;z-index:70}
.appnav-menu .has-drop:hover>.drop{display:block}
.appnav-menu .drop a{display:block;padding:9px 12px;border-radius:7px;font-size:.9rem;color:var(--ink)}
.appnav-menu .drop a:hover{background:var(--accent-050);color:var(--accent-600);text-decoration:none}
.appnav-menu .drop a.here{background:var(--accent-050);color:var(--accent-600);font-weight:600}

.appnav-user{display:flex;align-items:center;gap:10px;white-space:nowrap}
.au-info{text-align:right;line-height:1.15;display:flex;flex-direction:column}
.au-name{font-size:.86rem;font-weight:700}
.au-role{font-size:.72rem;color:var(--muted)}
.au-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800}
.au-logout{font-size:.82rem;color:var(--bad);font-weight:600}

.app-main{max-width:1180px;margin:0 auto;padding:22px 18px 60px}
.app-main .wrap{max-width:none;padding:0}

/* Coretax-style dashboard welcome / announcement / service cards */
.cx-welcome{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;border-radius:16px;padding:26px 28px;margin-bottom:18px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cx-welcome h1{font-size:1.5rem;margin:0 0 6px}
.cx-welcome .accent{color:#ffd166}
.cx-welcome p{margin:0;opacity:.9;max-width:520px}
.cx-welcome .cx-badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:12px;padding:12px 16px;text-align:center}
.cx-welcome .cx-badge .n{font-size:1.5rem;font-weight:800}
.cx-welcome .cx-badge .l{font-size:.72rem;opacity:.85;text-transform:uppercase;letter-spacing:.05em}

.cx-services{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.cx-service{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:flex-start}
.cx-service:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px);transition:.15s}
.cx-service .ic{width:40px;height:40px;border-radius:10px;background:var(--accent-050);display:grid;place-items:center;font-size:1.2rem;flex:none}
.cx-service h3{font-size:.96rem;margin:0 0 2px;color:var(--ink)}
.cx-service p{font-size:.8rem;color:var(--muted);margin:0}

/* Split login (Coretax-style, FRS branding) */
.login-split{display:grid;grid-template-columns:1.1fr .9fr;gap:0;max-width:1040px;margin:24px auto;background:#fff;border:1px solid var(--line);
  border-radius:18px;overflow:hidden;box-shadow:0 16px 44px rgba(16,35,43,.12)}
.login-hero{background:linear-gradient(140deg,var(--navy),var(--navy-2));color:#fff;padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.login-hero .lh-mark{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.4rem;letter-spacing:.02em;margin-bottom:18px}
.login-hero .lh-mark .brand-mark{background:#fff;color:var(--navy)}
.login-hero h2{font-size:1.7rem;line-height:1.2;margin:0 0 12px}
.login-hero p{opacity:.9;margin:0 0 10px}
.login-hero .lh-note{margin-top:20px;background:rgba(255,255,255,.12);border:1px dashed rgba(255,255,255,.4);border-radius:10px;padding:10px 14px;font-size:.8rem}
.login-form{padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.login-form h1{font-size:1.5rem;margin:0 0 4px}

@media (max-width:900px){
  .cx-services{grid-template-columns:repeat(2,1fr)}
  .login-split{grid-template-columns:1fr}
  .login-hero{padding:30px 26px}
}
@media (max-width:820px){
  .appnav-inner{flex-wrap:wrap}
  .nav-burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:6px;order:3}
  .nav-burger span{width:24px;height:2px;background:var(--ink);display:block}
  .appnav-menu{flex-basis:100%;order:4;display:none}
  .nav-toggle:checked ~ .appnav-menu{display:block}
  .appnav-menu>ul{flex-direction:column;gap:0;padding-bottom:10px}
  .appnav-menu .drop{position:static;display:block;box-shadow:none;border:none;padding:0 0 0 30px;min-width:0}
  .appnav-menu .has-drop.active>.top::after{display:none}
  .appnav-user{order:2;margin-left:auto}
  .cx-services{grid-template-columns:1fr}
}
