    :root { --ink:#17202a; --muted:#687386; --line:#d9e0e8; --bg:#f6f8fb; --panel:#fff; --accent:#0055a4; --accent-soft:#eef5ff; --fr-red:#ef4135; --warn:#b54708; --bad:#b42318; }
    * { box-sizing: border-box; }
    body { margin:0; font-family: Segoe UI, Arial, sans-serif; color:var(--ink); background:var(--bg); }
    body.locked .app-shell { display:none; }
    .login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#0055a4 0 45%,#ffffff 45% 58%,#ef4135 58% 100%); }
    body:not(.locked) .login-page { display:none; }
    .login-card { width:min(420px,100%); background:white; border-radius:8px; padding:28px; box-shadow:0 22px 60px rgba(0,0,0,.22); }
    .login-card h1 { color:#0055a4; margin-bottom:8px; }
    .login-card form { display:grid; gap:12px; margin-top:22px; }
    .login-error { min-height:20px; color:var(--bad); font-size:13px; }
    .topbar { position:fixed; inset:0 0 auto 0; height:64px; background:white; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:18px; padding:0 24px 0 294px; z-index:12; box-shadow:0 1px 2px rgba(16,24,40,.04); }
    .topbar::before { content:""; position:absolute; inset:auto 0 0 0; height:4px; background:linear-gradient(90deg,#0055a4 0 33.33%,#fff 33.33% 66.66%,#ef4135 66.66% 100%); }
    .topbar-title { font-size:20px; font-weight:750; color:#0b2f63; }
    .header-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end; align-items:center; }
    .language-box { display:flex; gap:8px; align-items:center; color:var(--muted); font-size:13px; }
    .language-box select { min-width:130px; width:auto; padding:7px 9px; }
    .user-box { display:flex; gap:8px; align-items:center; font-size:13px; }
    .user-box button { padding:9px 12px; border-radius:6px; border:1px solid #ef4135; background:#ef4135; color:white; cursor:pointer; font-weight:650; }
    .sidebar { position:fixed; inset:0 auto 0 0; width:270px; background:#0b2f63; color:white; padding:22px 18px; display:flex; flex-direction:column; gap:16px; box-shadow:12px 0 30px rgba(16,24,40,.08); z-index:13; }
    .sidebar::before { content:""; position:absolute; inset:0 0 auto 0; height:8px; background:linear-gradient(90deg,#0055a4 0 33.33%,#fff 33.33% 66.66%,#ef4135 66.66% 100%); }
    .sidebar-title { margin-top:10px; font-size:22px; font-weight:750; }
    h1 { margin:0 0 6px; font-size:26px; font-weight:650; }
    h2 { margin:0 0 14px; font-size:18px; }
    main { padding:88px 30px 44px; margin-left:270px; }
    .grid { display:grid; gap:16px; }
    .top { grid-template-columns: repeat(4, minmax(150px,1fr)); }
    .panel { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
    .kpi { font-size:30px; font-weight:700; margin-top:8px; }
    .muted { color:var(--muted); font-size:13px; }
    .tabs { display:flex; gap:8px; flex-wrap:wrap; margin:18px 0 14px; }
    .module-nav { display:grid; gap:8px; margin-top:0; }
    #files { display:none; }
    .tabs button, .module-nav button, .primary, .ghost { border:1px solid var(--line); border-radius:6px; background:white; padding:9px 12px; cursor:pointer; color:var(--ink); }
    .tabs button.active, .primary { background:var(--accent); color:white; border-color:var(--accent); }
    .module-nav button { text-align:left; background:rgba(255,255,255,.08); color:white; border-color:rgba(255,255,255,.2); }
    .module-nav button.active { background:white; border-color:white; color:#0055a4; font-weight:700; }
    .ghost:hover, .tabs button:hover, .module-nav button:hover, .primary:hover { filter:brightness(.98); }
    .home-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
    .home-card { cursor:pointer; min-height:140px; }
    .breadcrumb { margin-bottom:12px; color:var(--muted); }
    .breadcrumb a { color:#0055a4; text-decoration:none; font-weight:600; }
    .section-title { margin:0 0 12px; }
    .home-card strong { display:block; font-size:22px; margin-bottom:8px; }
    .drop-zone { border:2px dashed #9ab7c8; border-radius:8px; padding:18px; background:#f8fbfd; display:grid; gap:10px; min-height:130px; align-content:center; }
    .drop-zone.dragover { border-color:var(--accent); background:var(--accent-soft); }
    .drop-zone strong { font-size:17px; }
    .export-box { border:1px solid var(--line); border-radius:8px; padding:18px; background:#f8fbfd; min-height:130px; }
    .file-input-hidden { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
    .file-button { display:inline-block; width:auto; margin-top:12px; text-align:center; }
    input, textarea, select { border:1px solid var(--line); border-radius:6px; padding:9px; font:inherit; width:100%; background:white; }
    table { border-collapse:collapse; width:100%; background:white; }
    th, td { border-bottom:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; font-size:14px; }
    th { position:sticky; top:0; background:#eef3f7; color:#0b2f63; z-index:1; }
    .scroll { max-height:560px; overflow:auto; border:1px solid var(--line); border-radius:8px; }
    .status { font-weight:650; }
    .bad { color:var(--bad); }
    .warn { color:var(--warn); }
    .ok { color:var(--accent); }
    .form-row { display:grid; grid-template-columns: 140px 100px 1fr auto; gap:10px; align-items:start; }
    .hidden { display:none; }
    .two { grid-template-columns: 1fr 1fr; }
    @media (max-width:900px) {
      .topbar { position:static; height:auto; padding:14px 16px; align-items:flex-start; }
      .sidebar { position:static; width:auto; padding:16px; }
      main { margin-left:0; padding:18px 16px 34px; }
      .module-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .top,.two,.form-row { grid-template-columns:1fr; }
    }
